Transformers documentation

FlauBERT

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

نُشر هذا النموذج في أوراق HF في 11-12-2019، وسُهم به في Hugging Face Transformers في 16-11-2020.

FlauBERT

نظرة عامة

قُدِّم نموذج FlauBERT في ورقة FlauBERT: Unsupervised Language Model Pre-training for French التي كتبها 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. يمكن العثور على الكود الأصلي هنا.

نصائح:

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

الموارد

FlaubertConfig

فئة transformers.FlaubertConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonepre_norm: bool = Falselayerdrop: float | int = 0.0vocab_size: int = 30145emb_dim: int = 2048n_layers: int = 12n_heads: int = 16dropout: float | int = 0.1attention_dropout: float | int = 0.1gelu_activation: bool = Truesinusoidal_embeddings: bool = Falsecausal: bool = Falseasm: bool = Falsen_langs: int = 1use_lang_emb: bool = Truemax_position_embeddings: int = 512embed_init_std: float = 0.02209708691207961layer_norm_eps: float = 1e-12init_std: float = 0.02bos_index: int = 0eos_index: int = 1pad_index: int = 2unk_index: int = 3mask_index: int = 5is_encoder: bool = Truesummary_type: str = 'first'summary_use_proj: bool = Truesummary_activation: str | None = Nonesummary_proj_to_labels: bool = Truesummary_first_dropout: float | int = 0.1start_n_top: int = 5end_n_top: int = 5mask_token_id: int = 0lang_id: int = 0pad_token_id: int | None = 2bos_token_id: int | None = 0eos_token_id: int | list[int] | None = 1tie_word_embeddings: bool = True )

