# التكميم

تُقلّل تقنيات التكميم من تكاليف الذاكرة والحساب من خلال تمثيل الأوزان والتفعيلات بأنواع بيانات ذات دقة أقل، مثل الأعداد الصحيحة الثمانية البتات (int8). وهذا يتيح تحميل نماذج أكبر لا يمكن عادةً استيعابها في الذاكرة، وتسريع الاستدلال. يدعم Transformers خوارزميتي التكميم AWQ وGPTQ، كما يدعم التكميم بدقة 8 بت و4 بت باستخدام bitsandbytes.

يمكن إضافة تقنيات التكميم غير المدعومة في Transformers باستخدام فئة `HfQuantizer`.

تعلّم كيفية تكميم النماذج في دليل [التكميم](../quantization/overview).

## QuantoConfig[[transformers.QuantoConfig]]

#### transformers.QuantoConfig[[transformers.QuantoConfig]]

```python
transformers.QuantoConfig(weights = 'int8', activations = None, modules_to_not_convert: list | None = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1021)

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

weights (`str`، *اختياري*، القيمة الافتراضية `"int8"`) : نوع البيانات المستهدف للأوزان بعد التكميم. القيم المدعومة هي ("float8","int8","int4","int2")

activations (`str`، *اختياري*) : نوع البيانات المستهدف للتفعيلات بعد التكميم. القيم المدعومة هي (None، "int8"، "float8")

modules_to_not_convert (`list`، *اختياري*، القيمة الافتراضية `None`) : قائمة الوحدات التي يجب عدم تكميمها، وهو أمر مفيد عند تكميم نماذج تتطلب صراحةً إبقاء بعض وحداتها بدقة الأصلية (مثل مشفّر Whisper، ومشفّر Llava، وطبقات بوابة Mixtral).

هذه فئة غلاف تجمع جميع الخصائص والميزات الممكنة التي يمكنك التعامل معها في نموذج تم تحميله باستخدام `quanto`.

#### post_init[[transformers.QuantoConfig.post_init]]

```python
post_init()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1049)

فاحص الأمان الذي يتحقق من صحة الحُجج

## AqlmConfig[[transformers.AqlmConfig]]

#### transformers.AqlmConfig[[transformers.AqlmConfig]]

```python
transformers.AqlmConfig(in_group_size: int = 8, out_group_size: int = 1, num_codebooks: int = 1, nbits_per_codebook: int = 16, linear_weights_not_to_quantize: list[str] | None = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L865)

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

in_group_size (`int`، *اختياري*، القيمة الافتراضية 8) : حجم المجموعة على طول بُعد الإدخال.

out_group_size (`int`، *اختياري*، القيمة الافتراضية 1) : حجم المجموعة على طول بُعد المخرجات. يُوصى دائمًا باستخدام القيمة 1.

num_codebooks (`int`، *اختياري*، القيمة الافتراضية 1) : عدد كتل الرموز (codebooks) المستخدمة في عملية التكميم الإضافي (Additive Quantization).

nbits_per_codebook (`int`، *اختياري*، القيمة الافتراضية 16) : عدد البتات المستخدمة في ترميز متجه واحد من دفتر الرموز. حجم دفاتر الرموز هو 2**nbits_per_codebook.

linear_weights_not_to_quantize (`Optional[list[str]]`، *اختياري*) : قائمة بالمسارات الكاملة لمعاملات أوزان `nn.Linear` التي يجب ألا تخضع للكمّية.

kwargs (`dict[str, Any]`، *اختياري*) : معلمات إضافية يتم منها تهيئة كائن الإعدادات.

هذه فئة غلاف حول معاملات `aqlm`.

#### post_init[[transformers.AqlmConfig.post_init]]

```python
post_init()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L902)

فاحص الأمان الذي يتحقق من صحة الحُجج - كما يستبدل بعض حُجج نوع NoneType بقيمها الافتراضية.

## VptqConfig[[transformers.VptqConfig]]

#### transformers.VptqConfig[[transformers.VptqConfig]]

```python
transformers.VptqConfig(enable_proxy_error: bool = False, config_for_layers: dict = {}, shared_layer_config: dict = {}, modules_to_not_convert: list | None = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L980)

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

enable_proxy_error (`bool`، *اختياري*، القيمة الافتراضية `False`) : حساب خطأ الوكيل لكل طبقة

config_for_layers (`Dict`، *اختياري*، القيمة الافتراضية `{}`) : معلمات التكميم لكل طبقة

shared_layer_config (`Dict`، *اختياري*، القيمة الافتراضية `{}`) : معلمات التكميم المشتركة بين الطبقات

modules_to_not_convert (`list`، *اختياري*، القيمة الافتراضية `None`) : قائمة الوحدات التي يجب عدم تكميمها، وهو أمر مفيد عند تكميم نماذج تتطلب صراحةً إبقاء بعض وحداتها بدقة الأصلية (مثل مشفّر Whisper، ومشفّر Llava، وطبقات بوابة Mixtral).

kwargs (`dict[str, Any]`، *اختياري*) : معلمات إضافية يتم من خلالها تهيئة كائن الإعدادات.

هذه فئة غلاف حول معلمات `vptq`.

#### post_init[[transformers.VptqConfig.post_init]]

```python
post_init()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1010)

فاحص الأمان الذي يتحقق من صحة الحُجج

## AwqConfig[[transformers.AwqConfig]]

#### transformers.AwqConfig[[transformers.AwqConfig]]

```python
transformers.AwqConfig(bits: int = 4, group_size: int = 128, zero_point: bool = True, backend: AwqBackend = <AwqBackend.AUTO: 'auto'>, modules_to_not_convert: list | None = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L799)

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

bits (`int`، *اختياري*، القيمة الافتراضية 4) : عدد البتات التي سيتم التكميم إليها.

group_size (`int`، *اختياري*، القيمة الافتراضية 128) : حجم المجموعة المستخدم للتكميم. القيمة الموصى بها هي 128، بينما استخدام -1 يعني التكميم لكل عمود.

zero_point (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم استخدام تكميم نقطة الصفر.

backend (`AwqBackend`، *اختياري*، القيمة الافتراضية هي `AwqBackend.AUTO`) : واجهة الكمية.

modules_to_not_convert (`list`، *اختياري*، القيمة الافتراضية `None`) : قائمة الوحدات التي يجب عدم تكميمها، وهو مفيد لتكميم النماذج التي تتطلب صراحةً إبقاء بعض الوحدات في دقتها الأصلية (مثل مشفّر Whisper، ومشفّر Llava، وطبقات بوابة Mixtral). لاحظ أنه لا يمكن التكميم مباشرةً باستخدام transformers، يُرجى الرجوع إلى توثيق `AutoAWQ` لتكميم نماذج HF.

هذه فئة غلاف (wrapper class) تغطي جميع الخصائص والميزات الممكنة التي يمكنك التعامل معها في نموذج تم تحميله باستخدام كميّة awq في مكتبة `auto-awq` المعتمدة على واجهة auto_awq الخلفية.

## EetqConfig[[transformers.EetqConfig]]

#### transformers.EetqConfig[[transformers.EetqConfig]]

```python
transformers.EetqConfig(weights: str = 'int8', modules_to_not_convert: list | None = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1062)

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

weights (`str`، *اختياري*، القيمة الافتراضية `"int8"`) : نوع البيانات المستهدف للأوزان. القيمة المدعومة الوحيدة هي "int8"

modules_to_not_convert (`list`، *اختياري*، القيمة الافتراضية `None`) : قائمة الوحدات التي يجب عدم تكميمها، وهو مفيد لتكميم النماذج التي تتطلب صراحةً إبقاء بعض وحداتها بدقة الأصلية.

هذه فئة غلاف (Wrapper) تجمع جميع الخصائص والميزات الممكنة التي يمكنك التعامل معها في نموذج تم تحميله باستخدام `eetq`.

#### post_init[[transformers.EetqConfig.post_init]]

```python
post_init()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1086)

فاحص الأمان الذي يتحقق من صحة الحُجج

## GPTQConfig[[transformers.GPTQConfig]]

#### transformers.GPTQConfig[[transformers.GPTQConfig]]

```python
transformers.GPTQConfig(bits: int, tokenizer: Any = None, dataset: list[str] | str | None = None, group_size: int = 128, damp_percent: float = 0.1, desc_act: bool = False, act_group_aware: bool = True, sym: bool = True, true_sequential: bool = True, format: str = 'gptq', meta: dict[str, typing.Any] | None = None, backend: str | None = None, model_seqlen: int | None = None, block_name_to_quantize: str | None = None, module_name_preceding_first_block: list[str] | None = None, batch_size: int = 1, pad_token_id: int | None = None, max_input_length: int | None = None, cache_block_outputs: bool = True, modules_in_block_to_quantize: list[list[str]] | None = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L617)

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

