Buckets:
BlockRefinementScheduler
يدير BlockRefinementScheduler التحسين التكراري على مستوى الكتل لتوزيع الرموز المنفصلة. في كل خطوة، يُثبّت الرموز الأكثر ثقة، ويحرّر اختيارياً الرموز المثبتة مسبقاً عندما يتنبأ النموذج برمز مختلف بثقة عالية.
يُستخدم هذا المجدول بواسطة LLaDA2Pipeline.
BlockRefinementScheduler[[diffusers.BlockRefinementScheduler]]
diffusers.BlockRefinementScheduler[[diffusers.BlockRefinementScheduler]]
diffusers.BlockRefinementScheduler(block_length: int = 32, num_inference_steps: int = 32, threshold: float = 0.95, editing_threshold: float | None = None, minimal_topk: int = 1)
مجدول لتحسين تكراري على مستوى الكتل (التزام حسب الثقة).
في كل خطوة، يقوم المجدول بسحب رموز مرشحة من قيم النموذج (logits) ويثبّت تلك التي تتمتع بأعلى درجة ثقة. يُحدَّد عدد الرموز التي يجب تثبيتها في كل خطوة من خلال توزيع طول الكتلة بالتساوي على عدد خطوات التحسين.
يدعم التحرير بشكل اختياري: بعد حل جميع رموز الأقنعة، يمكن استبدال الرموز إذا توقع النموذج رمزًا مختلفًا بثقة تتجاوز editing_threshold الإيجابي (تعطّل ميزة التحرير عند تعيين None أو 0.0 أو قيمة سالبة).
add_noise[[diffusers.BlockRefinementScheduler.add_noise]]
add_noise(original_samples: torch.LongTensor, attention_mask: torch.LongTensor, prompt_length: int, block_length: int, mask_token_id: int, generator: torch.Generator | None = None)
المعاملات:
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[[diffusers.BlockRefinementScheduler.check_block_should_continue]]
check_block_should_continue(step_idx: int, masks_remaining: bool, editing_enabled: bool, editing_transfer_index: torch.BoolTensor, post_steps: int, max_post_steps: int, finished: torch.BoolTensor)
المعاملات:
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[[diffusers.BlockRefinementScheduler.check_eos_finished]]
check_eos_finished(cur_x: torch.LongTensor, sampled_tokens: torch.LongTensor, final_transfer: torch.BoolTensor, finished: torch.BoolTensor, eos_token_id: int, mask_token_id: int, prompt_length: int)
المعاملات:
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 tokens) في بداية التسلسل.
يعيد: torch.BoolTensor
تم تحديث أعلام الانتهاء.
حدّث أعلام الانتهاء لكل دفعة عند تثبيت رموز EOS.
get_num_transfer_tokens[[diffusers.BlockRefinementScheduler.get_num_transfer_tokens]]
get_num_transfer_tokens(block_length: int, num_inference_steps: int)
وزّع التزامات الرموز block_length بالتساوي على num_inference_steps خطوة.
خطوة[[diffusers.BlockRefinementScheduler.step]]
step(model_output: torch.Tensor, timestep: int | torch.Tensor, sample: torch.LongTensor, mask_token_id: int | None = None, temperature: float = 0.0, top_p: float | None = None, top_k: int | None = None, sampling_method: str = 'auto', threshold: float | None = None, editing_threshold: float | None = None, minimal_topk: int | None = None, prompt_mask: torch.BoolTensor | None = None, generator: torch.Generator | None = None, return_dict: bool = True)
المعاملات:
model_output (torch.Tensor من الشكل (batch_size, block_length, vocab_size)) : القيم الخام (logits) من النموذج للكتلة الحالية.
timestep (int أو torch.Tensor) : فهرس الخطوة الحالية ضمن جدول تحسين الكتلة.
sample (torch.LongTensor من الشكل (batch_size, block_length)) : معرّفات الرموز الحالية للكتلة (تحتوي على رموز القناع للمواقع غير المؤكدة في الوضع القائم على القناع).
mask_token_id (int, اختياري) : معرّف الرمز (Token ID) المستخدم للمواقع المقنّعة. عند تعيين 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 إلى مواضع الاستدعاء (prompt) غير القابلة للتحرير.
generator (torch.Generator، اختياري) : مولّد الأرقام العشوائية (RNG) للعينات.
return_dict (bool) : ما إذا كان يجب إرجاع BlockRefinementSchedulerOutput أو مجموعة (tuple).
أداء خطوة تحسين واحدة: أخذ عينة من القيم اللوجستية، تثبيت الرموز ذات الثقة العالية، وتعديل الرموز الموجودة اختيارياً.
BlockRefinementSchedulerOutput[[diffusers.BlockRefinementSchedulerOutput]]
diffusers.BlockRefinementSchedulerOutput[[diffusers.BlockRefinementSchedulerOutput]]
diffusers.BlockRefinementSchedulerOutput(prev_sample: torch.LongTensor, transfer_index: torch.BoolTensor, editing_transfer_index: torch.BoolTensor, sampled_tokens: torch.LongTensor, sampled_probs: torch.Tensor, pred_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)) : قيم اللوجيت الخاصة بإزالة الضوضاء، تُمرَّر لتسهيل التكييف الذاتي في الخطوة التالية.
فئة الإخراج لجدولة تحسين الكتل.
Xet Storage Details
- Size:
- 12.2 kB
- Xet hash:
- ac23417fe85d53e14773e1a09b5b3625b13285aeb66d7f12928f5b9582d5045a
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.