Transformers documentation

Longformer

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

Longformer

Longformer هو نموذج تحويلي مصمم لمعالجة المستندات الطويلة. عادةً ما تتضاعف عملية الانتباه الذاتي بشكل تربيعي مع طول التسلسل، مما يمنع نماذج التحويل من معالجة تسلسلات أطول. يتغلب آلية الانتباه في Longformer على هذه المشكلة من خلال التوسع الخطي مع طول التسلسل. فهو يجمع بين الانتباه المحلي النافذ والانتباه العام المحدد بالمهمة، مما يتيح معالجة مستندات تحتوي على آلاف الرموز بكفاءة.

يمكنك العثور على جميع نقاط التفتيش الأصلية لنموذج Longformer تحت منظمة Ai2.

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

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

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


pipeline = pipeline(
    task="fill-mask",
    model="allenai/longformer-base-4096",
    device=0
)
pipeline("""San Francisco 49ers cornerback Shawntae Spencer will miss the rest of the <mask> with a torn ligament in his left knee.
Spencer, a fifth-year pro, will be placed on injured reserve soon after undergoing surgery Wednesday to repair the ligament. He injured his knee late in the 49ers’ road victory at Seattle on Sept. 14, and missed last week’s victory over Detroit.
Tarell Brown and Donald Strickland will compete to replace Spencer with the 49ers, who kept 12 defensive backs on their 53-man roster to start the season. Brown, a second-year pro, got his first career interception last weekend while filling in for Strickland, who also sat out with a knee injury.""")

ملاحظات

  • Longformer is based on RoBERTa and doesn’t have token_type_ids. You don’t need to indicate which token belongs to which segment. You only need to separate the segments with the separation token </s> or tokenizer.sep_token.

  • يمكنك تحديد الرموز التي يمكنها الانتباه محلياً والرموز التي تنتبه عالمياً باستخدام global_attention_mask أثناء الاستدلال (انظر هذا مثال لمزيد من التفاصيل). القيمة 0 تعني أن الرمز ينتبه محلياً، والقيمة 1 تعني أن الرمز ينتبه عالمياً.

  • يتم تدريب LongformerForMaskedLM بنفس طريقة تدريب RobertaForMaskedLM، وينبغي استخدامه كما هو موضح أدناه.

      input_ids = tokenizer.encode("This is a sentence from [MASK] training data", return_tensors="pt").to(model.device)
      mlm_labels = tokenizer.encode("This is a sentence from the training data", return_tensors="pt").to(model.device)
      loss = model(input_ids, labels=input_ids, masked_lm_labels=mlm_labels)[0]

LongformerConfig

فئة transformers.LongformerConfig

< >

( 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 = Noneattention_window: list[int] | int = 512sep_token_id: int | None = 2pad_token_id: int | None = 1bos_token_id: int | None = 0eos_token_id: int | list[int] | None = 2vocab_size: int = 30522hidden_size: int = 768num_hidden_layers: int = 12num_attention_heads: int = 12intermediate_size: int = 3072hidden_act: str = 'gelu'hidden_dropout_prob: float | int = 0.1attention_probs_dropout_prob: float | int = 0.1max_position_embeddings: int = 512type_vocab_size: int = 2initializer_range: float = 0.02layer_norm_eps: float = 1e-12onnx_export: bool = Falsetie_word_embeddings: bool = True )