bits (`int`) : عدد البتات التي سيتم التكميم إليها، والأرقام المدعومة هي (2، 3، 4، 8).

tokenizer (`str` أو `PreTrainedTokenizerBase`، *اختياري*) : المُجزِّئ (tokenizer) المستخدم لمعالجة مجموعة البيانات. يمكنك تمرير أحد ما يلي: - كائن مُجزِّئ مخصص. - نص، وهو *معرف النموذج* لمُجزِّئ مُعرَّف مسبقًا مستضاف داخل مستودع نموذج على huggingface.co. - مسار إلى *مجلد* يحتوي على ملفات المفردات المطلوبة من قِبل المُجزِّئ، على سبيل المثال تلك المحفوظة باستخدام طريقة [save_pretrained()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.save_pretrained)، مثل `./my_model_directory/`.

dataset (`Union[list[str]]`، *اختياري*) : مجموعة البيانات المستخدمة للكمّية. يمكنك تقديم مجموعة بياناتك الخاصة في قائمة من النصوص، أو استخدام مجموعات البيانات الأصلية المستخدمة في ورقة GPTQ ['wikitext2','c4','c4-new']

group_size (`int`، *اختياري*، القيمة الافتراضية 128) : حجم المجموعة المستخدم للتكميم. القيمة الموصى بها هي 128، بينما استخدام -1 يعني التكميم لكل عمود.

damp_percent (`float`، *اختياري*، القيمة الافتراضية 0.1) : النسبة المئوية من متوسط القطر الهيسيان (Hessian) المستخدمة للتخميد. القيمة الموصى بها هي 0.1.

