# FlauBERT

## نظرة عامة

قُدِّم نموذج FlauBERT في ورقة [FlauBERT: Unsupervised Language Model Pre-training for French](https://huggingface.co/papers/1912.05372) التي كتبها Hang Le وآخرون. وهو نموذج transformer تم تدريبه مسبقًا باستخدام هدف نمذجة اللغة المقنّعة (MLM) (مثل BERT).

المستخلص من الورقة البحثية هو كالتالي:

*أصبحت نماذج اللغة خطوة أساسية لتحقيق نتائج متقدمة في العديد من مهام معالجة اللغة الطبيعية (NLP) المختلفة. بالاستفادة من الكميات الهائلة من النصوص غير الموسومة المتاحة حاليًا، توفر هذه النماذج طريقة فعالة لتدريب مسبق لتمثيلات كلمات مستمرة يمكن ضبطها لمهمة لاحقة، إلى جانب سياقتها على مستوى الجملة. وقد تم إثبات ذلك على نطاق واسع للغة الإنجليزية باستخدام التمثيلات السياقية (Dai and Le, 2015; Peters et al., 2018; Howard and Ruder, 2018; Radford et al., 2018; Devlin et al., 2019; Yang et al., 2019b). في هذه الورقة، نقدم ونشارك FlauBERT، وهو نموذج تم تعلمه على مجموعة بيانات فرنسية كبيرة ومتنوعة. تم تدريب نماذج بأحجام مختلفة باستخدام حاسوب Jean Zay فائق القدرة التابع للمركز الوطني الفرنسي للبحث العلمي (CNRS). قمنا بتطبيق نماذج اللغة الفرنسية الخاصة بنا على مهام NLP متنوعة (تصنيف النصوص، إعادة الصياغة، الاستدلال اللغوي الطبيعي، التحليل النحوي، إزالة الغموض عن معاني الكلمات) وأظهرنا أنها تتفوق في معظم الأحيان على أساليب التدريب المسبق الأخرى. يتم مشاركة إصدارات مختلفة من FlauBERT بالإضافة إلى بروتوكول تقييم موحّد للمهام اللاحقة، يُسمى FLUE (تقييم فهم اللغة الفرنسية)، مع مجتمع البحث لإجراء تجارب قابلة للتكرار بشكل أكبر في مجال معالجة اللغة الطبيعية بالفرنسية.*

تمت مساهمة هذا النموذج من قِبل [formiel](https://huggingface.co/formiel). يمكن العثور على الكود الأصلي [هنا](https://github.com/getalp/Flaubert).

نصائح:

- مثل RoBERTa، لكن دون التنبؤ بترتيب الجمل (أي تم تدريبه على هدف MLM فقط).

## الموارد

- [دليل مهمة تصنيف النصوص](../tasks/sequence_classification)
- [دليل مهمة تصنيف الرموز](../tasks/token_classification)
- [دليل مهمة الإجابة عن الأسئلة](../tasks/question_answering)
- [دليل مهمة نمذجة اللغة المقنّعة](../tasks/masked_language_modeling)
- [دليل مهمة الاختيار من متعدد](../tasks/multiple_choice)

## FlaubertConfig[[transformers.FlaubertConfig]]

#### transformers.FlaubertConfig[[transformers.FlaubertConfig]]

```python
transformers.FlaubertConfig(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, pre_norm: bool = False, layerdrop: float | int = 0.0, vocab_size: int = 30145, emb_dim: int = 2048, n_layers: int = 12, n_heads: int = 16, dropout: float | int = 0.1, attention_dropout: float | int = 0.1, gelu_activation: bool = True, sinusoidal_embeddings: bool = False, causal: bool = False, asm: bool = False, n_langs: int = 1, use_lang_emb: bool = True, max_position_embeddings: int = 512, embed_init_std: float = 0.02209708691207961, layer_norm_eps: float = 1e-12, init_std: float = 0.02, bos_index: int = 0, eos_index: int = 1, pad_index: int = 2, unk_index: int = 3, mask_index: int = 5, is_encoder: bool = True, summary_type: str = 'first', summary_use_proj: bool = True, summary_activation: str | None = None, summary_proj_to_labels: bool = True, summary_first_dropout: float | int = 0.1, start_n_top: int = 5, end_n_top: int = 5, mask_token_id: int = 0, lang_id: int = 0, pad_token_id: int | None = 2, bos_token_id: int | None = 0, eos_token_id: int | list[int] | None = 1, tie_word_embeddings: bool = True)
```

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

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

pre_norm (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم تطبيق تطبيع الطبقة قبل أو بعد طبقة التقدّم الأمامي التي تلي الانتباه في كل طبقة (Vaswani et al., Tensor2Tensor for Neural Machine Translation. 2018)

layerdrop (`Union[float, int]`، *اختياري*، القيمة الافتراضية `0.0`) : احتمال LayerDrop. راجع [ورقة LayerDrop](see https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.

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

emb_dim (`int`، *اختياري*، القيمة الافتراضية 2048) : بُعد طبقة التضمين.

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

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

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

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

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

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

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

asm (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم استخدام طبقة إسقاط لوجاريتمي لوجستي تكيّفي بدلاً من طبقة خطية لطبقة التنبؤ.

n_langs (`int`، *اختياري*، القيمة الافتراضية 1) : عدد اللغات التي يتعامل معها النموذج. اضبطه على 1 للنماذج أحادية اللغة.

use_lang_emb (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم استخدام تضمينات اللغة. تستخدم بعض النماذج تضمينات لغة إضافية، راجع [صفحة النماذج متعددة اللغات](http://huggingface.co/transformers/multilingual.html#xlm-language-embeddings) للحصول على معلومات حول كيفية استخدامها.

embed_init_std (`float`، *اختياري*، القيمة الافتراضية 2048^-0.5) : الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة مصفوفات التضمين.

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

embed_init_std (`float`، *اختياري*، القيمة الافتراضية `2048**-0.5`) : الانحراف المعياري للمُهيِّئ لطبقات التضمين.

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

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

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

eos_index (`int`، *اختياري*، القيمة الافتراضية 1) : فهرس رمز نهاية الجملة في المفردات.

pad_index (`int`، *اختياري*، القيمة الافتراضية 2) : فهرس رمز الحشو في قاموس الكلمات.

unk_index (`int`، *اختياري*، القيمة الافتراضية 3) : فهرس الرمز المجهول في قاموس الكلمات.

mask_index (`int`، *اختياري*، القيمة الافتراضية 5) : فهرس رمز الإخفاء في قاموس الكلمات.

is_encoder (`bool`، *اختياري*، الافتراضي True) : ما إذا كان النموذج يُستخدم كمُشفِّر (encoder).

summary_type (`string`، *اختياري*، القيمة الافتراضية "first") : الحجة المستخدمة عند إجراء ملخص التسلسل. تُستخدم في نماذج تصنيف التسلسل ونماذج الاختيار المتعدد. يجب أن تكون إحدى الخيارات التالية: - `"last"`: أخذ حالة الخفاء للرمز الأخير (مثل XLNet). - `"first"`: أخذ حالة الخفاء للرمز الأول (مثل BERT). - `"mean"`: أخذ متوسط حالات الخفاء لجميع الرموز. - `"cls_index"`: تقديم مصفوفة (Tensor) لموضع رمز التصنيف (مثل GPT/GPT-2). - `"attn"`: غير مُنفَّذ حاليًا، استخدم الانتباه متعدد الرؤوس.

summary_use_proj (`bool`، *اختياري*، القيمة الافتراضية `True`) : حُجّة تُستخدم عند تنفيذ ملخص التسلسل. تُستخدم في نماذج تصنيف التسلسل ونماذج الاختيار المتعدد. تحدد ما إذا كان يجب إضافة إسقاط بعد استخراج المتجه.

summary_activation (`str`، *اختياري*) : الحجة المستخدمة عند تنفيذ ملخص التسلسل. تُستخدم في نماذج تصنيف التسلسل ونماذج الاختيار المتعدد. مرّر `"tanh"` لتفعيل tanh في المخرجات، وأي قيمة أخرى لن تؤدي إلى أي تفعيل.

summary_proj_to_labels (`bool`، *اختياري*، القيمة الافتراضية `True`) : يُستخدم في نماذج تصنيف التسلسل ونماذج الاختيار المتعدد. ما إذا كان يجب أن تحتوي مخرجات الإسقاط على `config.num_labels` أو `config.hidden_size` فئات.

summary_first_dropout (`float`، *اختياري*، القيمة الافتراضية 0.1) : يُستخدم في نماذج تصنيف التسلسل ونماذج الاختيار المتعدد. نسبة الإسقاط (dropout) المستخدمة بعد الإسقاط (projection) والتفعيل (activation).

start_n_top (`int`، *اختياري*، القيمة الافتراضية 5) : يُستخدم في سكربت تقييم SQuAD.

end_n_top (`int`، *اختياري*، القيمة الافتراضية 5) : يُستخدم في سكربت تقييم SQuAD.

mask_token_id (`int`، *اختياري*، القيمة الافتراضية 0) : معامل مستقل عن النموذج لتحديد الرموز المقنّعة عند توليد النص في سياق MLM.

lang_id (`int`، *اختياري*، القيمة الافتراضية 1) : معرّف اللغة التي يستخدمها النموذج. يُستخدم هذا المعامل عند توليد النص بلغة محددة.

pad_token_id (`int`، *اختياري*، القيمة الافتراضية `2`) : معرّف الرمز المستخدم للتعبئة في المفردات.

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

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

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

هذه فئة الإعدادات المخزنة لإعدادات نموذج FlaubertModel. تُستخدم لاستحداث نموذج Flaubert وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ [flaubert/flaubert_base_uncased](https://huggingface.co/flaubert/flaubert_base_uncased)

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

## FlaubertTokenizer[[transformers.FlaubertTokenizer]]

#### transformers.FlaubertTokenizer[[transformers.FlaubertTokenizer]]

```python
transformers.FlaubertTokenizer(vocab_file, merges_file, do_lowercase = False, unk_token = '<unk>', bos_token = '<s>', sep_token = '</s>', pad_token = '<pad>', cls_token = '</s>', mask_token = '<special1>', additional_special_tokens = ['<special0>', '<special1>', '<special2>', '<special3>', '<special4>', '<special5>', '<special6>', '<special7>', '<special8>', '<special9>'], lang2id = None, id2lang = None, **kwargs)
```

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

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

vocab_file (`str`) : ملف المفردات.

merges_file (`str`) : يدمج الملف.

do_lowercase (`bool`، *اختياري*، الافتراضي `False`) : يتحكم في تحويل الأحرف إلى صغرى.

unk_token (`str`، *اختياري*، القيمة الافتراضية `"<unk>"`) : رمز المجهول. الرمز غير الموجود في قاموس الكلمات لا يمكن تحويله إلى معرّف، لذا يُعيَّن هذا الرمز بدلاً منه.

bos_token (`str`، *اختياري*، القيمة الافتراضية `"<s>"`) : رمز بداية التسلسل الذي تم استخدامه أثناء التدريب المسبق. يمكن استخدامه كرمز مصنف التسلسل. عند بناء تسلسل باستخدام الرموز الخاصة، هذا ليس الرمز المستخدم لبداية التسلسل. الرمز المستخدم هو `cls_token`.

sep_token (`str`، *اختياري*، الافتراضي هو `"</s>"`) : رمز الفاصل، الذي يُستخدم عند بناء تسلسل من عدة تسلسلات، مثل تسلسلين لتصنيف التسلسلات، أو نص وسؤال للإجابة على الأسئلة. كما يُستخدم كآخر رمز في تسلسل مبني برموز خاصة.

pad_token (`str`، *اختياري*، القيمة الافتراضية هي `"<pad>"`) : الرمز المستخدم للتعبئة، على سبيل المثال عند تجميع تسلسلات ذات أطوال مختلفة.

cls_token (`str`، *اختياري*، القيمة الافتراضية `"</s>"`) : رمز التصنيف الذي يُستخدم عند إجراء تصنيف التسلسل (تصنيف التسلسل بأكمله بدلاً من التصنيف لكل رمز على حدة). وهو أول رمز في التسلسل عند بناؤه باستخدام الرموز الخاصة.

mask_token (`str`، *اختياري*، القيمة الافتراضية `"<special1>"`) : الرمز المستخدم لإخفاء القيم. هذا هو الرمز المستخدم عند تدريب هذا النموذج باستخدام نمذجة اللغة المقنّعة. هذا هو الرمز الذي سيحاول النموذج التنبؤ به.

additional_special_tokens (`List[str]`، *اختياري*، القيمة الافتراضية `['<special0>', '<special1>', '<special2>', '<special3>', '<special4>', '<special5>', '<special6>', '<special7>', '<special8>', '<special9>']`) : قائمة الرموز الخاصة الإضافية.

lang2id (`Dict[str, int]`، *اختياري*) : قاموس يربط معرّفات اللغات النصية بمعرّفات أرقامها.

id2lang (`Dict[int, str]`، *اختياري*) : قاموس يربط معرّفات اللغات بمعرّفاتها النصية.

أنشئ مُجزِّئ Flaubert. يعتمد على ترميز زوج البايت. عملية التجزئة هي على النحو التالي:

- معالجة Moses المسبقة وتجزئة الرموز.
- تطبيع جميع مدخلات النص.
- يمكن استخدام الحجة `special_tokens` والدالة `set_special_tokens` لإضافة رموز إضافية (مثل "__classify__") إلى المفردات.
- يتحكم الحجة `do_lowercase` في تحويل الأحرف إلى صيغة صغيرة (يتم ضبطها تلقائياً لمفردات النماذج المُدرَّبة مسبقاً).

يرث هذا المُجزِّئ من [PreTrainedTokenizer](/docs/transformers/main/ar/main_classes/tokenizer#transformers.PythonBackend) التي تحتوي على معظم الطرق الرئيسية. ينبغي للمستخدمين الرجوع إلى هذه الفئة الأصلية لمزيد من المعلومات حول تلك الطرق.

#### build_inputs_with_special_tokens[[transformers.FlaubertTokenizer.build_inputs_with_special_tokens]]

```python
build_inputs_with_special_tokens(token_ids_0: list, token_ids_1: list[int] | None = None)
```

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

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

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

token_ids_1 (`List[int]`, *اختياري*) : قائمة ثانية اختيارية من المعرّفات لأزواج التسلسلات.

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

قائمة [معرفات الإدخال](../glossary#input-ids) مع الرموز الخاصة المناسبة.

build_model_inputs يبني مدخلات النموذج من تسلسل أو زوج من التسلسلات لمهام تصنيف التسلسل عن طريق دمجها وإضافة الرموز الخاصة. يتبع تسلسل XLM التنسيق التالي:

- تسلسل واحد: `<s> X </s>`
- زوج من التسلسلات: `<s> A </s> B </s>`

#### convert_tokens_to_string[[transformers.FlaubertTokenizer.convert_tokens_to_string]]

```python
convert_tokens_to_string(tokens)
```

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

يحوّل تسلسل الرموز (نص) إلى نص واحد.

#### get_special_tokens_mask[[transformers.FlaubertTokenizer.get_special_tokens_mask]]

```python
get_special_tokens_mask(token_ids_0: list, token_ids_1: list[int] | None = None, already_has_special_tokens: bool = False)
```

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

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

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

token_ids_1 (`List[int]`, *اختياري*) : قائمة ثانية اختيارية من المعرّفات لأزواج التسلسلات.

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

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

قائمة من الأعداد الصحيحة في المدى [0, 1]: 1 للرمز الخاص، و0 لرمز التسلسل.

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

## FlaubertModel[[transformers.FlaubertModel]]

#### transformers.FlaubertModel[[transformers.FlaubertModel]]

```python
transformers.FlaubertModel(config: FlaubertConfig)
```

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

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

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

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

يرث هذا النموذج من [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.FlaubertModel.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, langs: typing.Optional[torch.Tensor] = None, token_type_ids: typing.Optional[torch.LongTensor] = None, position_ids: typing.Optional[torch.LongTensor] = None, lengths: typing.Optional[torch.LongTensor] = None, cache: dict[str, torch.Tensor] | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, **kwargs)
```

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

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

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)

langs (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : تسلسل موازٍ من الرموز يُستخدم للإشارة إلى لغة كل رمز في المدخلات. الفهارس هي معرّفات اللغات التي يمكن الحصول عليها من أسماء اللغات باستخدام خريطتي تحويل موفرتين في إعدادات النموذج (تُوفَّر فقط للنماذج متعددة اللغات). وبشكل أدق، خريطة *اسم اللغة إلى معرّف اللغة* موجودة في `model.config.lang2id` (وهي قاموس من السلاسل النصية إلى الأعداد الصحيحة) وخريطة *معرّف اللغة إلى اسم اللغة* موجودة في `model.config.id2lang` (قاموس من الأعداد الصحيحة إلى السلاسل النصية). راجع أمثلة الاستخدام المفصّلة في [التوثيق متعدد اللغات](../multilingual).

token_type_ids (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار الفهارس من `[0, 1]`: - 0 يقابل رمز *الجملة أ*، - 1 يقابل رمز *الجملة ب*. [ما هي معرّفات أنواع الرموز؟](../glossary#token-type-ids)

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

lengths (`torch.LongTensor` من الشكل `(batch_size,)`، *اختياري*) : طول كل جملة يمكن استخدامه لتجنب تنفيذ الانتباه على فهارس رموز الحشو. يمكنك أيضًا استخدام `attention_mask` للحصول على النتيجة نفسها (انظر أعلاه)، وقد أبقينا عليه هنا من أجل التوافق. الفهارس المختارة في `[0, ..., input_ids.size(-1)]`:

cache (`dict[str, torch.Tensor]`، *اختياري*) : قاموس من السلاسل النصية إلى `torch.Tensor` يحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه) كما يحسبها النموذج (انظر مخرج `cache` أدناه). يمكن استخدامه لتسريع فك الترميز التسلسلي. سيُعدَّل كائن القاموس في مكانه أثناء المرور الأمامي لإضافة الحالات المخفية المحسوبة حديثًا.

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

output_attentions (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع مصفوفات الانتباه لجميع طبقات الانتباه. راجع `attentions` ضمن المصفوفات المُرجعة لمزيد من التفاصيل.

output_hidden_states (`bool`, *اختياري*) : ما إذا كان سيتم إرجاع الحالات المخفية لجميع الطبقات. راجع `hidden_states` ضمن الموترات المُرجعة لمزيد من التفاصيل.

return_dict (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع [ModelOutput](/docs/transformers/main/ar/main_classes/output#transformers.utils.ModelOutput) بدلاً من tuple عادي.

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

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

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

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

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

## FlaubertWithLMHeadModel[[transformers.FlaubertWithLMHeadModel]]

#### transformers.FlaubertWithLMHeadModel[[transformers.FlaubertWithLMHeadModel]]

```python
transformers.FlaubertWithLMHeadModel(config: FlaubertConfig)
```

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

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

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

نموذج Flaubert transformer مع رأس لنمذجة اللغة في الأعلى (طبقة خطية بأوزان مرتبطة بالتضمينات المدخلة).

يرث هذا النموذج من [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.FlaubertWithLMHeadModel.forward]]

```python
forward(input_ids: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, langs: typing.Optional[torch.Tensor] = None, token_type_ids: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.Tensor] = None, lengths: typing.Optional[torch.Tensor] = None, cache: dict[str, torch.Tensor] | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.Tensor] = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, **kwargs)
```

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

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

input_ids (`torch.Tensor` من الشكل `(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)

langs (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : تسلسل موازٍ من الرموز يُستخدم للإشارة إلى لغة كل رمز في المدخلات. الفهارس هي معرّفات اللغات التي يمكن الحصول عليها من أسماء اللغات باستخدام خريطتي تحويل موفرتين في إعدادات النموذج (تُوفَّر فقط للنماذج متعددة اللغات). وبشكل أدق، خريطة *اسم اللغة إلى معرّف اللغة* موجودة في `model.config.lang2id` (وهي قاموس من السلاسل النصية إلى الأعداد الصحيحة) وخريطة *معرّف اللغة إلى اسم اللغة* موجودة في `model.config.id2lang` (قاموس من الأعداد الصحيحة إلى السلاسل النصية). راجع أمثلة الاستخدام المفصّلة في [التوثيق متعدد اللغات](../multilingual).

token_type_ids (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار الفهارس من `[0, 1]`: - 0 يقابل رمز *الجملة أ*، - 1 يقابل رمز *الجملة ب*. [ما هي معرّفات أنواع الرموز؟](../glossary#token-type-ids)

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

lengths (`torch.LongTensor` من الشكل `(batch_size,)`، *اختياري*) : طول كل جملة يمكن استخدامه لتجنب تنفيذ الانتباه على فهارس رموز الحشو. يمكنك أيضًا استخدام `attention_mask` للحصول على النتيجة نفسها (انظر أعلاه)، وقد أبقينا عليه هنا من أجل التوافق. الفهارس المختارة في `[0, ..., input_ids.size(-1)]`:

cache (`dict[str, torch.Tensor]`، *اختياري*) : قاموس من السلاسل النصية إلى `torch.Tensor` يحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه) كما يحسبها النموذج (انظر مخرج `cache` أدناه). يمكن استخدامه لتسريع فك الترميز التسلسلي. سيُعدَّل كائن القاموس في مكانه أثناء المرور الأمامي لإضافة الحالات المخفية المحسوبة حديثًا.

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

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

output_attentions (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع مصفوفات الانتباه لجميع طبقات الانتباه. راجع `attentions` ضمن المصفوفات المُرجعة لمزيد من التفاصيل.

output_hidden_states (`bool`, *اختياري*) : ما إذا كان سيتم إرجاع الحالات المخفية لجميع الطبقات. راجع `hidden_states` ضمن الموترات المُرجعة لمزيد من التفاصيل.

return_dict (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع [ModelOutput](/docs/transformers/main/ar/main_classes/output#transformers.utils.ModelOutput) بدلاً من tuple عادي.

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

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

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

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

- **loss** (`torch.Tensor` من الشكل `(1,)`، *اختياري*، يُعاد عند توفير `labels`) -- خسارة نمذجة اللغة المقنّعة (MLM).
- **logits** (`torch.Tensor` من الشكل `(batch_size, sequence_length, config.vocab_size)`) -- درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).
- **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
>>> import torch
>>> from transformers import AutoTokenizer, FlaubertWithLMHeadModel

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertWithLMHeadModel.from_pretrained("flaubert/flaubert_base_uncased")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> outputs = model(**inputs, labels=inputs["input_ids"])
>>> loss = outputs.loss
>>> logits = outputs.logits
```

## FlaubertForSequenceClassification[[transformers.FlaubertForSequenceClassification]]

#### transformers.FlaubertForSequenceClassification[[transformers.FlaubertForSequenceClassification]]

```python
transformers.FlaubertForSequenceClassification(config: FlaubertConfig)
```

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

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

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

نموذج Flaubert مع رأس تصنيف/انحدار تسلسلي في الأعلى (طبقة خطية فوق المخرجات المجمعة) على سبيل المثال لمهام GLUE.

يرث هذا النموذج من [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.FlaubertForSequenceClassification.forward]]

```python
forward(input_ids: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, langs: typing.Optional[torch.Tensor] = None, token_type_ids: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.Tensor] = None, lengths: typing.Optional[torch.Tensor] = None, cache: dict[str, torch.Tensor] | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.Tensor] = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, **kwargs)
```

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

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

input_ids (`torch.Tensor` من الشكل `(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)

langs (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : تسلسل موازٍ من الرموز يُستخدم للإشارة إلى لغة كل رمز في المدخلات. الفهارس هي معرّفات اللغات التي يمكن الحصول عليها من أسماء اللغات باستخدام خريطتي تحويل موفرتين في إعدادات النموذج (تُوفَّر فقط للنماذج متعددة اللغات). وبشكل أدق، خريطة *اسم اللغة إلى معرّف اللغة* موجودة في `model.config.lang2id` (وهي قاموس من السلاسل النصية إلى الأعداد الصحيحة) وخريطة *معرّف اللغة إلى اسم اللغة* موجودة في `model.config.id2lang` (قاموس من الأعداد الصحيحة إلى السلاسل النصية). راجع أمثلة الاستخدام المفصّلة في [التوثيق متعدد اللغات](../multilingual).

token_type_ids (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار الفهارس من `[0, 1]`: - 0 يقابل رمز *الجملة أ*، - 1 يقابل رمز *الجملة ب*. [ما هي معرّفات أنواع الرموز؟](../glossary#token-type-ids)

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

lengths (`torch.LongTensor` من الشكل `(batch_size,)`، *اختياري*) : طول كل جملة يمكن استخدامه لتجنب تنفيذ الانتباه على فهارس رموز الحشو. يمكنك أيضًا استخدام *attention_mask* للحصول على النتيجة نفسها (انظر أعلاه)، وقد أبقينا عليه هنا من أجل التوافق. الفهارس المختارة من `[0, ..., input_ids.size(-1)]`.

cache (`dict[str, torch.Tensor]`، *اختياري*) : نسخة من `EncoderDecoderCache` تحتوي على حالات KV المحسوبة مسبقًا. يمكن استخدامه لتسريع فك الترميز التسلسلي.

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` يتم حساب خسارة التصنيف (الإنتروبيا المتقاطعة).

output_attentions (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع مصفوفات الانتباه لجميع طبقات الانتباه. راجع `attentions` ضمن المصفوفات المُرجعة لمزيد من التفاصيل.

output_hidden_states (`bool`, *اختياري*) : ما إذا كان سيتم إرجاع الحالات المخفية لجميع الطبقات. راجع `hidden_states` ضمن الموترات المُرجعة لمزيد من التفاصيل.

return_dict (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع [ModelOutput](/docs/transformers/main/ar/main_classes/output#transformers.utils.ModelOutput) بدلاً من tuple عادي.

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

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

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

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

- **loss** (`torch.Tensor` من الشكل `(1,)`, *اختياري*، يُعاد عند تقديم `labels`) -- خسارة التصنيف (أو الانحدار إذا كان config.num_labels==1).
- **logits** (`torch.Tensor` من الشكل `(batch_size, config.num_labels)`) -- درجات التصنيف (أو الانحدار إذا كان config.num_labels==1) (قبل SoftMax).
- **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
>>> import torch
>>> from transformers import AutoTokenizer, FlaubertForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertForSequenceClassification.from_pretrained("flaubert/flaubert_base_uncased")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_id = logits.argmax().item()
>>> model.config.id2label[predicted_class_id]
...

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = FlaubertForSequenceClassification.from_pretrained("flaubert/flaubert_base_uncased", num_labels=num_labels)

>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...
```

مثال على تصنيف متعدد التسميات:

```python
>>> import torch
>>> from transformers import AutoTokenizer, FlaubertForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertForSequenceClassification.from_pretrained("flaubert/flaubert_base_uncased", problem_type="multi_label_classification")

>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_class_ids = torch.arange(0, logits.shape[-1])[torch.sigmoid(logits).squeeze(dim=0) > 0.5]

>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = FlaubertForSequenceClassification.from_pretrained(
...     "flaubert/flaubert_base_uncased", num_labels=num_labels, problem_type="multi_label_classification"
... )

>>> labels = torch.sum(
...     torch.nn.functional.one_hot(predicted_class_ids[None, :].clone(), num_classes=num_labels), dim=1
... ).to(torch.float)
>>> loss = model(**inputs, labels=labels).loss
```

## FlaubertForMultipleChoice[[transformers.FlaubertForMultipleChoice]]

#### transformers.FlaubertForMultipleChoice[[transformers.FlaubertForMultipleChoice]]

```python
transformers.FlaubertForMultipleChoice(config: FlaubertConfig, *inputs, **kwargs)
```

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

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

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

نموذج Flaubert مع رأس تصنيف متعدد الخيارات في الأعلى (طبقة خطية فوق المخرجات المجمعة و softmax) على سبيل المثال لمهام RocStories/SWAG.

يرث هذا النموذج من [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.FlaubertForMultipleChoice.forward]]

```python
forward(input_ids: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, langs: typing.Optional[torch.Tensor] = None, token_type_ids: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.Tensor] = None, lengths: typing.Optional[torch.Tensor] = None, cache: dict[str, torch.Tensor] | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.Tensor] = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, **kwargs)
```

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

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

input_ids (`torch.LongTensor` بأبعاد `(batch_size, num_choices, 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)

langs (`torch.LongTensor` من الشكل `(batch_size, num_choices, sequence_length)`، *اختياري*) : تسلسل موازٍ من الرموز يُستخدم للإشارة إلى لغة كل رمز في المدخلات. الفهارس هي معرّفات اللغات التي يمكن الحصول عليها من أسماء اللغات باستخدام خريطتي تحويل موفرتين في إعدادات النموذج (تُوفَّر فقط للنماذج متعددة اللغات). وبشكل أدق، خريطة *اسم اللغة إلى معرّف اللغة* موجودة في `model.config.lang2id` (وهي قاموس من السلاسل النصية إلى الأعداد الصحيحة) وخريطة *معرّف اللغة إلى اسم اللغة* موجودة في `model.config.id2lang` (قاموس من الأعداد الصحيحة إلى السلاسل النصية). راجع أمثلة الاستخدام المفصّلة في [التوثيق متعدد اللغات](../multilingual).

token_type_ids (`torch.LongTensor` من الشكل `(batch_size, num_choices, sequence_length)`، *اختياري*) : فهارس رموز المقاطع للإشارة إلى الجزء الأول والثاني من المدخلات. يتم اختيار الفهارس من `[0, 1]`: - 0 يقابل رمز *الجملة A*، - 1 يقابل رمز *الجملة B*. [ما هي معرّفات أنواع الرموز؟](../glossary#token-type-ids)

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

lengths (`torch.LongTensor` من الشكل `(batch_size,)`، *اختياري*) : طول كل جملة يمكن استخدامه لتجنب تنفيذ الانتباه على فهارس رموز الحشو. يمكنك أيضًا استخدام *attention_mask* للحصول على النتيجة نفسها (انظر أعلاه)، وقد أبقينا عليه هنا من أجل التوافق. الفهارس المختارة من `[0, ..., input_ids.size(-1)]`.

cache (`dict[str, torch.Tensor]`، *اختياري*) : نسخة من `EncoderDecoderCache` تحتوي على حالات KV المحسوبة مسبقًا. يمكن استخدامه لتسريع فك الترميز التسلسلي.

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

labels (`torch.LongTensor` من الشكل `(batch_size,)`، *اختياري*) : تسميات لحساب خسارة تصنيف الاختيار المتعدد. يجب أن تكون الفهارس ضمن `[0, ..., num_choices-1]` حيث `num_choices` هو حجم البُعد الثاني من المصفوفات المدخلة. (انظر `input_ids` أعلاه)

output_attentions (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع مصفوفات الانتباه لجميع طبقات الانتباه. راجع `attentions` ضمن المصفوفات المُرجعة لمزيد من التفاصيل.

output_hidden_states (`bool`, *اختياري*) : ما إذا كان سيتم إرجاع الحالات المخفية لجميع الطبقات. راجع `hidden_states` ضمن الموترات المُرجعة لمزيد من التفاصيل.

return_dict (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع [ModelOutput](/docs/transformers/main/ar/main_classes/output#transformers.utils.ModelOutput) بدلاً من tuple عادي.

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

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

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

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

- **loss** (`torch.Tensor` بأبعاد *(1,)*، *اختياري*، يُعاد عند تقديم `labels`) -- خسارة التصنيف.
- **logits** (`torch.Tensor` بأبعاد `(batch_size, num_choices)`) -- *num_choices* هو البُعد الثاني من المصفوفات المدخلة. (انظر إلى *input_ids* أعلاه).

  درجات التصنيف (قبل SoftMax).
- **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, FlaubertForMultipleChoice
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertForMultipleChoice.from_pretrained("flaubert/flaubert_base_uncased")

>>> prompt = "In Italy, pizza served in formal settings, such as at a restaurant, is presented unsliced."
>>> choice0 = "It is eaten with a fork and a knife."
>>> choice1 = "It is eaten while held in the hand."
>>> labels = torch.tensor(0).unsqueeze(0)  # choice0 is correct (according to Wikipedia ;)), batch size 1

>>> encoding = tokenizer([prompt, prompt], [choice0, choice1], return_tensors="pt", padding=True)
>>> outputs = model(**{k: v.unsqueeze(0) for k, v in encoding.items()}, labels=labels)  # batch size is 1

>>> # the linear classifier still needs to be trained
>>> loss = outputs.loss
>>> logits = outputs.logits
```

## FlaubertForTokenClassification[[transformers.FlaubertForTokenClassification]]

#### transformers.FlaubertForTokenClassification[[transformers.FlaubertForTokenClassification]]

```python
transformers.FlaubertForTokenClassification(config: FlaubertConfig)
```

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

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

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

تحويل فلوبيرت (Flaubert) مع رأس تصنيف الرموز في الأعلى (طبقة خطية فوق مخرجات الحالات المخفية) على سبيل المثال لمهام التعرف على الكيانات المسمّاة (NER).

يرث هذا النموذج من [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.FlaubertForTokenClassification.forward]]

```python
forward(input_ids: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, langs: typing.Optional[torch.Tensor] = None, token_type_ids: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.Tensor] = None, lengths: typing.Optional[torch.Tensor] = None, cache: dict[str, torch.Tensor] | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.Tensor] = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, **kwargs)
```

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

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

input_ids (`torch.Tensor` من الشكل `(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)

langs (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : تسلسل موازٍ من الرموز يُستخدم للإشارة إلى لغة كل رمز في المدخلات. الفهارس هي معرّفات اللغات التي يمكن الحصول عليها من أسماء اللغات باستخدام خريطتي تحويل موفرتين في إعدادات النموذج (تُوفَّر فقط للنماذج متعددة اللغات). وبشكل أدق، خريطة *اسم اللغة إلى معرّف اللغة* موجودة في `model.config.lang2id` (وهي قاموس من السلاسل النصية إلى الأعداد الصحيحة) وخريطة *معرّف اللغة إلى اسم اللغة* موجودة في `model.config.id2lang` (قاموس من الأعداد الصحيحة إلى السلاسل النصية). راجع أمثلة الاستخدام المفصّلة في [التوثيق متعدد اللغات](../multilingual).

token_type_ids (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار الفهارس من `[0, 1]`: - 0 يقابل رمز *الجملة أ*، - 1 يقابل رمز *الجملة ب*. [ما هي معرّفات أنواع الرموز؟](../glossary#token-type-ids)

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

lengths (`torch.LongTensor` من الشكل `(batch_size,)`، *اختياري*) : طول كل جملة يمكن استخدامه لتجنب تنفيذ الانتباه على فهارس رموز الحشو. يمكنك أيضًا استخدام *attention_mask* للحصول على النتيجة نفسها (انظر أعلاه)، وقد أبقينا عليه هنا من أجل التوافق. الفهارس المختارة من `[0, ..., input_ids.size(-1)]`.

cache (`dict[str, torch.Tensor]`، *اختياري*) : نسخة من `EncoderDecoderCache` تحتوي على حالات KV المحسوبة مسبقًا. يمكن استخدامه لتسريع فك الترميز التسلسلي.

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]`.

output_attentions (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع مصفوفات الانتباه لجميع طبقات الانتباه. راجع `attentions` ضمن المصفوفات المُرجعة لمزيد من التفاصيل.

output_hidden_states (`bool`, *اختياري*) : ما إذا كان سيتم إرجاع الحالات المخفية لجميع الطبقات. راجع `hidden_states` ضمن الموترات المُرجعة لمزيد من التفاصيل.

return_dict (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع [ModelOutput](/docs/transformers/main/ar/main_classes/output#transformers.utils.ModelOutput) بدلاً من tuple عادي.

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

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

تُعيد طريقة [FlaubertForTokenClassification](/docs/transformers/main/ar/model_doc/flaubert#transformers.FlaubertForTokenClassification) الخاصة بالتقديم (forward) تعريف الطريقة الخاصة `__call__`.

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

- **loss** (`torch.Tensor` of shape `(1,)`, *اختياري*, يُعاد عند توفير `labels`) -- خسارة التصنيف.
- **logits** (`torch.Tensor` من الشكل `(batch_size, sequence_length, config.num_labels)`) -- درجات التصنيف (قبل SoftMax).
- **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, FlaubertForTokenClassification
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertForTokenClassification.from_pretrained("flaubert/flaubert_base_uncased")

>>> inputs = tokenizer(
...     "HuggingFace is a company based in Paris and New York", add_special_tokens=False, return_tensors="pt"
... )

>>> with torch.no_grad():
...     logits = model(**inputs).logits

>>> predicted_token_class_ids = logits.argmax(-1)

>>> # Note that tokens are classified rather then input words which means that
>>> # there might be more predicted token classes than words.
>>> # Multiple token classes might account for the same word
>>> predicted_tokens_classes = [model.config.id2label[t.item()] for t in predicted_token_class_ids[0]]
>>> predicted_tokens_classes
...

>>> labels = predicted_token_class_ids
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...
```

## FlaubertForQuestionAnsweringSimple[[transformers.FlaubertForQuestionAnsweringSimple]]

#### transformers.FlaubertForQuestionAnsweringSimple[[transformers.FlaubertForQuestionAnsweringSimple]]

```python
transformers.FlaubertForQuestionAnsweringSimple(config: FlaubertConfig)
```

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

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

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

نموذج Flaubert مع رأس تصنيف مقاطع (span classification head) في الأعلى لمهام الإجابة الاستخراجية على الأسئلة مثل SQuAD (طبقات خطية فوق مخرجات الحالات المخفية لحساب `span start logits` و`span end logits`).

يرث هذا النموذج من [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.FlaubertForQuestionAnsweringSimple.forward]]

```python
forward(input_ids: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, langs: typing.Optional[torch.Tensor] = None, token_type_ids: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.Tensor] = None, lengths: typing.Optional[torch.Tensor] = None, cache: dict[str, torch.Tensor] | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, start_positions: typing.Optional[torch.Tensor] = None, end_positions: typing.Optional[torch.Tensor] = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, **kwargs)
```

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

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

input_ids (`torch.Tensor` من الشكل `(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)

langs (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : تسلسل موازٍ من الرموز يُستخدم للإشارة إلى لغة كل رمز في المدخلات. الفهارس هي معرّفات اللغات التي يمكن الحصول عليها من أسماء اللغات باستخدام خريطتي تحويل موفرتين في إعدادات النموذج (تُوفَّر فقط للنماذج متعددة اللغات). وبشكل أدق، خريطة *اسم اللغة إلى معرّف اللغة* موجودة في `model.config.lang2id` (وهي قاموس من السلاسل النصية إلى الأعداد الصحيحة) وخريطة *معرّف اللغة إلى اسم اللغة* موجودة في `model.config.id2lang` (قاموس من الأعداد الصحيحة إلى السلاسل النصية). راجع أمثلة الاستخدام المفصّلة في [التوثيق متعدد اللغات](../multilingual).

token_type_ids (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار الفهارس من `[0, 1]`: - 0 يقابل رمز *الجملة أ*، - 1 يقابل رمز *الجملة ب*. [ما هي معرّفات أنواع الرموز؟](../glossary#token-type-ids)

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

lengths (`torch.LongTensor` من الشكل `(batch_size,)`، *اختياري*) : طول كل جملة يمكن استخدامه لتجنب تنفيذ الانتباه على فهارس رموز الحشو. يمكنك أيضًا استخدام *attention_mask* للحصول على النتيجة نفسها (انظر أعلاه)، وقد أبقينا عليه هنا من أجل التوافق. الفهارس المختارة من `[0, ..., input_ids.size(-1)]`.

cache (`dict[str, torch.Tensor]`، *اختياري*) : نسخة من `EncoderDecoderCache` تحتوي على حالات KV المحسوبة مسبقًا. يمكن استخدامه لتسريع فك الترميز التسلسلي.

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

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

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

output_attentions (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع مصفوفات الانتباه لجميع طبقات الانتباه. راجع `attentions` ضمن المصفوفات المُرجعة لمزيد من التفاصيل.

output_hidden_states (`bool`, *اختياري*) : ما إذا كان سيتم إرجاع الحالات المخفية لجميع الطبقات. راجع `hidden_states` ضمن الموترات المُرجعة لمزيد من التفاصيل.

return_dict (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع [ModelOutput](/docs/transformers/main/ar/main_classes/output#transformers.utils.ModelOutput) بدلاً من tuple عادي.

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

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

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

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

- **loss** (`torch.Tensor` بشكل `(1,)`، *اختياري*، يُعاد عند توفير `labels`) -- خسارة استخراج النطاق الكلي هي مجموع دالة Cross-Entropy لموقعي البداية والنهاية.
- **start_logits** (`torch.Tensor` من الشكل `(batch_size, sequence_length)`) -- درجات بداية المقطع (قبل SoftMax).
- **end_logits** (`torch.Tensor` بأبعاد `(batch_size, sequence_length)`) -- درجات نهاية المقطع (قبل SoftMax).
- **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, FlaubertForQuestionAnsweringSimple
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("flaubert/flaubert_base_uncased")
>>> model = FlaubertForQuestionAnsweringSimple.from_pretrained("flaubert/flaubert_base_uncased")

>>> question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"

>>> inputs = tokenizer(question, text, return_tensors="pt")
>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> answer_start_index = outputs.start_logits.argmax()
>>> answer_end_index = outputs.end_logits.argmax()

>>> predict_answer_tokens = inputs.input_ids[0, answer_start_index : answer_end_index + 1]
>>> tokenizer.decode(predict_answer_tokens, skip_special_tokens=True)
...

>>> # target is "nice puppet"
>>> target_start_index = torch.tensor([14])
>>> target_end_index = torch.tensor([15])

>>> outputs = model(**inputs, start_positions=target_start_index, end_positions=target_end_index)
>>> loss = outputs.loss
>>> round(loss.item(), 2)
...
```

## FlaubertForQuestionAnswering[[transformers.FlaubertForQuestionAnswering]]

#### transformers.FlaubertForQuestionAnswering[[transformers.FlaubertForQuestionAnswering]]

```python
transformers.FlaubertForQuestionAnswering(config: FlaubertConfig)
```

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

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

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

تحويلة Flaubert مع رأس تصنيف مقاطع في الأعلى لمهام الإجابة الاستخراجية على الأسئلة مثل SQuAD (طبقة خطية فوق مخرجات الحالات المخفية لحساب `span start logits` و`span end logits`).

يرث هذا النموذج من [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.FlaubertForQuestionAnswering.forward]]

```python
forward(input_ids: typing.Optional[torch.Tensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, langs: typing.Optional[torch.Tensor] = None, token_type_ids: typing.Optional[torch.Tensor] = None, position_ids: typing.Optional[torch.Tensor] = None, lengths: typing.Optional[torch.Tensor] = None, cache: dict[str, torch.Tensor] | None = None, inputs_embeds: typing.Optional[torch.Tensor] = None, start_positions: typing.Optional[torch.Tensor] = None, end_positions: typing.Optional[torch.Tensor] = None, is_impossible: typing.Optional[torch.Tensor] = None, cls_index: typing.Optional[torch.Tensor] = None, p_mask: typing.Optional[torch.Tensor] = None, output_attentions: bool | None = None, output_hidden_states: bool | None = None, return_dict: bool | None = None, **kwargs)
```

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

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

input_ids (`torch.Tensor` من الشكل `(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)

langs (`torch.LongTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : تسلسل موازٍ من الرموز يُستخدم للإشارة إلى لغة كل رمز في المدخلات. الفهارس هي معرّفات اللغات التي يمكن الحصول عليها من أسماء اللغات باستخدام خريطتي تحويل موفرتين في إعدادات النموذج (تُوفَّر فقط للنماذج متعددة اللغات). وبشكل أدق، خريطة *اسم اللغة إلى معرّف اللغة* موجودة في `model.config.lang2id` (وهي قاموس من السلاسل النصية إلى الأعداد الصحيحة) وخريطة *معرّف اللغة إلى اسم اللغة* موجودة في `model.config.id2lang` (قاموس من الأعداد الصحيحة إلى السلاسل النصية). راجع أمثلة الاستخدام المفصّلة في [التوثيق متعدد اللغات](../multilingual).

token_type_ids (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : فهارس رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار الفهارس من `[0, 1]`: - 0 يقابل رمز *الجملة أ*، - 1 يقابل رمز *الجملة ب*. [ما هي معرّفات أنواع الرموز؟](../glossary#token-type-ids)

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

lengths (`torch.LongTensor` من الشكل `(batch_size,)`، *اختياري*) : طول كل جملة يمكن استخدامه لتجنب تنفيذ الانتباه على فهارس رموز الحشو. يمكنك أيضًا استخدام *attention_mask* للحصول على النتيجة نفسها (انظر أعلاه)، وقد أبقينا عليه هنا من أجل التوافق. الفهارس المختارة من `[0, ..., input_ids.size(-1)]`.

cache (`dict[str, torch.Tensor]`، *اختياري*) : نسخة من `EncoderDecoderCache` تحتوي على حالات KV المحسوبة مسبقًا. يمكن استخدامه لتسريع فك الترميز التسلسلي.

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

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

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

is_impossible (`torch.LongTensor` من الشكل `(batch_size,)`، *اختياري*) : تسميات تحدد ما إذا كان للسؤال إجابة أم لا (SQuAD 2.0)

cls_index (`torch.LongTensor` من الشكل `(batch_size,)`، *اختياري*) : تسميات لموضع (فهرس) رمز التصنيف لاستخدامه كمدخل لحساب معقولية الإجابة.

p_mask (`torch.Tensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : قناع اختياري للرموز التي لا يمكن أن تكون ضمن الإجابات (مثل [CLS]، [PAD]، ...). القيمة 1.0 تعني أن الرمز يجب إخفاؤه. القيمة 0.0 تعني أن الرمز غير مخفي.

output_attentions (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع مصفوفات الانتباه لجميع طبقات الانتباه. راجع `attentions` ضمن المصفوفات المُرجعة لمزيد من التفاصيل.

output_hidden_states (`bool`, *اختياري*) : ما إذا كان سيتم إرجاع الحالات المخفية لجميع الطبقات. راجع `hidden_states` ضمن الموترات المُرجعة لمزيد من التفاصيل.

return_dict (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع [ModelOutput](/docs/transformers/main/ar/main_classes/output#transformers.utils.ModelOutput) بدلاً من tuple عادي.

**يعيد:** `FlaubertForQuestionAnsweringOutput` أو `tuple(torch.Tensor)`

`FlaubertForQuestionAnsweringOutput` أو مجموعة مرتبة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) وتتضمن عناصر مختلفة اعتماداً على الإعداد ([FlaubertConfig](/docs/transformers/main/ar/model_doc/flaubert#transformers.FlaubertConfig)) والمدخلات.

تُعيد طريقة [FlaubertForQuestionAnswering](/docs/transformers/main/ar/model_doc/flaubert#transformers.FlaubertForQuestionAnswering) الخاصة بالتقديم (forward) تعريف الطريقة الخاصة `__call__`.

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

- **loss** (`torch.Tensor` of shape `(1,)`, *اختياري*, يُعاد إذا تم توفير كل من `start_positions` و`end_positions`) -- خسارة التصنيف كمجموع لخسائر تصنيف رمز البداية، ورمز النهاية (و is_impossible إذا تم توفيره).
- **start_top_log_probs** (`torch.Tensor` من الشكل `(batch_size, config.start_n_top)`، *اختياري*، يُعاد إذا لم يُقدَّم `start_positions` أو `end_positions`) -- احتمالات اللوغاريتمية لأفضل config.start_n_top احتمالات لرموز البداية (بحث الحزمة).
- **start_top_index** (`torch.LongTensor` من الشكل `(batch_size, config.start_n_top)`، *اختياري*، يُعاد إذا لم يُقدَّم `start_positions` أو `end_positions`) -- فهارس لأفضل config.start_n_top احتمالات لرمز البداية (بحث الحزمة).
- **end_top_log_probs** (`torch.Tensor` من الشكل `(batch_size, config.start_n_top * config.end_n_top)`، *اختياري*، يُعاد إذا لم يُقدَّم `start_positions` أو `end_positions`) -- احتمالات السجل (Log probabilities) لأفضل `config.start_n_top * config.end_n_top` احتمالات لرموز النهاية (بحث الحزمة).
- **end_top_index** (`torch.LongTensor` من الشكل `(batch_size, config.start_n_top * config.end_n_top)`، *اختياري*، يُعاد إذا لم يُقدَّم `start_positions` أو `end_positions`) -- فهارس لأفضل `config.start_n_top * config.end_n_top` احتمالات لرمز النهاية (بحث الحزمة).
- **cls_logits** (`torch.Tensor` من الشكل `(batch_size,)`، *اختياري*، يُعاد إذا لم يُقدَّم `start_positions` أو `end_positions`) -- احتمالات اللوغاريتمية لوسم `is_impossible` للإجابات.
- **hidden_states** (`tuple[torch.Tensor]`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة (Tuple) من `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, FlaubertForQuestionAnswering
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> model = FlaubertForQuestionAnswering.from_pretrained("FacebookAI/xlm-mlm-en-2048")

>>> input_ids = torch.tensor(tokenizer.encode("Hello, my dog is cute", add_special_tokens=True)).unsqueeze(
...     0
... )  # Batch size 1
>>> start_positions = torch.tensor([1])
>>> end_positions = torch.tensor([3])

>>> outputs = model(input_ids, start_positions=start_positions, end_positions=end_positions)
>>> loss = outputs.loss
```

