Diffusers documentation
EntropyBoundScheduler
EntropyBoundScheduler
EntropyBoundScheduler cam kết các vị trí có entropy thấp nhất mà entropy liên hợp của chúng vẫn nằm dưới entropy_bound, do đó các token gần như độc lập sẽ được chấp nhận cùng nhau và phần còn lại sẽ được renoised. Nó làm nguội nhiệt độ lấy mẫu từ t_max ở bước đầu tiên xuống t_min ở bước cuối, khớp với trình lấy mẫu của checkpoint đã phát hành. Được đề xuất trong Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking.
Trình lập lịch này được sử dụng bởi DiffusionGemmaPipeline.
EntropyBoundScheduler
lớp diffusers.EntropyBoundScheduler
< source >( entropy_bound: float = 0.1t_max: float = 0.8t_min: float = 0.4num_inference_steps: int = 32 )
Tham số
- entropy_bound (
float, mặc định là 0.1) — Entropy hỗn hợp tối đa được chấp nhận cho các token đã nhận. Giá trị lớn hơn sẽ chấp nhận nhiều token hơn mỗi bước. - t_max (
float, mặc định là 0.8) — Nhiệt độ lấy mẫu ở bước khử nhiễu đầu tiên. - t_min (
float, mặc định là 0.4) — Nhiệt độ lấy mẫu ở bước khử nhiễu cuối cùng. - num_inference_steps (
int, mặc định là 32) — Số bước khử nhiễu tối đa.
Trình lập lịch giới hạn entropy cho quá trình phá hủy đồng đều.
Tại mỗi bước, trình lập lịch lấy mẫu một token ứng viên cho mỗi vị trí và chấp nhận k vị trí có entropy thấp nhất sao cho sum_i^k entropy_i - max(entropy_1, ..., entropy_k) <= entropy_bound. Vế trái đặt ra cận trên cho thông tin tương hỗ liên hợp giữa các token được chấp nhận, do đó chúng gần như độc lập. Các vị trí được chấp nhận giữ nguyên token đã lấy mẫu; các vị trí còn lại được thêm nhiễu lại bằng các token ngẫu nhiên đều (không có token mask).
Được đề xuất trong “Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking” (https://huggingface.co/papers/2505.24857).
Nhiệt độ lấy mẫu được ủ từ t_max ở bước đầu tiên xuống t_min ở bước cuối, khớp với trình lấy mẫu của checkpoint đã phát hành (lấy mẫu sắc nét hơn khi quá trình khử nhiễu tiến triển). Nó được áp dụng lên logits trước cả việc lấy mẫu ứng viên lẫn entropy điều khiển việc chấp nhận.
bước
< source >( model_output: torch.Tensortimestep: int | torch.Tensorsample: torch.LongTensorentropy_bound: float | None = Nonegenerator: torch.Generator | None = Nonereturn_dict: bool = True )
Tham số
- model_output (
torch.Tensorcó hình dạng(batch_size, block_length, vocab_size)) — Logits thô từ mô hình cho khối hiện tại. - timestep (
inthoặctorch.Tensor) — Chỉ số bước hiện tại trong lịch trình khử nhiễu; thiết lập nhiệt độ lấy mẫu đã ủ. - sample (
torch.LongTensorcó hình dạng(batch_size, block_length)) — Các ID token của khối hiện tại. - entropy_bound (
float, tùy chọn) — Ghi đè giới hạn entropy đã cấu hình cho bước này. - generator (
torch.Generator, tùy chọn) — RNG để lấy mẫu. - return_dict (
bool) — Có nên trả về một EntropyBoundSchedulerOutput hay một tuple thông thường.
Chấp nhận các vị trí có entropy thấp nhất dưới ngưỡng entropy và tạo nhiễu lại phần còn lại.
EntropyBoundSchedulerOutput
lớp diffusers.EntropyBoundSchedulerOutput
< source >( prev_sample: torch.LongTensoraccepted_index: torch.BoolTensorsampled_tokens: torch.LongTensorsampled_probs: torch.Tensorpred_logits: torch.Tensor )
Tham số
- prev_sample (
torch.LongTensorcó hình dạng(batch_size, block_length)) — Các token khối đã cập nhật sau bước khử nhiễu hiện tại. - accepted_index (
torch.BoolTensorcó hình dạng(batch_size, block_length)) — Mặt nạ boolean của các vị trí được chấp nhận (cam kết) trong bước này. - sampled_tokens (
torch.LongTensorcó hình dạng(batch_size, block_length)) — Các ID token được lấy mẫu từ logits của mô hình. - sampled_probs (
torch.Tensorcó hình dạng(batch_size, block_length)) — Xác suất của các token được lấy mẫu. - pred_logits (
torch.Tensorcó hình dạng(batch_size, block_length, vocab_size)) — Các logits đã được điều chỉnh theo nhiệt độ mà các ứng viên được lấy ra từ đó, dùng để tự điều kiện cho bước tiếp theo.
Lớp đầu ra cho trình lập lịch giới hạn entropy.