desc_act (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم تكميم الأعمدة حسب ترتيب حجم التفعيل تنازليًا. ضبطه على False يمكن أن يسرّع الاستدلال بشكل كبير، لكن قد يصبح قياس المفاجأة (perplexity) أسوأ قليلاً. يُعرف أيضًا باسم act-order.

act_group_aware (`bool`، *اختياري*، القيمة الافتراضية `True`) : استخدام GAR (ترتيب التفعيل الواعي بالمجموعات) أثناء التكميم. له تأثير إيجابي قابل للقياس على جودة التكميم. ينطبق فقط عندما يكون `desc_act = False`. سيُجبر على أن يكون `False` عندما يكون `desc_act = True`.

sym (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم استخدام التكميم المتماثل.

true_sequential (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم تنفيذ التكميم التسلسلي حتى داخل كتلة Transformer واحدة. بدلاً من تكميم الكتلة بأكملها دفعة واحدة، نقوم بتنفيذ التكميم على مستوى الطبقات. ونتيجةً لذلك، تخضع كل طبقة للتكميم باستخدام مدخلات مرت عبر الطبقات المكمَّمة سابقًا.

format (`str`، *اختياري*، القيمة الافتراضية هي `"gptq"`) : صيغة أوزان GPTQ. يدعم gptqmodel الصيغة `gptq` (الإصدار 1). أما `gptq_v2` فهي حصرية لـ gptqmodel.

meta (`dict[str, any]`، *اختياري*) : تُخزَّن الخصائص التي لا تساهم بشكل مباشر في التكميم أو الاستدلال المُكمَّم، مثل tooling:version، في meta. على سبيل المثال: `meta.quantizer`: ["optimum:_version_", "gptqmodel:_version_"]

backend (`str`, *اختياري*) : يتحكم في النواة (kernel) المستخدمة. القيم الصالحة لـ gptqmodel هي `auto` و`auto_trainable` وغيرها. راجع واجهات gptqmodel الخلفية: https://github.com/ModelCloud/GPTQModel/blob/main/gptqmodel/utils/backend.py

model_seqlen (`int`، *اختياري*) : الحد الأقصى لطول التسلسل الذي يمكن للنموذج قبوله.

block_name_to_quantize (`str`، *اختياري*) : اسم كتلة transformers التي سيتم تكميمها. إذا كانت القيمة None، فسنستنتج اسم الكتلة باستخدام الأنماط الشائعة (مثل model.layers).

module_name_preceding_first_block (`list[str]`، *اختياري*) : الطبقات التي تسبق أول كتلة Transformers.

batch_size (`int`، *اختياري*، القيمة الافتراضية 1) : حجم الدفعة المستخدمة عند معالجة مجموعة البيانات

pad_token_id (`int`، *اختياري*) : معرّف رمز الحشو. مطلوب لتحضير مجموعة البيانات عندما يكون `batch_size` > 1.

max_input_length (`int`، *اختياري*) : الحد الأقصى لطول الإدخال. يُعدّ هذا مطلوبًا لمهارة مخزن مؤقت يعتمد على الحد الأقصى المتوقع لطول الإدخال. وهو خاص بالخلفية exllama مع act-order.

cache_block_outputs (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم تخزين مخرجات الكتلة مؤقتًا لإعادة استخدامها كمُدخلات للكتلة التالية.

modules_in_block_to_quantize (`list[list[str]]`، *اختياري*) : قائمة من قوائم أسماء الوحدات المراد تكميمها داخل الكتلة المحددة. يُعدّ هذا الحُجّة مفيدًا لاستبعاد وحدات خطية معينة من التكميم. يمكن تحديد الكتلة المراد تكميمها عن طريق تعيين `block_name_to_quantize`. سنقوم بتكميم كل قائمة بشكل تسلسلي. إذا لم يتم تعيينه، سنقوم بتكميم جميع الطبقات الخطية. مثال: `modules_in_block_to_quantize =[["self_attn.k_proj", "self_attn.v_proj", "self_attn.q_proj"], ["self_attn.o_proj"]]`. في هذا المثال، سنقوم أولاً بتكميم طبقات q وk وv في وقت واحد نظرًا لاستقلاليتها. ثم، سنقوم بتكميم طبقة `self_attn.o_proj` مع تكميم طبقات q وk وv. بهذه الطريقة، سنحصل على نتائج أفضل لأنها تعكس المدخلات الفعلية التي ستحصل عليها `self_attn.o_proj` عندما يتم تكميم النموذج.

هذه فئة غلاف (wrapper class) تغطي جميع الخصائص والميزات الممكنة التي يمكنك التعامل معها في نموذج تم تحميله باستخدام واجهة `optimum` لاختزال GPTQ، مع الاعتماد على الخلفية gptqmodel.

#### from_dict_optimum[[transformers.GPTQConfig.from_dict_optimum]]

```python
from_dict_optimum(config_dict)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L788)

احصل على فئة متوافقة مع optimum gptq config dict

#### post_init[[transformers.GPTQConfig.post_init]]

```python
post_init()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L738)

فاحص الأمان الذي يتحقق من صحة الحُجج

#### to_dict_optimum[[transformers.GPTQConfig.to_dict_optimum]]

```python
to_dict_optimum()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L782)

الحصول على قاموس متوافق مع إعدادات gptq في optimum

## BitsAndBytesConfig[[transformers.BitsAndBytesConfig]]

#### transformers.BitsAndBytesConfig[[transformers.BitsAndBytesConfig]]

```python
transformers.BitsAndBytesConfig(load_in_8bit = False, load_in_4bit = False, llm_int8_threshold = 6.0, llm_int8_skip_modules = None, llm_int8_enable_fp32_cpu_offload = False, llm_int8_has_fp16_weight = False, bnb_4bit_compute_dtype = None, bnb_4bit_quant_type = 'fp4', bnb_4bit_use_double_quant = False, bnb_4bit_quant_storage = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L390)

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

load_in_8bit (`bool`، *اختياري*، القيمة الافتراضية `False`) : يُستخدم هذا العلم لتفعيل التكميم 8-بت باستخدام LLM.int8().

load_in_4bit (`bool`، *اختياري*، القيمة الافتراضية `False`) : يُستخدم هذا العلم لتفعيل التكميم بدقة 4 بت عن طريق استبدال طبقات Linear بطبقات FP4/NF4 من `bitsandbytes`.

llm_int8_threshold (`float`، *اختياري*، القيمة الافتراضية 6.0) : يتوافق هذا مع عتبة القيم الشاذة للكشف عن القيم الشاذة كما هو موصوف في ورقة `LLM.int8() : 8-bit Matrix Multiplication for Transformers at Scale`: https://huggingface.co/papers/2208.07339 أي قيمة لحالة مخفية تتجاوز هذه العتبة تُعتبر قيمة شاذة، وتُنفَّذ العملية على تلك القيم بدقة fp16. عادةً ما تكون القيم موزعة بشكل طبيعي، أي أن معظمها يقع في النطاق [-3.5, 3.5]، لكن هناك بعض القيم الشاذة المنهجية الاستثنائية التي تكون موزعة بشكل مختلف تمامًا في النماذج الكبيرة. غالبًا ما تقع هذه القيم الشاذة في الفترة [-60, -6] أو [6, 60]. يعمل التكميم بدقة Int8 بشكل جيد للقيم ذات المقدار ~5، لكن ما يتجاوز ذلك يؤدي إلى عقوبة أداء كبيرة. عتبة افتراضية جيدة هي 6، لكن قد تكون هناك حاجة إلى عتبة أقل للنماذج الأقل استقرارًا (النماذج الصغيرة، الضبط الدقيق).

llm_int8_skip_modules (`list[str]`، *اختياري*) : قائمة صريحة بالوحدات التي لا نرغب في تحويلها إلى 8 بت. هذا مفيد للنماذج مثل Jukebox التي تحتوي على عدة رؤوس في مواقع مختلفة وليس بالضرورة في الموقع الأخير. على سبيل المثال، في نماذج `CausalLM`، يُحافظ على `lm_head` الأخير في `dtype` الأصلي الخاص به.

llm_int8_enable_fp32_cpu_offload (`bool`، *اختياري*، القيمة الافتراضية `False`) : يُستخدم هذا العلم لحالات الاستخدام المتقدمة وللمستخدمين الذين يدركون هذه الميزة. إذا كنت ترغب في تقسيم نموذجك إلى أجزاء مختلفة وتشغيل بعض الأجزاء بدقة int8 على وحدة معالجة الرسوميات GPU وبعض الأجزاء الأخرى بدقة fp32 على وحدة المعالجة المركزية CPU، يمكنك استخدام هذا العلم. هذا مفيد لتفريغ النماذج الكبيرة مثل `google/flan-t5-xxl`. لاحظ أن عمليات int8 لن تُنفَّذ على وحدة المعالجة المركزية CPU.

llm_int8_has_fp16_weight (`bool`، *اختياري*، القيمة الافتراضية `False`) : يعمل هذا العلم على تشغيل LLM.int8() مع أوزان رئيسية بدقة 16 بت. وهذا مفيد للضبط الدقيق (fine-tuning) لأن الأوزان لا تحتاج إلى التحويل ذهابًا وإيابًا لمرحلة الرجوع (backward pass).

bnb_4bit_compute_dtype (`torch.dtype` أو str، *اختياري*، القيمة الافتراضية `torch.float32`) : يحدد هذا نوع الحساب، والذي قد يختلف عن نوع المدخلات. على سبيل المثال، قد تكون المدخلات من نوع fp32، لكن يمكن ضبط الحساب على bf16 لتحقيق تسريع.

bnb_4bit_quant_type (`str`، *اختياري*، القيمة الافتراضية `"fp4"`) : يحدد هذا نوع بيانات التكميم في طبقات bnb.nn.Linear4Bit. الخيارات المتاحة هي أنواع البيانات FP4 وNF4، والتي تُحدَّد بواسطة `fp4` أو `nf4`.

bnb_4bit_use_double_quant (`bool`، *اختياري*، القيمة الافتراضية `False`) : يُستخدم هذا العلم للكمّية المتداخلة، حيث تُكمَّم ثوابت الكمّية من عملية الكمّية الأولى مرة أخرى.

bnb_4bit_quant_storage (`torch.dtype` أو str، *اختياري*، القيمة الافتراضية `torch.uint8`) : يحدد هذا نوع التخزين لتعبئة المعاملات المُكمّاة على 4 بت.

kwargs (`dict[str, Any]`، *اختياري*) : معلمات إضافية يتم من خلالها تهيئة كائن الإعدادات.

هذه فئة غلاف (Wrapper) تجمع جميع الخصائص والميزات الممكنة التي يمكنك التعامل معها في نموذج تم تحميله باستخدام `bitsandbytes`.

يدعم حالياً `LLM.int8()`، و`FP4`، و`NF4` فقط. إذا أُضيفت المزيد من الأساليب إلى `bitsandbytes`، فسيتم إضافة المزيد من الحُجج إلى هذه الفئة.

#### is_quantizable[[transformers.BitsAndBytesConfig.is_quantizable]]

```python
is_quantizable()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L551)

تعيد `True` إذا كان النموذج قابلًا للكمّية، وإلا فترجع `False`.

#### post_init[[transformers.BitsAndBytesConfig.post_init]]

```python
post_init()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L521)

فاحص الأمان الذي يتحقق من صحة الحُجج - كما يستبدل بعض حُجج نوع NoneType بقيمها الافتراضية.

#### quantization_method[[transformers.BitsAndBytesConfig.quantization_method]]

```python
quantization_method()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L557)

تعيد هذه الطريقة طريقة التكميم المستخدمة للنموذج. إذا لم يكن النموذج قابلاً للتكميم، فإنها تعيد `None`.

#### to_diff_dict[[transformers.BitsAndBytesConfig.to_diff_dict]]

```python
to_diff_dict()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L588)

**يعيد:** `dict[str, Any]`

قاموس بجميع السمات التي تُشكّل هذه المثيلَة من التهيئة،

يزيل جميع السمات من الإعدادات التي تتوافق مع سمات الإعدادات الافتراضية لتحسين قابلية القراءة، ثم يُسلسلها إلى قاموس بلغة بايثون.

## HfQuantizer[[transformers.quantizers.HfQuantizer]]

#### transformers.quantizers.HfQuantizer[[transformers.quantizers.HfQuantizer]]

```python
transformers.quantizers.HfQuantizer(quantization_config: QuantizationConfigMixin, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L74)

فئة مجردة لمُكمِّم HuggingFace. تدعم حاليًا تكميم نماذج transformers الخاصة بـ HF للاستدلال و/أو التكميم. تُستخدم هذه الفئة فقط في transformers.PreTrainedModel.from_pretrained ولا يمكن استخدامها بسهولة خارج نطاق تلك الطريقة بعد.

خصائص `transformers.utils.quantization_config.QuantizationConfigMixin`: إعدادات التكميم التي تحدد معاملات التكميم للنموذج الذي تريد تكميمه. `bool`: ما إذا كانت طريقة التكميم تتطلب معايرة النموذج قبل استخدامه.

#### adjust_max_memory[[transformers.quantizers.HfQuantizer.adjust_max_memory]]

```python
adjust_max_memory(max_memory: dict)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L148)

اضبط معامل max_memory للدالة infer_auto_device_map() إذا كانت هناك حاجة إلى ذاكرة إضافية للكمّ

#### إلغاء التكميم[[transformers.quantizers.HfQuantizer.dequantize]]

```python
dequantize(model, dtype = None)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L239)

قد يتم إلغاء تكميم النموذج لاسترجاع النموذج الأصلي، مع بعض الفقدان في الدقة / الأداء. لاحظ أن مخططات التكميم لا تدعم جميعها هذه العملية.

#### get_load_operations[[transformers.quantizers.HfQuantizer.get_load_operations]]

```python
get_load_operations()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L323)

فئات العمليات التي تُحمّل المتجهات المُسلسلة، مثل `{"deserialize": Mxfp4Deserialize, "dequantize": Mxfp4Dequantize}`. تُنشئ عملية فك التسلسل معاملات وحدة واحدة، لذا فهي تعمل فقط على المحولات العامة. كما تعمل عملية إلغاء الكمّة قبل عمليات محولات النموذج، مثل دمج لكل خبير.

#### get_new_dtype[[transformers.quantizers.HfQuantizer.get_new_dtype]]

