Buckets:

hf-doc-build/doc / diffusers /main /fr /api /schedulers /entropy_bound.md
mishig's picture
|
download
raw
5.4 kB

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 que le reste est rebruité. Il annule sa température d'échantillonnage de t_max à la première étape jusqu'à t_min à la dernière, en accord avec 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[[diffusers.EntropyBoundScheduler]]

diffusers.EntropyBoundScheduler[[diffusers.EntropyBoundScheduler]]

diffusers.EntropyBoundScheduler(entropy_bound: float = 0.1, t_max: float = 0.8, t_min: float = 0.4, num_inference_steps: int = 32)

Source

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[[diffusers.EntropyBoundScheduler.step]]

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)

Source

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)) : ID 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 de nombres aléatoires 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[[diffusers.EntropyBoundSchedulerOutput]]

diffusers.EntropyBoundSchedulerOutput[[diffusers.EntropyBoundSchedulerOutput]]

diffusers.EntropyBoundSchedulerOutput(prev_sample: torch.LongTensor, accepted_index: torch.BoolTensor, sampled_tokens: torch.LongTensor, sampled_probs: torch.Tensor, pred_logits: torch.Tensor)

Source

Paramètres :

prev_sample (torch.LongTensor de forme (batch_size, block_length)) : Jetons de 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 de 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.

Xet Storage Details

Size:
5.4 kB
·
Xet hash:
80435afdf3e9ff36d79323e92a6fed4c305ccffa5aced2871cd19833990ccdaf

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.