# Mistral

[Mistral](https://huggingface.co/papers/2310.06825) is a 7B parameter language model, available as a pretrained and instruction-tuned variant, focused on balancing the scaling costs of large models with performance and efficient inference. This model uses sliding window attention (SWA) trained with a 8K context length and a fixed cache size to handle longer sequences more effectively. Grouped-query attention (GQA) speeds up inference and reduces memory requirements. Mistral also features a byte-fallback BPE tokenizer to improve token handling and efficiency by ensuring characters are never mapped to out-of-vocabulary tokens.

يمكنك العثور على جميع نقاط التفتيش الأصلية لنموذج Mistral تحت منظمة [Mistral AI_](https://huggingface.co/mistralai).

> [!TIP]
> انقر على نماذج Mistral في الشريط الجانبي الأيمن لمزيد من الأمثلة حول كيفية تطبيق Mistral على مهام لغوية مختلفة.
>
> اضبط `use_kernels=True` في [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لاستبدال الطبقات المدعومة بنوى مُحسَّنة من Hub. راجع [تحميل النوى](../kernel_doc/loading_kernels) لمعرفة المزيد.

يُظهر المثال أدناه كيفية الدردشة مع [Pipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.Pipeline) أو [AutoModel](/docs/transformers/main/ar/model_doc/auto#transformers.AutoModel)، ومن سطر الأوامر.

```python
from transformers import pipeline

messages = [
    {"role": "user", "content": "What is your favourite condiment?"},
    {"role": "assistant", "content": "Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!"},
    {"role": "user", "content": "Do you have mayonnaise recipes?"}
]

chatbot = pipeline("text-generation", model="mistralai/Mistral-7B-Instruct-v0.3", device=0)
chatbot(messages)
```

```python
from transformers import AutoModelForCausalLM, AutoTokenizer

model = AutoModelForCausalLM.from_pretrained("mistralai/Mistral-7B-Instruct-v0.3", attn_implementation="sdpa", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.3")

messages = [
    {"role": "user", "content": "What is your favourite condiment?"},
    {"role": "assistant", "content": "Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!"},
    {"role": "user", "content": "Do you have mayonnaise recipes?"}
]

model_inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)

generated_ids = model.generate(**model_inputs, max_new_tokens=100, do_sample=True)
tokenizer.batch_decode(generated_ids)[0]
"Mayonnaise can be made as follows: (...)"
```

```python
echo -e "My favorite condiment is" | transformers chat mistralai/Mistral-7B-v0.3 --dtype auto --device 0 --attn_implementation flash_attention_2
```

تقلل عملية التكميم العبء على الذاكرة في النماذج الكبيرة من خلال تمثيل الأوزان بدقة أقل. راجع نظرة عامة على [التكميم](../quantization/overview) للاطلاع على المزيد من واجهات التكميم المتاحة.

يستخدم المثال أدناه [bitsandbytes](../quantization/bitsandbytes) لاختزال الأوزان إلى 4 بتات فقط.

```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig

# specify how to quantize the model
quantization_config = BitsAndBytesConfig(
        load_in_4bit=True,
        bnb_4bit_quant_type="nf4",
        bnb_4bit_compute_dtype=torch.float16,
)

model = AutoModelForCausalLM.from_pretrained("mistralai/Mistral-7B-Instruct-v0.3", quantization_config=quantization_config, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.3")

prompt = "My favourite condiment is"

messages = [
    {"role": "user", "content": "What is your favourite condiment?"},
    {"role": "assistant", "content": "Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!"},
    {"role": "user", "content": "Do you have mayonnaise recipes?"}
]

model_inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)

generated_ids = model.generate(**model_inputs, max_new_tokens=100, do_sample=True)
tokenizer.batch_decode(generated_ids)[0]
"The expected output"
```

استخدم [AttentionMaskVisualizer](https://github.com/huggingface/transformers/blob/beb9b5b02246b9b7ee81ddf938f93f44cfeaad19/src/transformers/utils/attention_visualizer.py#L139) لفهم أفضل للرموز التي يمكن للنموذج الانتباه إليها والتي لا يمكنه الانتباه إليها.

```python
from transformers.utils.attention_visualizer import AttentionMaskVisualizer

visualizer = AttentionMaskVisualizer("mistralai/Mistral-7B-Instruct-v0.3")
visualizer("Do you have mayonnaise recipes?")
```

    

## MistralConfig[[transformers.MistralConfig]]

#### transformers.MistralConfig[[transformers.MistralConfig]]

```python
transformers.MistralConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, vocab_size: int = 32000, hidden_size: int = 4096, intermediate_size: int = 14336, num_hidden_layers: int = 32, num_attention_heads: int = 32, num_key_value_heads: int = 8, head_dim: int | None = None, hidden_act: str = 'silu', max_position_embeddings: int = 131072, initializer_range: float = 0.02, rms_norm_eps: float = 1e-06, use_cache: bool = True, pad_token_id: int | None = None, bos_token_id: int | None = 1, eos_token_id: int | list[int] | None = 2, tie_word_embeddings: bool = False, rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = None, sliding_window: int | None = 4096, attention_dropout: float | int = 0.0)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral/configuration_mistral.py#L28)

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

vocab_size (`int`، *اختياري*، القيمة الافتراضية `32000`) : حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة `input_ids`.

hidden_size (`int`، *اختياري*، القيمة الافتراضية `4096`) : بُعد التمثيلات المخفية.

intermediate_size (`int`، *اختياري*، القيمة الافتراضية `14336`) : بُعد تمثيلات MLP.

num_hidden_layers (`int`، *اختياري*، القيمة الافتراضية `32`) : عدد الطبقات المخفية في مُفكِّك Transformer.

num_attention_heads (`int`، *اختياري*، القيمة الافتراضية `32`) : عدد رؤوس الانتباه في كل طبقة انتباه داخل مُفكِّك Transformer.

num_key_value_heads (`int`، *اختياري*، القيمة الافتراضية `8`) : يمثل هذا عدد رؤوس key_value التي يجب استخدامها لتنفيذ Grouped Query Attention. إذا كان `num_key_value_heads=num_attention_heads`، فسيستخدم النموذج Multi Head Attention (MHA)، وإذا كان `num_key_value_heads=1` فسيستخدم النموذج Multi Query Attention (MQA)، وإلا فسيتم استخدام GQA. عند تحويل نقطة تفتيش متعددة الرؤوس إلى نقطة تفتيش GQA، يجب بناء كل رأس key و value ضمن المجموعة عن طريق meanpooling جميع الرؤوس الأصلية داخل تلك المجموعة. لمزيد من التفاصيل، راجعوا [هذا البحث](https://huggingface.co/papers/2305.13245). إذا لم يتم تحديد القيمة، فستتخذ القيمة الافتراضية `num_attention_heads`.

head_dim (`int`، *اختياري*) : بُعد رأس الانتباه. إذا كانت القيمة None، فسيتم افتراض hidden_size // num_attention_heads

hidden_act (`str`، *اختياري*، القيمة الافتراضية `silu`) : دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، `"gelu"`، `"relu"`، `"silu"`، وما إلى ذلك.

max_position_embeddings (`int`، *اختياري*، الافتراضي هو `131072`) : أقصى طول تسلسل قد يُستخدم به هذا النموذج.

initializer_range (`float`، *اختياري*، القيمة الافتراضية `0.02`) : الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.

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

use_cache (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كان `config.is_decoder=True` أو عندما يكون النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط.

pad_token_id (`int`, *اختياري*) : معرّف الرمز (Token id) المستخدم للتعبئة (padding) في المفردات.

bos_token_id (`int`، *اختياري*، القيمة الافتراضية `1`) : معرّف الرمز المستخدم لبدء البث في المفردات.

eos_token_id (`Union[int, list[int]]`، *اختياري*، القيمة الافتراضية `2`) : معرّف الرمز المستخدم لنهاية البث في المفردات.

tie_word_embeddings (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان يجب ربط ترميزات الأوزان وفقاً لخريطة `tied_weights_keys` الخاصة بالنموذج.

rope_parameters (`Union[~modeling_rope_utils.RopeParameters, dict]`، *اختياري*) : قاموس يحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن يحتوي القاموس على قيمة لـ `rope_theta`، وبشكل اختياري معاملات تُستخدم للتوسيع في حال رغبتَ في استخدام RoPE مع `max_position_embeddings` أطول.

sliding_window (`int`، *اختياري*، القيمة الافتراضية `4096`) : حجم نافذة الانتباه النافذة المنزلقة. إذا كانت `None`، فلا تُطبَّق نافذة منزلقة.

attention_dropout (`Union[float, int]`، *اختياري*، القيمة الافتراضية `0.0`) : نسبة الإسقاط (dropout) لاحتمالات الانتباه.

هذه فئة الإعدادات المخزنة لإعدادات نموذج MistralModel. تُستخدم لاستحداث نموذج Mistral وفقًا للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ [mistralai/Mistral-7B-v0.1](https://huggingface.co/mistralai/Mistral-7B-v0.1)

ترث كائنات الإعداد من [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ [PreTrainedConfig](/docs/transformers/main/ar/main_classes/configuration#transformers.PreTrainedConfig) لمزيد من المعلومات.

مثال:

```python
>>> from transformers import MistralModel, MistralConfig

>>> # Initializing a Mistral 7B style configuration
>>> configuration = MistralConfig()

>>> # Initializing a model from the Mistral 7B style configuration
>>> model = MistralModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```

## MistralCommonBackend[[transformers.MistralCommonBackend]]

#### transformers.MistralCommonBackend[[transformers.MistralCommonBackend]]

```python
transformers.MistralCommonBackend(tokenizer_path: str | os.PathLike | pathlib.Path, mode: str | ValidationMode = 'test', model_max_length: int = 1000000000000000019884624838656, padding_side: str = 'left', truncation_side: str = 'right', model_input_names: list[str] | None = None, clean_up_tokenization_spaces: bool = False, **kwargs)
```

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

فئة لتغليف مُجزّئات `mistral-common`.

`mistral-common` هي مكتبة التوكنيزر الرسمية لنماذج Mistral AI. لاستخدامها، تحتاج إلى تثبيتها باستخدام:

```bash
pip install transformers[mistral-common]
```

وإلا فإن مُجزّئ النص يعود إلى تنفيذ Transformers لمُجزّئ النص.

لمزيد من المعلومات حول `mistral-common`، راجع [mistral-common](https://github.com/mistralai/mistral-common).

هذا الصنف هو غلاف حول `mistral_common.tokens.tokenizers.mistral.MistralTokenizer`. يوفر واجهة متوافقة مع Hugging Face لتجزئة النص باستخدام مجزئ mistral-common الرسمي، ويرث من صنف `PreTrainedTokenizerBase`.

إليك الفروقات الرئيسية في السلوك مع فئة `PythonBackend`:

- لا يُدعم زوج من التسلسلات. تم الحفاظ على التوقيع من أجل التوافق، لكن جميع الحُجج المتعلقة بزوج من التسلسلات تُتجاهل. تُعاد قيم الإرجاع للأزواج على أنها `None`.
- لا يُدعم الحجة `is_split_into_words`.
- لا يمكن إضافة رموز جديدة إلى مُجزّئ الرموز. يتم التعامل مع الرموز الخاصة بشكل مختلف في Transformers. في `mistral-common`، لا يتم ترميز الرموز الخاصة مباشرةً أبدًا. وهذا يعني أن: `tokenizer.encode("<s>")` لن يعيد المعرّف الخاص برمز `<s>`. وبدلاً من ذلك، سيعيد قائمة بالمعرّفات المقابلة لتجزئة السلسلة `"<s>"`. لمزيد من المعلومات، راجع [توثيق mistral-common](https://mistralai.github.io/mistral-common/usage/tokenizers/#special-tokens).

إذا كان لديك اقتراحات لتحسين هذه الفئة، فيرجى فتح مشكلة على [مستودع mistral-common على GitHub](https://github.com/mistralai/mistral-common/issues) إذا كانت متعلقة بمجزّئ الرموز، أو على [مستودع Transformers على GitHub](https://github.com/huggingface/transformers/issues) إذا كانت متعلقة بواجهة Hugging Face.

#### add_special_tokens[[transformers.MistralCommonBackend.add_special_tokens]]

```python
add_special_tokens(special_tokens_dict: dict, replace_extra_special_tokens: bool = True)
```

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

لا ينفّذ `MistralCommonBackend` الدالة `add_special_tokens` عمداً.

إذا كنت ترغب في تطبيق هذا السلوك، فيرجى فتح مشكلة في مستودعات `Transformers` أو `mistral-common` للطلب.

#### add_tokens[[transformers.MistralCommonBackend.add_tokens]]

```python
add_tokens(special_tokens_dict: dict, replace_extra_special_tokens: bool = True)
```

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

لا ينفّذ `MistralCommonBackend` الدالة `add_special_tokens` عمداً.

إذا كنت ترغب في تطبيق هذا السلوك، فيرجى فتح مشكلة في مستودعات `Transformers` أو `mistral-common` للطلب.

#### apply_chat_template[[transformers.MistralCommonBackend.apply_chat_template]]

```python
apply_chat_template(conversation: list[dict[str, str]] | list[list[dict[str, str]]], tools: list[dict | collections.abc.Callable] | None = None, add_generation_prompt: bool = False, continue_final_message: bool = False, tokenize: bool = True, padding: bool | str | transformers.utils.generic.PaddingStrategy = False, truncation: bool = False, max_length: int | None = None, return_tensors: str | transformers.utils.generic.TensorType | None = None, return_dict: bool = True, reasoning_effort: ReasoningEffort | None = None, **kwargs)
```

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

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

conversation (Union[List[Dict[str, str]], List[List[Dict[str, str]]]]) : قائمة من القواميس التي تحتوي على مفاتيح "role" و "content"، وتمثل سجل المحادثة حتى الآن.

tools (`List[Union[Dict, Callable]]`، *اختياري*) : قائمة بالأدوات (الدوال القابلة للاستدعاء) التي ستكون متاحة للنموذج. إذا لم يدعم القالب استدعاء الدوال، فلن يكون لهذا الحجة أي تأثير. يجب تمرير كل أداة كمخطط JSON Schema، مع تحديد اسم الأداة ووصفها وأنواع الحجج الخاصة بها. راجد دليلنا حول [قوالب المحادثة](https://huggingface.co/docs/transformers/main/en/chat_templating#automated-function-conversion-for-tool-use) لمزيد من المعلومات.

add_generation_prompt (`bool`، *اختياري*) : هذا الحُجج لا يُحدث أي تغيير في `MistralCommonBackend`. ومع ذلك، لا يمكن استخدامه في الوقت نفسه مع `continue_final_message` للحفاظ على اتساق الواجهة البرمجية. إذا انتهى أي محادثة برسالة من المساعد، فسيُطلق خطأ. في مثل هذه الحالات، استخدم `continue_final_message` بدلاً من ذلك.

continue_final_message (bool, *اختياري*) : إذا تم تعيين هذا، فسيتم تنسيق المحادثة بحيث تكون الرسالة الأخيرة في المحادثة مفتوحة النهاية، دون أي رموز EOS. سيواصل النموذج هذه الرسالة بدلاً من بدء رسالة جديدة. يتيح لك ذلك "تعبئة مسبقة" لجزء من استجابة النموذج. لا يمكن استخدامه في الوقت نفسه مع `add_generation_prompt`.

tokenize (`bool`، القيمة الافتراضية `True`) : ما إذا كان سيتم تحويل المخرجات إلى رموز. إذا كانت `False`، فستكون المخرجات نصًا.

padding (`bool` أو `str` أو [PaddingStrategy](/docs/transformers/main/ar/internal/file_utils#transformers.utils.PaddingStrategy)، *اختياري*، القيمة الافتراضية `False`) : اختيار استراتيجية لحشو التسلسلات المُعادَة (وفقًا لجانب الحشو وفهرس الحشو الخاص بالنموذج) من بين الخيارات التالية: - `True` أو `'longest'`: الحشو حتى أطول تسلسل في الدفعة (أو عدم الحشو إذا تم تقديم تسلسل واحد فقط). - `'max_length'`: الحشو حتى الحد الأقصى للطول المحدد بواسطة الحجة `max_length` أو حتى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. - `False` أو `'do_not_pad'` (الافتراضي): لا يوجد حشو (أي، يمكن إخراج دفعة تحتوي على تسلسلات بطول مختلف).

truncation (`bool`، القيمة الافتراضية `False`) : ما إذا كان يجب اقتطاع التسلسلات عند الحد الأقصى للطول. لا يكون له أي تأثير إذا كانت قيمة tokenize هي `False`.

max_length (`int`، *اختياري*) : الحد الأقصى للطول (بالرموز) المستخدم للتعبئة أو الاقتطاع. لا يؤثر إذا كان tokenize هو `False`. إذا لم يُحدد، فسيتم استخدام خاصية `max_length` الخاصة بمقسّم النص كقيمة افتراضية.

return_tensors (`str` أو [TensorType](/docs/transformers/main/ar/internal/file_utils#transformers.TensorType)، *اختياري*) : إذا تم تعيينه، فسيُرجع كائنات tensors لإطار عمل معين. لا يؤثر إذا كان tokenize هو `False`. القيم المقبولة هي: - `'pt'`: يُرجع كائنات `torch.Tensor` من PyTorch.

return_dict (`bool`، القيمة الافتراضية `False`) : ما إذا كان يجب إرجاع قاموس بإخراجات مُسماة. لا يؤثر إذا كان tokenize هو `False`. إذا احتوى محادثة واحدة على الأقل على صورة، فسيتم إرجاع قيم بكسلها في المفتاح `pixel_values` وأحجام الصور في المفتاح `image_sizes`.

reasoning_effort (`ReasoningEffort`، *اختياري*) : جهد الاستدلال الذي سيُستخدم لإكمال المحادثة في النماذج التي تدعمه. القيم الممكنة هي: - `ReasoningEffort.none`: لن يستخدم النموذج الاستدلال. - `ReasoningEffort.high`: سيستخدم النموذج نهج الاستدلال. إذا لم يُحدد، فسيتم استخدام جهد الاستدلال الافتراضي.

kwargs (حجج كلمات مفتاحية إضافية، *اختيارية*) : حجج إضافية تُمرَّر إلى طريقة `ChatCompletionRequest.from_openai` في مكتبة mistral-common.

**يعيد:** `Union[str, list[int], list[str], list[list[int]], BatchEncoding]`

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

يحوّل قائمة من القواميس التي تحتوي على مفاتيح `"role"` و`"content"` إلى قائمة من معرّفات الرموز.

#### batch_decode[[transformers.MistralCommonBackend.batch_decode]]

```python
batch_decode(sequences: typing.Union[list[int], list[list[int]], numpy.ndarray, ForwardRef('torch.Tensor')], skip_special_tokens: bool = False, clean_up_tokenization_spaces: bool | None = None, **kwargs)
```

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

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

sequences (`Union[list[int], list[list[int]], np.ndarray, torch.Tensor]`) : قائمة معرّفات المدخلات المُرمّزة. يمكن الحصول عليها باستخدام طريقة `__call__`.

skip_special_tokens (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان يجب إزالة الرموز الخاصة أثناء فك الترميز أم لا.

clean_up_tokenization_spaces (`bool`، *اختياري*) : ما إذا كان سيتم تنظيف مسافات الترميز أم لا. إذا كانت `None`، فسيتم افتراض `self.clean_up_tokenization_spaces`.

kwargs (حجج كلمات مفتاحية إضافية، *اختيارية*) : غير مدعومة بواسطة `MistralCommonBackend.batch_decode`. سيُطلق خطأً إذا تم استخدامها.

**يعيد:** `list[str]`

قائمة الجمل المُفكَّكة.

تحويل قائمة من قوائم معرّفات الرموز إلى قائمة من النصوص عن طريق استدعاء decode.

تُوفَّر هذه الطريقة من أجل التوافق مع الإصدارات السابقة. تتعامل طريقة `decode` الآن مع المدخلات المجمعة بشكل أصلي، لذا يمكنك استخدام `decode` مباشرة بدلاً من `batch_decode`.

#### build_inputs_with_special_tokens[[transformers.MistralCommonBackend.build_inputs_with_special_tokens]]

```python
build_inputs_with_special_tokens(token_ids_0: list, token_ids_1: None = None)
```

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

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

token_ids_0 (`list[int]`) : قائمة بالمعرّفات التي ستُضاف إليها الرموز الخاصة.

token_ids_1 (`None`، *اختياري*) : None، يُحافظ عليه لمطابقة توقيع Transformers.

**يعيد:** `list[int]`

قائمة معرّفات الإدخال مع الرموز الخاصة المناسبة.

إنشاء مدخلات النموذج من تسلسل عن طريق إضافة الرموز الخاصة.

تقوم هذه الطريقة ببناء المدخلات ديناميكيًا بناءً على `mode` الخاص بمجزّئ النص:
- `"test"`: seq0 [EOS]
- `"finetuning"`: [BOS] seq0

#### convert_added_tokens[[transformers.MistralCommonBackend.convert_added_tokens]]

```python
convert_added_tokens(obj: tokenizers.AddedToken | typing.Any, save: bool = False, add_type_field: bool = True)
```

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

لا ينفّذ `MistralCommonBackend` الدالة `convert_added_tokens` عمداً.

إذا كنت ترغب في تطبيق هذا السلوك، فيرجى فتح مشكلة في مستودعات `Transformers` أو `mistral-common` للطلب.

#### create_token_type_ids_from_sequences[[transformers.MistralCommonBackend.create_token_type_ids_from_sequences]]

```python
create_token_type_ids_from_sequences(token_ids_0: list, token_ids_1: None = None)
```

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

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

token_ids_0 (`list[int]`) : قائمة من المعرّفات.

token_ids_1 (`None`، *اختياري*) : None، يُحافظ عليه لمطابقة توقيع Transformers.

**يعيد:** `list[int]`

معرّفات أنواع الرموز (Token type IDs) وفقًا للنمط المُهيّأ.

أنشئ قناعًا من الأصفار من معرّفات الرموز مع إضافة الرموز الخاصة.

تم الحفاظ عليه ليتوافق مع تنفيذ Transformers.

#### فك الترميز[[transformers.MistralCommonBackend.decode]]

```python
decode(token_ids: typing.Union[int, list[int], list[list[int]], numpy.ndarray, ForwardRef('torch.Tensor')], skip_special_tokens: bool = False, clean_up_tokenization_spaces: bool | None = None, **kwargs)
```

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

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

token_ids (`Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]`) : تسلسل واحد أو دفعة (قائمة من التسلسلات) من معرّفات المدخلات المُرمّزة. يمكن الحصول عليها باستخدام طريقة `__call__`.

skip_special_tokens (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان يجب إزالة الرموز الخاصة أثناء فك الترميز أم لا.

clean_up_tokenization_spaces (`bool`، *اختياري*) : ما إذا كان سيتم تنظيف مسافات الترميز أم لا. إذا كانت `None`، فسيتم افتراض `self.clean_up_tokenization_spaces`.

kwargs (حجج كلمات مفتاحية إضافية، *اختيارية*) : غير مدعومة بواسطة `MistralCommonBackend.decode`. سيُطلق خطأً في حال استخدامها.

**يعيد:** `Union[str, list[str]]`

النص المُفكَّك تسلسل واحد، أو قائمة من النصوص المُفكَّكة لدفعة من التسلسلات.

يحوّل تسلسلًا من المعرّفات في نص، باستخدام مُجزّئ الرموز (tokenizer) وقاموس الرموز، مع خيارات لإزالة الرموز الخاصة وتنظيف مسافات تجزئة الرموز.

#### encode[[transformers.MistralCommonBackend.encode]]

```python
encode(text: str | list[int], text_pair: None = None, add_special_tokens: bool = True, padding: bool | str | transformers.utils.generic.PaddingStrategy = False, truncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy | None = None, max_length: int | None = None, stride: int = 0, pad_to_multiple_of: int | None = None, padding_side: str | None = None, return_tensors: str | transformers.utils.generic.TensorType | None = None, verbose: bool = True, return_offsets_mapping: typing.Literal[False] = False, split_special_tokens: typing.Literal[False] = False, **kwargs)
```

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

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

text (`str` أو `list[int]`) : التسلسل الأول الذي سيتم ترميزه. يمكن أن يكون نصًا أو قائمة من الأعداد الصحيحة (معرفات النص المُرمَّز).

text_pair (`None`, *اختياري*) : لا يدعمه `MistralCommonBackend.encode`. تم إبقاؤه لمطابقة توقيع `PreTrainedTokenizerBase.encode`.

add_special_tokens (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إضافة الرموز الخاصة عند ترميز التسلسلات أم لا. سيستخدم هذا الدالة الأساسية `PretrainedTokenizerBase.build_inputs_with_special_tokens`، التي تُعرّف الرموز التي تُضاف تلقائيًا إلى معرّفات الإدخال. يكون هذا مفيدًا إذا كنت ترغب في إضافة رموز `bos` أو `eos` تلقائيًا. عند تحميل Tokenizer في وضع `finetuning`، فإنه يضيف كلًا من `bos` و`eos`. وإلا، في وضع "test"، فإنه يضيف `bos` فقط.

padding (`bool` أو `str` أو [PaddingStrategy](/docs/transformers/main/ar/internal/file_utils#transformers.utils.PaddingStrategy)، *اختياري*، القيمة الافتراضية هي `False`) : يُفعّل التحكم في الحشو. يقبل القيم التالية:  - `True` أو `'longest'`: حشو حتى أطول تسلسل في الدفعة (أو بدون حشو إذا تم تقديم تسلسل واحد فقط). - `'max_length'`: حشو حتى الحد الأقصى للطول المحدد بواسطة الحجة `max_length` أو حتى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. - `False` أو `'do_not_pad'` (الافتراضي): بدون حشو (أي، يمكنه إخراج دفعة تحتوي على تسلسلات بطول مختلف).

truncation (`bool` أو `str` أو [TruncationStrategy](/docs/transformers/main/ar/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy)، *اختياري*، القيمة الافتراضية `False`) : يُفعّل التحكم في القص. يقبل القيم التالية: - `True` أو `'longest_first'`: يُقصّ النص إلى الحد الأقصى للطول المحدد عبر الحجة `max_length` أو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. - `False` أو `'do_not_truncate'` (الافتراضي): لا يتم القص (أي، يمكن إخراج دفعة تحتوي على تسلسلات أطول من الحد الأقصى المقبول لحجم الإدخال للنموذج).

max_length (`int`, *اختياري*) : يتحكم في الحد الأقصى للطول الذي سيستخدمه أحد معاملات القص/الحشو. إذا تُرك غير مضبوط أو ضُبط على `None`، فسيتم استخدام الحد الأقصى للطول المحدد مسبقًا للنموذج إذا كان أحد معاملات القص/الحشو يتطلب حدًا أقصى للطول. إذا لم يكن للنموذج حد أقصى محدد لطول الإدخال (مثل XLNet)، فسيتم تعطيل القص/الحشو إلى حد أقصى للطول.

stride (`int`، *اختياري*، القيمة الافتراضية 0) : إذا تم تعيينه إلى رقم مع `max_length`، فإن الرموز الزائدة المُعاد عند `return_overflowing_tokens=True` ستحتوي على بعض الرموز من نهاية التسلسل المُقتطع المُعاد، لتوفير بعض التداخل بين التسلسلات المُقتطعة والتسلسلات الزائدة. تحدد قيمة هذا الحجة عدد الرموز المتداخلة.

pad_to_multiple_of (`int`, *اختياري*) : إذا تم ضبطه، سيتم توسيط التسلسل إلى مضاعف للقيمة المُقدَّمة. يتطلب تفعيل `padding`. وهذا مفيد بشكل خاص لتمكين استخدام نوى التENSOR على أجهزة NVIDIA التي تتمتع بقابلية حسابية `>= 7.5` (Volta).

padding_side (`str`، *اختياري*) : الجانب الذي يجب تطبيق الحشو عليه في النموذج. يجب اختياره من بين ['right', 'left']. القيمة الافتراضية تُستخرج من سمة الفئة التي تحمل الاسم نفسه.

return_tensors (`str` أو [TensorType](/docs/transformers/main/ar/internal/file_utils#transformers.TensorType)، *اختياري*) : إذا تم تعيينه، فسيُرجع كائنات tensors بدلاً من قائمة من الأعداد الصحيحة في بايثون. القيم المقبولة هي: - `'pt'`: يُرجع كائنات `torch.Tensor` في PyTorch.

- ****kwargs** : غير مدعومة بواسطة `MistralCommonBackend.encode`. ستُسبب خطأً في حال استخدامها.

**يعيد:** `list[int]`، `torch.Tensor`

المعرّفات المُرمّزة للنص.

يحوّل نصًا إلى تسلسل من المعرّفات (أعداد صحيحة)، باستخدام مُجزّئ النص (tokenizer) والمفردات (vocabulary).

#### from_pretrained[[transformers.MistralCommonBackend.from_pretrained]]

```python
from_pretrained(pretrained_model_name_or_path: str | os.PathLike, *init_inputs, mode: str | ValidationMode = 'test', cache_dir: str | os.PathLike | None = None, force_download: bool = False, local_files_only: bool = False, token: str | bool | None = None, revision: str = 'main', model_max_length: int = 1000000000000000019884624838656, padding_side: str = 'left', truncation_side: str = 'right', model_input_names: list[str] | None = None, clean_up_tokenization_spaces: bool = False, **kwargs)
```

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

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

pretrained_model_name_or_path (`str` أو `os.PathLike`) : يمكن أن يكون أحد ما يلي: - نص، وهو *معرف النموذج* لمُقسِّم محدد مسبقًا مستضاف داخل مستودع نموذج على huggingface.co. - مسار إلى *مجلد* يحتوي على إعدادات المُقسِّم، على سبيل المثال تلك المحفوظة باستخدام طريقة `MistralCommonBackend.tokenization_mistral_common.save_pretrained`، مثل `./my_model_directory/`.

mode (`Union[str, ValidationMode]`، *اختياري*، القيمة الافتراضية `ValidationMode.test`) : وضع التحقق الخاص بمحوّل الرموز `MistralTokenizer`. القيم الممكنة هي: - `"finetuning"` أو `ValidationMode.finetuning`: وضع الضبط الدقيق. - `"test"` أو `ValidationMode.test`: وضع الاختبار. يغيّر هذا الوضع كيفية تحقّق المحوّل من المدخلات وتجهيز الطلب للنموذج.

cache_dir (`str` أو `os.PathLike`، *اختياري*) : المسار إلى مجلد يجب تخزين ملفات مفردات المُجزِّئ المُعرَّفة مسبقًا المُحمَّلة فيه إذا لم يُستخدم المجلد المؤقت القياسي.

force_download (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان يجب إجبار إعادة تنزيل ملفات المفردات (vocabulary) وتجاوز النسخ المخزنة مؤقتًا في حال وجودها.

token (`str` أو *bool*، *اختياري*) : الرمز الذي يُستخدم كتوكن للمصادقة عبر HTTP bearer للملفات البعيدة. إذا كان `True`، فسيتم استخدام التوكن الذي تم إنشاؤه عند تشغيل `hf auth login` (المخزَّن في `~/.huggingface`).

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

revision (`str`، *اختياري*، القيمة الافتراضية `"main"`) : إصدار النموذج المحدد الذي سيتم استخدامه. يمكن أن يكون اسم فرع، أو اسم وسم، أو معرف التزامن، نظرًا لأننا نستخدم نظامًا قائمًا على git لتخزين النماذج والمخرجات الأخرى على huggingface.co، لذا يمكن أن يكون `revision` أي معرّف مسموح به بواسطة git.

max_length (`int`, *اختياري*) : يتحكم في الحد الأقصى للطول الذي سيستخدمه أحد معاملات القص/الحشو. إذا تُرك غير مضبوط أو ضُبط على `None`، فسيتم استخدام الحد الأقصى للطول المحدد مسبقًا للنموذج إذا كان أحد معاملات القص/الحشو يتطلب حدًا أقصى للطول. إذا لم يكن للنموذج حد أقصى محدد لطول الإدخال (مثل XLNet)، فسيتم تعطيل القص/الحشو إلى حد أقصى للطول.

padding_side (`str`، *اختياري*، القيمة الافتراضية `"left"`) : الجانب الذي يجب تطبيق الحشو عليه في النموذج. يجب اختياره من بين ['right', 'left']. يتم اختيار القيمة الافتراضية من سمة الفئة التي تحمل الاسم نفسه.

truncation_side (`str`، *اختياري*، القيمة الافتراضية `"right"`) : الجانب الذي يجب تطبيق القص عليه في النموذج. يجب اختياره من بين ['right', 'left'].

model_input_names (`List[str]`، *اختياري*) : قائمة المدخلات التي يقبلها المسار الأمامي للنموذج (مثل `"token_type_ids"` أو `"attention_mask"`). يتم اختيار القيمة الافتراضية من سمة الفئة التي تحمل الاسم نفسه.

clean_up_tokenization_spaces (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان يجب على النموذج تنظيف المسافات التي أُضيفت عند تقسيم النص المدخل أثناء عملية الترميز.

kwargs (حجج كلمات مفتاحية إضافية، *اختيارية*) : غير مدعومة بواسطة `MistralCommonBackend.from_pretrained`. سيُطلق خطأً إذا تم استخدامها.

أنشئ كائن `MistralCommonBackend` من مُجزِّئ (tokenizer) مُعرَّف مسبقًا.

#### get_chat_template[[transformers.MistralCommonBackend.get_chat_template]]

```python
get_chat_template(chat_template: str | None = None, tools: list[dict] | None = None)
```

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

لا ينفّذ `MistralCommonBackend` الدالة `get_chat_template` عمداً، لأن `mistral-common` لا يستخدم قوالب المحادثة.

#### get_special_tokens_mask[[transformers.MistralCommonBackend.get_special_tokens_mask]]

```python
get_special_tokens_mask(token_ids_0: list, token_ids_1: None = None, already_has_special_tokens: bool = False)
```

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

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

token_ids_0 (`list[int]`) : قائمة معرّفات التسلسل.

token_ids_1 (`None`، *اختياري*) : None، ويُحافظ عليه لمطابقة تنفيذ Transformers.

already_has_special_tokens (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كانت قائمة الرموز مُنسّقة مسبقًا برموز خاصة للنموذج أم لا.

**يعيد:** قائمة من الأعداد الصحيحة في المدى [0, 1]

1 لرمز خاص، 0 لرمز التسلسل.

يسترجع معرّفات التسلسلات من قائمة الرموز التي لم تُضف إليها رموز خاصة. يُستدعى هذا الأسلوب عند إضافة الرموز الخاصة باستخدام أساليب `prepare_for_model` أو `encode_plus` في مُجزّئ النص.

#### get_vocab[[transformers.MistralCommonBackend.get_vocab]]

```python
get_vocab()
```

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

**يعيد:** `Dict[str, int]`

المفردات.

يعيد المفردات على شكل قاموس يربط كل رمز بمؤشره.

هذا تحويل يفقد بعض البيانات. قد يكون هناك عدة معرّفات رموز (token ids) تُفكّك إلى نفس النص بسبب تحويل تسلسلات بايت UTF-8 الجزئية إلى �.

#### num_special_tokens_to_add[[transformers.MistralCommonBackend.num_special_tokens_to_add]]

```python
num_special_tokens_to_add(pair: typing.Literal[False] = False)
```

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

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

pair (`Literal[False]`، *اختياري*) : False، يُحافظ عليه لمطابقة توقيع Transformer.

**يعيد:** `int`

عدد الرموز الخاصة المضافة إلى التسلسلات.

يعيد عدد الرموز المضافة عند ترميز تسلسل مع الرموز الخاصة.

يقوم هذا بتشفير مدخل وهمي والتحقق من عدد الرموز المضافة، وبالتالي فهو غير فعّال. لا تضع هذا داخل حلقة التدريب الخاصة بك.

#### prepare_for_model[[transformers.MistralCommonBackend.prepare_for_model]]

```python
prepare_for_model(ids: list, pair_ids: None = None, add_special_tokens: bool = True, padding: bool | str | transformers.utils.generic.PaddingStrategy = False, truncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy | None = None, max_length: int | None = None, stride: int = 0, pad_to_multiple_of: int | None = None, padding_side: str | None = None, return_tensors: str | transformers.utils.generic.TensorType | None = None, return_token_type_ids: bool | None = None, return_attention_mask: bool | None = None, return_overflowing_tokens: bool = False, return_special_tokens_mask: bool = False, return_length: bool = False, verbose: bool = True, prepend_batch_axis: bool = False, return_offsets_mapping: typing.Literal[False] = False, split_special_tokens: typing.Literal[False] = False, **kwargs)
```

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

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

ids (`list[int]`) : معرّفات المدخلات المُرمّزة للتسلسل الأول.

pair_ids (`None`، *اختياري*) : لا يدعمه `MistralCommonBackend`. تم إبقاؤه لمطابقة واجهة `PreTrainedTokenizerBase`.

add_special_tokens (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان يجب إضافة الرموز الخاصة عند ترميز التسلسلات أم لا. سيستخدم هذا الدالة الأساسية `PretrainedTokenizerBase.build_inputs_with_special_tokens`، التي تُعرّف الرموز التي تُضاف تلقائيًا إلى معرّفات الإدخال. يكون هذا مفيدًا إذا كنت ترغب في إضافة رموز `bos` أو `eos` تلقائيًا. عند تحميل Tokenizer في وضع `finetuning`، فإنه يضيف كلًا من `bos` و`eos`. وإلا، في وضع "test"، فإنه يضيف `bos` فقط.

padding (`bool` أو `str` أو [PaddingStrategy](/docs/transformers/main/ar/internal/file_utils#transformers.utils.PaddingStrategy)، *اختياري*، القيمة الافتراضية هي `False`) : يُفعّل التحكم في الحشو. يقبل القيم التالية:  - `True` أو `'longest'`: حشو حتى أطول تسلسل في الدفعة (أو بدون حشو إذا تم تقديم تسلسل واحد فقط). - `'max_length'`: حشو حتى الحد الأقصى للطول المحدد بواسطة الحجة `max_length` أو حتى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. - `False` أو `'do_not_pad'` (الافتراضي): بدون حشو (أي، يمكنه إخراج دفعة تحتوي على تسلسلات بطول مختلف).

truncation (`bool` أو `str` أو [TruncationStrategy](/docs/transformers/main/ar/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy)، *اختياري*، القيمة الافتراضية `False`) : يُفعّل التحكم في القص. يقبل القيم التالية: - `True` أو `'longest_first'`: يُقصّ النص إلى الحد الأقصى للطول المحدد عبر الحجة `max_length` أو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. - `False` أو `'do_not_truncate'` (الافتراضي): لا يتم القص (أي، يمكن إخراج دفعة تحتوي على تسلسلات أطول من الحد الأقصى المقبول لحجم الإدخال للنموذج).

max_length (`int`, *اختياري*) : يتحكم في الحد الأقصى للطول الذي سيستخدمه أحد معاملات القص/الحشو. إذا تُرك غير مضبوط أو ضُبط على `None`، فسيتم استخدام الحد الأقصى للطول المحدد مسبقًا للنموذج إذا كان أحد معاملات القص/الحشو يتطلب حدًا أقصى للطول. إذا لم يكن للنموذج حد أقصى محدد لطول الإدخال (مثل XLNet)، فسيتم تعطيل القص/الحشو إلى حد أقصى للطول.

stride (`int`، *اختياري*، القيمة الافتراضية 0) : إذا تم تعيينه إلى رقم مع `max_length`، فإن الرموز الزائدة المُعاد عند `return_overflowing_tokens=True` ستحتوي على بعض الرموز من نهاية التسلسل المُقتطع المُعاد، لتوفير بعض التداخل بين التسلسلات المُقتطعة والتسلسلات الزائدة. تحدد قيمة هذا الحجة عدد الرموز المتداخلة.

pad_to_multiple_of (`int`, *اختياري*) : إذا تم ضبطه، سيتم توسيط التسلسل إلى مضاعف للقيمة المُقدَّمة. يتطلب تفعيل `padding`. وهذا مفيد بشكل خاص لتمكين استخدام نوى التENSOR على أجهزة NVIDIA التي تتمتع بقابلية حسابية `>= 7.5` (Volta).

padding_side (`str`، *اختياري*) : الجانب الذي يجب تطبيق الحشو عليه في النموذج. يجب اختياره من بين ['right', 'left']. القيمة الافتراضية تُستخرج من سمة الفئة التي تحمل الاسم نفسه.

return_tensors (`str` أو [TensorType](/docs/transformers/main/ar/internal/file_utils#transformers.TensorType)، *اختياري*) : إذا تم تعيينه، فسيُرجع كائنات tensors بدلاً من قائمة من الأعداد الصحيحة في بايثون. القيم المقبولة هي: - `'pt'`: يُرجع كائنات `torch.Tensor` في PyTorch.

return_token_type_ids (`bool`، *اختياري*) : ما إذا كان يجب إرجاع معرّفات أنواع الرموز. في حالة `MistralCommonBackend`، يُرجع قائمة من الأصفار بطول التسلسل، إذ لا يُدعم سوى تسلسل واحد.  [ما هي معرّفات أنواع الرموز؟](../glossary#token-type-ids)

return_attention_mask (`bool`، *اختياري*) : ما إذا كان يجب إرجاع قناع الانتباه. إذا تُركت القيمة الافتراضية، فسيتم إرجاع قناع الانتباه وفقاً للقيمة الافتراضية الخاصة بمجزّئ الرموز المعني، كما هو معرّف بواسطة الخاصية `return_outputs`.  [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

return_overflowing_tokens (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم إرجاع تسلسلات الرموز المتجاوزة أم لا. إذا تم تقديم زوج من تسلسلات معرّفات الإدخال (أو دفعة من الأزواج) مع `truncation_strategy = longest_first` أو `True`، فسيتم رفع خطأ بدلاً من إرجاع الرموز المتجاوزة.

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

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

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

return_offsets_mapping (`Literal[False]`، *اختياري*) : False، يُحافظ عليه لمطابقة توقيع Transformers.

split_special_tokens (`Literal[False]`، *اختياري*) : False، يُحافظ عليه لمطابقة توقيع Transformers.

- ****kwargs** : تُمرَّر إلى طريقة `self.tokenize()`

**يعيد:** [BatchEncoding](/docs/transformers/main/ar/main_classes/tokenizer#transformers.BatchEncoding)

[BatchEncoding](/docs/transformers/main/ar/main_classes/tokenizer#transformers.BatchEncoding) يحتوي على الحقول التالية:

- **input_ids** -- قائمة معرّفات الرموز المراد تغذيتها إلى النموذج.

  [ما هي معرّفات الإدخال؟](../glossary#input-ids)

- **attention_mask** -- قائمة بالفهارس تحدد الرموز التي يجب على النموذج الانتباه إليها (عندما يكون `return_attention_mask=True` أو إذا كان *"attention_mask"* ضمن `self.model_input_names`).

  [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

- **overflowing_tokens** -- قائمة تسلسلات الرموز الزائدة (عند تحديد `max_length` و`return_overflowing_tokens=True`).
- **num_truncated_tokens** -- عدد الرموز التي تم اقتطاعها (عند تحديد `max_length` و`return_overflowing_tokens=True`).
- **special_tokens_mask** -- قائمة من الأصفار والواحدات، حيث تشير 1 إلى الرموز الخاصة المضافة وتُشير 0 إلى رموز التسلسل العادية (عندما تكون `add_special_tokens=True` و`return_special_tokens_mask=True`).
- **length** -- طول المدخلات (عندما يكون `return_length=True`)

يُعدّ تسلسلًا من معرّفات الإدخال (input id) بحيث يمكن استخدامه من قبل النموذج. فهو يضيف الرموز الخاصة، ويقصّ التسلسلات إذا تجاوزت الحد الأقصى مع مراعاة الرموز الخاصة، ويدير نافذة متحركة (بخطوة يحددها المستخدم) للرموز الزائدة.

#### save_chat_templates[[transformers.MistralCommonBackend.save_chat_templates]]

```python
save_chat_templates(save_directory: str | os.PathLike, tokenizer_config: dict, filename_prefix: str | None, save_jinja_files: bool)
```

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

لا ينفّذ `MistralCommonBackend` الدالة `save_chat_templates` عمداً، لأن `mistral-common` لا يستخدم قوالب المحادثة.

#### save_pretrained[[transformers.MistralCommonBackend.save_pretrained]]

```python
save_pretrained(save_directory: str | os.PathLike | pathlib.Path, push_to_hub: bool = False, token: str | bool | None = None, commit_message: str | None = None, repo_id: str | None = None, private: bool | None = None, save_format: str | None = None, **kwargs)
```

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

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

save_directory (`str | os.PathLike | Path`) : المجلد الذي سيتم حفظ مُجزّئ الرموز (tokenizer) فيه.

push_to_hub (`bool`، *اختياري*، الافتراضي `False`) : الدفع إلى HF Hub بعد الحفظ.

token (`str` أو `bool`، *اختياري*) : رمز المصادقة الخاصة بـ Hub.

commit_message (`str`، *اختياري*) : رسالة الالتزام عند الدفع.

repo_id (`str`، *اختياري*) : معرف مستودع Hub.

private (`bool`، *اختياري*) : ما إذا كان المستودع خاصًا.

save_format (`str`, *اختياري*) : `"mistral"` لحفظ الصيغة الأصلية لـ tekken، و`"hf"` لصيغة HuggingFace.  *None* يحافظ على الصيغة الأصلية.

kwargs (`dict`، *اختياري*) : غير مدعوم — سيُطلق خطأ.

**يعيد:** `tuple[str, ...]`

مسارات الملفات المحفوظة.

احفظ حالة المرمّز الكاملة.

عندما يكون `save_format` هو `"mistral"` (أو *None* لمُقسِّم tekken)، يُكتب ملف المُقسِّم الأصلي (مثل `tekken.json`) في *save_directory*. وعندما يكون `save_format` هو `"hf"`، يتم إنتاج ملفات بصيغة HF بدلاً من ذلك (`tokenizer.json` + `tokenizer_config.json`).

#### save_vocabulary[[transformers.MistralCommonBackend.save_vocabulary]]

```python
save_vocabulary(save_directory: str, filename_prefix: str | None = None)
```

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

لا ينفّذ `MistralCommonBackend` الدالة `save_vocabulary` عمداً.

وذلك لأن `mistral-common` مُهيأ بواسطة ملف مُجزِّئ واحد. إذا كنت ترغب في حفظ المفردات، فيُرجى النظر في استخدام طريقة `save_pretrained` بدلاً من ذلك.

#### tokenize[[transformers.MistralCommonBackend.tokenize]]

```python
tokenize(text: str, return_offsets_mapping: typing.Literal[False] = False, split_special_tokens: typing.Literal[False] = False, **kwargs)
```

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

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

text (`str`) : التسلسل المراد ترميزه.

return_offsets_mapping (`Literal[False]`، *اختياري*) : False، يُحافظ عليه لمطابقة توقيع Transformers.

split_special_tokens (`Literal[False]`، *اختياري*) : False، يُحافظ عليه لمطابقة توقيع Transformers.

- ****kwargs** (معلمات إضافية بالكلمات المفتاحية): غير مدعومة بواسطة `MistralCommonBackend.tokenize`. سيُطلق خطأً إذا تم استخدامها.

**يعيد:** `list[str]`

قائمة الرموز.

يحوّل سلسلة نصية إلى تسلسل من الرموز، باستخدام مُجزّئ الرموز.

Split إلى كلمات للمفردات القائمة على الكلمات، أو إلى مقاطع فرعية للكلمات للمفردات القائمة على المقاطع الفرعية للكلمات.

#### truncate_sequences[[transformers.MistralCommonBackend.truncate_sequences]]

```python
truncate_sequences(ids: list, pair_ids: None = None, num_tokens_to_remove: int = 0, truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first', stride: int = 0, **kwargs)
```

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

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

ids (`list[int]`) : معرّفات المدخلات المُرمّزة. يمكن الحصول عليها من نصّ عن طريق ربط طريقتي `tokenize` و`convert_tokens_to_ids`.

pair_ids (`None`، *اختياري*) : لا يدعمه `MistralCommonBackend`. تم إبقاؤه لمطابقة توقيع `PreTrainedTokenizerBase.truncate_sequences`.

num_tokens_to_remove (`int`، *اختياري*، القيمة الافتراضية 0) : عدد الرموز التي يجب إزالتها باستخدام استراتيجية الاقتطاع.

truncation_strategy (`str` أو [TruncationStrategy](/docs/transformers/main/ar/internal/tokenization_utils#transformers.tokenization_utils_base.TruncationStrategy)، *اختياري*، الافتراضي `'longest_first'`) : الاستراتيجية التي يجب اتباعها للقص. يمكن أن تكون: - `'longest_first'`: القص إلى الحد الأقصى للطول المحدد بالحجة `max_length` أو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. - `'do_not_truncate'` (الافتراضي): لا يوجد قص (أي، يمكن إخراج دفعة بأطوال تسلسلات أكبر من الحد الأقصى المقبول لحجم الإدخال للنموذج).

stride (`int`، *اختياري*، القيمة الافتراضية 0) : إذا تم تعيينه إلى رقم موجب، فإن الرموز الزائدة المُعادَة ستحتوي على بعض الرموز من التسلسل الرئيسي المُعاد. تحدد قيمة هذا الحجة عدد الرموز الإضافية.

**يعيد:** `Tuple[list[int], None, list[int]]`

المعرّفات المقطوعة `ids` وقائمة الرموز المتجاوزة. يُعاد `None` لمطابقة توقيع Transformers.

يقوم بقصّ زوج تسلسلات في مكانه وفقاً للاستراتيجية.

## MistralModel[[transformers.MistralModel]]

#### transformers.MistralModel[[transformers.MistralModel]]

```python
transformers.MistralModel(config: MistralConfig)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral/modeling_mistral.py#L309)

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

config ([MistralConfig](/docs/transformers/main/ar/model_doc/mistral#transformers.MistralConfig)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

نموذج Mistral الأساسي الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.MistralModel.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, use_cache: bool | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral/modeling_mistral.py#L326)

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

input_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على الفهارس باستخدام [AutoTokenizer](/docs/transformers/main/ar/model_doc/auto#transformers.AutoTokenizer). راجع [PreTrainedTokenizer.encode()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) و [PreTrainedTokenizer.__call__()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) للتفاصيل. [ما هي معرّفات الإدخال؟](../glossary#input-ids)

attention_mask (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. قيم القناع المختارة من `[0, 1]`: - 1 للرموز التي **ليست مقنّعة**، - 0 للرموز التي **مقنّعة**.  [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

position_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها من النطاق `[0, config.n_positions - 1]`.  [ما هي معرّفات المواضع؟](../glossary#position-ids)

past_key_values (`~cache_utils.Cache`، *اختياري*) : حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكوّن هذا عادةً من `past_key_values` التي يعيدها النموذج في مرحلة سابقة من فك الترميز، عندما يكون `use_cache=True` أو `config.use_cache=True`. يُسمح فقط بتمرير كائن [Cache](/docs/transformers/main/ar/internal/generation_utils#transformers.Cache) كمدخل، راجع [دليل ذاكرة kv](https://huggingface.co/docs/transformers/en/kv_cache). إذا لم يتم تمرير `past_key_values`، فسيتم تهيئة [DynamicCache](/docs/transformers/main/ar/internal/generation_utils#transformers.DynamicCache) افتراضيًا. سيُخرج النموذج نفس تنسيق الذاكرة المؤقتة المُدخل. إذا تم استخدام `past_key_values`، يُتوقع من المستخدم إدخال `input_ids` غير المعالجة فقط (تلك التي لم تُعطَ حالات مفاتيح وقيم سابقة لها في هذا النموذج) بأبعاد `(batch_size, unprocessed_length)` بدلاً من جميع `input_ids` بأبعاد `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : بدلاً من تمرير `input_ids`، يمكنك اختيار تمرير تمثيل مضمّن مباشرةً. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس `input_ids` إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.

use_cache (`bool`، *اختياري*) : إذا تم ضبطه على `True`، تُعاد حالات المفاتيح والقيم `past_key_values` ويمكن استخدامها لتسريع فك الترميز (انظر `past_key_values`).

**يعيد:** [BaseModelOutputWithPast](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPast) أو `tuple(torch.Tensor)`

[BaseModelOutputWithPast](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPast) أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتكون من عناصر مختلفة اعتماداً على الإعداد ([MistralConfig](/docs/transformers/main/ar/model_doc/mistral#transformers.MistralConfig)) والمدخلات.

تتجاوز طريقة [MistralModel](/docs/transformers/main/ar/model_doc/mistral#transformers.MistralModel) الخاصة بالتقديم (forward) الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.

  إذا تم استخدام `past_key_values`، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل `(batch_size, 1, hidden_size)` هي التي تُخرج.
- **past_key_values** (`Cache`، *اختياري*، يُعاد عند تمرير `use_cache=True` أو عند تعيين `config.use_cache=True`) -- هو كائن من نوع [Cache](/docs/transformers/main/ar/internal/generation_utils#transformers.Cache). لمزيد من التفاصيل، راجع [دليل ذاكرة kv](https://huggingface.co/docs/transformers/en/kv_cache).

  تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي، وفي كتل الانتباه المتقاطع اختياريًا إذا كان `config.is_encoder_decoder=True`) يمكن استخدامها (انظر مدخل `past_key_values`) لتسريع فك الترميز التسلسلي.
- **hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)`.

  حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

## MistralForCausalLM[[transformers.MistralForCausalLM]]

#### transformers.MistralForCausalLM[[transformers.MistralForCausalLM]]

```python
transformers.MistralForCausalLM(config: MistralConfig)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral/modeling_mistral.py#L383)

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

config ([MistralConfig](/docs/transformers/main/ar/model_doc/mistral#transformers.MistralConfig)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

نموذج Mistral لنمذجة اللغة السببية.

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.MistralForCausalLM.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, past_key_values: transformers.cache_utils.Cache | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.LongTensor] = None, use_cache: bool | None = None, logits_to_keep: typing.Union[int, torch.Tensor] = 0, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral/modeling_mistral.py#L398)

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

input_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على الفهارس باستخدام [AutoTokenizer](/docs/transformers/main/ar/model_doc/auto#transformers.AutoTokenizer). راجع [PreTrainedTokenizer.encode()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) و [PreTrainedTokenizer.__call__()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) للتفاصيل. [ما هي معرّفات الإدخال؟](../glossary#input-ids)

attention_mask (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. قيم القناع المختارة من `[0, 1]`: - 1 للرموز التي **ليست مقنّعة**، - 0 للرموز التي **مقنّعة**.  [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

position_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها من النطاق `[0, config.n_positions - 1]`.  [ما هي معرّفات المواضع؟](../glossary#position-ids)

past_key_values (`~cache_utils.Cache`، *اختياري*) : حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكوّن هذا عادةً من `past_key_values` التي يعيدها النموذج في مرحلة سابقة من فك الترميز، عندما يكون `use_cache=True` أو `config.use_cache=True`. يُسمح فقط بتمرير كائن [Cache](/docs/transformers/main/ar/internal/generation_utils#transformers.Cache) كمدخل، راجع [دليل ذاكرة kv](https://huggingface.co/docs/transformers/en/kv_cache). إذا لم يتم تمرير `past_key_values`، فسيتم تهيئة [DynamicCache](/docs/transformers/main/ar/internal/generation_utils#transformers.DynamicCache) افتراضيًا. سيُخرج النموذج نفس تنسيق الذاكرة المؤقتة المُدخل. إذا تم استخدام `past_key_values`، يُتوقع من المستخدم إدخال `input_ids` غير المعالجة فقط (تلك التي لم تُعطَ حالات مفاتيح وقيم سابقة لها في هذا النموذج) بأبعاد `(batch_size, unprocessed_length)` بدلاً من جميع `input_ids` بأبعاد `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : بدلاً من تمرير `input_ids`، يمكنك اختيار تمرير تمثيل مضمّن مباشرةً. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس `input_ids` إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.

labels (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : تسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس إما ضمن `[0, ..., config.vocab_size]` أو -100 (انظر `input_ids` docstring). يتم تجاهل الرموز التي تكون فهارسها مضبوطة على `-100` (مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن `[0, ..., config.vocab_size]`.

use_cache (`bool`، *اختياري*) : إذا تم ضبطه على `True`، تُعاد حالات المفاتيح والقيم `past_key_values` ويمكن استخدامها لتسريع فك الترميز (انظر `past_key_values`).

logits_to_keep (`Union[int, torch.Tensor]`، *اختياري*، القيمة الافتراضية `0`) : إذا كان `int`، يتم حساب القيم اللوجستية (logits) لآخر `logits_to_keep` رموز. إذا كانت `0`، يتم حساب القيم اللوجستية لجميع `input_ids` (حالة خاصة). لا تكون قيم اللوجستيات للرمز الأخير فقط ضرورية للتوليد، ويمكن أن يوفر حسابها لذلك الرمز وحده ذاكرة، وهو ما يصبح ذا أهمية كبيرة للترتيبات الطويلة أو لحجم المفردات الكبير. إذا كان `torch.Tensor`، يجب أن يكون بعدًا واحدًا (1D) ويتوافق مع الفهارس التي يجب الاحتفاظ بها في بُعد طول الترتيب. وهذا مفيد عند استخدام تنسيق المصفوفات المعبأة (packed tensor format) (بعد واحد لكل من الدفعة وطول الترتيب).

**يعيد:** [CausalLMOutputWithPast](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.CausalLMOutputWithPast) أو `tuple(torch.Tensor)`

[CausalLMOutputWithPast](/docs/transformers/main/ar/main_classes/output#transformers.modeling_outputs.CausalLMOutputWithPast) أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتكون من عناصر مختلفة اعتماداً على الإعداد ([MistralConfig](/docs/transformers/main/ar/model_doc/mistral#transformers.MistralConfig)) والمدخلات.

تتجاوز طريقة [MistralForCausalLM](/docs/transformers/main/ar/model_doc/mistral#transformers.MistralForCausalLM) الخاصة بالتقديم (forward) الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

- **loss** (`torch.Tensor` من الشكل `(1,)`، *اختياري*، يُعاد عند توفير `labels`) -- خسارة نمذجة اللغة (لتوقع الرمز التالي).
- **logits** (`torch.Tensor` من الشكل `(batch_size, sequence_length, config.vocab_size)`) -- درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).
- **past_key_values** (`Cache`، *اختياري*، يُعاد عند تمرير `use_cache=True` أو عند تعيين `config.use_cache=True`) -- هو كائن من نوع [Cache](/docs/transformers/main/ar/internal/generation_utils#transformers.Cache). لمزيد من التفاصيل، راجع [دليل ذاكرة kv](https://huggingface.co/docs/transformers/en/kv_cache).

  تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي) يمكن استخدامها (انظر مدخل `past_key_values`) لتسريع فك الترميز التسلسلي.
- **hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)`.

  حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

```python
>>> from transformers import AutoTokenizer, MistralForCausalLM

>>> model = MistralForCausalLM.from_pretrained("meta-mistral/Mistral-2-7b-hf")
>>> tokenizer = AutoTokenizer.from_pretrained("meta-mistral/Mistral-2-7b-hf")

>>> prompt = "Hey, are you conscious? Can you talk to me?"
>>> inputs = tokenizer(prompt, return_tensors="pt")

>>> # Generate
>>> generate_ids = model.generate(inputs.input_ids, max_length=30)
>>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"Hey, are you conscious? Can you talk to me?\nI'm not conscious, but I can talk to you."
```

## MistralForSequenceClassification[[transformers.MistralForSequenceClassification]]

#### transformers.MistralForSequenceClassification[[transformers.MistralForSequenceClassification]]

```python
transformers.MistralForSequenceClassification(config)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral/modeling_mistral.py#L460)

#### forward[[transformers.MistralForSequenceClassification.forward]]

```python
forward(input_ids: torch.LongTensor | None = None, attention_mask: torch.Tensor | None = None, position_ids: torch.LongTensor | None = None, past_key_values: Cache | None = None, inputs_embeds: torch.Tensor | None = None, labels: torch.LongTensor | None = None, use_cache: bool | None = None, **kwargs: Unpack[TransformersKwargs])
```

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

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

input_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على الفهارس باستخدام [AutoTokenizer](/docs/transformers/main/ar/model_doc/auto#transformers.AutoTokenizer). راجع [PreTrainedTokenizer.encode()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) و [PreTrainedTokenizer.__call__()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) للتفاصيل. [ما هي معرّفات الإدخال؟](../glossary#input-ids)

attention_mask (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. قيم القناع المختارة من `[0, 1]`: - 1 للرموز التي **ليست مقنّعة**، - 0 للرموز التي **مقنّعة**.  [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

position_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها من النطاق `[0, config.n_positions - 1]`.  [ما هي معرّفات المواضع؟](../glossary#position-ids)

past_key_values (`Cache`، *اختياري*) : حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكوّن هذا عادةً من `past_key_values` التي يعيدها النموذج في مرحلة سابقة من فك الترميز، عندما يكون `use_cache=True` أو `config.use_cache=True`. يُسمح فقط بمرور كائن [Cache](/docs/transformers/main/ar/internal/generation_utils#transformers.Cache) كمدخل، راجع [دليل ذاكرة kv](https://huggingface.co/docs/transformers/en/kv_cache). إذا لم يتم تمرير `past_key_values`، فسيتم تهيئة [DynamicCache](/docs/transformers/main/ar/internal/generation_utils#transformers.DynamicCache) افتراضيًا. سيُخرج النموذج نفس تنسيق الذاكرة المؤقتة المُدخل. إذا تم استخدام `past_key_values`، يُتوقع من المستخدم إدخال `input_ids` غير المعالجة فقط (تلك التي لم تُعطَ حالات مفاتيح وقيم سابقة لها في هذا النموذج) بأبعاد `(batch_size, unprocessed_length)` بدلاً من جميع `input_ids` بأبعاد `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : بدلاً من تمرير `input_ids`، يمكنك اختيار تمرير تمثيل مضمّن مباشرةً. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس `input_ids` إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.

labels (`torch.LongTensor` من الشكل `(batch_size,)`، *اختياري*) : تسميات لحساب خسارة تصنيف/انحدار التسلسل. يجب أن تكون الفهارس ضمن `[0, ..., config.num_labels - 1]`. إذا كان `config.num_labels == 1` يتم حساب خسارة الانحدار (خسارة متوسط المربع)، وإذا كان `config.num_labels > 1` يتم حساب خسارة التصنيف (الإنتروبيا المتقاطعة).

use_cache (`bool`، *اختياري*) : إذا تم ضبطه على `True`، تُعاد حالات المفاتيح والقيم `past_key_values` ويمكن استخدامها لتسريع فك الترميز (انظر `past_key_values`).

**يعيد:** `SequenceClassifierOutputWithPast`

تُعيد طريقة `GenericForSequenceClassification` الخاصة بالتقديم (forward) تعريف الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

## MistralForTokenClassification[[transformers.MistralForTokenClassification]]

#### transformers.MistralForTokenClassification[[transformers.MistralForTokenClassification]]

```python
transformers.MistralForTokenClassification(config)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral/modeling_mistral.py#L456)

#### forward[[transformers.MistralForTokenClassification.forward]]

```python
forward(input_ids: torch.LongTensor | None = None, attention_mask: torch.Tensor | None = None, position_ids: torch.LongTensor | None = None, past_key_values: Cache | None = None, inputs_embeds: torch.Tensor | None = None, labels: torch.LongTensor | None = None, use_cache: bool | None = None, **kwargs: Unpack[TransformersKwargs])
```

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

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

input_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على الفهارس باستخدام [AutoTokenizer](/docs/transformers/main/ar/model_doc/auto#transformers.AutoTokenizer). راجع [PreTrainedTokenizer.encode()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) و [PreTrainedTokenizer.__call__()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) للتفاصيل. [ما هي معرّفات الإدخال؟](../glossary#input-ids)

attention_mask (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. قيم القناع المختارة من `[0, 1]`: - 1 للرموز التي **ليست مقنّعة**، - 0 للرموز التي **مقنّعة**.  [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

position_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها من النطاق `[0, config.n_positions - 1]`.  [ما هي معرّفات المواضع؟](../glossary#position-ids)

past_key_values (`Cache`، *اختياري*) : حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكوّن هذا عادةً من `past_key_values` التي يعيدها النموذج في مرحلة سابقة من فك الترميز، عندما يكون `use_cache=True` أو `config.use_cache=True`. يُسمح فقط بمرور كائن [Cache](/docs/transformers/main/ar/internal/generation_utils#transformers.Cache) كمدخل، راجع [دليل ذاكرة kv](https://huggingface.co/docs/transformers/en/kv_cache). إذا لم يتم تمرير `past_key_values`، فسيتم تهيئة [DynamicCache](/docs/transformers/main/ar/internal/generation_utils#transformers.DynamicCache) افتراضيًا. سيُخرج النموذج نفس تنسيق الذاكرة المؤقتة المُدخل. إذا تم استخدام `past_key_values`، يُتوقع من المستخدم إدخال `input_ids` غير المعالجة فقط (تلك التي لم تُعطَ حالات مفاتيح وقيم سابقة لها في هذا النموذج) بأبعاد `(batch_size, unprocessed_length)` بدلاً من جميع `input_ids` بأبعاد `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : بدلاً من تمرير `input_ids`، يمكنك اختيار تمرير تمثيل مضمّن مباشرةً. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس `input_ids` إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.

labels (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : تسميات لحساب خسارة تصنيف الرموز. يجب أن تكون الفهارس ضمن `[0, ..., config.num_labels - 1]`.

use_cache (`bool`، *اختياري*) : إذا تم ضبطه على `True`، تُعاد حالات المفاتيح والقيم `past_key_values` ويمكن استخدامها لتسريع فك الترميز (انظر `past_key_values`).

**يعيد:** `TokenClassifierOutput`

تُعيد طريقة `GenericForTokenClassification` الخاصة بالتقديم (forward) تعريف الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

## MistralForQuestionAnswering[[transformers.MistralForQuestionAnswering]]

#### transformers.MistralForQuestionAnswering[[transformers.MistralForQuestionAnswering]]

```python
transformers.MistralForQuestionAnswering(config)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mistral/modeling_mistral.py#L464)

#### forward[[transformers.MistralForQuestionAnswering.forward]]

```python
forward(input_ids: torch.LongTensor | None = None, attention_mask: torch.Tensor | None = None, position_ids: torch.LongTensor | None = None, past_key_values: Cache | None = None, inputs_embeds: torch.Tensor | None = None, start_positions: torch.LongTensor | None = None, end_positions: torch.LongTensor | None = None, **kwargs: Unpack[TransformersKwargs])
```

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

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

input_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على الفهارس باستخدام [AutoTokenizer](/docs/transformers/main/ar/model_doc/auto#transformers.AutoTokenizer). راجع [PreTrainedTokenizer.encode()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) و [PreTrainedTokenizer.__call__()](/docs/transformers/main/ar/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) للتفاصيل. [ما هي معرّفات الإدخال؟](../glossary#input-ids)

attention_mask (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. قيم القناع المختارة من `[0, 1]`: - 1 للرموز التي **ليست مقنّعة**، - 0 للرموز التي **مقنّعة**.  [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

position_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها من النطاق `[0, config.n_positions - 1]`.  [ما هي معرّفات المواضع؟](../glossary#position-ids)

past_key_values (`Cache`، *اختياري*) : حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكوّن هذا عادةً من `past_key_values` التي يعيدها النموذج في مرحلة سابقة من فك الترميز، عندما يكون `use_cache=True` أو `config.use_cache=True`. يُسمح فقط بمرور كائن [Cache](/docs/transformers/main/ar/internal/generation_utils#transformers.Cache) كمدخل، راجع [دليل ذاكرة kv](https://huggingface.co/docs/transformers/en/kv_cache). إذا لم يتم تمرير `past_key_values`، فسيتم تهيئة [DynamicCache](/docs/transformers/main/ar/internal/generation_utils#transformers.DynamicCache) افتراضيًا. سيُخرج النموذج نفس تنسيق الذاكرة المؤقتة المُدخل. إذا تم استخدام `past_key_values`، يُتوقع من المستخدم إدخال `input_ids` غير المعالجة فقط (تلك التي لم تُعطَ حالات مفاتيح وقيم سابقة لها في هذا النموذج) بأبعاد `(batch_size, unprocessed_length)` بدلاً من جميع `input_ids` بأبعاد `(batch_size, sequence_length)`.

inputs_embeds (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : بدلاً من تمرير `input_ids`، يمكنك اختيار تمرير تمثيل مضمّن مباشرةً. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس `input_ids` إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.

start_positions (`torch.LongTensor` من الشكل `(batch_size,)`، *اختياري*) : تسميات لموضع (فهرس) بداية النطاق المُسمّى لحساب خسارة تصنيف الرموز. يتم تثبيت المواضع على طول التسلسل (`sequence_length`). لا تُؤخذ المواضع خارج التسلسل في الاعتبار عند حساب الخسارة.

end_positions (`torch.LongTensor` من الشكل `(batch_size,)`، *اختياري*) : تسميات لموضع (فهرس) نهاية النطاق المُسمّى لحساب خسارة تصنيف الرموز. يتم تثبيت المواضع على طول التسلسل (`sequence_length`). لا تُؤخذ المواضع خارج التسلسل في الاعتبار عند حساب الخسارة.

**يعيد:** `QuestionAnsweringModelOutput`

تتجاوز طريقة `GenericForQuestionAnswering` الأمامية الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