```python
get_new_dtype(converter, param, dtype: torch.dtype | None)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L134)

يحدث ذلك عند وقت الماديّة (materialization)، عندما يُرسل المتجه (tensor) من القرص إلى الجهاز. `dtype` لتحويل متجه نقطة التفتيش (checkpoint) المُكمّس مسبقًا `param` إلى النوع المطلوب. إذا لم يكن هذا المعامل مُكمّسًا (نوع فاصلة عائمة)، نستخدم `dtype` المُدخل القادم من `nn.Module` المُهيّأ.

إذا كان لـطريقة التكميم `Deserializer` أو `Dequantizer` (دالة التحميل)، فإننا نعيد None حتى يتولى هذان العنصران التعامل معها.

#### get_state_dict_and_metadata[[transformers.quantizers.HfQuantizer.get_state_dict_and_metadata]]

```python
get_state_dict_and_metadata(model)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L290)

الحصول على state dict وبيانات الوصف. مفيد عندما نحتاج إلى تعديل state dict قليلاً بسبب التكميم

#### get_weight_conversions[[transformers.quantizers.HfQuantizer.get_weight_conversions]]

```python
get_weight_conversions()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L331)

إرجاع التحميل الذي يجب تنفيذه على أي معامل لا يتطابق مع محوّلات النموذج

#### param_needs_quantization[[transformers.quantizers.HfQuantizer.param_needs_quantization]]

```python
param_needs_quantization(model: PreTrainedModel, param_name: str, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L152)

تحقق مما إذا كان المعامل المحدد يحتاج إلى التكميم.

#### postprocess_model[[transformers.quantizers.HfQuantizer.postprocess_model]]

```python
postprocess_model(model: PreTrainedModel, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L207)

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

model (`~transformers.PreTrainedModel`) : النموذج المراد تكميمه

kwargs (`dict`، *اختياري*) : حُجج الكلمات المفتاحية التي تُمرَّر إلى `_process_model_after_weight_loading`.

قم بمعالجة ما بعد النموذج بعد تحميل الأوزان. تأكد من تجاوز الطريقة المجردة `_process_model_after_weight_loading`.

#### preprocess_model[[transformers.quantizers.HfQuantizer.preprocess_model]]

```python
preprocess_model(model: PreTrainedModel, dtype = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L184)

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

model (`~transformers.PreTrainedModel`) : النموذج المراد تكميمه

kwargs (`dict`، *اختياري*) : حُجج الكلمات المفتاحية التي تُمرَّر مع `_process_model_before_weight_loading`.

ضبط سمات النموذج و/أو تحويل النموذج قبل تحميل الأوزان. في هذه المرحلة يجب أن يكون النموذج مُهيأً على جهاز meta، مما يتيح لك التلاعب بحُجّة النموذج بحرية من أجل استبدال الوحدات في مكانها. تأكد من تجاوز الطريقة المجردة `_process_model_before_weight_loading`.

#### remove_quantization_config[[transformers.quantizers.HfQuantizer.remove_quantization_config]]

```python
remove_quantization_config(model)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L227)

احذف إعدادات التكميم من النموذج.

#### update_attn_implementation[[transformers.quantizers.HfQuantizer.update_attn_implementation]]

```python
update_attn_implementation(config)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L177)

يتحقق من `attn_implementation` المطلوب قبل بناء النموذج، بحيث يمكن لمُكمِّم (quantizer) تعيينه كقيمة افتراضية.

#### update_device_map[[transformers.quantizers.HfQuantizer.update_device_map]]

```python
update_device_map(device_map: dict[str, typing.Any] | None)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L112)

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

device_map (`Union[dict, str]`، *اختياري*) : خريطة الأجهزة (device_map) التي يتم تمريرها عبر طريقة `from_pretrained`.

أعد كتابة هذه الطريقة إذا كنت ترغب في تجاوز خريطة الجهاز الحالية بخريطة جديدة. على سبيل المثال، في حالة `accelerate`، نظرًا لأن `accelerate` هو متطلب أساسي، إذا لم يتم تمرير device_map، يتم تعيين device_map إلى `"auto"``

#### update_dtype[[transformers.quantizers.HfQuantizer.update_dtype]]

```python
update_dtype(dtype: torch.dtype)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L100)

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

dtype (`torch.dtype`) : نوع البيانات المُدخل الذي يُمرَّر في `from_pretrained`

تتطلب بعض طرق التكميم ضبط نوع البيانات (dtype) للنموذج بشكل صريح على نوع البيانات المستهدف. يجب عليك تجاوز هذه الطريقة إذا كنت ترغب في التأكد من الحفاظ على هذا السلوك.

#### update_parallel_plan[[transformers.quantizers.HfQuantizer.update_parallel_plan]]

```python
update_parallel_plan(model, plan: dict)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L166)

تحديث `model.tp_plan` أو `model.ep_plan` (الخطط الكاملة، المدمجة من الإعدادات وجميع الإعدادات الفرعية) لوضع المفاتيح المخصصة لمكمِّم الأرقام مثل 'inv_scale' في الاعتبار

#### update_weight_conversions[[transformers.quantizers.HfQuantizer.update_weight_conversions]]

```python
update_weight_conversions(weight_conversions, model)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L341)

يجعل محوّلات النموذج (من خريطة التحويل) تُحمّل الأسماء المُسلسَلة. تُحدِّد معاملات النموذج، على سبيل المثال، عملية دمج `experts.*.gate_proj.weight` في `experts.gate_up_proj`:
- `experts.gate_up_proj_scale_inv` هو معامل: يدمج النسخ `experts.*.gate_proj.weight_scale_inv` فيه
- وإلا فإن المحوّل يجمع أيضًا `experts.*.gate_proj.weight_scale_inv`، حيث يُنفَّذ عميل إزالة التكميم أولاً

#### validate_environment[[transformers.quantizers.HfQuantizer.validate_environment]]

```python
validate_environment(*args, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/quantizers/base.py#L158)

يُستخدم هذا الأسلوب للتحقق من وجود تعارضات محتملة مع الحُجج المُمرَّرة في `from_pretrained`. يجب عليك تعريفه لجميع مُكمِّسات المستقبل المُدمجة مع transformers. إذا لم تكن هناك حاجة إلى تحقق صريح، فبمجرد إرجاع شيء فارغ.

## HiggsConfig[[transformers.HiggsConfig]]

#### transformers.HiggsConfig[[transformers.HiggsConfig]]

```python
transformers.HiggsConfig(bits: int = 4, p: int = 2, modules_to_not_convert: list[str] | None = None, hadamard_size: int = 512, group_size: int = 256, tune_metadata: dict[str, typing.Any] | None = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1323)

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

bits (int, *اختياري*، القيمة الافتراضية 4) : عدد البتات المستخدمة للتكميم. يمكن أن تكون 2 أو 3 أو 4. القيمة الافتراضية هي 4.

p (int, *اختياري*, القيمة الافتراضية 2) : بُعد شبكة التكميم. يتم دعم القيمتين 1 و 2. في الممارسة العملية، تكون القيمة 2 أفضل دائمًا. القيمة الافتراضية هي 2.

modules_to_not_convert (`list`، *اختياري*، الافتراضي ["lm_head"]) : قائمة بطبقات خطية يجب عدم تكميمها.

hadamard_size (int, *اختياري*, القيمة الافتراضية 512) : حجم هادامارد (Hadamard size) لطريقة HIGGS. القيمة الافتراضية هي 512. يتم توسيع بُعد المدخلات للمصفوفات ليصل إلى هذه القيمة. إن خفض هذا الرقم إلى أقل من 512 سيؤدي إلى تقليل جودة التكميم (quantization).

group_size (int, *اختياري*, القيمة الافتراضية 256) : حجم المجموعة لطريقة HIGGS. يمكن أن يكون 64 أو 128 أو 256. إن تقليله لا يؤثر تقريبًا على الأداء. القيمة الافتراضية هي 256. يجب أن يكون قاسمًا لـ hadamard_size.

tune_metadata ('dict', *اختياري*، القيمة الافتراضية {}) : بيانات وصفية على مستوى الوحدة (أشكال كتل gemm، بيانات وصفية GPU، إلخ) لحفظ نتائج ضبط النواة. القيمة الافتراضية هي قاموس فارغ. يتم تعيينه تلقائيًا أثناء الضبط.

HiggsConfig هي فئة إعدادات للكمّية باستخدام طريقة HIGGS.

#### post_init[[transformers.HiggsConfig.post_init]]

```python
post_init()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1364)

فاحص الأمان الذي يتحقق من صحة الحُجج - كما يستبدل بعض حُجج نوع NoneType بقيمها الافتراضية.