المعاملات

  • pre_norm (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم تطبيق تطبيع الطبقة قبل أو بعد طبقة التقدّم الأمامي التي تلي الانتباه في كل طبقة (Vaswani et al., Tensor2Tensor for Neural Machine Translation. 2018)
  • layerdrop (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — احتمالية LayerDrop. راجع [ورقة LayerDrop](انظر 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) — ما إذا كان سيتم استخدام طبقة إسقاط لوجاريتمي تكيّفي (adaptive log softmax) بدلاً من طبقة خطية لطبقة التنبؤ.
  • n_langs (int، اختياري، القيمة الافتراضية 1) — عدد اللغات التي يتعامل معها النموذج. اضبطه على 1 للنماذج أحادية اللغة.
  • use_lang_emb (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم استخدام تمثيلات اللغة. تستخدم بعض النماذج تمثيلات لغة إضافية، راجع صفحة النماذج متعددة اللغات للحصول على معلومات حول كيفية استخدامها.
  • 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) — ما إذا كان النموذج يُستخدم كمُشفِّر.
  • 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) — ما إذا كان يجب ربط ترميزات الأوزان (weight embeddings) وفقاً لخريطة tied_weights_keys الخاصة بالنموذج.

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

ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.

FlaubertTokenizer

فئة transformers.FlaubertTokenizer

< >

( vocab_filemerges_filedo_lowercase = Falseunk_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 = Noneid2lang = None**kwargs )

المعاملات

  • vocab_file (str) — ملف المفردات.
  • merges_file (str) — ملف الدمج.
  • do_lowercase (bool، اختياري، القيمة الافتراضية False) — يتحكم في تحويل الأحرف إلى صيغة صغيرة.
  • unk_token (str، اختياري، القيمة الافتراضية "<unk>") — رمز المجهول. لا يمكن تحويل الرمز غير الموجود في المفردات إلى معرّف، لذا يُعيَّن هذا الرمز بدلاً منه.
  • bos_token (str, اختياري, الافتراضي هو "<s>") — رمز بداية التسلسل الذي تم استخدامه أثناء التدريب المسبق. يمكن استخدامه كرمز لتصنيف التسلسل. عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لبداية التسلسل، بل يُستخدم رمز cls_token.

    عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لبدء التسلسل. الرمز المستخدم هو 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 الذي يحتوي على معظم الطرق الرئيسية. ينبغي للمستخدمين الرجوع إلى هذه الفئة الأصلية لمزيد من المعلومات حول تلك الطرق.

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → List[int]

المعاملات

  • token_ids_0 (List[int]) — قائمة بالمعرّفات التي ستُضاف إليها الرموز الخاصة.
  • token_ids_1 (List[int]، اختياري) — قائمة اختيارية ثانية من المعرّفات لأزواج التسلسلات.

يعيد

List[int]

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

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

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

convert_tokens_to_string

< >

( tokens )

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

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → List[int]

المعاملات

  • token_ids_0 (List[int]) — قائمة من المعرّفات.
  • token_ids_1 (List[int]، اختياري) — قائمة اختيارية ثانية من المعرّفات لأزواج التسلسلات.
  • already_has_special_tokens (bool، اختياري، القيمة الافتراضية False) — ما إذا كانت قائمة الرموز (tokens) منسّقة مسبقًا برموز خاصة للنموذج أم لا.

يعيد

List[int]

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

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

FlaubertModel

فئة transformers.FlaubertModel

< >

( config: FlaubertConfig )

المعاملات

  • config (FlaubertConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

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

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonelengths: typing.Optional[torch.LongTensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → BaseModelOutput or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

    ما هي أقنعة الانتباه؟

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

    راجع أمثلة الاستخدام المفصّلة في التوثيق متعدد اللغات.

  • token_type_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من [0, 1]:
    • 0 يتوافق مع رمز sentence A،
    • 1 يتوافق مع رمز sentence B.

    ما هي معرّفات أنواع الرموز؟

  • position_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق [0, config.n_positions - 1].

    ما هي معرّفات المواقع؟

  • 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، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

BaseModelOutput أو tuple(torch.Tensor)

BaseModelOutput أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (FlaubertConfig) والمدخلات.

تتجاوز طريقة FlaubertModel الخاصة بالتقديم (forward) الطريقة الخاصة __call__.

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

  • last_hidden_state (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.

  • 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

< >

( config: FlaubertConfig )

المعاملات

  • config (FlaubertConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

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

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → MaskedLMOutput or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على المؤشرات باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات الإدخال؟

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

    ما هي أقنعة الانتباه؟

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

    راجع أمثلة الاستخدام المفصّلة في التوثيق متعدد اللغات.

  • token_type_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من [0, 1]:
    • 0 يتوافق مع رمز sentence A،
    • 1 يتوافق مع رمز sentence B.

    ما هي معرّفات أنواع الرموز؟

  • position_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق [0, config.n_positions - 1].

    ما هي معرّفات المواقع؟

  • 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، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

MaskedLMOutput أو tuple(torch.Tensor)

MaskedLMOutput أو مجموعة (tuple) من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (FlaubertConfig) والمدخلات.

تتجاوز طريقة FlaubertWithLMHeadModel الخاصة بالتقديم (forward) الطريقة الخاصة __call__.

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

  • loss (torch.Tensor of shape (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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

>>> 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

< >

( config: FlaubertConfig )

المعاملات

  • config (FlaubertConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

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

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → SequenceClassifierOutput or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على المؤشرات باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات الإدخال؟

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

    ما هي أقنعة الانتباه؟

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

    راجع أمثلة الاستخدام المفصّلة في التوثيق متعدد اللغات.

  • token_type_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من [0, 1]:
    • 0 يتوافق مع رمز sentence A،
    • 1 يتوافق مع رمز sentence B.

    ما هي معرّفات أنواع الرموز؟

  • position_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق [0, config.n_positions - 1].

    ما هي معرّفات المواقع؟

  • 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، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

SequenceClassifierOutput أو tuple(torch.Tensor)

SequenceClassifierOutput أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (FlaubertConfig) والمدخلات.

تتجاوز طريقة 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

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

>>> 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)
...

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

>>> 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

< >

( config: FlaubertConfig*inputs**kwargs )

المعاملات

  • config (FlaubertConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

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

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → MultipleChoiceModelOutput or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.LongTensor بشكل (batch_size, num_choices, sequence_length)) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات.

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

    ما هي أقنعة الانتباه؟

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

    راجع أمثلة الاستخدام المفصّلة في التوثيق متعدد اللغات.

  • token_type_ids (torch.LongTensor بشكل (batch_size, num_choices, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من [0, 1]:
    • 0 يتوافق مع رمز sentence A،
    • 1 يتوافق مع رمز sentence B.

    ما هي معرّفات أنواع الرموز؟

  • position_ids (torch.LongTensor بشكل (batch_size, num_choices, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق [0, config.max_position_embeddings - 1].

    ما هي معرّفات المواقع؟

  • 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، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

MultipleChoiceModelOutput أو tuple(torch.Tensor)

MultipleChoiceModelOutput أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (FlaubertConfig) والمدخلات.

تتجاوز طريقة 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

>>> 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

< >

( config: FlaubertConfig )

المعاملات

  • config (FlaubertConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

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

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → TokenClassifierOutput or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على المؤشرات باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات الإدخال؟

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

    ما هي أقنعة الانتباه؟

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

    راجع أمثلة الاستخدام المفصّلة في التوثيق متعدد اللغات.

  • token_type_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من [0, 1]:
    • 0 يتوافق مع رمز sentence A،
    • 1 يتوافق مع رمز sentence B.

    ما هي معرّفات أنواع الرموز؟

  • position_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق [0, config.n_positions - 1].

    ما هي معرّفات المواقع؟

  • 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، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

TokenClassifierOutput أو tuple(torch.Tensor)

TokenClassifierOutput أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (FlaubertConfig) والمدخلات.

تُعيد طريقة 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

>>> 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

< >

( config: FlaubertConfig )

المعاملات

  • config (FlaubertConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

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

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonestart_positions: typing.Optional[torch.Tensor] = Noneend_positions: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → QuestionAnsweringModelOutput or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على المؤشرات باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات الإدخال؟

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

    ما هي أقنعة الانتباه؟

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

    راجع أمثلة الاستخدام المفصّلة في التوثيق متعدد اللغات.

  • token_type_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من [0, 1]:
    • 0 يتوافق مع رمز sentence A،
    • 1 يتوافق مع رمز sentence B.

    ما هي معرّفات أنواع الرموز؟

  • position_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق [0, config.n_positions - 1].

    ما هي معرّفات المواقع؟

  • 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، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

QuestionAnsweringModelOutput أو tuple(torch.Tensor)

QuestionAnsweringModelOutput أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة تعتمد على الإعداد (FlaubertConfig) والمدخلات.

تتجاوز طريقة 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

>>> 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

< >

( config: FlaubertConfig )

المعاملات

  • config (FlaubertConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

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

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelangs: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonelengths: typing.Optional[torch.Tensor] = Nonecache: dict[str, torch.Tensor] | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonestart_positions: typing.Optional[torch.Tensor] = Noneend_positions: typing.Optional[torch.Tensor] = Noneis_impossible: typing.Optional[torch.Tensor] = Nonecls_index: typing.Optional[torch.Tensor] = Nonep_mask: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → FlaubertForQuestionAnsweringOutput or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على المؤشرات باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات الإدخال؟

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

    ما هي أقنعة الانتباه؟

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

    راجع أمثلة الاستخدام المفصّلة في التوثيق متعدد اللغات.

  • token_type_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من [0, 1]:
    • 0 يتوافق مع رمز sentence A،
    • 1 يتوافق مع رمز sentence B.

    ما هي معرّفات أنواع الرموز؟

  • position_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق [0, config.n_positions - 1].

    ما هي معرّفات المواقع؟

  • 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 of shape (batch_size,), اختياري) — التسميات الخاصة بموضع (فهرس) رمز التصنيف الذي يُستخدم كمدخل لحساب مدى معقولية الإجابة.
  • p_mask (torch.Tensor من الشكل (batch_size, sequence_length)، اختياري) — قناع اختياري للرموز التي لا يمكن أن تكون ضمن الإجابات (مثل [CLS]، [PAD]، …). القيمة 1.0 تعني أن الرمز يجب إخفاؤه. القيمة 0.0 تعني أن الرمز غير مخفي.
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

FlaubertForQuestionAnsweringOutput أو tuple(torch.Tensor)

FlaubertForQuestionAnsweringOutput أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة تعتمد على التهيئة (FlaubertConfig) والمدخلات.

تُعيد طريقة 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) — احتمالات السجل (Log probabilities) لوسم is_impossible للإجابات.

  • 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

>>> 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
Update on GitHub