# EntropyBoundScheduler

يقوم `EntropyBoundScheduler` بتثبيت المواضع ذات الإنتروبيا الأدنى التي تبقى إنتروبياها المشتركة دون `entropy_bound`، بحيث تُقبل الرموز شبه المستقلة معًا ويُعاد تشويش الباقي. وهو يُبرّد درجة حرارة العينة من `t_max` في الخطوة الأولى إلى `t_min` في الخطوة الأخيرة، بما يتوافق مع مُعيّن نقاط التفتيش المُصدر. وقد قُدم في [Accelerated Sampling from Masked Diffusion Models via Entropy Bounded Unmasking](https://huggingface.co/papers/2505.24857).

يُستخدم هذا المجدول بواسطة [DiffusionGemmaPipeline](/docs/diffusers/v0.43.0/ar/api/pipelines/diffusion_gemma#diffusers.DiffusionGemmaPipeline).

## EntropyBoundScheduler[[diffusers.EntropyBoundScheduler]]

#### diffusers.EntropyBoundScheduler[[diffusers.EntropyBoundScheduler]]

```python
diffusers.EntropyBoundScheduler(entropy_bound: float = 0.1, t_max: float = 0.8, t_min: float = 0.4, num_inference_steps: int = 32)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_entropy_bound.py#L51)

**المعاملات:**

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` في الخطوة الأخيرة، بما يتوافق مع مُعيّن نقطة التفتيش المُصدَّرة (تعيّن أكثر حدة مع تقدم إزالة الضوضاء). وتُطبَّق على القيم اللوجستية قبل كلٍّ من تعيّن المرشحين والإنتروبيا التي تُشغّل القبول.

#### خطوة[[diffusers.EntropyBoundScheduler.step]]

```python
step(model_output: torch.Tensor, timestep: int | torch.Tensor, sample: torch.LongTensor, entropy_bound: float | None = None, generator: torch.Generator | None = None, return_dict: bool = True)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_entropy_bound.py#L118)

**المعاملات:**

model_output (`torch.Tensor` من الشكل `(batch_size, block_length, vocab_size)`) : القيم الخام (logits) من النموذج للكتلة الحالية.

timestep (`int` أو `torch.Tensor`) : فهرس الخطوة الحالية ضمن جدول إزالة الضوضاء؛ يحدد درجة حرارة العينة المُبرَّدة.

sample (`torch.LongTensor` من الشكل `(batch_size, block_length)`) : معرّفات الرموز الحالية للكتلة.

entropy_bound (`float`، *اختياري*) : يتجاوز حد الإنتروبيا المُهيأ لهذه الخطوة.

generator (`torch.Generator`، *اختياري*) : مولّد الأرقام العشوائية (RNG) للعينات.

return_dict (`bool`) : ما إذا كان يجب إرجاع [EntropyBoundSchedulerOutput](/docs/diffusers/v0.43.0/ar/api/schedulers/entropy_bound#diffusers.EntropyBoundSchedulerOutput) أو مجرد tuple.

اقبل المواضع ذات الإنتروبيا الأدنى ضمن حد الإنتروبيا وأعدّ الضجيج للباقي.

## EntropyBoundSchedulerOutput[[diffusers.EntropyBoundSchedulerOutput]]

#### diffusers.EntropyBoundSchedulerOutput[[diffusers.EntropyBoundSchedulerOutput]]

```python
diffusers.EntropyBoundSchedulerOutput(prev_sample: torch.LongTensor, accepted_index: torch.BoolTensor, sampled_tokens: torch.LongTensor, sampled_probs: torch.Tensor, pred_logits: torch.Tensor)
```

[المصدر](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_entropy_bound.py#L27)

**المعاملات:**

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)`) : القيم اللوجستية المُقيَّسة بدرجة الحرارة التي سُميت منها المرشحات، لغرض التكييف الذاتي للخطوة التالية.

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

