Buckets:
EntropyBoundScheduler
EntropyBoundScheduler は、結合エントロピーが entropy_bound 以下に収まる最低エントロピーの位置をコミットします。これにより、おおよそ独立したトークンがまとめて受け入れられ、残りは再ノイズ化されます。サンプリング温度は、最初のステップで t_max から始まり、最後のステップで t_min までアニーリングされ、リリースされたチェックポイントのサンプラーと一致します。Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking で提案されました。
このスケジューラは、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)
パラメータ:
entropy_bound (float、デフォルトは 0.1) : 受け入れられたトークンの許容される最大結合エントロピーです。値を大きくすると、1 ステップあたりに受け入れられるトークン数が増えます。
t_max (float、デフォルトは 0.8) : 最初のデノイジングステップにおけるサンプリング温度。
t_min (float、デフォルト値は 0.4) : 最後のデノイジングステップにおけるサンプリング温度。
num_inference_steps (int、デフォルトは 32) : デノイジングステップの最大数。
一様破損プロセス用のエントロピー境界スケジューラ。
各ステップで、スケジューラーは各ポジションに対して候補トークンをサンプリングし、k個の最もエントロピーが低いポジションを受け入れます。このとき、sum_i^k entropy_i - max(entropy_1, ..., entropy_k) <= entropy_boundが満たされるようにします。左辺は、受け入れられたトークン間の結合相互情報量の上限を与えるため、それらは近似的に独立しています。受け入れられたポジションはサンプリングされたトークンを保持し、それ以外のポジションは、一様ランダムなトークンで再ノイズ化されます(マスクトークンは存在しません)。
「Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking」(https://huggingface.co/papers/2505.24857) で提案されました。
サンプリング温度は、最初のステップでt_maxから始まり、最後のステップでt_minまでアニーリングされます。これにより、公開されているチェックポイントのサンプラー(デノイジングが進むにつれてサンプリングがシャープになる)と一致します。この温度は、候補のサンプリングと、受け入れを決定するエントロピーの両方において、logits に適用されます。
ステップ[[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)
パラメータ:
model_output (torch.Tensor、shape (batch_size, block_length, vocab_size)) : 現在のブロックに対するモデルからの生の logits。
timestep (int または torch.Tensor) : 減噪スケジュール内の現在のステップインデックス。アニーリングされたサンプリング温度を設定します。
sample (torch.LongTensor、shape (batch_size, block_length)) : 現在のブロックのトークンIDです。
entropy_bound (float, 任意) : このステップで設定されたエントロピーの境界値を上書きします。
generator (torch.Generator, 任意) : サンプリング用の乱数生成器。
return_dict (bool) : EntropyBoundSchedulerOutput を返すか、通常のタプルを返すかを指定します。
エントロピーの上限以下にある最低エントロピーの位置を受け入れ、残りの位置には再ノイズを適用します。
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)
パラメータ:
prev_sample (torch.LongTensor、shape (batch_size, block_length)) : 現在のデノイジングステップ後の更新されたブロックトークン。
accepted_index (torch.BoolTensor、shape (batch_size, block_length)) : このステップで受け入れ(コミット)された位置のブールマスク。
sampled_tokens (torch.LongTensor、shape (batch_size, block_length)) : モデルの logits からサンプリングされたトークン ID。
sampled_probs (torch.Tensor、shape (batch_size, block_length)) : サンプルされたトークンの確率。
pred_logits (torch.Tensor、shape (batch_size, block_length, vocab_size)) : 次のステップの自己条件付けのために、候補がサンプリングされた温度スケーリング済み logits。
エントロピー境界スケジューラー用の出力クラス。
Xet Storage Details
- Size:
- 6.16 kB
- Xet hash:
- eb7f413f2fd20cb46a6097bab7f3c68a80b8e909b80ca516e2883d865b713989
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.