Transformers documentation

XLNet

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 في 19-06-2019، وأُضيف إلى مكتبة Hugging Face Transformers في 16-11-2020.

XLNet

نظرة عامة

قُدِّم نموذج XLNet في XLNet: Generalized Autoregressive Pretraining for Language Understanding من قِبل Zhilin Yang وZihang Dai وYiming Yang وJaime Carbonell وRuslan Salakhutdinov وQuoc V. Le. يُعد XLnet امتدادًا لنموذج Transformer-XL، حيث تم تدريبه مسبقًا باستخدام طريقة ذاتية التوليد (autoregressive) لتعلّم السياقات ثنائية الاتجاه عن طريق تعظيم الاحتمالية المتوقعة عبر جميع التباديل (permutations) لترتيب تفكيك تسلسل الإدخال.

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

بفضل القدرة على نمذجة السياقات ثنائية الاتجاه، تحقق أساليب التدريب المسبق القائمة على الترميز التلقائي لإزالة الضوضاء، مثل BERT، أداءً أفضل من أساليب التدريب المسبق القائمة على نمذجة اللغة التلقائية. ومع ذلك، فإن اعتماد BERT على إتلاف المدخلات عبر الأقنعة يؤدي إلى إهمال الاعتماد بين المواضع المقنّعة، مما يسبب فجوة بين التدريب المسبق والتدريب الدقيق. في ضوء هذه المزايا والعيوب، نقترح XLNet، وهو أسلوب تدريب مسبق تلقائي عام (1) يتيح تعلم السياقات ثنائية الاتجاه عن طريق تعظيم الاحتمال المتوقع عبر جميع التباديل لترتيب التحليل، و(2) يتغلب على قيود BERT بفضل صياغته التلقائية. علاوة على ذلك، يدمج XLNet أفكارًا من Transformer-XL، وهو نموذج تلقائي متقدم، في التدريب المسبق. تجريبيًا، في ظل إعدادات تجارب قابلة للمقارنة، يتفوق XLNet على BERT في 20 مهمة، وغالبًا بفارق كبير، بما في ذلك الإجابة على الأسئلة، والاستدلال اللغوي الطبيعي، وتحليل المشاعر، وترتيب المستندات.

تمت مساهمة هذا النموذج من قِبل thomwolf. يمكن العثور على الكود الأصلي هنا.

نصائح للاستخدام

  • يمكن التحكم في نمط الانتباه المحدد أثناء التدريب والاختبار باستخدام مدخل perm_mask.
  • نظراً لصعوبة تدريب نموذج ذاتي التوليد بالكامل عبر مختلف ترتيبات التحليل، يتم تدريب XLNet مسبقاً باستخدام مجموعة فرعية فقط من رموز الإخراج كأهداف، يتم اختيارها عبر مدخل target_mapping.
  • لاستخدام XLNet في فك الترميز التسلسلي (أي ليس في إعداد ثنائي الاتجاه بالكامل)، استخدم مدخلات perm_mask وtarget_mapping للتحكم في نطاق الانتباه والمخرجات
  • يُعدّ XLNet من النماذج القليلة التي لا يوجد لها حدّ أقصى لطول التسلسل.
  • لا يُعد XLNet نموذجًا ذاتي التوليد تقليديًا، بل يستخدم استراتيجية تدريب مبنية على ذلك. إذ يُعيد ترتيب الرموز في الجملة، ثم يتيح للنموذج استخدام الرموز الأخيرة n للتنبؤ بالرمز n+1. وبما أن كل هذا يتم بواسطة قناع، فإن الجملة تُدخل فعليًا إلى النموذج بالترتيب الصحيح، لكن بدلًا من إخفاء الرموز الأولى n من أجل n+1، يستخدم XLNet قناعًا يخفي الرموز السابقة في ترتيب معين من 1 إلى طول التسلسل.
  • يستخدم XLNet أيضًا آلية التكرار نفسها التي يستخدمها Transformer-XL لبناء الاعتماديات طويلة المدى.

الموارد

XLNetConfig

فئة transformers.XLNetConfig

< >

( 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 = Nonevocab_size: int = 32000d_model: int = 1024n_layer: int = 24n_head: int = 16d_inner: int = 4096d_head: int | None = Noneff_activation: str = 'gelu'attn_type: str = 'bi'initializer_range: float = 0.02layer_norm_eps: float = 1e-12dropout: float | int = 0.1mem_len: int | None = 512reuse_len: int | None = Noneuse_mems_eval: bool = Trueuse_mems_train: bool = Falsebi_data: bool = Falseclamp_len: int = -1same_length: bool = Falsesummary_type: str = 'last'summary_use_proj: bool = Truesummary_activation: str = 'tanh'summary_last_dropout: float | int = 0.1start_n_top: int = 5end_n_top: int = 5pad_token_id: int | None = 5bos_token_id: int | None = 1eos_token_id: int | list[int] | None = 2tie_word_embeddings: bool = True )

