Diffusers documentation
EntropyBoundScheduler
EntropyBoundScheduler
EntropyBoundScheduler фиксирует позиции с наименьшей энтропией, для которых совместная энтропия не превышает entropy_bound, поэтому приблизительно независимые токены принимаются вместе, а остальные подвергаются повторному шумлению. Температура выборки аннелируется от t_max на первом шаге до t_min на последнем, что соответствует сэмплеру опубликованной контрольной точки. Предложено в Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking.
Этот планировщик используется в DiffusionGemmaPipeline.
EntropyBoundScheduler
класс diffusers.EntropyBoundScheduler
< source >( 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 на последнем, что соответствует сэмплеру выпущенного чекпоинта (более острый выбор по мере продвижения процесса денойзинга). Она применяется к логитам как перед выборкой кандидатов, так и перед энтропией, определяющей принятие.
шаг
< source >( 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
< source >( 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)) — Логиты, масштабированные по температуре, из которых были выбраны кандидаты, для самоусловливания следующего шага.
Класс вывода для планировщика с ограничением энтропии.