Buckets:
EntropyBoundScheduler
EntropyBoundScheduler фиксирует позиции с наименьшей энтропией, для которых совместная энтропия не превышает entropy_bound, благодаря чему приблизительно независимые токены принимаются совместно, а остальные подвергаются повторному шумлению. Температура выборки аннелируется от t_max на первом шаге до t_min на последнем, что соответствует сэмплеру опубликованной контрольной точки. Предложено в Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking.
Этот планировщик используется в DiffusionGemmaPipeline.
EntropyBoundScheduler[[diffusers.EntropyBoundScheduler]]
diffusers.EntropyBoundScheduler[[diffusers.EntropyBoundScheduler]]
diffusers.EntropyBoundScheduler(entropy_bound: float = 0.1, t_max: float = 0.8, t_min: float = 0.4, num_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 на последнем, что соответствует сэмплеру выпущенной контрольной точки (более острый выбор по мере продвижения процесса денойзинга). Она применяется к логитам как перед выборкой кандидатов, так и перед энтропией, определяющей принятие.
шаг[[diffusers.EntropyBoundScheduler.step]]
step(model_output: torch.Tensor, timestep: int | torch.Tensor, sample: torch.LongTensor, entropy_bound: float | None = None, generator: torch.Generator | None = None, return_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]]
diffusers.EntropyBoundSchedulerOutput[[diffusers.EntropyBoundSchedulerOutput]]
diffusers.EntropyBoundSchedulerOutput(prev_sample: torch.LongTensor, accepted_index: torch.BoolTensor, sampled_tokens: torch.LongTensor, sampled_probs: torch.Tensor, pred_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)) : логиты, масштабированные по температуре, из которых были выбраны кандидаты, для самоусловливания следующего шага.
Класс вывода для планировщика с ограничением энтропии.
Xet Storage Details
- Size:
- 7.26 kB
- Xet hash:
- e9e2a587dbabc97991cbd5b524559db72113bbf5382cad0dfe0b79023ecdd911
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.