Diffusers documentation

BlockRefinementScheduler

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

BlockRefinementScheduler

يدير BlockRefinementScheduler التحسين التكراري على مستوى الكتل لتوزيع الرموز المنفصلة. في كل خطوة، يُثبّت الرموز الأكثر ثقة، ويحرّر اختيارياً الرموز المثبتة مسبقاً عندما يتنبأ النموذج برمز مختلف بثقة عالية.

يُستخدم هذا المجدول بواسطة LLaDA2Pipeline.

BlockRefinementScheduler

فئة diffusers.BlockRefinementScheduler

< >

( block_length: int = 32num_inference_steps: int = 32threshold: float = 0.95editing_threshold: float | None = Noneminimal_topk: int = 1 )

مجدول لتحسين تكراري على مستوى الكتل (التزام حسب الثقة).

في كل خطوة، يقوم المجدول بسحب رموز مرشحة من قيم النموذج (logits) ويثبّت تلك التي تتمتع بأعلى درجة ثقة. يُحدَّد عدد الرموز التي يجب تثبيتها في كل خطوة من خلال توزيع طول الكتلة بالتساوي على عدد خطوات التحسين.

يدعم التحرير بشكل اختياري: بعد حل جميع رموز الأقنعة، يمكن استبدال الرموز إذا توقع النموذج رمزًا مختلفًا بثقة تتجاوز editing_threshold الإيجابي (None أو 0.0 أو قيمة سالبة تعطّل التحرير).

add_noise

< >

( original_samples: torch.LongTensorattention_mask: torch.LongTensorprompt_length: intblock_length: intmask_token_id: intgenerator: torch.Generator | None = None ) → tuple[torch.LongTensor, torch.LongTensor, torch.BoolTensor, torch.BoolTensor]

المعاملات

  • original_samples (torch.LongTensor من الشكل (batch_size, seq_len)) — معرّفات الرموز النظيفة.
  • attention_mask (torch.LongTensor من الشكل (batch_size, seq_len)) — قناع الحشو (1 للقيم الصالحة، 0 للحشو).
  • prompt_length (int) — عدد رموز الموجّه الأولية التي يجب إبقاؤها دون إخفاء.
  • block_length (int) — حجم الكتلة للإخفاء.
  • mask_token_id (int) — معرّف الرمز (Token ID) المستخدم للمواقع المقنّعة.
  • generator (torch.Generator، اختياري) — مولّد الأرقام العشوائية (RNG) لضمان قابلية التكرار.

يعيد

tuple[torch.LongTensor, torch.LongTensor, torch.BoolTensor, torch.BoolTensor]

(noisy, noisy_rev, masked, masked_rev) — التسلسلان الضاجّان المتكاملان وقناعاهما المنطقيان المقابلة لهما.

طبّق العملية الأمامية (إضافة الضوضاء) لتقنية إخفاء الكتل شبه التلقائية.

لكل كتلة بعد الاستعلام، يتم استبدال نسبة عشوائية من الرموز الصالحة (غير الحشو) بـ mask_token_id. تُعاد وجهتان متكاملتان: noisy وnoisy_rev، حيث تكون المواضع المقنّعة في إحداهما هي المواضع غير المقنّعة في الأخرى.

check_block_should_continue

< >

( step_idx: intmasks_remaining: boolediting_enabled: boolediting_transfer_index: torch.BoolTensorpost_steps: intmax_post_steps: intfinished: torch.BoolTensor ) → bool

المعاملات

  • step_idx (int) — مؤشر خطوة التحسين الحالية ضمن هذا الكتلة.
  • masks_remaining (bool) — ما إذا كانت هناك رموز أقنعة متبقية في الكتلة.
  • editing_enabled (bool) — ما إذا كان وضع التحرير نشطًا.
  • editing_transfer_index (torch.BoolTensor) — أي الرموز التي تم تعديلها في هذه الخطوة.
  • post_steps (int) — عدد خطوات تحرير ما بعد القناع التي تم اتخاذها حتى الآن.
  • max_post_steps (int) — الحد الأقصى لخطوات تحرير ما بعد القناع المسموح بها.
  • finished (torch.BoolTensor) — أعلام الانتهاء لكل دفعة (من اكتشاف EOS).

يعيد

bool

True إذا كان يجب مواصلة التحسين، False للإيقاف.

حدد ما إذا كان يجب استمرار حلقة التكرار الداخلية للتحسين للكتلة الحالية.

check_eos_finished

< >

( cur_x: torch.LongTensorsampled_tokens: torch.LongTensorfinal_transfer: torch.BoolTensorfinished: torch.BoolTensoreos_token_id: intmask_token_id: intprompt_length: int ) → torch.BoolTensor

