# EntropyBoundScheduler

El `EntropyBoundScheduler` confirma las posiciones de menor entropía cuya entropía conjunta se mantiene por debajo de `entropy_bound`, de modo que los tokens aproximadamente independientes se aceptan juntos y el resto se ruidifican de nuevo. Anela su temperatura de muestreo desde `t_max` en el primer paso hasta `t_min` en el último, coincidiendo con el muestreador del punto de control publicado. Propuesto en [Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking](https://huggingface.co/papers/2505.24857).

Este programador es utilizado por [DiffusionGemmaPipeline](/docs/diffusers/main/es/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)
```

[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_entropy_bound.py#L51)

**Parámetros:**

entropy_bound (`float`, por defecto 0.1) : La entropía conjunta máxima tolerada de los tokens aceptados. Valores más altos aceptan más tokens por paso.

t_max (`float`, por defecto 0.8) : Temperatura de muestreo en el primer paso de desruido.

t_min (`float`, por defecto 0.4) : Temperatura de muestreo en el último paso de desruido.

num_inference_steps (`int`, por defecto 32) : El número máximo de pasos de desruido.

Planificador de límite de entropía para el proceso de corrupción uniforme.

En cada paso, el programador muestrea un token candidato por posición y acepta las `k` posiciones de menor entropía de modo que `sum_i^k entropy_i - max(entropy_1, ..., entropy_k) <= entropy_bound`. El lado izquierdo acota superiormente la información mutua conjunta entre los tokens aceptados, por lo que son aproximadamente independientes. Las posiciones aceptadas conservan su token muestreado; el resto se ruidifican con tokens aleatorios uniformes (no hay un token de máscara).

Propuesto en "Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking" (https://huggingface.co/papers/2505.24857).

La temperatura de muestreo se recocida desde `t_max` en el primer paso hasta `t_min` en el último, coincidiendo con el muestreador del punto de control publicado (muestreo más agudo a medida que avanza el desruido). Se aplica a los logits antes tanto del muestreo de candidatos como de la entropía que impulsa la aceptación.

#### paso[[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)
```

[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_entropy_bound.py#L118)

**Parámetros:**

model_output (`torch.Tensor` de forma `(batch_size, block_length, vocab_size)`) : Logits crudos del modelo para el bloque actual.

timestep (`int` o `torch.Tensor`) : Índice del paso actual dentro del programa de desruido; establece la temperatura de muestreo recocida.

sample (`torch.LongTensor` de forma `(batch_size, block_length)`) : IDs de tokens del bloque actual.

entropy_bound (`float`, *opcional*) : Anula el límite de entropía configurado para este paso.

generator (`torch.Generator`, *opcional*) : Generador de números aleatorios para el muestreo.

return_dict (`bool`) : Si se debe devolver un [EntropyBoundSchedulerOutput](/docs/diffusers/main/es/api/schedulers/entropy_bound#diffusers.EntropyBoundSchedulerOutput) o una tupla simple.

Acepta las posiciones de menor entropía bajo el límite de entropía y re-ruidéa el resto.

## 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)
```

[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_entropy_bound.py#L27)

**Parámetros:**

prev_sample (`torch.LongTensor` de forma `(batch_size, block_length)`) : Tokens de bloque actualizados tras el paso de desruido actual.

accepted_index (`torch.BoolTensor` de forma `(batch_size, block_length)`) : Máscara booleana de las posiciones aceptadas (confirmadas) en este paso.

sampled_tokens (`torch.LongTensor` de forma `(batch_size, block_length)`) : IDs de tokens muestreados de los logits del modelo.

sampled_probs (`torch.Tensor` de forma `(batch_size, block_length)`) : Probabilidades de los tokens muestreados.

pred_logits (`torch.Tensor` de forma `(batch_size, block_length, vocab_size)`) : Los logits escalados por temperatura de los que se extrajeron los candidatos, para la autocondición del siguiente paso.

Clase de salida para el programador de límite de entropía.

