Diffusers documentation
EntropyBoundScheduler
EntropyBoundScheduler
يقوم EntropyBoundScheduler بتثبيت المواضع ذات الإنتروبيا الأدنى التي تبقى إنتروبياها المشتركة دون entropy_bound، بحيث تُقبل الرموز شبه المستقلة معًا ويُعاد تشويش الباقي. وهو يُبرّد درجة حرارة العينة من t_max في الخطوة الأولى إلى t_min في الخطوة الأخيرة، بما يتوافق مع مُعيّن نقاط التفتيش المُصدر. وقد قُدم في Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking.
يُستخدم هذا المجدول بواسطة DiffusionGemmaPipeline.
EntropyBoundScheduler
فئة diffusers.EntropyBoundScheduler
< source >( entropy_bound: float = 0.1t_max: float = 0.8t_min: float = 0.4num_inference_steps: int = 32 )
المعاملات
- entropy_bound (
float، القيمة الافتراضية 0.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. يحدد الطرف الأيسر حدًا علويًا للمعلومات المتبادلة المشتركة بين الرموز المقبولة، وبالتالي فهي مستقلة تقريبًا. تحتفظ المواضع المقبولة بالرمز المعين لها؛ بينما تُعاد إضافة الضوضاء للمواضع المتبقية باستخدام رموز عشوائية موحدة (لا يوجد رمز قناع).
قُدم في “https://huggingface.co/papers/2505.24857”
يتم تبريد درجة الحرارة الخاصة بالتعيّن من t_max في الخطوة الأولى إلى t_min في الخطوة الأخيرة، بما يتوافق مع مُعيّن نقطة التفتيش المُصدَرة (تعيّن أكثر حدة مع تقدم إزالة الضوضاء). وتُطبَّق على القيم اللوجستية قبل كلٍّ من تعيّن المرشحين والإنتروبيا التي تُشغّل القبول.
خطوة
< source >( model_output: torch.Tensortimestep: int | torch.Tensorsample: torch.LongTensorentropy_bound: float | None = Nonegenerator: torch.Generator | None = Nonereturn_dict: bool = True )
المعاملات
- model_output (
torch.Tensorمن الشكل(batch_size, block_length, vocab_size)) — قيم اللوجيت الخام من النموذج للكتلة الحالية. - timestep (
intأوtorch.Tensor) — مؤشر الخطوة الحالية ضمن جدول إزالة الضوضاء؛ يحدد درجة حرارة العينة المُبرَّدة. - sample (
torch.LongTensorمن الشكل(batch_size, block_length)) — معرّفات الرموز الحالية للكتلة. - entropy_bound (
float، اختياري) — يتجاوز حد الإنتروبيا المُهيأ لهذه الخطوة. - generator (
torch.Generator، اختياري) — مولّد الأرقام العشوائية (RNG) للعينات. - return_dict (
bool) — ما إذا كان يجب إرجاع EntropyBoundSchedulerOutput أو مجرد tuple.
اقبل المواضع ذات الإنتروبيا الأدنى ضمن حد الإنتروبيا وأعدّ الضجيج للباقي.
EntropyBoundSchedulerOutput
فئة diffusers.EntropyBoundSchedulerOutput
< source >( prev_sample: torch.LongTensoraccepted_index: torch.BoolTensorsampled_tokens: torch.LongTensorsampled_probs: torch.Tensorpred_logits: torch.Tensor )
المعاملات
- prev_sample (
torch.LongTensorمن الشكل(batch_size, block_length)) — رموز الكتلة المحدّثة بعد خطوة إزالة الضوضاء الحالية. - accepted_index (
torch.BoolTensorمن الشكل(batch_size, block_length)) — قناع منطقي للمواقع المقبولة (المُثبَّتة) في هذه الخطوة. - sampled_tokens (
torch.LongTensorمن الشكل(batch_size, block_length)) — معرّفات الرموز المُستخرجة من قيم النموذج الاحتمالية (logits). - sampled_probs (
torch.Tensorمن الشكل(batch_size, block_length)) — احتمالات الرموز المُستخرجة. - pred_logits (
torch.Tensorمن الشكل(batch_size, block_length, vocab_size)) — القيم اللوجستية المُقيَّسة بدرجة الحرارة التي سُميت منها المرشحات، لغرض التكييف الذاتي للخطوة التالية.
فئة الإخراج لمجدول حد الإنتروبيا.