المعاملات

  • vocab_size (int، اختياري، القيمة الافتراضية 32000) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة input_ids.
  • d_model (int، اختياري، القيمة الافتراضية 1024) — حجم طبقات المُشفِّر وطبقة المُجمِّع.
  • n_layer (int، اختياري، القيمة الافتراضية 24) — عدد الطبقات المخفية في مُفكِّك Transformer.
  • n_head (int، اختياري، القيمة الافتراضية 16) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • d_inner (int، اختياري، القيمة الافتراضية 4096) — أبعاد تمثيلات MLP.
  • d_head (int، اختياري) — بعدّية رأس الانتباه. إذا كانت القيمة None، فستتخذ القيمة الافتراضية hidden_size // num_attention_heads
  • ff_activation (str أو Callable، اختياري، القيمة الافتراضية "gelu") — دالة التنشيط غير الخطية (دالة أو نص). إذا كان نصًا، فالدوال المدعومة هي "gelu" و"relu" و"silu" و "gelu_new".
  • attn_type (str، اختياري، القيمة الافتراضية "bi") — نوع الانتباه المستخدم في النموذج. اضبط "bi" لـ XLNet، و"uni" لـ Transformer-XL.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • layer_norm_eps (float, اختياري، القيمة الافتراضية 1e-12) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة.
  • dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — النسبة لجميع طبقات dropout.
  • mem_len (int أو None، اختياري) — عدد الرموز التي سيتم تخزينها مؤقتًا. لن يتم إعادة حساب أزواج المفتاح/القيمة التي تم حسابها مسبقًا في تمريرة سابقة. راجع البدء السريع لمزيد من المعلومات.
  • reuse_len (int، اختياري) — عدد الرموز في الدفعة الحالية التي سيتم تخزينها مؤقتًا وإعادة استخدامها في المستقبل.
  • use_mems_eval (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب على النموذج استخدام آلية الذاكرة التكرارية في وضع التقييم أم لا.
  • use_mems_train (bool, optional, defaults to False) — Whether or not the model should make use of the recurrent memory mechanism in train mode.
    For pretraining, it is recommended to set `use_mems_train` to `True`. For fine-tuning, it is recommended to set `use_mems_train` to `False` as discussed [here](https://github.com/zihangdai/xlnet/issues/41#issuecomment-505102587). If `use_mems_train` is set to `True`, one has to make sure that the train batches are correctly pre-processed, *e.g.* `batch_1 = [[This line is], [This is the]]` and `batch_2 = [[ the first line], [ second line]]` and that all batches are of equal size.
  • bi_data (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام خط أنابيب إدخال ثنائي الاتجاه أم لا. عادةً ما تُضبط إلى True أثناء التدريب المسبق وإلى False أثناء الضبط الدقيق.
  • clamp_len (int، اختياري، القيمة الافتراضية -1) — تقييد جميع المسافات النسبية الأكبر من clamp_len. تعيين هذا السمة إلى -1 يعني عدم وجود تقييد.
  • same_length (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام نفس طول الانتباه لكل رمز.
  • summary_type (str, اختياري, الافتراضي هو "last") — الحُجّة المستخدمة عند تنفيذ تلخيص التسلسل. تُستخدم في نماذج تصنيف التسلسل ونماذج الاختيار المتعدد. يجب أن تكون إحدى الخيارات التالية:
    • "last": خذ حالة الترميز المخفية للرمز الأخير (مثل XLNet).
    • "first": خذ حالة الترميز المخفية للرمز الأول (مثل BERT).
    • "mean": احسب متوسط حالات الترميز المخفية لجميع الرموز.
    • "cls_index": قدّم مصفوفة (Tensor) تحدد موضع رمز التصنيف (كما في GPT/GPT-2).
    • "attn": غير مُنفَّذ حاليًا، استخدم الانتباه متعدد الرؤوس.
  • summary_use_proj (bool، اختياري، القيمة الافتراضية True) — الحُجّة المستخدمة عند إجراء تلخيص التسلسل. تُستخدم في نماذج تصنيف التسلسل ونماذج الاختيار المتعدد. ما إذا كان يجب إضافة إسقاط بعد استخراج المتجه أم لا.
  • summary_activation (str, اختياري) — الحُجّة المستخدمة عند إجراء تلخيص التسلسل. تُستخدم في نماذج تصنيف التسلسل ونماذج الاختيار المتعدد. مرّر "tanh" لتفعيل دالة tanh على المخرجات، وأي قيمة أخرى لن تُفعّل أي دالة.
  • summary_last_dropout (float، اختياري، القيمة الافتراضية 0.1) — يُستخدم في نماذج تصنيف التسلسل واختيار متعدد. نسبة الإسقاط (dropout) المستخدمة بعد الإسقاط (projection) والتفعيل (activation).
  • start_n_top (int، اختياري، القيمة الافتراضية 5) — يُستخدم في سكربت تقييم SQuAD.
  • end_n_top (int، اختياري، القيمة الافتراضية 5) — يُستخدم في سكريبت تقييم SQuAD.
  • pad_token_id (int، اختياري، القيمة الافتراضية 5) — معرّف الرمز المستخدم للتعبئة في المفردات.
  • bos_token_id (int، اختياري، القيمة الافتراضية 1) — معرّف الرمز المستخدم لبدء البث في المفردات.
  • eos_token_id (Union[int, list[int]]، اختياري، القيمة الافتراضية 2) — معرّف الرمز المستخدم لنهاية التدفق في المفردات.
  • tie_word_embeddings (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب ربط ترميزات الأوزان (weight embeddings) وفقاً لخريطة tied_weights_keys الخاصة بالنموذج.

هذه فئة الإعدادات المخزنة لإعدادات نموذج XLNetModel. تُستخدم لتوليد نموذج Xlnet وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ xlnet/xlnet-large-cased

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

أمثلة:

>>> from transformers import XLNetConfig, XLNetModel

>>> # Initializing a XLNet configuration
>>> configuration = XLNetConfig()

>>> # Initializing a model (with random weights) from the configuration
>>> model = XLNetModel(configuration)

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

XLNetTokenizer

فئة transformers.XLNetTokenizer

< >

( vocab: str | list[tuple[str, float]] | None = Noneunk_id: int = 0do_lower_case = Falseremove_space = Truekeep_accents = Falsebos_token = '<s>'eos_token = '</s>'unk_token = '<unk>'sep_token = '<sep>'pad_token = '<pad>'cls_token = '<cls>'mask_token = '<mask>'_spm_precompiled_charsmap = Noneadditional_special_tokens = None**kwargs )

المعاملات

  • vocab (list of tuples، اختياري) — قائمة من الأزواج (رمز، درجة) لنموذج Unigram. إذا لم يُقدَّم، تُستخدم قائمة فارغة.
  • unk_id (int، اختياري، القيمة الافتراضية 0) — معرّف الرمز المجهول في المفردات.
  • do_lower_case (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب تحويل المدخلات إلى أحرف صغيرة عند تقسيم النص إلى رموز.
  • remove_space (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إزالة المسافات الزائدة عند الترميز (حذف المسافات الزائدة قبل النص وبعده).
  • keep_accents (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب الإبقاء على الحركات عند تقسيم النص إلى رموز.
  • bos_token (str, اختياري, الافتراضي هو "<s>") — رمز بداية التسلسل الذي تم استخدامه أثناء التدريب المسبق. يمكن استخدامه كرمز لتصنيف التسلسل. عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لبداية التسلسل، بل يُستخدم رمز cls_token.

    عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لبدء التسلسل. الرمز المستخدم هو cls_token.

  • eos_token (str, اختياري, الافتراضي هو "</s>") — رمز نهاية التسلسل. عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لنهاية التسلسل، بل يُستخدم رمز الفاصل (sep_token) لهذا الغرض.

    عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لنهاية التسلسل. الرمز المستخدم هو sep_token.

  • unk_token (str، اختياري، القيمة الافتراضية "<unk>") — رمز المجهول. لا يمكن تحويل الرمز غير الموجود في المفردات إلى معرّف، لذا يُعيَّن هذا الرمز بدلاً منه.
  • sep_token (str، اختياري، القيمة الافتراضية "<sep>") — رمز الفاصل، الذي يُستخدم عند بناء تسلسل من عدة تسلسلات، على سبيل المثال تسلسلان لتصنيف التسلسل، أو نص وسؤال للإجابة على الأسئلة. كما يُستخدم كآخر رمز في تسلسل مبني باستخدام الرموز الخاصة.
  • pad_token (str، اختياري، القيمة الافتراضية "<pad>") — الرمز المستخدم للتعبئة، على سبيل المثال عند تجميع تسلسلات ذات أطوال مختلفة.
  • cls_token (str، اختياري، القيمة الافتراضية "<cls>") — رمز التصنيف الذي يُستخدم عند إجراء تصنيف التسلسل (تصنيف التسلسل بأكمله بدلاً من التصنيف لكل رمز على حدة). وهو الرمز الأول في التسلسل عند بناؤه باستخدام الرموز الخاصة.
  • mask_token (str، اختياري، القيمة الافتراضية "<mask>") — الرمز المستخدم لإخفاء القيم. هذا هو الرمز المستخدم عند تدريب هذا النموذج باستخدام نمذجة اللغة المقنّعة. وهو الرمز الذي سيحاول النموذج التنبؤ به.
  • additional_special_tokens (list[str]، اختياري، القيمة الافتراضية ["<eop>", "<eod>"]) — رموز خاصة إضافية يستخدمها مُجزّئ النص.

أنشئ مُجزِّئ XLNet (مدعوم بمكتبة tokenizers من HuggingFace). مبني على Unigram.

يرث هذا المُجزِّئ من TokenizersBackend الذي يحتوي على معظم الطرق الرئيسية. ينبغي على المستخدمين الرجوع إلى هذه الفئة الأصلية لمزيد من المعلومات حول تلك الطرق.

get_special_tokens_mask

< >

( token_ids_0: list[int]token_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]

المعاملات

  • token_ids_0 — قائمة بالمعرّفات (IDs) للتسلسل (الذي قد يكون مُنسّقًا بالفعل).
  • token_ids_1 — غير مستخدم عندما يكون already_has_special_tokens=True. يجب أن يكون None في هذه الحالة.
  • already_has_special_tokens — ما إذا كانت التسلسلة منسّقة مسبقًا باستخدام الرموز الخاصة.

يعيد

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

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

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

للمُرمِّزات السريعة، تستدعي مُجمِّعات البيانات هذه الدالة مع already_has_special_tokens=True لبناء قناع فوق تسلسل مُنسَّق مسبقًا. في تلك الحالة، نحسب القناع عن طريق التحقق من العضوية في all_special_ids.

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

المخرجات الخاصة بـ XLNet

فئة transformers.models.xlnet.modeling_xlnet.XLNetModelOutput

< >

( last_hidden_state: Tensormems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

المعاملات

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

    يتوافق num_predict مع target_mapping.shape[1]. إذا كان target_mapping هو None، فإن num_predict يتوافق مع sequence_length.

  • mems (list[torch.Tensor] بطول config.n_layers) — تحتوي على حالات مخفية محسوبة مسبقًا. يمكن استخدامها (انظر مدخل mems) لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم ماضيها إلى هذا النموذج كـinput_ids لأنها تم حسابها بالفعل.
  • 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

نوع المخرجات لـ XLNetModel.

فئة transformers.models.xlnet.modeling_xlnet.XLNetLMHeadModelOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonelogits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

المعاملات

  • loss (torch.Tensor من الشكل (1,)، اختياري، يُعاد عند توفير labels) — فقدان نمذجة اللغة (لتوقع الرمز التالي).
  • logits (torch.Tensor بشكل (batch_size, num_predict, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).

    يتوافق num_predict مع target_mapping.shape[1]. إذا كان target_mapping هو None، فإن num_predict يتوافق مع sequence_length.

  • mems (list[torch.Tensor] بطول config.n_layers) — تحتوي على حالات مخفية محسوبة مسبقًا. يمكن استخدامها (انظر مدخل mems) لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم حالتها السابقة إلى هذا النموذج كـinput_ids لأنها تم حسابها بالفعل.
  • 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

نوع المخرجات لـ XLNetLMHeadModel.

فئة transformers.models.xlnet.modeling_xlnet.XLNetForSequenceClassificationOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonelogits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

المعاملات

  • loss (torch.Tensor من الشكل (1,)، اختياري، يُعاد عند توفير label) — خسارة التصنيف (أو الانحدار إذا كان config.num_labels==1).
  • logits (torch.Tensor من الشكل (batch_size, config.num_labels)) — درجات التصنيف (أو الانحدار إذا كان config.num_labels==1) (قبل SoftMax).
  • mems (list[torch.Tensor] بطول config.n_layers) — تحتوي على حالات مخفية محسوبة مسبقًا. يمكن استخدامها (انظر مدخل mems) لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم حالتها السابقة إلى هذا النموذج كـinput_ids نظرًا لأنّها قد حُسبت بالفعل.
  • 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

نوع المخرجات لـ XLNetForSequenceClassification.

فئة transformers.models.xlnet.modeling_xlnet.XLNetForMultipleChoiceOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonelogits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

المعاملات

  • loss (torch.Tensor من الشكل (1,)، اختياري، يُعاد عند توفير labels) — خسارة التصنيف.
  • logits (torch.Tensor بشكل (batch_size, num_choices)) — هو البُعد الثاني من المصفوفات المدخلة. (انظر في الأعلى). في الأعلى). في الأعلى).

    درجات التصنيف (قبل SoftMax).

  • mems (list[torch.Tensor] بطول config.n_layers) — تحتوي على حالات مخفية محسوبة مسبقًا. يمكن استخدامها (انظر مدخل mems) لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم حالتها السابقة إلى هذا النموذج كـinput_ids لأنها تم حسابها بالفعل.
  • 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

نوع المخرجات لـ XLNetForMultipleChoice.

فئة transformers.models.xlnet.modeling_xlnet.XLNetForTokenClassificationOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonelogits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

المعاملات

  • loss (torch.Tensor من الشكل (1,)، اختياري، يُعاد عند توفير labels) — خسارة التصنيف.
  • logits (torch.Tensor من الشكل (batch_size, sequence_length, config.num_labels)) — درجات التصنيف (قبل SoftMax).
  • mems (list[torch.Tensor] بطول config.n_layers) — تحتوي على حالات مخفية محسوبة مسبقًا. يمكن استخدامها (انظر مدخل mems) لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم ماضيها إلى هذا النموذج كـinput_ids لأنها تم حسابها بالفعل.
  • 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

نوع المخرجات الخاص بـ XLNetForTokenClassificationOutput.

فئة transformers.models.xlnet.modeling_xlnet.XLNetForQuestionAnsweringSimpleOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonestart_logits: typing.Optional[torch.Tensor] = Noneend_logits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

المعاملات

  • 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).
  • mems (list[torch.Tensor] بطول config.n_layers) — تحتوي على حالات مخفية محسوبة مسبقًا. يمكن استخدامها (انظر مدخل mems) لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم حالتها السابقة إلى هذا النموذج كـinput_ids لأنها تم حسابها بالفعل.
  • 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

نوع المخرجات لـ XLNetForQuestionAnsweringSimple.

فئة transformers.models.xlnet.modeling_xlnet.XLNetForQuestionAnsweringOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonestart_top_log_probs: typing.Optional[torch.Tensor] = Nonestart_top_index: typing.Optional[torch.LongTensor] = Noneend_top_log_probs: typing.Optional[torch.Tensor] = Noneend_top_index: typing.Optional[torch.LongTensor] = Nonecls_logits: typing.Optional[torch.Tensor] = Nonemems: list[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor, ...] | None = Noneattentions: tuple[torch.Tensor, ...] | None = None )

المعاملات

  • 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) — احتمالات السجل (Log probabilities) لأفضل 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 للإجابات.
  • mems (list[torch.Tensor] بطول config.n_layers) — تحتوي على حالات مخفية محسوبة مسبقًا. يمكن استخدامها (انظر مدخل mems) لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم حالتها السابقة إلى هذا النموذج كـinput_ids نظرًا لأنّها قد حُسبت بالفعل.
  • 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

نوع المخرجات الخاص بـ XLNetForQuestionAnswering.

XLNetModel

فئة transformers.XLNetModel

< >

( config: XLNetConfig )

المعاملات

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

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

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

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

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetModelOutput 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 للرموز التي تم إخفاؤها.

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

  • mems (list[torch.Tensor] بطول config.n_layers) — تحتوي على حالات مخفية محسوبة مسبقًا (انظر mems المخرجات أدناه). يمكن استخدامها لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم حالتها السابقة إلى هذا النموذج كـ input_ids لأنها تم حسابها بالفعل.

    يجب تعيين use_mems إلى True للاستفادة من mems.

  • perm_mask (torch.Tensor بشكل (batch_size, sequence_length, sequence_length), اختياري) — قناع لتحديد نمط الانتباه لكل رمز إدخال، مع اختيار القيم من [0, 1]: إذا كان perm_mask[k, i, j] = 0، فإن i ينتبه إلى j في الدفعة k؛ وإذا كان perm_mask[k, i, j] = 1، فإن i لا ينتبه إلى j في الدفعة k. إذا لم يتم تعيينه، ينتبه كل رمز إلى جميع الرموز الأخرى (انتباه ثنائي الاتجاه كامل). يُستخدم فقط أثناء ما قبل التدريب (لتحديد ترتيب التحليل) أو للتفكيك التسلسلي (التوليد). [0, 1]:
    • إذا كان perm_mask[k, i, j] = 0، فإن i تنتبه إلى j في الدفعة k؛
    • إذا كان perm_mask[k, i, j] = 1، فإن i لا تنتبه إلى j في الدفعة k.

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

  • target_mapping (torch.Tensor من الشكل (batch_size, num_predict, sequence_length)، اختياري) — قناع يُحدّد الرموز الإخراجية التي يجب استخدامها. إذا كان target_mapping[k, i, j] = 1، فإن التنبؤ رقم i في الدفعة k يقع على الرمز رقم j. يُستخدم فقط أثناء التدريب المسبق للتنبؤ الجزئي أو للتفكيك التسلسلي (التوليد).
  • token_type_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من [0, 1]:
    • 0 يتوافق مع رمز sentence A،
    • 1 يتوافق مع رمز sentence B.

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

  • input_mask (torch.Tensor بشكل batch_size, sequence_length, اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. وهو العكس من attention_mask, أي بـ 0 للرموز الفعلية و 1 للحشو، وهو ما يُحافظ عليه للتوافق مع قاعدة الكود الأصلية.

    قيم الأقنعة المختارة في [0, 1]:

    • 1 للرموز التي تكون مقنّعة،
    • 0 للرموز التي ليست مقنّعة.

    يمكنك استخدام واحد فقط من input_mask وattention_mask.

  • inputs_embeds (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمرير input_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس input_ids إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.
  • use_mems (bool, اختياري) — ما إذا كان سيتم استخدام حالات الذاكرة لتسريع فك الترميز التسلسلي. إذا تم ضبطه على True، فسيستخدم النموذج الحالات المخفية من عمليات المرور الأمامية السابقة لحساب الانتباه، مما قد يحسّن الأداء بشكل كبير لمهام فك الترميز التسلسلي.
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

XLNetModelOutput أو tuple(torch.Tensor)

أُكْجَة XLNetModelOutput أو مجموعة مرتبة من torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة حسب الإعداد (XLNetConfig) والمدخلات.

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

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

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

    يتوافق num_predict مع target_mapping.shape[1]. إذا كان target_mapping هو None، فإن num_predict يتوافق مع sequence_length.

  • mems (list[torch.Tensor] بطول config.n_layers) — يحتوي على حالات مخفية محسوبة مسبقًا. يمكن استخدامه (انظر مدخل mems) لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم ماضيها إلى هذا النموذج كـinput_ids لأنها تم حسابها بالفعل.

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

XLNetLMHeadModel

فئة transformers.XLNetLMHeadModel

< >

( config: XLNetConfig )

المعاملات

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

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

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

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

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs ) → XLNetLMHeadModelOutput 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 للرموز التي تم إخفاؤها.

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

  • mems (list[torch.Tensor] بطول config.n_layers) — تحتوي على حالات مخفية محسوبة مسبقًا (انظر mems المخرجات أدناه). يمكن استخدامها لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم حالتها السابقة إلى هذا النموذج كـ input_ids لأنها تم حسابها بالفعل.

    يجب تعيين use_mems إلى True للاستفادة من mems.

  • perm_mask (torch.Tensor بشكل (batch_size, sequence_length, sequence_length), اختياري) — قناع لتحديد نمط الانتباه لكل رمز إدخال، مع اختيار القيم من [0, 1]: إذا كان perm_mask[k, i, j] = 0، فإن i ينتبه إلى j في الدفعة k؛ وإذا كان perm_mask[k, i, j] = 1، فإن i لا ينتبه إلى j في الدفعة k. إذا لم يتم تعيينه، ينتبه كل رمز إلى جميع الرموز الأخرى (انتباه ثنائي الاتجاه كامل). يُستخدم فقط أثناء ما قبل التدريب (لتحديد ترتيب التحليل) أو للتفكيك التسلسلي (التوليد). [0, 1]:
    • إذا كان perm_mask[k, i, j] = 0، فإن i تنتبه إلى j في الدفعة k؛
    • إذا كان perm_mask[k, i, j] = 1، فإن i لا تنتبه إلى j في الدفعة k.

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

  • target_mapping (torch.Tensor من الشكل (batch_size, num_predict, sequence_length)، اختياري) — قناع يُحدّد الرموز الإخراجية التي يجب استخدامها. إذا كان target_mapping[k, i, j] = 1، فإن التنبؤ رقم i في الدفعة k يقع على الرمز رقم j. يُستخدم فقط أثناء التدريب المسبق للتنبؤ الجزئي أو للتفكيك التسلسلي (التوليد).
  • token_type_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من [0, 1]:
    • 0 يتوافق مع رمز sentence A،
    • 1 يتوافق مع رمز sentence B.

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

  • input_mask (torch.Tensor بشكل batch_size, sequence_length, اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. وهو العكس من attention_mask, أي بـ 0 للرموز الفعلية و 1 للحشو، وهو ما يُحافظ عليه للتوافق مع قاعدة الكود الأصلية.

    قيم الأقنعة المختارة في [0, 1]:

    • 1 للرموز التي تكون مقنّعة،
    • 0 للرموز التي ليست مقنّعة.

    يمكنك استخدام واحد فقط من input_mask وattention_mask.

  • inputs_embeds (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمرير input_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس input_ids إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.
  • labels (torch.LongTensor بشكل (batch_size, num_predict), اختياري) — تسميات لنمذجة اللغة المقنّعة. num_predict تتوافق مع target_mapping.shape[1]. إذا target_mapping كانت None, فإن num_predict تتوافق مع sequence_length.

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

    تُختار الفهارس ضمن [-100, 0, ..., config.vocab_size] وتُتجاهل جميع التسميات المُعيّنة على -100، حيث يُحسب الخسارة فقط للتسميات ضمن [0, ..., config.vocab_size]

  • use_mems (bool, اختياري) — ما إذا كان سيتم استخدام حالات الذاكرة لتسريع فك الترميز التسلسلي. إذا تم ضبطه على True، فسيستخدم النموذج الحالات المخفية من عمليات المرور الأمامية السابقة لحساب الانتباه، مما قد يحسّن الأداء بشكل كبير لمهام فك الترميز التسلسلي.
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.
  • logits_to_keep (Union[int, torch.Tensor]، اختياري، القيمة الافتراضية 0) — إذا كان int، يتم حساب logits لآخر logits_to_keep رموز. إذا كانت القيمة 0، يتم حساب logits لجميع input_ids (حالة خاصة). لا يُحتاج إلى logits إلا للرمز الأخير في عملية التوليد، ويمكن أن يوفر حسابها لذلك الرمز وحده ذاكرة كبيرة، وهو أمر مهم بشكل ملحوظ للتسلسلات الطويلة أو حجم المفردات الكبير. إذا كان torch.Tensor، يجب أن يكون بعدًا واحدًا (1D) ويتوافق مع الفهارس التي يجب الاحتفاظ بها في بُعد طول التسلسل. يكون هذا مفيدًا عند استخدام تنسيق المصفوفات المعبأة (packed tensor format) (بعد واحد لكل من الدفعة وطول التسلسل).

يعيد

XLNetLMHeadModelOutput أو tuple(torch.Tensor)

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

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

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

  • loss (torch.Tensor من الشكل (1,)، اختياري، يُعاد عند توفير labels) — خسارة نمذجة اللغة (لتوقع الرمز التالي).

  • logits (torch.Tensor من الشكل (batch_size, num_predict, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات كل رمز في المفردات قبل SoftMax).

    يتوافق num_predict مع target_mapping.shape[1]. إذا كان target_mapping هو None، فإن num_predict يتوافق مع sequence_length.

  • mems (list[torch.Tensor] بطول config.n_layers) — يحتوي على حالات مخفية محسوبة مسبقًا. يمكن استخدامه (انظر مدخل mems) لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم ماضيها إلى هذا النموذج كـinput_ids لأنها تم حسابها بالفعل.

  • 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, XLNetLMHeadModel
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetLMHeadModel.from_pretrained("xlnet/xlnet-large-cased")

>>> # We show how to setup inputs to predict a next token using a bi-directional context.
>>> input_ids = torch.tensor(
...     tokenizer.encode("Hello, my dog is very <mask>", add_special_tokens=False)
... ).unsqueeze(
...     0
... )  # We will predict the masked token
>>> perm_mask = torch.zeros((1, input_ids.shape[1], input_ids.shape[1]), dtype=torch.float)
>>> perm_mask[:, :, -1] = 1.0  # Previous tokens don't see last token
>>> target_mapping = torch.zeros(
...     (1, 1, input_ids.shape[1]), dtype=torch.float
... )  # Shape [1, 1, seq_length] => let's predict one token
>>> target_mapping[
...     0, 0, -1
... ] = 1.0  # Our first (and only) prediction will be the last token of the sequence (the masked token)

>>> outputs = model(input_ids, perm_mask=perm_mask, target_mapping=target_mapping)
>>> next_token_logits = outputs[
...     0
... ]  # Output has shape [target_mapping.size(0), target_mapping.size(1), config.vocab_size]

>>> # The same way can the XLNetLMHeadModel be used to be trained by standard auto-regressive language modeling.
>>> input_ids = torch.tensor(
...     tokenizer.encode("Hello, my dog is very <mask>", add_special_tokens=False)
... ).unsqueeze(
...     0
... )  # We will predict the masked token
>>> labels = torch.tensor(tokenizer.encode("cute", add_special_tokens=False)).unsqueeze(0)
>>> assert labels.shape[0] == 1, "only one word will be predicted"
>>> perm_mask = torch.zeros((1, input_ids.shape[1], input_ids.shape[1]), dtype=torch.float)
>>> perm_mask[
...     :, :, -1
... ] = 1.0  # Previous tokens don't see last token as is done in standard auto-regressive lm training
>>> target_mapping = torch.zeros(
...     (1, 1, input_ids.shape[1]), dtype=torch.float
... )  # Shape [1, 1, seq_length] => let's predict one token
>>> target_mapping[
...     0, 0, -1
... ] = 1.0  # Our first (and only) prediction will be the last token of the sequence (the masked token)

>>> outputs = model(input_ids, perm_mask=perm_mask, target_mapping=target_mapping, labels=labels)
>>> loss = outputs.loss
>>> next_token_logits = (
...     outputs.logits
... )  # Logits have shape [target_mapping.size(0), target_mapping.size(1), config.vocab_size]

XLNetForSequenceClassification

فئة transformers.XLNetForSequenceClassification

< >

( config: XLNetConfig )

المعاملات

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

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

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

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

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetForSequenceClassificationOutput 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 للرموز التي تم إخفاؤها.

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

  • mems (list[torch.Tensor] بطول config.n_layers) — تحتوي على حالات مخفية محسوبة مسبقًا (انظر mems المخرجات أدناه). يمكن استخدامها لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم حالتها السابقة إلى هذا النموذج كـ input_ids لأنها تم حسابها بالفعل.

    يجب تعيين use_mems إلى True للاستفادة من mems.

  • perm_mask (torch.Tensor بشكل (batch_size, sequence_length, sequence_length), اختياري) — قناع لتحديد نمط الانتباه لكل رمز إدخال، مع اختيار القيم من [0, 1]: إذا كان perm_mask[k, i, j] = 0، فإن i ينتبه إلى j في الدفعة k؛ وإذا كان perm_mask[k, i, j] = 1، فإن i لا ينتبه إلى j في الدفعة k. إذا لم يتم تعيينه، ينتبه كل رمز إلى جميع الرموز الأخرى (انتباه ثنائي الاتجاه كامل). يُستخدم فقط أثناء ما قبل التدريب (لتحديد ترتيب التحليل) أو للتفكيك التسلسلي (التوليد). [0, 1]:
    • إذا كان perm_mask[k, i, j] = 0، فإن i تنتبه إلى j في الدفعة k؛
    • إذا كان perm_mask[k, i, j] = 1، فإن i لا تنتبه إلى j في الدفعة k.

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

  • target_mapping (torch.Tensor من الشكل (batch_size, num_predict, sequence_length)، اختياري) — قناع يُحدّد الرموز الإخراجية التي يجب استخدامها. إذا كان target_mapping[k, i, j] = 1، فإن التنبؤ رقم i في الدفعة k يقع على الرمز رقم j. يُستخدم فقط أثناء التدريب المسبق للتنبؤ الجزئي أو للتفكيك التسلسلي (التوليد).
  • token_type_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من [0, 1]:
    • 0 يتوافق مع رمز sentence A،
    • 1 يتوافق مع رمز sentence B.

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

  • input_mask (torch.Tensor بشكل batch_size, sequence_length, اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. وهو العكس من attention_mask, أي بـ 0 للرموز الفعلية و 1 للحشو، وهو ما يُحافظ عليه للتوافق مع قاعدة الكود الأصلية.

    قيم الأقنعة المختارة في [0, 1]:

    • 1 للرموز التي تكون مقنّعة،
    • 0 للرموز التي ليست مقنّعة.

    يمكنك استخدام واحد فقط من input_mask وattention_mask.

  • inputs_embeds (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمرير input_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس input_ids إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.
  • labels (torch.LongTensor من الشكل (batch_size,)، اختياري) — التسميات لحساب خسارة تصنيف/الانحدار التسلسلي. يجب أن تكون الفهارس ضمن [0, ..., config.num_labels - 1]. إذا كان config.num_labels == 1 يتم حساب خسارة الانحدار (خسارة متوسط المربع)، وإذا كان config.num_labels > 1 يتم حساب خسارة التصنيف (الإنتروبيا المتقاطعة).
  • use_mems (bool, اختياري) — ما إذا كان سيتم استخدام حالات الذاكرة لتسريع فك الترميز التسلسلي. إذا تم ضبطه على True، فسيستخدم النموذج الحالات المخفية من عمليات المرور الأمامية السابقة لحساب الانتباه، مما قد يحسّن الأداء بشكل كبير لمهام فك الترميز التسلسلي.
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

XLNetForSequenceClassificationOutput أو tuple(torch.Tensor)

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

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

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

  • loss (torch.Tensor من الشكل (1,)، اختياري، يُعاد عند توفير label) — خسارة التصنيف (أو الانحدار إذا كان config.num_labels==1).

  • logits (torch.Tensor من الشكل (batch_size, config.num_labels)) — درجات التصنيف (أو الانحدار إذا كان config.num_labels==1) (قبل SoftMax).

  • mems (list[torch.Tensor] بطول config.n_layers) — يحتوي على حالات مخفية محسوبة مسبقًا. يمكن استخدامه (انظر مدخل mems) لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم ماضيها إلى هذا النموذج كـinput_ids لأنها تم حسابها بالفعل.

  • 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, XLNetForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetForSequenceClassification.from_pretrained("xlnet/xlnet-large-cased")

>>> 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 = XLNetForSequenceClassification.from_pretrained("xlnet/xlnet-large-cased", num_labels=num_labels)

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

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

>>> import torch
>>> from transformers import AutoTokenizer, XLNetForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetForSequenceClassification.from_pretrained("xlnet/xlnet-large-cased", 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 = XLNetForSequenceClassification.from_pretrained(
...     "xlnet/xlnet-large-cased", 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

XLNetForMultipleChoice

فئة transformers.XLNetForMultipleChoice

< >

( config: XLNetConfig )

المعاملات

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

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

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

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

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetForMultipleChoiceOutput or tuple(torch.Tensor)

المعاملات

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

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

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

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

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

  • input_mask (torch.Tensor بشكل batch_size, num_choices, sequence_length, اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. وهو العكس من attention_mask, أي بـ 0 للرموز الفعلية و 1 للحشو، وهو ما يُحافظ عليه للتوافق مع قاعدة الكود الأصلية.

    قيم الأقنعة المختارة في [0, 1]:

    • 1 للرموز التي تكون مقنّعة،
    • 0 للرموز التي ليست مقنّعة.

    يمكنك استخدام واحد فقط من input_mask وattention_mask.

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

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

  • mems (list[torch.Tensor] بطول config.n_layers) — تحتوي على حالات مخفية محسوبة مسبقًا (انظر mems المخرجات أدناه). يمكن استخدامها لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم حالتها السابقة إلى هذا النموذج كـ input_ids لأنها تم حسابها بالفعل.

    يجب تعيين use_mems إلى True للاستفادة من mems.

  • perm_mask (torch.Tensor بشكل (batch_size, sequence_length, sequence_length), اختياري) — قناع لتحديد نمط الانتباه لكل رمز إدخال، مع اختيار القيم من [0, 1]: إذا كان perm_mask[k, i, j] = 0، فإن i ينتبه إلى j في الدفعة k؛ وإذا كان perm_mask[k, i, j] = 1، فإن i لا ينتبه إلى j في الدفعة k. إذا لم يتم تعيينه، ينتبه كل رمز إلى جميع الرموز الأخرى (انتباه ثنائي الاتجاه كامل). يُستخدم فقط أثناء ما قبل التدريب (لتحديد ترتيب التحليل) أو للتفكيك التسلسلي (التوليد). [0, 1]:
    • إذا كان perm_mask[k, i, j] = 0، فإن i تنتبه إلى j في الدفعة k؛
    • إذا كان perm_mask[k, i, j] = 1، فإن i لا تنتبه إلى j في الدفعة k.

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

  • target_mapping (torch.Tensor من الشكل (batch_size, num_predict, sequence_length)، اختياري) — قناع يُحدّد الرموز الإخراجية التي يجب استخدامها. إذا كان target_mapping[k, i, j] = 1، فإن التنبؤ رقم i في الدفعة k يقع على الرمز رقم j. يُستخدم فقط أثناء التدريب المسبق للتنبؤ الجزئي أو للتفكيك التسلسلي (التوليد).
  • inputs_embeds (torch.Tensor من الشكل (batch_size, num_choices, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمرير input_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس input_ids إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث التضمينية الداخلية للنموذج.
  • labels (torch.LongTensor من الشكل (batch_size,)، اختياري) — التسميات لحساب خسارة تصنيف الاختيار المتعدد. يجب أن تكون الفهارس ضمن `[0, …,
  • use_mems (bool, اختياري) — ما إذا كان سيتم استخدام حالات الذاكرة لتسريع فك الترميز التسلسلي. إذا تم ضبطه على True، فسيستخدم النموذج الحالات المخفية من عمليات المرور الأمامية السابقة لحساب الانتباه، مما قد يحسّن الأداء بشكل كبير لمهام فك الترميز التسلسلي.
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

XLNetForMultipleChoiceOutput أو tuple(torch.Tensor)

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

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

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

  • loss (torch.Tensor من الشكل (1,)، اختياري، يُعاد عند توفير labels) — خسارة التصنيف.

  • logits (torch.Tensor من الشكل (batch_size, num_choices)) — num_choices هو البُعد الثاني للمصفوفات المدخلة. (انظر input_ids أعلاه).

    درجات التصنيف (قبل SoftMax).

  • mems (list[torch.Tensor] بطول config.n_layers) — يحتوي على حالات مخفية محسوبة مسبقًا. يمكن استخدامه (انظر مدخل mems) لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم ماضيها إلى هذا النموذج كـinput_ids لأنها تم حسابها بالفعل.

  • 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, XLNetForMultipleChoice
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetForMultipleChoice.from_pretrained("xlnet/xlnet-large-cased")

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

XLNetForTokenClassification

فئة transformers.XLNetForTokenClassification

< >

( config: XLNetConfig )

المعاملات

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

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

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

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

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetForTokenClassificationOutput 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 للرموز التي تم إخفاؤها.

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

  • mems (list[torch.Tensor] بطول config.n_layers) — تحتوي على حالات مخفية محسوبة مسبقًا (انظر mems المخرجات أدناه). يمكن استخدامها لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم حالتها السابقة إلى هذا النموذج كـ input_ids لأنها تم حسابها بالفعل.

    يجب تعيين use_mems إلى True للاستفادة من mems.

  • perm_mask (torch.Tensor بشكل (batch_size, sequence_length, sequence_length), اختياري) — قناع لتحديد نمط الانتباه لكل رمز إدخال، مع اختيار القيم من [0, 1]: إذا كان perm_mask[k, i, j] = 0، فإن i ينتبه إلى j في الدفعة k؛ وإذا كان perm_mask[k, i, j] = 1، فإن i لا ينتبه إلى j في الدفعة k. إذا لم يتم تعيينه، ينتبه كل رمز إلى جميع الرموز الأخرى (انتباه ثنائي الاتجاه كامل). يُستخدم فقط أثناء ما قبل التدريب (لتحديد ترتيب التحليل) أو للتفكيك التسلسلي (التوليد). [0, 1]:
    • إذا كان perm_mask[k, i, j] = 0، فإن i تنتبه إلى j في الدفعة k؛
    • إذا كان perm_mask[k, i, j] = 1، فإن i لا تنتبه إلى j في الدفعة k.

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

  • target_mapping (torch.Tensor من الشكل (batch_size, num_predict, sequence_length)، اختياري) — قناع يُحدّد الرموز الإخراجية التي يجب استخدامها. إذا كان target_mapping[k, i, j] = 1، فإن التنبؤ رقم i في الدفعة k يقع على الرمز رقم j. يُستخدم فقط أثناء التدريب المسبق للتنبؤ الجزئي أو للتفكيك التسلسلي (التوليد).
  • token_type_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من [0, 1]:
    • 0 يتوافق مع رمز sentence A،
    • 1 يتوافق مع رمز sentence B.

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

  • input_mask (torch.Tensor بشكل batch_size, sequence_length, اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. وهو العكس من attention_mask, أي بـ 0 للرموز الفعلية و 1 للحشو، وهو ما يُحافظ عليه للتوافق مع قاعدة الكود الأصلية.

    قيم الأقنعة المختارة في [0, 1]:

    • 1 للرموز التي تكون مقنّعة،
    • 0 للرموز التي ليست مقنّعة.

    يمكنك استخدام واحد فقط من input_mask وattention_mask.

  • inputs_embeds (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمرير input_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارس input_ids إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.
  • labels (torch.LongTensor من الشكل (batch_size,)، اختياري) — التسميات لحساب خسارة تصنيف الاختيار المتعدد. يجب أن تكون الفهارس ضمن [0, ..., num_choices] حيث num_choices هو حجم البُعد الثاني للمصفوفات المدخلة. (انظر input_ids أعلاه)
  • use_mems (bool, اختياري) — ما إذا كان سيتم استخدام حالات الذاكرة لتسريع فك الترميز التسلسلي. إذا تم ضبطه على True، فسيستخدم النموذج الحالات المخفية من عمليات المرور الأمامية السابقة لحساب الانتباه، مما قد يحسّن الأداء بشكل كبير لمهام فك الترميز التسلسلي. حالات الذاكرة لتسريع فك الترميز التسلسلي. إذا تم ضبطه على True، فسيستخدم النموذج الحالات المخفية من عمليات المرور الأمامية السابقة لحساب الانتباه، مما قد يحسّن الأداء بشكل كبير لمهام فك الترميز التسلسلي.
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

XLNetForTokenClassificationOutput أو tuple(torch.Tensor)

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

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

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

  • loss (torch.Tensor of shape (1,), اختياري, يُعاد عند توفير labels) — خسارة التصنيف.

  • logits (torch.Tensor من الشكل (batch_size, sequence_length, config.num_labels)) — درجات التصنيف (قبل SoftMax).

  • mems (list[torch.Tensor] بطول config.n_layers) — يحتوي على حالات مخفية محسوبة مسبقًا. يمكن استخدامه (انظر مدخل mems) لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم ماضيها إلى هذا النموذج كـinput_ids لأنها تم حسابها بالفعل.

  • 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, XLNetForTokenClassification
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetForTokenClassification.from_pretrained("xlnet/xlnet-large-cased")

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

XLNetForQuestionAnsweringSimple

فئة transformers.XLNetForQuestionAnsweringSimple

< >

( config: XLNetConfig )

المعاملات

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

نموذج XLNet مع رأس تصنيف مقاطع في الأعلى لمهام الإجابة الاستخراجية على الأسئلة مثل 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] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonestart_positions: typing.Optional[torch.Tensor] = Noneend_positions: typing.Optional[torch.Tensor] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetForQuestionAnsweringSimpleOutput 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 للرموز التي تم إخفاؤها.

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

  • mems (list[torch.Tensor] بطول config.n_layers) — تحتوي على حالات مخفية محسوبة مسبقًا (انظر mems المخرجات أدناه). يمكن استخدامها لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم حالتها السابقة إلى هذا النموذج كـ input_ids لأنها تم حسابها بالفعل.

    يجب تعيين use_mems إلى True للاستفادة من mems.

  • perm_mask (torch.Tensor بشكل (batch_size, sequence_length, sequence_length), اختياري) — قناع لتحديد نمط الانتباه لكل رمز إدخال، مع اختيار القيم من [0, 1]: إذا كان perm_mask[k, i, j] = 0، فإن i ينتبه إلى j في الدفعة k؛ وإذا كان perm_mask[k, i, j] = 1، فإن i لا ينتبه إلى j في الدفعة k. إذا لم يتم تعيينه، ينتبه كل رمز إلى جميع الرموز الأخرى (انتباه ثنائي الاتجاه كامل). يُستخدم فقط أثناء ما قبل التدريب (لتحديد ترتيب التحليل) أو للتفكيك التسلسلي (التوليد). [0, 1]:
    • إذا كان perm_mask[k, i, j] = 0، فإن i تنتبه إلى j في الدفعة k؛
    • إذا كان perm_mask[k, i, j] = 1، فإن i لا تنتبه إلى j في الدفعة k.

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

  • target_mapping (torch.Tensor من الشكل (batch_size, num_predict, sequence_length)، اختياري) — قناع يُحدّد الرموز الإخراجية التي يجب استخدامها. إذا كان target_mapping[k, i, j] = 1، فإن التنبؤ رقم i في الدفعة k يقع على الرمز رقم j. يُستخدم فقط أثناء التدريب المسبق للتنبؤ الجزئي أو للتفكيك التسلسلي (التوليد).
  • token_type_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من [0, 1]:
    • 0 يتوافق مع رمز sentence A،
    • 1 يتوافق مع رمز sentence B.

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

  • input_mask (torch.Tensor بشكل batch_size, sequence_length, اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. وهو العكس من attention_mask, أي بـ 0 للرموز الفعلية و 1 للحشو، وهو ما يُحافظ عليه للتوافق مع قاعدة الكود الأصلية.

    قيم الأقنعة المختارة في [0, 1]:

    • 1 للرموز التي تكون مقنّعة،
    • 0 للرموز التي ليست مقنّعة.

    يمكنك استخدام واحد فقط من input_mask وattention_mask.

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

يعيد

XLNetForQuestionAnsweringSimpleOutput أو tuple(torch.Tensor)

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

تتجاوز طريقة XLNetForQuestionAnsweringSimple الخاصة بالتقديم الأمامي الطريقة الخاصة __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).

  • mems (list[torch.Tensor] بطول config.n_layers) — يحتوي على حالات مخفية محسوبة مسبقًا. يمكن استخدامه (انظر مدخل mems) لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم ماضيها إلى هذا النموذج كـinput_ids لأنها تم حسابها بالفعل.

  • 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, XLNetForQuestionAnsweringSimple
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-large-cased")
>>> model = XLNetForQuestionAnsweringSimple.from_pretrained("xlnet/xlnet-large-cased")

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

XLNetForQuestionAnswering

فئة transformers.XLNetForQuestionAnswering

< >

( config: XLNetConfig )

المعاملات

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

محوّل Xlnet مع رأس تصنيف مقاطع في الأعلى لمهام الإجابة الاستخراجية على الأسئلة مثل 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] = Nonemems: typing.Optional[torch.Tensor] = Noneperm_mask: typing.Optional[torch.Tensor] = Nonetarget_mapping: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneinput_mask: typing.Optional[torch.Tensor] = 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] = Noneuse_mems: bool | None = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → XLNetForQuestionAnsweringOutput 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 للرموز التي تم إخفاؤها.

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

  • mems (list[torch.Tensor] بطول config.n_layers) — تحتوي على حالات مخفية محسوبة مسبقًا (انظر mems المخرجات أدناه). يمكن استخدامها لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم حالتها السابقة إلى هذا النموذج كـ input_ids لأنها تم حسابها بالفعل.

    يجب تعيين use_mems إلى True للاستفادة من mems.

  • perm_mask (torch.Tensor بشكل (batch_size, sequence_length, sequence_length), اختياري) — قناع لتحديد نمط الانتباه لكل رمز إدخال، مع اختيار القيم من [0, 1]: إذا كان perm_mask[k, i, j] = 0، فإن i ينتبه إلى j في الدفعة k؛ وإذا كان perm_mask[k, i, j] = 1، فإن i لا ينتبه إلى j في الدفعة k. إذا لم يتم تعيينه، ينتبه كل رمز إلى جميع الرموز الأخرى (انتباه ثنائي الاتجاه كامل). يُستخدم فقط أثناء ما قبل التدريب (لتحديد ترتيب التحليل) أو للتفكيك التسلسلي (التوليد). [0, 1]:
    • إذا كان perm_mask[k, i, j] = 0، فإن i تنتبه إلى j في الدفعة k؛
    • إذا كان perm_mask[k, i, j] = 1، فإن i لا تنتبه إلى j في الدفعة k.

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

  • target_mapping (torch.Tensor من الشكل (batch_size, num_predict, sequence_length)، اختياري) — قناع يُحدّد الرموز الإخراجية التي يجب استخدامها. إذا كان target_mapping[k, i, j] = 1، فإن التنبؤ رقم i في الدفعة k يقع على الرمز رقم j. يُستخدم فقط أثناء التدريب المسبق للتنبؤ الجزئي أو للتفكيك التسلسلي (التوليد).
  • token_type_ids (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من [0, 1]:
    • 0 يتوافق مع رمز sentence A،
    • 1 يتوافق مع رمز sentence B.

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

  • input_mask (torch.Tensor بشكل batch_size, sequence_length, اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. وهو العكس من attention_mask, أي بـ 0 للرموز الفعلية و 1 للحشو، وهو ما يُحافظ عليه للتوافق مع قاعدة الكود الأصلية.

    قيم الأقنعة المختارة في [0, 1]:

    • 1 للرموز التي تكون مقنّعة،
    • 0 للرموز التي ليست مقنّعة.

    يمكنك استخدام واحد فقط من input_mask وattention_mask.

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

يعيد

XLNetForQuestionAnsweringOutput أو tuple(torch.Tensor)

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

تتجاوز طريقة XLNetForQuestionAnswering الخاصة بالتقديم (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 للإجابات.

  • mems (list[torch.Tensor] بطول config.n_layers) — يحتوي على حالات مخفية محسوبة مسبقًا. يمكن استخدامه (انظر مدخل mems) لتسريع فك الترميز التسلسلي. يجب عدم تمرير معرّفات الرموز التي تم تقديم ماضيها إلى هذا النموذج كـinput_ids لأنها تم حسابها بالفعل.

  • 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, XLNetForQuestionAnswering
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("xlnet/xlnet-base-cased")
>>> model = XLNetForQuestionAnswering.from_pretrained("xlnet/xlnet-base-cased")

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