المعاملات

  • cur_x (torch.LongTensor من الشكل (batch_size, seq_len)) — التسلسل الكامل الحالي بما في ذلك جميع الكتل حتى النافذة الحالية.
  • sampled_tokens (torch.LongTensor من الشكل (batch_size, block_length)) — الرموز التي قام مُجدول المهام بعينتها في هذه الخطوة.
  • final_transfer (torch.BoolTensor من الشكل (batch_size, block_length)) — قناع مجمّع للمواقع الملتزم بها والمعدّلة.
  • finished (torch.BoolTensor من الشكل (batch_size,)) — أعلام الانتهاء الحالية لكل دفعة.
  • eos_token_id (int) — معرّف رمز نهاية الجملة (EOS).
  • mask_token_id (int) — معرّف رمز الإخفاء.
  • prompt_length (int) — عدد رموز الاستدعاء (prompt) في بداية التسلسل.

يعيد

torch.BoolTensor

تم تحديث أعلام الانتهاء.

حدّث أعلام الانتهاء لكل دفعة عند تثبيت رموز EOS.

get_num_transfer_tokens

< >

( block_length: intnum_inference_steps: int )

وزّع التزامات الرموز block_length بالتساوي على num_inference_steps خطوة.

خطوة

< >

( model_output: torch.Tensortimestep: int | torch.Tensorsample: torch.LongTensormask_token_id: int | None = Nonetemperature: float = 0.0top_p: float | None = Nonetop_k: int | None = Nonesampling_method: str = 'auto'threshold: float | None = Noneediting_threshold: float | None = Noneminimal_topk: int | None = Noneprompt_mask: torch.BoolTensor | 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)) — معرّفات الرموز الحالية للكتلة (تحتوي على رموز القناع للمواقع غير المؤكدة في الوضع القائم على القناع).
  • mask_token_id (int, اختياري) — معرّف الرمز المستخدم للمواقع المقنّعة. عند تعيين None، يعمل المجدول في وضع التآكل المنتظم: فهو يتتبع المواقع المُثبَّتة داخليًا (مع إعادة تعيينها عند timestep == 0) ويعيد إضافة الضوضاء إلى المواقع غير المُثبَّتة باستخدام رموز عشوائية منتظمة، بما يتوافق مع عيّنة تحسين الكتل في DiffusionGemma.
  • temperature (float) — درجة حرارة العينة.
  • top_p (float, اختياري) — حدّ عيّنة النواة.
  • top_k (int، اختياري) — حدّ قطع أخذ العينة Top-k.
  • sampling_method (str) — طريقة العينة (auto، greedy، multinomial).
  • threshold (float، اختياري) — حد الثقة لالتزام الرموز. القيمة الافتراضية هي قيمة الإعداد.
  • editing_threshold (float، اختياري) — حد الثقة لتحرير الرموز غير المقنّعة؛ يجب أن يكون موجبًا لتفعيل التحرير. القيمة الافتراضية هي قيمة الإعداد.
  • minimal_topk (int، اختياري) — الحد الأدنى لعدد الرموز التي يجب الالتزام بها في كل خطوة. القيمة الافتراضية هي قيمة الإعداد.
  • prompt_mask (torch.BoolTensor، اختياري) — قناع منطقي (Boolean mask) بأبعاد (block_length,) حيث يشير True إلى مواضع المحفّز (غير القابلة للتحرير).
  • generator (torch.Generator، اختياري) — مولّد الأرقام العشوائية (RNG) للعينات.
  • return_dict (bool) — ما إذا كان يجب إرجاع BlockRefinementSchedulerOutput أو tuple.

أداء خطوة تحسين واحدة: أخذ عينة من القيم اللوجستية، تثبيت الرموز ذات الثقة العالية، وتعديل الرموز الموجودة اختيارياً.

BlockRefinementSchedulerOutput

فئة diffusers.BlockRefinementSchedulerOutput

< >

( prev_sample: torch.LongTensortransfer_index: torch.BoolTensorediting_transfer_index: torch.BoolTensorsampled_tokens: torch.LongTensorsampled_probs: torch.Tensorpred_logits: torch.Tensor )

المعاملات

  • prev_sample (torch.LongTensor من الشكل (batch_size, block_length)) — رموز الكتلة المحدّثة بعد خطوة التحسين الحالية.
  • transfer_index (torch.BoolTensor من الشكل (batch_size, block_length)) — قناع منطقي يُظهر الرموز التي تم تثبيتها (تعبئة القناع).
  • editing_transfer_index (torch.BoolTensor من الشكل (batch_size, block_length)) — قناع منطقي (Boolean mask) يُظهر الرموز التي تم تعديلها (استبدال غير القناع).
  • 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)) — قيم اللوجيت الخاصة بإزالة الضوضاء، والتي تُمرَّر لتسهيل التكييف الذاتي في الخطوة التالية.

فئة الإخراج لجدولة تحسين الكتل.

Update on GitHub