## HqqConfig[[transformers.HqqConfig]]

#### transformers.HqqConfig[[transformers.HqqConfig]]

```python
transformers.HqqConfig(nbits: int = 4, group_size: int = 64, view_as_float: bool = False, axis: int | None = None, dynamic_config: dict | None = None, skip_modules: list = ['lm_head'], **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L277)

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

nbits (`int`، *اختياري*، القيمة الافتراضية 4) : عدد البتات. القيم المدعومة هي (8، 4، 3، 2، 1).

group_size (`int`، *اختياري*، القيمة الافتراضية 64) : قيمة حجم المجموعة. القيم المدعومة هي أي قيمة قابلة للقسمة على weight.shape[axis]).

view_as_float (`bool`، *اختياري*، القيمة الافتراضية `False`) : عرض الوزن المُكمَّم كرقم فاصلة عائمة (يُستخدم في التدريب الموزّع) إذا تم ضبطه على `True`.

axis (`Optional[int]`، *اختياري*) : المحور الذي يتم على أساسه تنفيذ التجميع. القيم المدعومة هي 0 أو 1.

dynamic_config (dict, *اختياري*) : معلمات للتكوين الديناميكي. المفتاح هو وسم اسم الطبقة والقيمة هي تكوين التكميم. إذا تم ضبطه، فستستخدم كل طبقة محددة بمعرّفها تكوين التكميم المخصص لها.

skip_modules (`list[str]`، *اختياري*، الافتراضي `['lm_head']`) : قائمة بطبقات `nn.Linear` التي يجب تجاوزها.

kwargs (`dict[str, Any]`، *اختياري*) : معلمات إضافية يتم من خلالها تهيئة كائن الإعدادات.

هذا غلاف حول BaseQuantizeConfig الخاص بـ hqq.

#### from_dict[[transformers.HqqConfig.from_dict]]

```python
from_dict(config: dict)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L342)

Override from_dict, used in AutoQuantizationConfig.from_dict in quantizers/auto.py

#### post_init[[transformers.HqqConfig.post_init]]

```python
post_init()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L337)

فاحص الأمان الذي يتحقق من صحة الحُجج - كما يستبدل بعض حُجج نوع NoneType بقيمها الافتراضية.

#### to_diff_dict[[transformers.HqqConfig.to_diff_dict]]

```python
to_diff_dict()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L367)

**يعيد:** `dict[str, Any]`

قاموس بجميع السمات التي تُشكّل هذه المثيلَة من التهيئة،

يزيل جميع السمات من الإعدادات التي تتوافق مع سمات الإعدادات الافتراضية لتحسين قابلية القراءة، ثم يُسلسلها إلى قاموس بلغة بايثون.

## MetalConfig[[transformers.MetalConfig]]

#### transformers.MetalConfig[[transformers.MetalConfig]]

```python
transformers.MetalConfig(bits: int = 4, group_size: int = 64, modules_to_not_convert: list | None = None, dequantize: bool = False, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1833)

فئة التهيئة للكمّية الأفينية الخاصة بـ Metal المستهدفة لأجهزة Apple Silicon (MPS).

تستخدم طريقة التكميم هذه نواة Metal من `mlx-quantization-metal-kernels` المتوفرة على Hugging Face Hub لتنفيذ التكميم الأفيني (المقاييس + الانحيازات الكمّية) مع عرض بت قابل للضبط وحجم مجموعة قابل للضبط. تُحزم الأوزان المُكمَّمة في متجهات `uint32`، ويستخدم المسار الأمامي نواة Metal مدمجة لفك التكميم وضرب المصفوفات.

## Mxfp4Config[[transformers.Mxfp4Config]]

#### transformers.Mxfp4Config[[transformers.Mxfp4Config]]

```python
transformers.Mxfp4Config(modules_to_not_convert: list | None = None, dequantize: bool = False, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1799)

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

modules_to_not_convert (`list`، *اختياري*، القيمة الافتراضية `None`) : قائمة الوحدات التي يجب عدم تكميمها، وهو مفيد لتكميم النماذج التي تتطلب صراحةً إبقاء بعض وحداتها بدقة الأصلية.

dequantize (`bool`، *اختياري*، الافتراضي `False`) : ما إذا كنا سنزيل التكميم عن النموذج إلى دقة bf16 أم لا

هذا هو فئة غلاف (wrapper class) حول جميع الخصائص والميزات الممكنة التي يمكنك التعامل معها في نموذج تم تحميله باستخدام تكميم mxfp4.

## NVFP4Config[[transformers.NVFP4Config]]

#### transformers.NVFP4Config[[transformers.NVFP4Config]]

```python
transformers.NVFP4Config(modules_to_not_convert: list[str] | None = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L2075)

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

modules_to_not_convert (`list[str]`، *اختياري*) : أنماط أسماء الوحدات التي يجب أن تبقى بدقة الأصل.

kwargs (`dict[str, Any]`، *اختياري*) : يتم تجاهل القيم الإضافية وإبلاغ عنها عبر مسجّل Transformers.

إعدادات لتكميم أوزان NVFP4 على الفور.

## FbgemmFp8Config[[transformers.FbgemmFp8Config]]

#### transformers.FbgemmFp8Config[[transformers.FbgemmFp8Config]]

```python
transformers.FbgemmFp8Config(activation_scale_ub: float = 1200.0, modules_to_not_convert: list | None = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1292)

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

activation_scale_ub (`float`، *اختياري*، القيمة الافتراضية 1200.0) : الحد الأعلى لمقياس التنشيط. يُستخدم هذا عند تكميم تنشيطات الإدخال.

modules_to_not_convert (`list`، *اختياري*، القيمة الافتراضية `None`) : قائمة الوحدات التي يجب عدم تكميمها، وهو مفيد لتكميم النماذج التي تتطلب صراحةً إبقاء بعض وحداتها بدقة الأصلية.

هذه فئة غلاف (wrapper class) حول جميع الخصائص والميزات الممكنة التي يمكنك التعامل معها في نموذج تم تحميله باستخدام تكميم fbgemm fp8.

## CompressedTensorsConfig[[transformers.CompressedTensorsConfig]]

#### transformers.CompressedTensorsConfig[[transformers.CompressedTensorsConfig]]

```python
transformers.CompressedTensorsConfig(config_groups: dict[str, typing.Union[ForwardRef('QuantizationScheme'), list[str]]] | None = None, format: str = 'dense', quantization_status: QuantizationStatus = 'initialized', kv_cache_scheme: typing.Optional[ForwardRef('QuantizationArgs')] = None, global_compression_ratio: float | None = None, ignore: list[str] | None = None, quant_method: str = 'compressed-tensors', run_compressed: bool | None = None, dequantize: bool = False, use_optimized_inference: bool = False, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1095)

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

config_groups (`typing.dict[str, typing.Union[ForwardRef('QuantizationScheme'), typing.list[str]]]`، *اختياري*) : قاموس يربط اسم المجموعة بتعريف مخطط الكمّ

format (`str`، *اختياري*، القيمة الافتراضية هي `"dense"`) : الصيغة التي تُخزَّن بها الأوزان، مثل `dense` أو `float-quantized` أو `pack-quantized`

quantization_status (`QuantizationStatus`، *اختياري*، القيمة الافتراضية `"initialized"`) : حالة النموذج في دورة حياة التكميم، أي 'initialized' أو 'calibration' أو 'frozen'

kv_cache_scheme (`typing.Union[QuantizationArgs, NoneType]`، *اختياري*) : يحدد تكميم ذاكرة kv. إذا كانت القيمة None، فإن ذاكرة kv لا تخضع للتكميم.

global_compression_ratio (`typing.Union[float, NoneType]`، *اختياري*) : نسبة ضغط النموذج كنسبة مئوية من 0 إلى 1

ignore (`typing.Union[typing.list[str], NoneType]`، *اختياري*) : أسماء الطبقات أو أنواعها التي يجب عدم تكميمها، يدعم تعبيرات منتظمة مسبقة بـ 're:'

quant_method (`str`، *اختياري*، القيمة الافتراضية `"compressed-tensors"`) : لا تتجاوز هذا، يجب أن يكون compressed-tensors

run_compressed (`bool`، *اختياري*) : تم إيقاف استخدامه، استخدم `dequantize` بدلاً منه. تأثيره الوحيد هو تعيين `dequantize` إلى نقيضه، أي `run_compressed=False` مما يعني `dequantize=True`.

dequantize (`bool`، *اختياري*، القيمة الافتراضية `False`) : عند تعيين `True`، تُفكّك الأوزان المُكمّمة وتُعاد إلى نوع البيانات الأصلي للنموذج (مثل BF16) عند التحميل، وهو ما تتطلبه عمليات الضبط الدقيق أو حفظ النموذج بنوع بياناته الأصلي. أما عند تعيين `False`، فتُترك الأوزان في شكلها المضغوط، ويتولى compressed-tensors فك ضغطها في أول تمريرة أمامية.

use_optimized_inference (`bool`، *اختياري*، القيمة الافتراضية `False`) : عندما تكون `True`، تحتفظ الطبقات التي تتوفر لدينا نوى (kernels) لها بأوزانها المُكمّمة وتُنفَّذ عبر تلك النوى (حاليًا W8A8 FP8، على CUDA SM89+، أو XPU، أو MPS مع torch >= 2.15). للاستدلال فقط، وخيار اختياري: بدونه، يمر النموذج عبر مسار compressed-tensors المعتاد. يُتجاهل عندما `dequantize=True`.

هذا هو فئة غلاف تتعامل مع خيارات إعدادات التكميم الخاصة بـ compressed-tensors. وهي فئة غلاف حول `compressed_tensors.QuantizationConfig`

#### from_dict[[transformers.CompressedTensorsConfig.from_dict]]

```python
from_dict(config_dict, return_unused_kwargs = False, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1200)

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

