Diffusers documentation

EntropyBoundScheduler

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

EntropyBoundScheduler

O EntropyBoundScheduler confirma as posições de menor entropia cuja entropia conjunta permanece abaixo de entropy_bound, de modo que tokens aproximadamente independentes são aceitos juntos e os demais são re-ruídos. Ele anela sua temperatura de amostragem de t_max no primeiro passo até t_min no último, correspondendo ao amostrador do checkpoint liberado. Proposto em Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking.

Este scheduler é usado por DiffusionGemmaPipeline.

EntropyBoundScheduler

classe diffusers.EntropyBoundScheduler

< >

( entropy_bound: float = 0.1t_max: float = 0.8t_min: float = 0.4num_inference_steps: int = 32 )

Parâmetros

  • entropy_bound (float, padrão 0.1) — A entropia conjunta máxima tolerada dos tokens aceitos. Valores maiores aceitam mais tokens por etapa.
  • t_max (float, padrão 0.8) — Temperatura de amostragem na primeira etapa de desruido.
  • t_min (float, padrão 0.4) — Temperatura de amostragem na última etapa de desnívelamento.
  • num_inference_steps (int, padrão 32) — O número máximo de etapas de remoção de ruído.

Agendador de limite de entropia para o processo de corrupção uniforme.

A cada etapa, o agendador amostra um token candidato por posição e aceita as k posições de menor entropia, de modo que sum_i^k entropy_i - max(entropy_1, ..., entropy_k) <= entropy_bound. O lado esquerdo da equação estabelece um limite superior para a informação mútua conjunta entre os tokens aceitos, o que significa que eles são aproximadamente independentes. As posições aceitas mantêm seu token amostrado; as demais são renormalizadas com tokens aleatórios uniformes (não há um token de máscara).

Proposto em “Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking” (https://huggingface.co/papers/2505.24857).

A temperatura de amostragem é anelada de t_max no primeiro passo até t_min no último, correspondendo ao amostrador do checkpoint liberado (amostragem mais aguda à medida que o desruido avança). Ela é aplicada aos logits antes tanto da amostragem de candidatos quanto da entropia que dirige a aceitação.

etapa

< >

( model_output: torch.Tensortimestep: int | torch.Tensorsample: torch.LongTensorentropy_bound: float | None = Nonegenerator: torch.Generator | None = Nonereturn_dict: bool = True )

Parâmetros

  • model_output (torch.Tensor de forma (batch_size, block_length, vocab_size)) — Logits brutos do modelo para o bloco atual.
  • timestep (int ou torch.Tensor) — Índice atual da etapa dentro do agendamento de remoção de ruído; define a temperatura de amostragem anelada.
  • sample (torch.LongTensor de forma (batch_size, block_length)) — IDs dos tokens do bloco atual.
  • entropy_bound (float, opcional) — Substitui o limite de entropia configurado para esta etapa.
  • generator (torch.Generator, opcional) — Gera números aleatórios para amostragem.
  • return_dict (bool) — Se deve retornar um EntropyBoundSchedulerOutput ou uma tupla simples.

Aceite as posições de menor entropia dentro do limite de entropia e rebarulhe as demais.

EntropyBoundSchedulerOutput

classe diffusers.EntropyBoundSchedulerOutput

< >

( prev_sample: torch.LongTensoraccepted_index: torch.BoolTensorsampled_tokens: torch.LongTensorsampled_probs: torch.Tensorpred_logits: torch.Tensor )

Parâmetros

  • prev_sample (torch.LongTensor de forma (batch_size, block_length)) — Tokens do bloco atualizados após a etapa atual de desruidamento.
  • accepted_index (torch.BoolTensor de forma (batch_size, block_length)) — Máscara booleana das posições aceitas (comprometidas) nesta etapa.
  • sampled_tokens (torch.LongTensor de forma (batch_size, block_length)) — IDs de tokens amostrados dos logits do modelo.
  • sampled_probs (torch.Tensor de forma (batch_size, block_length)) — Probabilidades dos tokens amostrados.
  • pred_logits (torch.Tensor de forma (batch_size, block_length, vocab_size)) — Os logits escalados por temperatura dos quais os candidatos foram extraídos, para autocondicionar o próximo passo.

Classe de saída para o agendador de limite de entropia.

Update on GitHub