Diffusers documentation

EntropyBoundScheduler

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.43.0).
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