Diffusers documentation

EntropyBoundScheduler

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

EntropyBoundScheduler

Le EntropyBoundScheduler valide les positions à plus faible entropie dont l’entropie conjointe reste sous entropy_bound, de sorte que les jetons approximativement indépendants sont acceptés ensemble et le reste est rebruité. Il annule sa température d’échantillonnage de t_max à la première étape jusqu’à t_min à la dernière, conformément à l’échantillonneur du point de contrôle publié. Proposé dans Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking.

Ce planificateur est utilisé par DiffusionGemmaPipeline.

EntropyBoundScheduler

classe diffusers.EntropyBoundScheduler

< >

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

Paramètres

  • entropy_bound (float, par défaut 0.1) — L'entropie conjointe maximale tolérée pour les jetons acceptés. Des valeurs plus élevées acceptent plus de jetons par étape.
  • t_max (float, par défaut 0.8) — Température d'échantillonnage lors de la première étape de débruitage.
  • t_min (float, par défaut 0.4) — Température d'échantillonnage à la dernière étape de débruitage.
  • num_inference_steps (int, par défaut 32) — Le nombre maximal d'étapes de débruitage.

Planificateur de limite d'entropie pour le processus de corruption uniforme.

À chaque étape, le planificateur échantillonne un jeton candidat par position et accepte les k positions à plus faible entropie telles que sum_i^k entropy_i - max(entropy_1, ..., entropy_k) <= entropy_bound. Le membre de gauche borne supérieurement l'information mutuelle conjointe entre les jetons acceptés, ce qui les rend approximativement indépendants. Les positions acceptées conservent leur jeton échantillonné ; les autres sont rebruitées avec des jetons aléatoires uniformes (il n'y a pas de jeton de masque).

Proposé dans « Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking » (https://huggingface.co/papers/2505.24857).

La température d’échantillonnage est recuite depuis t_max à la première étape jusqu’à t_min à la dernière, conformément à l’échantillonneur du point de contrôle publié (échantillonnage plus net à mesure que le débruitage progresse). Elle est appliquée aux logits avant à la fois l’échantillonnage des candidats et l’entropie qui pilote l’acceptation.

étape

< >

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

Paramètres

  • model_output (torch.Tensor de forme (batch_size, block_length, vocab_size)) — Logits bruts du modèle pour le bloc actuel.
  • timestep (int ou torch.Tensor) — Index de l'étape actuelle dans le calendrier de débruitage ; définit la température d'échantillonnage recuite.
  • sample (torch.LongTensor de forme (batch_size, block_length)) — Identifiants des jetons du bloc actuel.
  • entropy_bound (float, facultatif) — Remplace la borne d'entropie configurée pour cette étape.
  • generator (torch.Generator, facultatif) — Générateur aléatoire pour l'échantillonnage.
  • return_dict (bool) — Indique s'il faut retourner un EntropyBoundSchedulerOutput ou un simple tuple.

Accepter les positions à plus faible entropie sous la limite d'entropie et rebruitiser le reste.

EntropyBoundSchedulerOutput

classe diffusers.EntropyBoundSchedulerOutput

< >

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

Paramètres

  • prev_sample (torch.LongTensor de forme (batch_size, block_length)) — Tokens du bloc mis à jour après l'étape de débruitage actuelle.
  • accepted_index (torch.BoolTensor de forme (batch_size, block_length)) — Masque booléen des positions acceptées (validées) à cette étape.
  • sampled_tokens (torch.LongTensor de forme (batch_size, block_length)) — Identifiants des jetons échantillonnés à partir des logits du modèle.
  • sampled_probs (torch.Tensor de forme (batch_size, block_length)) — Probabilités des jetons échantillonnés.
  • pred_logits (torch.Tensor de forme (batch_size, block_length, vocab_size)) — Les logits mis à l'échelle par la température à partir desquels les candidats ont été tirés, pour l'auto-conditionnement de l'étape suivante.

Classe de sortie pour le planificateur de borne d'entropie.

Update on GitHub