Transformers documentation

XLM

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

XLM

يُظهر XLM التدريب المسبق عبر اللغات من خلال نهجين: تدريب غير مُشرَف على لغة واحدة، وتدريب مُشرَف على أكثر من لغة مع هدف نموذج لغوي عبر اللغات. يدعم نموذج XLM هدف نمذجة اللغة السببية، ونمذجة اللغة المقنّعة، ونمذجة اللغة للترجمة (وهي امتداد لهدف نمذجة اللغة المقنّعة في BERT إلى مدخلات بلغات متعددة).

يمكنك العثور على جميع نقاط التفتيش الأصلية لـ XLM تحت منظمة مجتمع Facebook AI.

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

يُبيّن المثال أدناه كيفية التنبؤ بالرمز <mask> باستخدام Pipeline وAutoModel ومن سطر الأوامر.

خط أنابيب
AutoModel
from transformers import pipeline


pipeline = pipeline(
    task="fill-mask",
    model="facebook/xlm-roberta-xl",
    device=0
)
pipeline("Bonjour, je suis un modèle <mask>.")

XLMConfig

فئة transformers.XLMConfig

< >

( 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 = 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.02unk_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 | None = 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 )

المعاملات

  • 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 للتفعيلات بدلاً من relu.
  • sinusoidal_embeddings (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام تضمينات موضعية جيبية بدلاً من التضمينات الموضعية المطلقة.
  • causal (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب على النموذج أن يتصرف بشكل سببي. تستخدم النماذج السببية قناع انتباه مثلثي الشكل من أجل الانتباه إلى السياق على الجانب الأيسر فقط بدلاً من السياق ثنائي الاتجاه.
  • asm (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام طبقة إسقاط لوجاريتمي تكيّفي (adaptive log softmax) بدلاً من طبقة خطية لطبقة التنبؤ.
  • n_langs (int، اختياري، القيمة الافتراضية 1) — عدد اللغات التي يتعامل معها النموذج. اضبطه على 1 للنماذج أحادية اللغة.
  • use_lang_emb (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم استخدام تمثيلات اللغة. تستخدم بعض النماذج تمثيلات لغة إضافية، راجع صفحة النماذج متعددة اللغات للحصول على معلومات حول كيفية استخدامها.
  • max_position_embeddings (int، اختياري، القيمة الافتراضية 512) — أقصى طول تسلسل قد يُستخدم مع هذا النموذج.
  • embed_init_std (float، اختياري، القيمة الافتراضية هي 2048^-0.5) — انحراف المعيار لـ truncated_normal_initializer المستخدم في تهيئة مصفوفات التضمين.
  • layer_norm_eps (float, اختياري، القيمة الافتراضية 1e-12) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة.
  • init_std (float، اختياري، القيمة الافتراضية 0.02) — انحراف معياري لمُهيّئ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • unk_index (int، اختياري، القيمة الافتراضية 3) — مؤشر رمز المجهول في المفردات.
  • mask_index (int، اختياري، القيمة الافتراضية 5) — مؤشر رمز الإخفاء في قاموس الكلمات.
  • is_encoder (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب أن يكون النموذج المُهيأ مُشفِّرًا (encoder) أو مُفكِّكًا (decoder) لمحوّل (transformer) كما ورد في Vaswani et al.
  • 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 الخاصة بالنموذج.

هذه فئة الإعدادات المخزنة لإعدادات نموذج XLMModel. تُستخدم لاستحداث نموذج Xlm وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ FacebookAI/xlm-mlm-en-2048

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

أمثلة:

>>> from transformers import XLMConfig, XLMModel

>>> # Initializing a XLM configuration
>>> configuration = XLMConfig()

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

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

XLMTokenizer

فئة transformers.XLMTokenizer

< >

( vocab_filemerges_fileunk_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 = Nonedo_lowercase_and_remove_accent = True**kwargs )

المعاملات

  • vocab_file (str) — ملف المفردات.
  • merges_file (str) — ملف الدمج.
  • 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]، اختياري) — قاموس يربط معرّفات اللغات بمعرّفات النصوص الخاصة بها.
  • do_lowercase_and_remove_accent (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب تحويل النص إلى أحرف صغيرة وإزالة التشكيل عند تقسيم النص إلى رموز.

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

  • معالجة مسبقة وتجزئة باستخدام Moses للغات المدعومة الأكثر شيوعاً.
  • تجزئة محددة للغة الصينية (Jieba) واليابانية (KyTea) والتايلاندية (PyThaiNLP).
  • اختياريًا، يُصغِّر جميع نصوص المدخلات ويوحِّدها.
  • يمكن استخدام الحجة special_tokens والدالة set_special_tokens لإضافة رموز إضافية (مثل ”classify”) إلى المفردات.
  • يُقرن السمة lang2id بين اللغات المدعومة من النموذج ومعرّفاتها إذا تم توفيرها (تُضبط تلقائيًا لمفردات ما قبل التدريب).
  • تقوم خاصية id2lang بإجراء إسقاط عكسي إذا تم توفيرها (تُضبط تلقائيًا لمفردات النماذج المُدرَّبة مسبقًا).

يرث هذا المُجزِّئ من 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>

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 في مُجزّئ النص.

create_token_type_ids_from_sequences

< >

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

المعاملات

  • token_ids_0 (list[int]) — قائمة من المعرّفات.
  • token_ids_1 (list[int]، اختياري) — قائمة اختيارية ثانية من المعرّفات لأزواج التسلسلات.

يعيد

list[int]

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

أنشئ قناعًا من التسلسلين المُمرَّرين لاستخدامه في مهمة تصنيف أزواج التسلسلات.

تُبنى معرّفات أنواع الرموز ديناميكيًا بواسطة هذه الطريقة بناءً على سمات إعدادات مُجزّئ الرموز:

  • token_type_ids_pattern: النمط المستخدم (“all_zeros” أو “bert_style”)
  • token_type_ids_include_special_tokens: ما إذا كان يجب أخذ الرموز الخاصة في الاعتبار عند حساب الطول

أمثلة:

# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences

# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairs

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

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

فئة transformers.models.xlm.modeling_xlm.XLMForQuestionAnsweringOutput

< >

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

الفئة الأساسية لمخرجات نماذج الإجابة عن الأسئلة التي تستخدم XLMSQuADHead.

XLMModel

فئة transformers.XLMModel

< >

( config: XLMConfig )

المعاملات

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

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

يرث هذا النموذج من 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] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → BaseModelOutput 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 إلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج.
  • 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) وتتضمن عناصر مختلفة اعتماداً على الإعداد (XLMConfig) والمدخلات.

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

XLMWithLMHeadModel

فئة transformers.XLMWithLMHeadModel

< >

( config: XLMConfig )

المعاملات

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

نموذج XLM من نوع 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 = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**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], اختياري) — مثال من EncoderDecoderCache يحتوي على حالات KV المحسوبة مسبقًا. يمكن استخدامه لتسريع فك الترميز التسلسلي.
  • 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 عادي.
  • logits_to_keep (Union[int, torch.Tensor]، اختياري، القيمة الافتراضية 0) — إذا كان int، يتم حساب logits لآخر logits_to_keep رموز. إذا كانت القيمة 0، يتم حساب logits لجميع input_ids (حالة خاصة). لا يُحتاج إلى logits إلا للرمز الأخير في عملية التوليد، ويمكن أن يوفر حسابها لذلك الرمز وحده ذاكرة كبيرة، وهو أمر مهم بشكل ملحوظ للتسلسلات الطويلة أو حجم المفردات الكبير. إذا كان torch.Tensor، يجب أن يكون بعدًا واحدًا (1D) ويتوافق مع الفهارس التي يجب الاحتفاظ بها في بُعد طول التسلسل. يكون هذا مفيدًا عند استخدام تنسيق المصفوفات المعبأة (packed tensor format) (بعد واحد لكل من الدفعة وطول التسلسل).

