Diffusers documentation
EntropyBoundScheduler
EntropyBoundScheduler
Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking mengusulkan EntropyBoundScheduler, yang mengunci posisi dengan entropi terendah yang entropi gabungannya tetap di bawah entropy_bound, sehingga token yang kira-kira independen diterima bersama dan sisanya di-renoising. Scheduler ini menurunkan suhu samplingnya dari t_max pada langkah pertama hingga t_min pada langkah terakhir, sesuai dengan sampler dari checkpoint yang dirilis.
Scheduler ini digunakan oleh DiffusionGemmaPipeline.
EntropyBoundScheduler
kelas diffusers.EntropyBoundScheduler
< source >( entropy_bound: float = 0.1t_max: float = 0.8t_min: float = 0.4num_inference_steps: int = 32 )
Parameter
- entropy_bound (
float, defaultnya 0.1) — Entropi gabungan maksimum yang ditoleransi untuk token yang diterima. Nilai yang lebih besar menerima lebih banyak token per langkah. - t_max (
float, default 0.8) — Suhu sampling pada langkah denoising pertama. - t_min (
float, defaultnya 0.4) — Suhu sampling pada langkah denoising terakhir. - num_inference_steps (
int, defaultnya 32) — Jumlah maksimum langkah denoising.
Penjadwal batas entropi untuk proses korupsi seragam.
Pada setiap langkah, penjadwal mengambil sampel satu kandidat token per posisi dan menerima k posisi dengan entropi terendah sedemikian rupa sehingga sum_i^k entropy_i - max(entropy_1, ..., entropy_k) <= entropy_bound. Sisi kiri memberikan batas atas bagi informasi bersama (joint mutual information) antara token yang diterima, sehingga token-token tersebut bersifat independen secara aproksimasi. Posisi yang diterima mempertahankan token yang diambil sampelnya; sisanya di-renoising dengan token acak seragam (tidak ada token mask).
Diusulkan dalam “Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking” (https://huggingface.co/papers/2505.24857).
Suhu sampling dianil dari t_max pada langkah pertama hingga t_min pada langkah terakhir, sesuai dengan sampler dari checkpoint yang dirilis (sampling lebih tajam seiring kemajuan denoising). Suhu ini diterapkan ke logits sebelum sampling kandidat dan entropi yang mendorong penerimaan.
langkah
< source >( model_output: torch.Tensortimestep: int | torch.Tensorsample: torch.LongTensorentropy_bound: float | None = Nonegenerator: torch.Generator | None = Nonereturn_dict: bool = True )
Parameter
- model_output (
torch.Tensordengan bentuk(batch_size, block_length, vocab_size)) — Logit mentah dari model untuk blok saat ini. - timestep (
intatautorch.Tensor) — Indeks langkah saat ini dalam jadwal denoising; mengatur suhu sampling yang dianil. - sample (
torch.LongTensordengan bentuk(batch_size, block_length)) — ID token blok saat ini. - entropy_bound (
float, opsional) — Menggantikan batas entropi yang dikonfigurasi untuk langkah ini. - generator (
torch.Generator, opsional) — RNG untuk sampling. - return_dict (
bool) — Apakah akan mengembalikan EntropyBoundSchedulerOutput atau tuple biasa.
Terima posisi dengan entropi terendah di bawah batas entropi dan lakukan renoise pada sisanya.
EntropyBoundSchedulerOutput
kelas diffusers.EntropyBoundSchedulerOutput
< source >( prev_sample: torch.LongTensoraccepted_index: torch.BoolTensorsampled_tokens: torch.LongTensorsampled_probs: torch.Tensorpred_logits: torch.Tensor )
Parameter
- prev_sample (
torch.LongTensordengan bentuk(batch_size, block_length)) — Token blok yang diperbarui setelah langkah denoising saat ini. - accepted_index (
torch.BoolTensordengan bentuk(batch_size, block_length)) — Mask boolean untuk posisi yang diterima (dikonfirmasi) pada langkah ini. - sampled_tokens (
torch.LongTensordengan bentuk(batch_size, block_length)) — ID token yang disampelkan dari logits model. - sampled_probs (
torch.Tensordengan bentuk(batch_size, block_length)) — Probabilitas dari token yang disampelkan. - pred_logits (
torch.Tensordengan bentuk(batch_size, block_length, vocab_size)) — Logit yang telah diskalakan suhu tempat kandidat diambil, untuk self-conditioning langkah berikutnya.
Kelas output untuk penjadwal batas entropi.