Diffusers documentation

EntropyBoundScheduler

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