يعيد

MaskedLMOutput أو tuple(torch.Tensor)

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

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

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

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

XLMForSequenceClassification

فئة transformers.XLMForSequenceClassification

< >

( config: XLMConfig )

المعاملات

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

نموذج XLM مع رأس تصنيف/انحدار تسلسلي في الأعلى (طبقة خطية فوق المخرجات المجمّعة) على سبيل المثال لمهام 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) وتتضمن عناصر مختلفة اعتماداً على الإعداد (XLMConfig) والمدخلات.

تتجاوز طريقة XLMForSequenceClassification الخاصة بـ 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, XLMForSequenceClassification

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

>>> 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 = XLMForSequenceClassification.from_pretrained("FacebookAI/xlm-mlm-en-2048", num_labels=num_labels)

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

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

>>> import torch
>>> from transformers import AutoTokenizer, XLMForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> model = XLMForSequenceClassification.from_pretrained("FacebookAI/xlm-mlm-en-2048", 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 = XLMForSequenceClassification.from_pretrained(
...     "FacebookAI/xlm-mlm-en-2048", 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

XLMForMultipleChoice

فئة transformers.XLMForMultipleChoice

< >

( config: XLMConfig*inputs**kwargs )

المعاملات

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

نموذج Xlm مع رأس تصنيف متعدد الخيارات في الأعلى (طبقة خطية فوق المخرجات المجمعة و 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) وتتضمن عناصر مختلفة اعتماداً على الإعداد (XLMConfig) والمدخلات.

تتجاوز طريقة XLMForMultipleChoice الخاصة بالتقديم (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, XLMForMultipleChoice
>>> import torch

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

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

XLMForTokenClassification

فئة transformers.XLMForTokenClassification

< >

( config: XLMConfig )

المعاملات

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

نموذج Xlm 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) وتتضمن عناصر مختلفة اعتماداً على الإعداد (XLMConfig) والمدخلات.

تتجاوز طريقة XLMForTokenClassification الخاصة بـ 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, XLMForTokenClassification
>>> import torch

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

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

XLMForQuestionAnsweringSimple

فئة transformers.XLMForQuestionAnsweringSimple

< >

( config: XLMConfig )

المعاملات

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

نموذج XLM مع رأس تصنيف مقاطع (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] = 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) وتتضمن عناصر مختلفة حسب الإعداد (XLMConfig) والمدخلات.

تتجاوز طريقة XLMForQuestionAnsweringSimple الخاصة بالتقديم (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, XLMForQuestionAnsweringSimple
>>> import torch

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

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

XLMForQuestionAnswering

فئة transformers.XLMForQuestionAnswering

< >

( config: XLMConfig )

المعاملات

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

نموذج Xlm transformer مع رأس تصنيف نطاقات في الأعلى لمهام الإجابة الاستخراجية على الأسئلة مثل 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 ) → XLMForQuestionAnsweringOutput 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 عادي.

يعيد

XLMForQuestionAnsweringOutput أو tuple(torch.Tensor)

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

تتجاوز طريقة XLMForQuestionAnswering الخاصة بالتقديم (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, XLMForQuestionAnswering
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("FacebookAI/xlm-mlm-en-2048")
>>> model = XLMForQuestionAnswering.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