المعاملات

  • attention_window (int أو list[int]، اختياري، القيمة الافتراضية 512) — حجم نافذة الانتباه حول كل رمز. إذا كان int، فسيتم استخدام نفس الحجم لجميع الطبقات. لتحديد حجم نافذة مختلف لكل طبقة، استخدم list[int] حيث len(attention_window) == num_hidden_layers.
  • sep_token_id (int، اختياري، القيمة الافتراضية 2) — معرّف الرمز المستخدم كفاصل في المفردات.
  • pad_token_id (int، اختياري، القيمة الافتراضية 1) — معرّف الرمز المستخدم للتعبئة في المفردات.
  • bos_token_id (int, اختياري، القيمة الافتراضية 0) — معرّف الرمز المستخدم لبدء البث في المفردات.
  • eos_token_id (Union[int, list[int]]، اختياري، القيمة الافتراضية 2) — معرّف الرمز المستخدم لنهاية التدفق في المفردات.
  • vocab_size (int، اختياري، القيمة الافتراضية 30522) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة input_ids.
  • hidden_size (int، اختياري، القيمة الافتراضية 768) — أبعاد التمثيلات المخفية.
  • num_hidden_layers (int، اختياري، القيمة الافتراضية 12) — عدد الطبقات المخفية في مُفكِّك Transformer.
  • num_attention_heads (int، اختياري، القيمة الافتراضية 12) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • intermediate_size (int، اختياري، القيمة الافتراضية 3072) — أبعاد تمثيلات MLP.
  • hidden_act (str، اختياري، القيمة الافتراضية gelu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وما إلى ذلك.
  • hidden_dropout_prob (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — احتمال الإسقاط (dropout) لجميع الطبقات المتصلة بالكامل في التضمينات، والمُشفِّر، والمُجمِّع.
  • attention_probs_dropout_prob (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — نسبة إسقاط الاحتمالات الانتباهية.
  • max_position_embeddings (int، اختياري، القيمة الافتراضية 512) — أقصى طول تسلسل قد يُستخدم مع هذا النموذج.
  • type_vocab_size (int، اختياري، القيمة الافتراضية 2) — حجم مفردات token_type_ids.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • layer_norm_eps (float, اختياري، القيمة الافتراضية 1e-12) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة.
  • onnx_export (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم إنشاء النموذج بحيث يمكن تصديره إلى ONNX أم لا.
  • tie_word_embeddings (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب ربط ترميزات الأوزان (weight embeddings) وفقاً لخريطة tied_weights_keys الخاصة بالنموذج.

هذه فئة الإعدادات المخزنة لإعدادات نموذج LongformerModel. تُستخدم لتوليد نموذج Longformer وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ allenai/longformer-base-4096

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

مثال:

>>> from transformers import LongformerConfig, LongformerModel

>>> # Initializing a Longformer configuration
>>> configuration = LongformerConfig()

>>> # Initializing a model from the configuration
>>> model = LongformerModel(configuration)

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

LongformerTokenizer

فئة transformers.RobertaTokenizer

< >

( vocab: str | dict[str, int] | None = Nonemerges: str | list[str] | None = Noneerrors: str = 'replace'bos_token: str = '<s>'eos_token: str = '</s>'sep_token: str = '</s>'cls_token: str = '<s>'unk_token: str = '<unk>'pad_token: str = '<pad>'mask_token: str = '<mask>'add_prefix_space: bool = Falsetrim_offsets: bool = True**kwargs )

المعاملات

  • vocab (str أو dict أو list، اختياري) — قاموس مفردات مخصص. إذا لم يُقدَّم، يتم تحميل المفردات من vocab_file.
  • merges (str أو list، اختياري) — قائمة دمج مخصصة. إذا لم يتم تقديمها، يتم تحميل عمليات الدمج من merges_file.
  • errors (str، اختياري، القيمة الافتراضية "replace") — النموذج الذي يجب اتباعه عند فك ترميز البايتات إلى UTF-8. راجع bytes.decode لمزيد من المعلومات.
  • bos_token (str, اختياري, الافتراضي هو "<s>") — رمز بداية التسلسل الذي تم استخدامه أثناء التدريب المسبق. يمكن استخدامه كرمز لتصنيف التسلسل. عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لبداية التسلسل، بل يُستخدم رمز cls_token.

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

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

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

  • sep_token (str، اختياري، القيمة الافتراضية "</s>") — رمز الفاصل، الذي يُستخدم عند بناء تسلسل من عدة تسلسلات، على سبيل المثال تسلسلان لتصنيف التسلسل أو نص وسؤال للإجابة على الأسئلة. كما يُستخدم كآخر رمز في تسلسل مبني باستخدام الرموز الخاصة.
  • cls_token (str، اختياري، القيمة الافتراضية "<s>") — رمز التصنيف الذي يُستخدم عند إجراء تصنيف التسلسل (تصنيف التسلسل بأكمله بدلاً من التصنيف لكل رمز على حدة). وهو الرمز الأول في التسلسل عند بناؤه باستخدام الرموز الخاصة.
  • unk_token (str، اختياري، القيمة الافتراضية "<unk>") — رمز المجهول. لا يمكن تحويل الرمز غير الموجود في المفردات إلى معرّف، لذا يُعيَّن هذا الرمز بدلاً منه.
  • pad_token (str، اختياري، القيمة الافتراضية "<pad>") — الرمز المستخدم للتعبئة، على سبيل المثال عند تجميع تسلسلات ذات أطوال مختلفة.
  • mask_token (str، اختياري، القيمة الافتراضية "<mask>") — الرمز المستخدم لإخفاء القيم. هذا هو الرمز المستخدم عند تدريب هذا النموذج باستخدام نمذجة اللغة المقنّعة. وهو الرمز الذي سيحاول النموذج التنبؤ به.
  • add_prefix_space (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب إضافة مسافة أولية إلى المدخلات أم لا. هذا يتيح التعامل مع الكلمة الأولى تمامًا مثل أي كلمة أخرى. (يعمل مُجزِّئ RoBERTa على اكتشاف بداية الكلمات من خلال المسافة التي تسبقها).
  • trim_offsets (bool، اختياري، القيمة الافتراضية True) — ما إذا كان ينبغي لخطوة ما بعد المعالجة أن تقصّ الإزاحات لتجنّب تضمين مسافات بيضاء.

أنشئ مُجزِّئ RoBERTa (مدعوم بمكتبة tokenizers من HuggingFace). يعتمد على ترميز زوج البايت (Byte-Pair-Encoding).

تم تدريب هذا المُجزِّئ على التعامل مع المسافات كجزء من الرموز (بشكل يشبه sentencepiece) لذا فإن الكلمة

تُرمَّز بشكل مختلف سواء كانت في بداية الجملة (بدون مسافة) أو لا:

>>> from transformers import RobertaTokenizer

>>> tokenizer = RobertaTokenizer.from_pretrained("FacebookAI/roberta-base")
>>> tokenizer("Hello world")["input_ids"]
[0, 31414, 232, 2]

>>> tokenizer(" Hello world")["input_ids"]
[0, 20920, 232, 2]

يمكنك تجاوز هذا السلوك عن طريق تمرير add_prefix_space=True عند إنشاء هذا المُجزّئ أو عند استدعائه على بعض النص، ولكن نظرًا لأن النموذج لم يتم تدريبه مسبقًا بهذه الطريقة، فقد يؤدي ذلك إلى انخفاض في الأداء.

عند استخدامه مع is_split_into_words=True، يجب إنشاء هذا المُجزِّئ مع add_prefix_space=True.

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

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

فئة transformers.models.longformer.modeling_longformer.LongformerBaseModelOutput

< >

( last_hidden_state: FloatTensorhidden_states: tuple[torch.FloatTensor, ...] | None = Noneattentions: tuple[torch.FloatTensor, ...] | None = Noneglobal_attentions: tuple[torch.FloatTensor, ...] | None = None )

المعاملات

  • last_hidden_state (torch.FloatTensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.
  • hidden_states (tuple[torch.FloatTensor, ...], اختياري, يُعاد عند output_hidden_states=True تمرير config.output_hidden_states=True) — مجموعة من torch.FloatTensor (واحد لكل من مخرجات الطبقات التضمينية (إذا كان النموذج يحتوي على طبقة تضمين) + واحد لكل من مخرجات كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.FloatTensor), اختياري, يُعاد عند output_attentions=True يُمرَّر أو عند config.output_attentions=True) — مجموعة من torch.FloatTensor (لطبقة واحدة) من الشكل (batch_size, num_heads, sequence_length, x + attention_window + 1), حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل. أوزان الانتباه المحلي بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. هذه هي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز في نافذة الانتباه (القيم المتبقية attention_window + 1). لاحظ أن القيم الأولى x تشير إلى رموز بمواضع ثابتة في النص، بينما تشير القيم المتبقية attention_window + 1 إلى رموز بمواضع نسبية: يقع وزن الانتباه للرمز لنفسه عند الفهرس x + attention_window / 2، والقيم السابقة (اللاحقة) attention_window / 2 هي أوزان الانتباه للرموز السابقة (اللاحقة) attention_window / 2. إذا احتوت نافذة الانتباه على رمز ذي انتباه شامل، يُضبط وزن الانتباه عند الفهرس المقابل إلى 0؛ يجب الوصول إلى القيمة من أوزان الانتباه الأولى x. إذا كان للرمز انتباه شامل، تُضبط أوزان الانتباه لجميع الرموز الأخرى في attentions إلى 0، ويجب الوصول إلى القيم من global_attentions.

    أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window

    • 1values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
  • global_attentions (tuple(torch.FloatTensor), اختياري, يُعاد عند output_attentions=True يُمرَّر أو عند config.output_attentions=True) — مجموعة من torch.FloatTensor (من الشكل (batch_size, num_heads, sequence_length, x), حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل.

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

الفئة الأساسية لمخرجات Longformer، مع حالات مخفية محتملة، وانتباه محلي وعالمي.

class transformers.models.longformer.modeling_longformer.LongformerBaseModelOutputWithPooling

< >

( last_hidden_state: FloatTensorpooler_output: typing.Optional[torch.FloatTensor] = Nonehidden_states: tuple[torch.FloatTensor, ...] | None = Noneattentions: tuple[torch.FloatTensor, ...] | None = Noneglobal_attentions: tuple[torch.FloatTensor, ...] | None = None )

المعاملات

  • last_hidden_state (torch.FloatTensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.
  • pooler_output (torch.FloatTensor من الشكل (batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول في التسلسل (رمز التصنيف) بعد معالجتها بواسطة طبقة Linear ودالة تفعيل Tanh. تُدرَّب أوزان طبقة Linear من هدف التنبؤ بالجملة التالية (التصنيف) أثناء التدريب المسبق.
  • hidden_states (tuple[torch.FloatTensor, ...], اختياري, يُعاد عند output_hidden_states=True تمرير config.output_hidden_states=True) — مجموعة من torch.FloatTensor (واحد لكل من مخرجات الطبقات التضمينية (إذا كان النموذج يحتوي على طبقة تضمين) + واحد لكل من مخرجات كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.FloatTensor), اختياري, يُعاد عند output_attentions=True يُمرَّر أو عند config.output_attentions=True) — مجموعة من torch.FloatTensor (لطبقة واحدة) من الشكل (batch_size, num_heads, sequence_length, x + attention_window + 1), حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل. أوزان الانتباه المحلي بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. هذه هي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز في نافذة الانتباه (القيم المتبقية attention_window + 1). لاحظ أن القيم الأولى x تشير إلى رموز بمواضع ثابتة في النص، بينما تشير القيم المتبقية attention_window + 1 إلى رموز بمواضع نسبية: يقع وزن الانتباه للرمز لنفسه عند الفهرس x + attention_window / 2، والقيم السابقة (اللاحقة) attention_window / 2 هي أوزان الانتباه للرموز السابقة (اللاحقة) attention_window / 2. إذا احتوت نافذة الانتباه على رمز ذي انتباه شامل، يُضبط وزن الانتباه عند الفهرس المقابل إلى 0؛ يجب الوصول إلى القيمة من أوزان الانتباه الأولى x. إذا كان للرمز انتباه شامل، تُضبط أوزان الانتباه لجميع الرموز الأخرى في attentions إلى 0، ويجب الوصول إلى القيم من global_attentions.

    أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window

    • 1values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
  • global_attentions (tuple(torch.FloatTensor), اختياري, يُعاد عند output_attentions=True يُمرَّر أو عند config.output_attentions=True) — مجموعة من torch.FloatTensor (من الشكل (batch_size, num_heads, sequence_length, x), حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل.

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

الفئة الأساسية لمخرجات Longformer التي تتضمن أيضًا تجميعًا للحالات المخفية الأخيرة.

فئة transformers.models.longformer.modeling_longformer.LongformerMaskedLMOutput

< >

( loss: typing.Optional[torch.FloatTensor] = Nonelogits: typing.Optional[torch.FloatTensor] = Nonehidden_states: tuple[torch.FloatTensor, ...] | None = Noneattentions: tuple[torch.FloatTensor, ...] | None = Noneglobal_attentions: tuple[torch.FloatTensor, ...] | None = None )

المعاملات

  • loss (torch.FloatTensor من الشكل (1,)، اختياري، يُعاد عند توفير labels) — خسارة نمذجة اللغة المقنّعة (MLM).
  • logits (torch.FloatTensor من الشكل (batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).
  • hidden_states (tuple[torch.FloatTensor, ...], اختياري, يُعاد عند output_hidden_states=True تمرير config.output_hidden_states=True) — مجموعة من torch.FloatTensor (واحد لكل من مخرجات الطبقات التضمينية (إذا كان النموذج يحتوي على طبقة تضمين) + واحد لكل من مخرجات كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.FloatTensor), اختياري, يُعاد عند output_attentions=True يُمرَّر أو عند config.output_attentions=True) — مجموعة من torch.FloatTensor (لطبقة واحدة) من الشكل (batch_size, num_heads, sequence_length, x + attention_window + 1), حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل. أوزان الانتباه المحلي بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. هذه هي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز في نافذة الانتباه (القيم المتبقية attention_window + 1). لاحظ أن القيم الأولى x تشير إلى رموز بمواضع ثابتة في النص، بينما تشير القيم المتبقية attention_window + 1 إلى رموز بمواضع نسبية: يقع وزن الانتباه للرمز لنفسه عند الفهرس x + attention_window / 2، والقيم السابقة (اللاحقة) attention_window / 2 هي أوزان الانتباه للرموز السابقة (اللاحقة) attention_window / 2. إذا احتوت نافذة الانتباه على رمز ذي انتباه شامل، يُضبط وزن الانتباه عند الفهرس المقابل إلى 0؛ يجب الوصول إلى القيمة من أوزان الانتباه الأولى x. إذا كان للرمز انتباه شامل، تُضبط أوزان الانتباه لجميع الرموز الأخرى في attentions إلى 0، ويجب الوصول إلى القيم من global_attentions.

    أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window

    • 1values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
  • global_attentions (tuple(torch.FloatTensor), اختياري, يُعاد عند output_attentions=True يُمرَّر أو عند config.output_attentions=True) — مجموعة من torch.FloatTensor (من الشكل (batch_size, num_heads, sequence_length, x), حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل.

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

الفئة الأساسية لمخرجات نماذج اللغة المقنّعة.

فئة transformers.models.longformer.modeling_longformer.LongformerQuestionAnsweringModelOutput

< >

( loss: typing.Optional[torch.FloatTensor] = Nonestart_logits: typing.Optional[torch.FloatTensor] = Noneend_logits: typing.Optional[torch.FloatTensor] = Nonehidden_states: tuple[torch.FloatTensor, ...] | None = Noneattentions: tuple[torch.FloatTensor, ...] | None = Noneglobal_attentions: tuple[torch.FloatTensor, ...] | None = None )

المعاملات

  • loss (torch.FloatTensor من الشكل (1,)، اختياري، يُعاد عند توفير labels) — إجمالي خسارة استخراج المقاطع هو مجموع دالة Cross-Entropy لموقعي البداية والنهاية.
  • start_logits (torch.FloatTensor من الشكل (batch_size, sequence_length)، اختياري) — درجات بداية المقطع (قبل SoftMax).
  • end_logits (torch.FloatTensor من الشكل (batch_size, sequence_length)، اختياري) — درجات نهاية المقطع (قبل SoftMax).
  • hidden_states (tuple[torch.FloatTensor, ...], اختياري, يُعاد عند output_hidden_states=True تمرير config.output_hidden_states=True) — مجموعة من torch.FloatTensor (واحد لكل من مخرجات الطبقات التضمينية (إذا كان النموذج يحتوي على طبقة تضمين) + واحد لكل من مخرجات كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.FloatTensor), اختياري, يُعاد عند output_attentions=True يُمرَّر أو عند config.output_attentions=True) — مجموعة من torch.FloatTensor (لطبقة واحدة) من الشكل (batch_size, num_heads, sequence_length, x + attention_window + 1), حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل. أوزان الانتباه المحلي بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. هذه هي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز في نافذة الانتباه (القيم المتبقية attention_window + 1). لاحظ أن القيم الأولى x تشير إلى رموز بمواضع ثابتة في النص، بينما تشير القيم المتبقية attention_window + 1 إلى رموز بمواضع نسبية: يقع وزن الانتباه للرمز لنفسه عند الفهرس x + attention_window / 2، والقيم السابقة (اللاحقة) attention_window / 2 هي أوزان الانتباه للرموز السابقة (اللاحقة) attention_window / 2. إذا احتوت نافذة الانتباه على رمز ذي انتباه شامل، يُضبط وزن الانتباه عند الفهرس المقابل إلى 0؛ يجب الوصول إلى القيمة من أوزان الانتباه الأولى x. إذا كان للرمز انتباه شامل، تُضبط أوزان الانتباه لجميع الرموز الأخرى في attentions إلى 0، ويجب الوصول إلى القيم من global_attentions.

    أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window

    • 1values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
  • global_attentions (tuple(torch.FloatTensor), اختياري, يُعاد عند output_attentions=True يُمرَّر أو عند config.output_attentions=True) — مجموعة من torch.FloatTensor (من الشكل (batch_size, num_heads, sequence_length, x), حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل.

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

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

فئة transformers.models.longformer.modeling_longformer.LongformerSequenceClassifierOutput

< >

( loss: typing.Optional[torch.FloatTensor] = Nonelogits: typing.Optional[torch.FloatTensor] = Nonehidden_states: tuple[torch.FloatTensor, ...] | None = Noneattentions: tuple[torch.FloatTensor, ...] | None = Noneglobal_attentions: tuple[torch.FloatTensor, ...] | None = None )

المعاملات

  • loss (torch.FloatTensor من الشكل (1,)، اختياري، يُعاد عند توفير labels) — فقد التصنيف (أو الانحدار إذا كان config.num_labels==1).
  • logits (torch.FloatTensor من الشكل (batch_size, config.num_labels)) — درجات التصنيف (أو الانحدار إذا كان config.num_labels==1) (قبل SoftMax).
  • hidden_states (tuple[torch.FloatTensor, ...], اختياري, يُعاد عند output_hidden_states=True تمرير config.output_hidden_states=True) — مجموعة من torch.FloatTensor (واحد لكل من مخرجات الطبقات التضمينية (إذا كان النموذج يحتوي على طبقة تضمين) + واحد لكل من مخرجات كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.FloatTensor), اختياري, يُعاد عند output_attentions=True يُمرَّر أو عند config.output_attentions=True) — مجموعة من torch.FloatTensor (لطبقة واحدة) من الشكل (batch_size, num_heads, sequence_length, x + attention_window + 1), حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل. أوزان الانتباه المحلي بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. هذه هي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز في نافذة الانتباه (القيم المتبقية attention_window + 1). لاحظ أن القيم الأولى x تشير إلى رموز بمواضع ثابتة في النص، بينما تشير القيم المتبقية attention_window + 1 إلى رموز بمواضع نسبية: يقع وزن الانتباه للرمز لنفسه عند الفهرس x + attention_window / 2، والقيم السابقة (اللاحقة) attention_window / 2 هي أوزان الانتباه للرموز السابقة (اللاحقة) attention_window / 2. إذا احتوت نافذة الانتباه على رمز ذي انتباه شامل، يُضبط وزن الانتباه عند الفهرس المقابل إلى 0؛ يجب الوصول إلى القيمة من أوزان الانتباه الأولى x. إذا كان للرمز انتباه شامل، تُضبط أوزان الانتباه لجميع الرموز الأخرى في attentions إلى 0، ويجب الوصول إلى القيم من global_attentions.

    أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window

    • 1values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
  • global_attentions (tuple(torch.FloatTensor), اختياري, يُعاد عند output_attentions=True يُمرَّر أو عند config.output_attentions=True) — مجموعة من torch.FloatTensor (من الشكل (batch_size, num_heads, sequence_length, x), حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل.

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

الفئة الأساسية لمخرجات نماذج تصنيف الجمل.

فئة transformers.models.longformer.modeling_longformer.LongformerMultipleChoiceModelOutput

< >

( loss: typing.Optional[torch.FloatTensor] = Nonelogits: typing.Optional[torch.FloatTensor] = Nonehidden_states: tuple[torch.FloatTensor, ...] | None = Noneattentions: tuple[torch.FloatTensor, ...] | None = Noneglobal_attentions: tuple[torch.FloatTensor, ...] | None = None )

المعاملات

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

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

  • hidden_states (tuple[torch.FloatTensor, ...], اختياري, يُعاد عند output_hidden_states=True تمرير config.output_hidden_states=True) — مجموعة من torch.FloatTensor (واحد لكل من مخرجات الطبقات التضمينية (إذا كان النموذج يحتوي على طبقة تضمين) + واحد لكل من مخرجات كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.FloatTensor), اختياري, يُعاد عند output_attentions=True يُمرَّر أو عند config.output_attentions=True) — مجموعة من torch.FloatTensor (لطبقة واحدة) من الشكل (batch_size, num_heads, sequence_length, x + attention_window + 1), حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل. أوزان الانتباه المحلي بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. هذه هي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز في نافذة الانتباه (القيم المتبقية attention_window + 1). لاحظ أن القيم الأولى x تشير إلى رموز بمواضع ثابتة في النص، بينما تشير القيم المتبقية attention_window + 1 إلى رموز بمواضع نسبية: يقع وزن الانتباه للرمز لنفسه عند الفهرس x + attention_window / 2، والقيم السابقة (اللاحقة) attention_window / 2 هي أوزان الانتباه للرموز السابقة (اللاحقة) attention_window / 2. إذا احتوت نافذة الانتباه على رمز ذي انتباه شامل، يُضبط وزن الانتباه عند الفهرس المقابل إلى 0؛ يجب الوصول إلى القيمة من أوزان الانتباه الأولى x. إذا كان للرمز انتباه شامل، تُضبط أوزان الانتباه لجميع الرموز الأخرى في attentions إلى 0، ويجب الوصول إلى القيم من global_attentions.

    أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window

    • 1values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
  • global_attentions (tuple(torch.FloatTensor), اختياري, يُعاد عند output_attentions=True يُمرَّر أو عند config.output_attentions=True) — مجموعة من torch.FloatTensor (من الشكل (batch_size, num_heads, sequence_length, x), حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل.

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

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

فئة transformers.models.longformer.modeling_longformer.LongformerTokenClassifierOutput

< >

( loss: typing.Optional[torch.FloatTensor] = Nonelogits: typing.Optional[torch.FloatTensor] = Nonehidden_states: tuple[torch.FloatTensor, ...] | None = Noneattentions: tuple[torch.FloatTensor, ...] | None = Noneglobal_attentions: tuple[torch.FloatTensor, ...] | None = None )

المعاملات

  • loss (torch.FloatTensor من الشكل (1,)، اختياري، يُعاد عند توفير labels) — خسارة التصنيف.
  • logits (torch.FloatTensor من الشكل (batch_size, sequence_length, config.num_labels)) — درجات التصنيف (قبل SoftMax).
  • hidden_states (tuple[torch.FloatTensor, ...], اختياري, يُعاد عند output_hidden_states=True تمرير config.output_hidden_states=True) — مجموعة من torch.FloatTensor (واحد لكل من مخرجات الطبقات التضمينية (إذا كان النموذج يحتوي على طبقة تضمين) + واحد لكل من مخرجات كل طبقة) من الشكل (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.FloatTensor), اختياري, يُعاد عند output_attentions=True يُمرَّر أو عند config.output_attentions=True) — مجموعة من torch.FloatTensor (لطبقة واحدة) من الشكل (batch_size, num_heads, sequence_length, x + attention_window + 1), حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل. أوزان الانتباه المحلي بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. هذه هي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز في نافذة الانتباه (القيم المتبقية attention_window + 1). لاحظ أن القيم الأولى x تشير إلى رموز بمواضع ثابتة في النص، بينما تشير القيم المتبقية attention_window + 1 إلى رموز بمواضع نسبية: يقع وزن الانتباه للرمز لنفسه عند الفهرس x + attention_window / 2، والقيم السابقة (اللاحقة) attention_window / 2 هي أوزان الانتباه للرموز السابقة (اللاحقة) attention_window / 2. إذا احتوت نافذة الانتباه على رمز ذي انتباه شامل، يُضبط وزن الانتباه عند الفهرس المقابل إلى 0؛ يجب الوصول إلى القيمة من أوزان الانتباه الأولى x. إذا كان للرمز انتباه شامل، تُضبط أوزان الانتباه لجميع الرموز الأخرى في attentions إلى 0، ويجب الوصول إلى القيم من global_attentions.

    أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window

    • 1values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
  • global_attentions (tuple(torch.FloatTensor), اختياري, يُعاد عند output_attentions=True يُمرَّر أو عند config.output_attentions=True) — مجموعة من torch.FloatTensor (من الشكل (batch_size, num_heads, sequence_length, x), حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل.

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

الفئة الأساسية لمخرجات نماذج تصنيف الرموز.

LongformerModel

فئة transformers.LongformerModel

< >

( config: LongformerConfigadd_pooling_layer = True )

المعاملات

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

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

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

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

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneglobal_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → LongformerBaseModelOutputWithPooling or tuple(torch.FloatTensor)

المعاملات

  • 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 للرموز التي تم إخفاؤها.

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

  • global_attention_mask (torch.FloatTensor بشكل (batch_size, sequence_length), اختياري) — قناع لتحديد نوع الانتباه الممنوح لكل رمز، سواء كان انتباهًا محليًا أو انتباهًا شاملًا. الرموز التي يتم منحها انتباهًا شاملًا تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها. وهذا أمر مهم عند الضبط الدقيق لمهام محددة لأنه يجعل النموذج أكثر مرونة في تمثيل المهمة. على سبيل المثال، في مهام التصنيف، يجب منح الرمز انتباهًا شاملًا. وفي مهام الإجابة على الأسئلة، يجب أن يتمتع جميع رموز السؤال أيضًا بانتباه شامل. يُرجى الرجوع إلى ورقة Longformer لمزيد من التفاصيل. القيم المختارة للقناع في [0, 1]:
    • 0 للانتباه المحلي (انتباه نافذة منزلقة)،
    • 1 للانتباه العام (الرموز التي تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها).
  • 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].

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

  • 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 عادي.

يعيد

LongformerBaseModelOutputWithPooling أو tuple(torch.FloatTensor)

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

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

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

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

  • pooler_output (torch.FloatTensor من الشكل (batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول في التسلسل (رمز التصنيف)، بعد معالجتها بواسطة طبقة خطية ودالة تفعيل Tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء التدريب المسبق.

  • hidden_states (tuple[torch.FloatTensor, ...]، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.FloatTensor (واحدة لمخرجات الطبقة المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.FloatTensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.FloatTensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, x + attention_window + 1)، حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل.

    أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window

    • 1values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
  • global_attentions (tuple(torch.FloatTensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.FloatTensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, x)، حيث x هو عدد الرموز التي لديها قناع انتباه شامل.

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

أمثلة:

>>> import torch
>>> from transformers import LongformerModel, AutoTokenizer

>>> model = LongformerModel.from_pretrained("allenai/longformer-base-4096")
>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-base-4096")

>>> SAMPLE_TEXT = " ".join(["Hello world! "] * 1000)  # long input document
>>> input_ids = torch.tensor(tokenizer.encode(SAMPLE_TEXT)).unsqueeze(0)  # batch of size 1

>>> attention_mask = torch.ones(
...     input_ids.shape, dtype=torch.long, device=input_ids.device
... )  # initialize to local attention
>>> global_attention_mask = torch.zeros(
...     input_ids.shape, dtype=torch.long, device=input_ids.device
... )  # initialize to global attention to be deactivated for all tokens
>>> global_attention_mask[
...     :,
...     [
...         1,
...         4,
...         21,
...     ],
... ] = 1  # Set global attention to random tokens for the sake of this example
>>> # Usually, set global attention based on the task. For example,
>>> # classification: the <s> token
>>> # QA: question tokens
>>> # LM: potentially on the beginning of sentences and paragraphs
>>> outputs = model(input_ids, attention_mask=attention_mask, global_attention_mask=global_attention_mask)
>>> sequence_output = outputs.last_hidden_state
>>> pooled_output = outputs.pooler_output

LongformerForMaskedLM

فئة transformers.LongformerForMaskedLM

< >

( config: LongformerConfig )

المعاملات

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

نموذج Longformer مع رأس language modeling في الأعلى.”

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

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

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneglobal_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = 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 ) → LongformerMaskedLMOutput or tuple(torch.FloatTensor)

المعاملات

  • 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 للرموز التي تم إخفاؤها.

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

  • global_attention_mask (torch.FloatTensor بشكل (batch_size, sequence_length), اختياري) — قناع لتحديد نوع الانتباه الممنوح لكل رمز، سواء كان انتباهًا محليًا أو انتباهًا شاملًا. الرموز التي تخضع للانتباه الشامل تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها. وهذا أمر مهم في الضبط الدقيق الخاص بالمهام لأنه يجعل النموذج أكثر مرونة في تمثيل المهمة. على سبيل المثال، في تصنيف النصوص، يجب منح الرمز انتباهًا شاملًا. وفي مهام الإجابة على الأسئلة، يجب أن يتمتع جميع رموز السؤال أيضًا بانتباه شامل. يرجى الرجوع إلى ورقة Longformer لمزيد من التفاصيل. القيم المختارة للقناع في [0, 1]:
    • 0 للانتباه المحلي (انتباه نافذة منزلقة)،
    • 1 للانتباه العام (الرموز التي تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها).
  • 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].

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

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

يعيد

LongformerMaskedLMOutput أو tuple(torch.FloatTensor)

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

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

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

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

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

  • hidden_states (tuple[torch.FloatTensor, ...]، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.FloatTensor (واحدة لمخرجات الطبقة المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.FloatTensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.FloatTensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, x + attention_window + 1)، حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل.

    أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window

    • 1values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
  • global_attentions (tuple(torch.FloatTensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.FloatTensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, x)، حيث x هو عدد الرموز التي لديها قناع انتباه شامل.

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

مثال على ملء القناع:

>>> from transformers import AutoTokenizer, LongformerForMaskedLM

>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-base-4096")
>>> model = LongformerForMaskedLM.from_pretrained("allenai/longformer-base-4096")

لنحاول إدخال مدخلات طويلة جداً.

>>> TXT = (
...     "My friends are <mask> but they eat too many carbs."
...     + " That's why I decide not to eat with them." * 300
... )
>>> input_ids = tokenizer([TXT], return_tensors="pt")["input_ids"]
>>> logits = model(input_ids).logits

>>> masked_index = (input_ids[0] == tokenizer.mask_token_id).nonzero().item()
>>> probs = logits[0, masked_index].softmax(dim=0)
>>> values, predictions = probs.topk(5)

>>> tokenizer.decode(predictions).split()
['healthy', 'skinny', 'thin', 'good', 'vegetarian']

LongformerForSequenceClassification

فئة transformers.LongformerForSequenceClassification

< >

( config: LongformerConfig )

المعاملات

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

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

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

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

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneglobal_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = 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 ) → LongformerSequenceClassifierOutput or tuple(torch.FloatTensor)

المعاملات

  • 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 للرموز التي تم إخفاؤها.

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

  • global_attention_mask (torch.FloatTensor بشكل (batch_size, sequence_length), اختياري) — قناع لتحديد نوع الانتباه الممنوح لكل رمز، سواء كان انتباهًا محليًا أو انتباهًا شاملًا. الرموز التي تخضع للانتباه الشامل تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها. هذا أمر مهم في الضبط الدقيق الخاص بالمهام لأنه يجعل النموذج أكثر مرونة في تمثيل المهمة. على سبيل المثال، في تصنيف النصوص، يجب منح الرمز انتباهًا شاملًا. وفي مهام الإجابة عن الأسئلة، يجب أن تخضع جميع رموز السؤال أيضًا للانتباه الشامل. يُرجى الرجوع إلى ورقة Longformer لمزيد من التفاصيل. القيم المختارة للقناع في [0, 1]:
    • 0 للانتباه المحلي (انتباه نافذة منزلقة)،
    • 1 للانتباه العام (الرموز التي تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها).
  • 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].

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

  • 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 عادي.

يعيد

LongformerSequenceClassifierOutput أو tuple(torch.FloatTensor)

LongformerSequenceClassifierOutput أو مجموعة مرتبة من torch.FloatTensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة حسب الإعداد (LongformerConfig) والمدخلات.

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

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

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

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

  • hidden_states (tuple[torch.FloatTensor, ...]، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.FloatTensor (واحدة لمخرجات الطبقة المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.FloatTensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.FloatTensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, x + attention_window + 1)، حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل.

    أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window

    • 1values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
  • global_attentions (tuple(torch.FloatTensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.FloatTensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, x)، حيث x هو عدد الرموز التي لديها قناع انتباه شامل.

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

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

>>> import torch
>>> from transformers import AutoTokenizer, LongformerForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-base-4096")
>>> model = LongformerForSequenceClassification.from_pretrained("allenai/longformer-base-4096")

>>> 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 = LongformerForSequenceClassification.from_pretrained("allenai/longformer-base-4096", num_labels=num_labels)

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

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

>>> import torch
>>> from transformers import AutoTokenizer, LongformerForSequenceClassification

>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-base-4096")
>>> model = LongformerForSequenceClassification.from_pretrained("allenai/longformer-base-4096", 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 = LongformerForSequenceClassification.from_pretrained(
...     "allenai/longformer-base-4096", 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

LongformerForMultipleChoice

فئة transformers.LongformerForMultipleChoice

< >

( config: LongformerConfig )

المعاملات

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

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

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

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

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneglobal_attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → LongformerMultipleChoiceModelOutput or tuple(torch.FloatTensor)

المعاملات

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

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

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

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

  • global_attention_mask (torch.FloatTensor بشكل (batch_size, num_choices, sequence_length), اختياري) — قناع يحدد نوع الانتباه الممنوح لكل رمز، سواء كان انتباهًا محليًا أو انتباهًا شاملًا. الرموز التي تخضع للانتباه الشامل تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها. هذا أمر مهم في الضبط الدقيق الخاص بالمهام لأنه يجعل النموذج أكثر مرونة في تمثيل المهمة. على سبيل المثال، في مهام التصنيف، يجب منح الرمز انتباهًا شاملًا. وفي مهام الإجابة على الأسئلة، يجب أن تخضع جميع رموز السؤال أيضًا للانتباه الشامل. يرجى الرجوع إلى ورقة Longformer لمزيد من التفاصيل. القيم المختارة للقناع في [0, 1]:
    • 0 للانتباه المحلي (انتباه نافذة منزلقة)،
    • 1 للانتباه العام (الرموز التي تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها).
  • labels (torch.LongTensor من الشكل (batch_size,)، اختياري) — التسميات لحساب خسارة تصنيف الاختيار المتعدد. يجب أن تكون الفهارس ضمن [0, ..., num_choices-1] حيث num_choices هو حجم البُعد الثاني من المصفوفات المدخلة. (انظر input_ids أعلاه)
  • position_ids (torch.LongTensor بشكل (batch_size, num_choices, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق [0, config.max_position_embeddings - 1].

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

  • inputs_embeds (torch.FloatTensor من الشكل (batch_size, num_choices, 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 عادي.

يعيد

LongformerMultipleChoiceModelOutput أو tuple(torch.FloatTensor)

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

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

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

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

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

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

  • hidden_states (tuple[torch.FloatTensor, ...]، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.FloatTensor (واحدة لمخرجات الطبقة المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.FloatTensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.FloatTensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, x + attention_window + 1)، حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل.

    أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window

    • 1values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
  • global_attentions (tuple(torch.FloatTensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.FloatTensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, x)، حيث x هو عدد الرموز التي لديها قناع انتباه شامل.

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

مثال:

>>> from transformers import AutoTokenizer, LongformerForMultipleChoice
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-base-4096")
>>> model = LongformerForMultipleChoice.from_pretrained("allenai/longformer-base-4096")

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

LongformerForTokenClassification

فئة transformers.LongformerForTokenClassification

< >

( config: LongformerConfig )

المعاملات

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

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

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

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

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneglobal_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = 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 ) → LongformerTokenClassifierOutput or tuple(torch.FloatTensor)

المعاملات

  • 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 للرموز التي تم إخفاؤها.

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

  • global_attention_mask (torch.FloatTensor بشكل (batch_size, sequence_length), اختياري) — قناع لتحديد نوع الانتباه الممنوح لكل رمز، سواء كان انتباهًا محليًا أو انتباهًا شاملًا. الرموز التي تخضع للانتباه الشامل تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها. وهذا أمر مهم في الضبط الدقيق الخاص بالمهام لأنه يجعل النموذج أكثر مرونة في تمثيل المهمة. على سبيل المثال، في تصنيف النصوص، يجب منح الرمز انتباهًا شاملًا. وفي مهام الإجابة على الأسئلة، يجب أن يتمتع جميع رموز السؤال أيضًا بانتباه شامل. يرجى الرجوع إلى ورقة Longformer لمزيد من التفاصيل. القيم المختارة للقناع في [0, 1]:
    • 0 للانتباه المحلي (انتباه نافذة منزلقة)،
    • 1 للانتباه العام (الرموز التي تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها).
  • 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].

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

  • 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 عادي.

يعيد

LongformerTokenClassifierOutput أو tuple(torch.FloatTensor)

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

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

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

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

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

  • hidden_states (tuple[torch.FloatTensor, ...]، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.FloatTensor (واحدة لمخرجات الطبقة المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.FloatTensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.FloatTensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, x + attention_window + 1)، حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل.

    أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window

    • 1values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
  • global_attentions (tuple(torch.FloatTensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.FloatTensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, x)، حيث x هو عدد الرموز التي لديها قناع انتباه شامل.

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

مثال:

>>> from transformers import AutoTokenizer, LongformerForTokenClassification
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-base-4096")
>>> model = LongformerForTokenClassification.from_pretrained("allenai/longformer-base-4096")

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

LongformerForQuestionAnswering

فئة transformers.LongformerForQuestionAnswering

< >

( config: LongformerConfig )

المعاملات

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

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

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

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

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneglobal_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = 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 ) → LongformerQuestionAnsweringModelOutput or tuple(torch.FloatTensor)

المعاملات

  • 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 للرموز التي تم إخفاؤها.

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

  • global_attention_mask (torch.FloatTensor بشكل (batch_size, sequence_length), اختياري) — قناع لتحديد نوع الانتباه الممنوح لكل رمز، سواء كان انتباهًا محليًا أو انتباهًا شاملًا. الرموز التي تخضع للانتباه الشامل تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها. هذا أمر مهم في الضبط الدقيق الخاص بالمهام لأنه يجعل النموذج أكثر مرونة في تمثيل المهمة. على سبيل المثال، في تصنيف النصوص، يجب منح الرمز انتباهًا شاملًا. وفي مهام الإجابة عن الأسئلة، يجب أن تخضع جميع رموز السؤال أيضًا للانتباه الشامل. يُرجى الرجوع إلى ورقة Longformer لمزيد من التفاصيل. القيم المختارة للقناع في [0, 1]:
    • 0 للانتباه المحلي (انتباه نافذة منزلقة)،
    • 1 للانتباه العام (الرموز التي تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها).
  • 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].

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

  • 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 عادي.

يعيد

LongformerQuestionAnsweringModelOutput أو tuple(torch.FloatTensor)

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

تتجاوز طريقة LongformerForQuestionAnswering الخاصة بالتقديم الأمامي الطريقة الخاصة __call__.

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

  • loss (torch.FloatTensor من الشكل (1,)، اختياري، يُعاد عند توفير labels) — إجمالي خسارة استخراج المقاطع هو مجموع دالة Cross-Entropy لموقعي البداية والنهاية.

  • start_logits (torch.FloatTensor من الشكل (batch_size, sequence_length)، اختياري) — درجات بداية المقاطع (قبل SoftMax).

  • end_logits (torch.FloatTensor من الشكل (batch_size, sequence_length)، اختياري) — درجات نهاية المقطع (قبل SoftMax).

  • hidden_states (tuple[torch.FloatTensor, ...]، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.FloatTensor (واحدة لمخرجات الطبقة المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد (batch_size, sequence_length, hidden_size).

    حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • attentions (tuple(torch.FloatTensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.FloatTensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, x + attention_window + 1)، حيث x هو عدد الرموز التي تحمل قناع الانتباه الشامل.

    أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window

    • 1values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
  • global_attentions (tuple(torch.FloatTensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.FloatTensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, x)، حيث x هو عدد الرموز التي لديها قناع انتباه شامل.

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

أمثلة:

>>> from transformers import AutoTokenizer, LongformerForQuestionAnswering
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-large-4096-finetuned-triviaqa")
>>> model = LongformerForQuestionAnswering.from_pretrained("allenai/longformer-large-4096-finetuned-triviaqa")

>>> question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"
>>> encoding = tokenizer(question, text, return_tensors="pt")
>>> input_ids = encoding["input_ids"]

>>> # default is local attention everywhere
>>> # the forward method will automatically set global attention on question tokens
>>> attention_mask = encoding["attention_mask"]

>>> outputs = model(input_ids, attention_mask=attention_mask)
>>> start_logits = outputs.start_logits
>>> end_logits = outputs.end_logits
>>> all_tokens = tokenizer.convert_ids_to_tokens(input_ids[0].tolist())

>>> answer_tokens = all_tokens[torch.argmax(start_logits) : torch.argmax(end_logits) + 1]
>>> answer = tokenizer.decode(
...     tokenizer.convert_tokens_to_ids(answer_tokens)
... )  # remove space prepending space token
Update on GitHub