config_dict (`dict[str, Any]`) : قاموس سيُستخدم لإنشاء كائن الإعدادات.

return_unused_kwargs (`bool`،*اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم إرجاع قائمة بحجج الكلمات المفتاحية غير المستخدمة أم لا. يُستخدم في طريقة `from_pretrained` داخل `PreTrainedModel`.

kwargs (`dict[str, Any]`) : معلمات إضافية يتم من خلالها تهيئة كائن الإعدادات.

**يعيد:** `QuantizationConfigMixin`

كائن الإعداد المُستخدَم من تلك المعاملات.

يُحدِث كائن [CompressedTensorsConfig](/docs/transformers/main/ar/main_classes/quantization#transformers.CompressedTensorsConfig) من قاموس Python للمعاملات. اختياريًا، يفكّ أي حُجج من quantization_config المتداخلة

#### to_dict[[transformers.CompressedTensorsConfig.to_dict]]

```python
to_dict()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1225)

إعدادات التكميم التي يجب إضافتها إلى config.json

يسلسل هذه النسخة إلى قاموس بايثون. يُرجع: `dict[str, Any]`: قاموس بجميع السمات التي تُشكّل نسخة هذا الإعداد.

#### to_diff_dict[[transformers.CompressedTensorsConfig.to_diff_dict]]

```python
to_diff_dict()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1240)

**يعيد:** `dict[str, Any]`

قاموس بجميع السمات التي تُشكّل هذه المثيلَة من التهيئة،

يزيل جميع السمات من الإعدادات التي تتوافق مع سمات الإعدادات الافتراضية لتحسين قابلية القراءة، ثم يُسلسلها إلى قاموس بلغة بايثون.

## TorchAoConfig[[transformers.TorchAoConfig]]

#### transformers.TorchAoConfig[[transformers.TorchAoConfig]]

```python
transformers.TorchAoConfig(quant_type: AOBaseConfig, modules_to_not_convert: list | None = None, include_input_output_embeddings: bool = False, untie_embedding_weights: bool = False, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1468)

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

quant_type (`AOBaseConfig`) : كائن من `AOBaseConfig` في torchao يحدد نوع التكميم، مثل `Int4WeightOnlyConfig(group_size=32)`، `Int8WeightOnlyConfig()`، `Int8DynamicActivationInt8WeightConfig()`، `Float8WeightOnlyConfig()`، وما إلى ذلك.

modules_to_not_convert (`list`، *اختياري*، القيمة الافتراضية `None`) : قائمة الوحدات التي يجب عدم تكميمها، وهو مفيد لتكميم النماذج التي تتطلب صراحةً إبقاء بعض وحداتها بدقة الأصلية.

include_input_output_embeddings (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم تضمين التضمين (embedding) في التكميم أم لا، وسيتم أيضًا إزالة التضمين المدخل من قائمة module_not_to_convert إذا تم تعيين هذا العلم.

untie_embedding_weights (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان يجب فك ربط الأوزان عند تكميم أوزان التضمين المدخلي المرتبطة بأوزان أخرى.

فئة الإعدادات لتقنيات التكميم/التخلخل في torchao.

مثال:

```python
from torchao.quantization import Int4WeightOnlyConfig

quantization_config = TorchAoConfig(Int4WeightOnlyConfig(group_size=32))
model = AutoModelForCausalLM.from_pretrained(
    model_id, device_map="cuda", torch_dtype=torch.bfloat16, quantization_config=quantization_config
)
```

#### from_dict[[transformers.TorchAoConfig.from_dict]]

```python
from_dict(config_dict, return_unused_kwargs = False, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1551)

إنشاء التهيئة من قاموس.

#### get_apply_tensor_subclass[[transformers.TorchAoConfig.get_apply_tensor_subclass]]

```python
get_apply_tensor_subclass()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1537)

إرجاع إعدادات التكميم التي يجب تطبيقها.

#### post_init[[transformers.TorchAoConfig.post_init]]

```python
post_init()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1519)

تحقق من الإعدادات وتحديد القيم الافتراضية.

#### to_dict[[transformers.TorchAoConfig.to_dict]]

```python
to_dict()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1541)

تحويل الإعدادات إلى قاموس.

## BitNetQuantConfig[[transformers.BitNetQuantConfig]]

#### transformers.BitNetQuantConfig[[transformers.BitNetQuantConfig]]

```python
transformers.BitNetQuantConfig(modules_to_not_convert: list | None = None, linear_class: str = 'bitlinear', quantization_mode: str = 'offline', use_rms_norm: bool = False, rms_norm_eps: float | None = 1e-06, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1571)

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

modules_to_not_convert (`Optional[List]`، *اختياري*) : اختياريًا، يوفر قائمة بالمسارات الكاملة لمعاملات أوزان `nn.Linear` التي يجب ألا تُكمَّم. القيمة الافتراضية هي None.

linear_class (`str`، *اختياري*، القيمة الافتراضية `"bitlinear"`) : نوع فئة الخطي المستخدمة. يمكن أن يكون `bitlinear` أو `autobitlinear`.

quantization_mode (`str`، *اختياري*، القيمة الافتراضية `"offline"`) : وضع التكميم (quantization) المستخدم. يمكن أن يكون إما `online` أو `offline`. في وضع `online`، تُحسب معاملات تكميم الأوزان ديناميكيًا أثناء كل تمريرة أمامية (forward pass) (على سبيل المثال، بناءً على قيم الأوزان الحالية). وهذا يتيح التكيف مع تغيّرات الأوزان أثناء التدريب (تدريب معياري التكميم - QAT). في وضع `offline`، تُحسب معاملات التكميم مسبقًا *قبل* الاستدلال. ثم تُثبَّت هذه المعاملات وتُحمَّل في النموذج المُكمَّم. وهذا يؤدي عمومًا إلى انخفاض في الحمل التشغيلي (runtime overhead) مقارنةً بالتكميم الفوري (online).

