Diffusers documentation

EntropyBoundScheduler

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

EntropyBoundScheduler

EntropyBoundScheduler фиксирует позиции с наименьшей энтропией, для которых совместная энтропия не превышает entropy_bound, поэтому приблизительно независимые токены принимаются вместе, а остальные подвергаются повторному шумлению. Температура выборки аннелируется от t_max на первом шаге до t_min на последнем, что соответствует сэмплеру опубликованной контрольной точки. Предложено в Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking.

Этот планировщик используется в DiffusionGemmaPipeline.

EntropyBoundScheduler

класс diffusers.EntropyBoundScheduler

< >

( entropy_bound: float = 0.1t_max: float = 0.8t_min: float = 0.4num_inference_steps: int = 32 )

Параметры

  • entropy_bound (float, по умолчанию 0.1) — Максимально допустимая совместная энтропия принятых токенов. Большие значения приводят к принятию большего количества токенов на каждом шаге.
  • t_max (float, по умолчанию 0.8) — Температура выборки на первом шаге денойзинга.
  • t_min (float, по умолчанию 0.4) — Температура выборки на последнем шаге денойзинга.
  • num_inference_steps (int, по умолчанию 32) — Максимальное количество шагов денойзинга.

Планировщик с ограничением энтропии для процесса равномерного повреждения.

На каждом шаге планировщик выбирает по одному кандидату на каждую позицию и принимает k позиций с наименьшей энтропией при условии, что sum_i^k entropy_i - max(entropy_1, ..., entropy_k) <= entropy_bound. Левая часть этого выражения является верхней границей для совместной взаимной информации принятых токенов, поэтому они приблизительно независимы. В принятых позициях сохраняется выбранный токен; остальные позиции подвергаются повторному шумовому воздействию с использованием равномерно случайных токенов (токен маски не используется).

Предложено в статье «Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking» (https://huggingface.co/papers/2505.24857).

Температура выборки аннелируется от t_max на первом шаге до t_min на последнем, что соответствует сэмплеру выпущенного чекпоинта (более острый выбор по мере продвижения процесса денойзинга). Она применяется к логитам как перед выборкой кандидатов, так и перед энтропией, определяющей принятие.

шаг

< >

( model_output: torch.Tensortimestep: int | torch.Tensorsample: torch.LongTensorentropy_bound: float | None = Nonegenerator: torch.Generator | None = Nonereturn_dict: bool = True )

Параметры

  • model_output (torch.Tensor формы (batch_size, block_length, vocab_size)) — Сырые логиты модели для текущего блока.
  • timestep (int или torch.Tensor) — Текущий индекс шага в расписании удаления шума; задает температуру отжига при выборке.
  • sample (torch.LongTensor формы (batch_size, block_length)) — ID токенов текущего блока.
  • entropy_bound (float, необязательный) — Переопределяет настроенное ограничение энтропии для этого шага.
  • generator (torch.Generator, необязательный) — Генератор случайных чисел для выборки.
  • return_dict (bool) — Определяет, возвращать ли EntropyBoundSchedulerOutput или обычный кортеж.

Принимайте позиции с наименьшей энтропией в пределах заданного порога энтропии и заново добавляйте шум к остальным.

EntropyBoundSchedulerOutput

класс diffusers.EntropyBoundSchedulerOutput

< >

( prev_sample: torch.LongTensoraccepted_index: torch.BoolTensorsampled_tokens: torch.LongTensorsampled_probs: torch.Tensorpred_logits: torch.Tensor )

Параметры

  • prev_sample (torch.LongTensor формы (batch_size, block_length)) — Обновленные токены блока после текущего шага денойзинга.
  • accepted_index (torch.BoolTensor формы (batch_size, block_length)) — Булева маска позиций, принятых (зафиксированных) на этом шаге.
  • sampled_tokens (torch.LongTensor формы (batch_size, block_length)) — Идентификаторы токенов, выбранные из логитов модели.
  • sampled_probs (torch.Tensor формы (batch_size, block_length)) — Вероятности сэмплированных токенов.
  • pred_logits (torch.Tensor формы (batch_size, block_length, vocab_size)) — Логиты, масштабированные по температуре, из которых были выбраны кандидаты, для самоусловливания следующего шага.

Класс вывода для планировщика с ограничением энтропии.

Update on GitHub