Buckets:

hf-doc-build/doc / diffusers /main /ru /api /schedulers /entropy_bound.md
mishig's picture
|
download
raw
7.26 kB
# EntropyBoundScheduler
`EntropyBoundScheduler` фиксирует позиции с наименьшей энтропией, для которых совместная энтропия не превышает `entropy_bound`, благодаря чему приблизительно независимые токены принимаются совместно, а остальные подвергаются повторному шумлению. Температура выборки аннелируется от `t_max` на первом шаге до `t_min` на последнем, что соответствует сэмплеру опубликованной контрольной точки. Предложено в [Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking](https://huggingface.co/papers/2505.24857).
Этот планировщик используется в [DiffusionGemmaPipeline](/docs/diffusers/main/ru/api/pipelines/diffusion_gemma#diffusers.DiffusionGemmaPipeline).
## EntropyBoundScheduler[[diffusers.EntropyBoundScheduler]]
#### diffusers.EntropyBoundScheduler[[diffusers.EntropyBoundScheduler]]
```python
diffusers.EntropyBoundScheduler(entropy_bound: float = 0.1, t_max: float = 0.8, t_min: float = 0.4, num_inference_steps: int = 32)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_entropy_bound.py#L51)
**Параметры:**
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]]
```python
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)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_entropy_bound.py#L118)
**Параметры:**
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](/docs/diffusers/main/ru/api/schedulers/entropy_bound#diffusers.EntropyBoundSchedulerOutput) или обычный кортеж.
Принимайте позиции с наименьшей энтропией в пределах заданного порога энтропии и заново добавляйте шум к остальным.
## EntropyBoundSchedulerOutput[[diffusers.EntropyBoundSchedulerOutput]]
#### diffusers.EntropyBoundSchedulerOutput[[diffusers.EntropyBoundSchedulerOutput]]
```python
diffusers.EntropyBoundSchedulerOutput(prev_sample: torch.LongTensor, accepted_index: torch.BoolTensor, sampled_tokens: torch.LongTensor, sampled_probs: torch.Tensor, pred_logits: torch.Tensor)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_entropy_bound.py#L27)
**Параметры:**
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.