use_rms_norm (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم تطبيق RMSNorm على التفعيلات قبل التكميم. يتوافق هذا مع نهج ورقة BitNet الأصلية المتمثل في تطبيع التفعيلات قبل التكميم/التعبئة.

rms_norm_eps (`float`، *اختياري*، القيمة الافتراضية 1e-06) : قيمة الإيبسلون المستخدمة في طبقة RMSNorm من أجل الاستقرار العددي.

kwargs (`dict[str, Any]`، *اختياري*) : حُجج إضافية بالكلمات المفتاحية قد تُستخدمها محركات التكميم المحددة أو الإصدارات المستقبلية.

فئة الإعدادات لتطبيق تكميم BitNet.

#### post_init[[transformers.BitNetQuantConfig.post_init]]

```python
post_init()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1620)

فاحص الأمان الذي يتحقق من صحة الحُجج

## SpQRConfig[[transformers.SpQRConfig]]

#### transformers.SpQRConfig[[transformers.SpQRConfig]]

```python
transformers.SpQRConfig(bits: int = 3, beta1: int = 16, beta2: int = 16, shapes: dict[str, int] | None = None, modules_to_not_convert: list[str] | None = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1627)

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

bits (`int`، *اختياري*، القيمة الافتراضية 3) : يحدد عدد البتات للأوزان ونقاط الصفر من الدرجة الأولى والمقاييس. حاليًا، يُدعم فقط bits = 3.

beta1 (`int`، *اختياري*، القيمة الافتراضية 16) : عرض بلاطة SpQR. حاليًا، يُدعم فقط beta1 = 16.

beta2 (`int`، *اختياري*، القيمة الافتراضية 16) : ارتفاع بلاطة SpQR. حاليًا، يُدعم فقط beta2 = 16.

shapes (`Optional`, *optional*) : A dictionary holding the shape of each object. We need this because it's impossible to deduce the exact size of the parameters just from bits, beta1, beta2.

modules_to_not_convert (`Optional[list[str]]`، *اختياري*) : اختياريًا، يوفر قائمة بالمسارات الكاملة لمعاملات أوزان `nn.Linear` التي يجب ألا تخضع للكمّية. القيمة الافتراضية هي None.

kwargs (`dict[str, Any]`، *اختياري*) : معلمات إضافية يتم من خلالها تهيئة كائن الإعدادات.

هذه فئة غلاف حول معاملات `spqr`. راجع المنشور الأصلي لمزيد من التفاصيل.

#### post_init[[transformers.SpQRConfig.post_init]]

```python
post_init()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1668)

فاحص الأمان الذي يتحقق من صحة الحُجج - كما يستبدل بعض حُجج نوع NoneType بقيمها الافتراضية.

## FineGrainedFP8Config[[transformers.FineGrainedFP8Config]]

#### transformers.FineGrainedFP8Config[[transformers.FineGrainedFP8Config]]

```python
transformers.FineGrainedFP8Config(activation_scheme: str = 'dynamic', weight_block_size: tuple = (128, 128), dequantize: bool = False, modules_to_not_convert: list | None = None, modules_to_convert: list | None = None, scale_fmt: str = 'float', expert_dtype: str = 'fp8', **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1690)

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

activation_scheme (`str`، *اختياري*، القيمة الافتراضية هي `"dynamic"`) : المخطط المستخدم للتفعيل، والمخطط الافتراضي والوحيد المدعوم حاليًا هو "dynamic".

weight_block_size (`typing.tuple[int, int]`، *اختياري*، القيمة الافتراضية هي `(128, 128)`) : حجم كتل الأوزان للكمّية، والقيمة الافتراضية هي (128, 128).

dequantize (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم إلغاء تكميم النموذج أثناء التحميل.

modules_to_not_convert (`list`، *اختياري*) : قائمة بأسماء الوحدات التي يجب ألا تُحوَّل أثناء التكميم.

modules_to_convert (`list`، *اختياري*) : قائمة بأسماء وحدات إضافية، مثل جداول التضمين، التي يجب تحويلها أثناء التكميم.

scale_fmt (`str`، *اختياري*، القيمة الافتراضية `"float"`) : نوع التخزين (dtype) لمقاييس الأوزان لكل كتلة: `"float"` (fp32، بأسلوب V3) أو `"ue8m0"` (بايت واحد `torch.float8_e8m0fnu`، بأسلوب V4).

expert_dtype (`str`، *اختياري*، القيمة الافتراضية `"fp8"`) : صيغة أوزان خبراء MoE: `"fp8"`، أو `"fp4"` لخبراء FP4 المعبّئين في DeepSeek-V4.

FineGrainedFP8Config هي فئة إعدادات للكمّية الدقيقة (fine-grained) بصيغة FP8، وتُستخدم بشكل رئيسي لنماذج deepseek.

#### post_init[[transformers.FineGrainedFP8Config.post_init]]

```python
post_init()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1737)

فاحص الأمان الذي يتحقق من صحة الحُجج

## QuarkConfig[[transformers.QuarkConfig]]

#### transformers.QuarkConfig[[transformers.QuarkConfig]]

```python
transformers.QuarkConfig(**kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1757)

## FourOverSixConfig[[transformers.FourOverSixConfig]]

#### transformers.FourOverSixConfig[[transformers.FourOverSixConfig]]

```python
transformers.FourOverSixConfig(activation_dtype: str | None = None, activation_scale_rule: str | None = None, dtype: str = 'nvfp4', gradient_dtype: str | None = None, gradient_scale_rule: str | None = None, keep_master_weights: bool = False, matmul_backend: str | None = None, output_dtype: str | None = 'bfloat16', quantize_backend: str | None = None, scale_rule: str = 'mse', weight_dtype: str | None = None, weight_scale_2d: bool = False, weight_scale_rule: str | None = None, module_config_overrides: dict[str, dict[str, typing.Any]] | None = None, modules_to_not_convert: list[str] | None = ['lm_head'], **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1877)

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

activation_dtype (`str`، *اختياري*) : نوع البيانات المستخدم عند تكميم تensors التنشيط. إذا لم يُقدَّم، يُستخدم `dtype`.

activation_scale_rule (`str`، *اختياري*) : قاعدة التوسيع المستخدمة عند اختيار مقياس للكتل في متجهات التنشيط. إذا لم يُقدَّم، يُستخدم `scale_rule`.

dtype (`str`، الافتراضي "nvfp4"، *اختياري*، الافتراضي `"nvfp4"`) : نوع البيانات المستخدم لأوزان الطبقة والتفعيلات والمُتجهات. يمكن أن يكون `"nvfp4"` أو `"mxfp4"`.

gradient_dtype (`str`, *اختياري*) : نوع البيانات المستخدم عند تكميم تدرجات المتجهات. إذا لم يُقدَّم، يُستخدم `dtype`.

gradient_scale_rule (`str`، *اختياري*) : قاعدة التوسيع المستخدمة عند اختيار مقياس للكتل في متجهات التدرج. إذا لم يتم تقديمها، يُستخدم `scale_rule`.

keep_master_weights (`bool`، الافتراضي False، *اختياري*، الافتراضي `False`) : ما إذا كان يجب الاحتفاظ بالأوزان الرئيسية. إذا كان `True`، تُحفظ الأوزان عالية الدقة في جميع الأوقات، وتتم عملية التكميم للأوزان بشكل مباشر في كل تمريرة أمامية. وهذا مفيد للتدريب المُكمَّم.

matmul_backend (`str`، *اختياري*) : الخلفية المستخدمة لعمليات ضرب المصفوفات. يمكن أن تكون `"cutlass"` أو `"pytorch"`. إذا لم يتم تقديمها، فسيتم استخدام CUTLASS إذا كان متاحًا، وإلا فسيتم استخدام PyTorch.

output_dtype (`str`، *اختياري*، القيمة الافتراضية `"bfloat16"`) : نوع البيانات المستخدم لمخرجات الطبقة. يمكن أن يكون `"bfloat16"` أو `"float16"`.

quantize_backend (`str`, *اختياري*) : الخلفية (backend) المستخدمة للتكميم. يمكن أن تكون `"cuda"` أو `"triton"` أو `"pytorch"`. إذا لم يتم تقديمها، فسيتم اختيار الخلفية الأسرع بناءً على بيئتك، وبناءً على الخيارات المدعومة من قبل كل خلفية. عادةً، تُستخدم `"cuda"` للاستدلال (inference)، وتُستخدم `"triton"` للتدريب، وتُستخدم `"pytorch"` على الأجهزة غير الداعمة لـ CUDA.

scale_rule (`str`، الافتراضي "mse"، *اختياري*، الافتراضي `"mse"`) : القاعدة المستخدمة عند اختيار مقاييس الكتل. يمكن أن تكون `"mse"` أو `"mae"` أو `"abs_max"` لـ Four Over Six، أو `"static_6"` للكمّية الافتراضية NVFP4، أو `"static_4"` لتقريب جميع الكتل إلى قيمة قصوى تبلغ 4.

weight_dtype (`str`، *اختياري*) : نوع البيانات المستخدم عند تكميم مصفوفات الأوزان. إذا لم يُقدَّم، يُستخدم `dtype`.

weight_scale_2d (`bool`، الافتراضي False، *اختياري*، الافتراضي `False`) : ما إذا كان يجب حساب عوامل المقياس على متجهات الأوزان في كتل ثنائية الأبعاد. ينبغي تنفيذ ذلك أثناء التدريب.

weight_scale_rule (`str`, *اختياري*) : قاعدة التوسيع المستخدمة عند اختيار مقياس للكتل في متجهات الأوزان. إذا لم تُقدَّم، يُستخدم `scale_rule`.

module_config_overrides (`dict[str, dict[str, Any]]`, *اختياري*) : قاموس لتجاوزات الإعدادات الخاصة بكل وحدة. يجب أن تكون المفاتيح أسماء الوحدات، وأن تكون القيم قواميس تحتوي على إعدادات التكميم الخاصة بتلك الوحدة. يمكن استخدام هذا لتجاوز الإعدادات الافتراضية لوحدات محددة.

modules_to_not_convert (`list[str]`، *اختياري*، الافتراضي `['lm_head']`) : قائمة الوحدات التي يجب استبعادها من التكميم. افتراضيًا، يتم استبعاد `lm_head`.

هذه فئة غلاف تحتوي على جميع خيارات التكميم باستخدام `fouroversix`. باختصار، Four Over Six هو تعديل على تكميم NVFP4 يقوم بتقييم القيمة الأكبر في كل كتلة من 16 قيمة FP4 بشكل تكيفي إلى 4 أو 6. اختيار مقياس 6 يستخدم النطاق الكامل لقيم FP4، بينما يسمح اختيار مقياس 4 بتوزيع أكثر تجانساً لخطأ التكميم. راجع المنشور الأصلي لمزيد من التفاصيل: https://arxiv.org/abs/2512.02010.

## FPQuantConfig[[transformers.FPQuantConfig]]

#### transformers.FPQuantConfig[[transformers.FPQuantConfig]]

```python
transformers.FPQuantConfig(forward_dtype: str = 'nvfp4', forward_method: str = 'abs_max', backward_dtype: str = 'bf16', store_master_weights: bool = False, hadamard_group_size: int | None = None, pseudoquantization: bool = False, transform_init: str = 'hadamard', modules_to_not_convert: list[str] | None = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1379)

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

forward_dtype (`str`، *اختياري*، القيمة الافتراضية `"nvfp4"`) : نوع البيانات (dtype) المستخدم في عملية المرور الأمامي.

forward_method (`str`، *اختياري*، القيمة الافتراضية `"abs_max"`) : التوسيع المستخدم في المرور الأمامي. يمكن أن يكون `"abs_max"` أو `"quest"`. `"abs_max"` أفضل لـ PTQ، بينما `"quest"` أفضل لـ QAT.

backward_dtype (`str`، *اختياري*، القيمة الافتراضية `"bf16"`) : نوع البيانات (dtype) المستخدم في عملية الرجوع الخلفي (backward pass).

store_master_weights (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم تخزين الأوزان الرئيسية. مطلوب لتطبيق QAT على أوزان الطبقات.

hadamard_group_size (`int`, *اختياري*) : حجم المجموعة لتحويل هادامارد قبل التكميم لـ`"quest"`، وهو يطابق حجم مجموعة MXFP4 (32). إذا كانت `None`، فسيتم ضبطها على 16 لـ`"nvfp4"` وعلى 32 لـ`"mxfp4"`.

pseudoquantization (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم استخدام التكميم الوهمي المبني على Triton. إلزامي للوحدات المعالجة الرسومية غير Blackwell. لا يوفر أي تسريع. لأغراض تصحيح الأخطاء.

transform_init (`str`، *اختياري*، القيمة الافتراضية `"hadamard"`) : طريقة تهيئة مصفوفة ما قبل المعالجة. يمكن أن تكون `"hadamard"` أو `"identity"` أو `"gsr"`.

modules_to_not_convert (`list`، *اختياري*) : قائمة الوحدات التي يجب عدم تكميمها، وهي مفيدة لتكميم النماذج التي تتطلب صراحةً إبقاء بعض وحداتها بدقة الأصلية.

FPQuantConfig هي فئة إعدادات للكمّية باستخدام طريقة FPQuant.

#### post_init[[transformers.FPQuantConfig.post_init]]

```python
post_init()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1426)

فاحص الأمان الذي يتحقق من صحة الحُجج - كما يستبدل بعض حُجج نوع NoneType بقيمها الافتراضية.

## AutoRoundConfig[[transformers.AutoRoundConfig]]

#### transformers.AutoRoundConfig[[transformers.AutoRoundConfig]]

```python
transformers.AutoRoundConfig(bits: int = 4, group_size: int = 128, sym: bool = True, backend: str = 'auto', **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L208)

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

bits (`int`، *اختياري*، القيمة الافتراضية 4) : عدد البتات التي سيتم التكميم إليها، والأرقام المدعومة هي (2، 3، 4، 5، 6، 7، 8).

group_size (`int`، *اختياري*، القيمة الافتراضية 128) : قيمة حجم المجموعة

sym (`bool`، *اختياري*، القيمة الافتراضية `True`) : هل التكميم متماثل أم لا

backend (`str`، *اختياري*، القيمة الافتراضية `"auto"`) : واجهة الاستدلال. بشكل افتراضي، يختار AutoRound واجهة متوافقة بناءً على الجهاز وإعدادات التكميم والمكتبات المثبتة. راجع [تحديد واجهة الاستدلال](https://github.com/intel/auto-round/blob/main/docs/step_by_step.md#specify-inference-backend) لمعرفة جميع خيارات الواجهات.

هذه فئة غلاف (wrapper class) تجمع جميع الخصائص والميزات الممكنة التي يمكنك التعامل معها في نموذج تم تحميله باستخدام كميّة AutoRound.

#### post_init[[transformers.AutoRoundConfig.post_init]]

```python
post_init()
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L239)

فاحص أمان يتحقق من صحة الحُجج.

## SinqConfig[[transformers.SinqConfig]]

#### transformers.SinqConfig[[transformers.SinqConfig]]

```python
transformers.SinqConfig(nbits: int = 4, group_size: int = 64, tiling_mode: str = '1D', method: str = 'sinq', modules_to_not_convert: list[str] | None = None, **kwargs: Any)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L1972)

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

nbits (`int`، الافتراضي 4) : عدد بتات التكميم للأوزان.

group_size (`int`، الافتراضي 64) : حجم المجموعة المستخدم في تكميم أوزان SINQ (يجب أن يكون مضاعفاً للعدد 8).

tiling_mode (`str`، الافتراضي "1D") : وضع التقطيع لـ SINQ (عادةً "1D"؛ و"2D" إذا كان مدعومًا في واجهة الخلفية الخاصة بك).

method (`str`، الافتراضي "sinq") : "sinq" – SINQ بدون معايرة للوزن فقط "asinq" – A-SINQ (واعٍ بالنشاط)، غير مدعوم في Hugging Face. يُرجى الرجوع إلى مستودع SINQ الرسمي.

modules_to_not_convert (`list[str]`، *اختياري*) : قائمة بأسماء الوحدات/بادئاتها التي يجب إبقاؤها بدقة كاملة.

- ****kwargs** : حُجج إضافية من المستخدم (تُحفظ في `_extra_kwargs` لأغراض الإرجاع).

إعدادات التكميم لـ SINQ / A-SINQ.

مرر هذا إلى:

AutoModel.from_pretrained(..., quantization_config=SinqConfig(...))

## GgufConfig[[transformers.GgufConfig]]

#### transformers.GgufConfig[[transformers.GgufConfig]]

```python
transformers.GgufConfig(gguf_file: str | None = None, dequantize: bool = False, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/utils/quantization_config.py#L2095)

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

gguf_file (`str`، *اختياري*) : المسار إلى ملف `.gguf` الذي يحتوي على الأوزان. يمكن تركه فارغًا إذا تم تسميته عبر `from_pretrained(..., gguf_file=...)`، حيث يتم ملؤه تلقائيًا.

dequantize (`bool`، *اختياري*، القيمة الافتراضية `False`) : بدلاً من ذلك، فكّ كل وزن عند التحميل إلى نموذج كثيف عادي. هذا الخيار صحيح دائمًا، لكنه يتنازل عن توفير الذاكرة؛ وهو أيضًا الخيار الاحتياطي التلقائي عندما لا يكون هناك نواة matmul متاحة لأنواع التكميم الخاصة بالملف.

حمّل نقطة تفتيش مُكمّاة بصيغة GGUF مع إبقاء أوزانها داخل كتل GGUF.

