Transformers documentation

LXMERT

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 في 2019-08-20 وسُهم به في Hugging Face Transformers في 2020-11-16.

LXMERT

نظرة عامة

قُدِّم نموذج LXMERT في LXMERT: Learning Cross-Modality Encoder Representations from Transformers بواسطة Hao Tan & Mohit Bansal. وهو سلسلة من مشفّرات transformer ثنائية الاتجاه (واحد لكل من نمط الرؤية ونمط اللغة، ثم واحد لدمج النمطين معًا) تم تدريبه مسبقًا باستخدام مجموعة من أهداف: نمذجة اللغة المقنّعة، ومحاذاة النص بين الرؤية واللغة، والانحدار لميزات ROI، ونمذجة السمات البصرية المقنّعة، ونمذجة الكائنات البصرية المقنّعة، وأهداف الإجابة على الأسئلة البصرية. ويتضمن التدريب المسبق عدة مجموعات بيانات متعددة الوسائط: MSCOCO، وVisual-Genome + Visual-Genome Question Answering، وVQA 2.0، وGQA.

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

يتطلب الاستدلال البصري-اللغوي فهماً للمفاهيم البصرية والدلالات اللغوية، والأهم من ذلك، المحاذاة والعلاقات بين هذين النمطين. لذلك نقترح إطار عمل LXMERT (Learning Cross-Modality Encoder Representations from Transformers) لتعلم هذه الروابط البصرية-اللغوية. في LXMERT، نبني نموذج Transformer كبير الحجم يتكون من ثلاثة مشفّرات: مشفّر لعلاقات الكائنات، ومشفّر لغوي، ومشفّر بيني. ثم، لمنح نموذجنا القدرة على ربط الدلالات البصرية واللغوية، ندرّب النموذج مسبقاً باستخدام كميات كبيرة من أزواج الصور والجمل، عبر خمس مهام تمثيلية متنوعة للدراسة المسبقة: نمذجة اللغة المقنّعة، والتنبؤ بالكائنات المقنّعة (انحدار الميزات وتصنيف التسميات)، والمطابقة بينية، والإجابة على أسئلة الصور. تساعد هذه المهام في تعلم العلاقات داخلية النمط وبينية النمط على حد سواء. بعد الضبط الدقيق انطلاقاً من معاملاتنا المدربة مسبقاً، يحقق نموذجنا نتائج متقدمة على مستوى الفن في مجموعتي بيانات الإجابة على أسئلة الصور (أي VQA وGQA). كما نوضح قابلية تعميم نموذجنا البيني المدرب مسبقاً من خلال تكييفه لمهمة استدلال بصري صعبة، وهي NLVR، ونحسّن أفضل نتيجة سابقة بنسبة 22% مطلقة (من 54% إلى 76%). أخيراً، نعرض دراسات استئصالية مفصّلة لإثبات أن كلا من مكوّنات نموذجنا الجديدة واستراتيجيات التدريب المسبق تساهم بشكل كبير في نتائجنا القوية؛ كما نقدم عدة تصورات انتباهية للمشفرات المختلفة

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

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

  • لا يُشترط استخدام صناديق الحدود في ميزات التضمين البصري، بل تعمل أي ميزات بصرية مكانية.
  • تُمرَّر كلٌّ من حالات اللغة المخفية وحالات الرؤية المخفية التي تُخرجها LXMERT عبر طبقة التفاعل بين الوسائط، لذا فهي تحتوي على معلومات من الوسطين معاً. للوصول إلى وسط يركّز على نفسه فقط، اختر حالات الرؤية/اللغة المخفية من المدخل الأول في المجموعة المرتبة.
  • لا تُرجع انتباه مُشفِّر التفاعل بين الوسائط ثنائي الاتجاه قيم الانتباه إلا عندما تُستخدم وسيلة اللغة كمدخل وتُستخدم وسيلة الرؤية كمتجه السياق. وعلاوة على ذلك، على الرغم من أن مُشفِّر التفاعل بين الوسائط يحتوي على انتباه ذاتي لكل وسيلة على حدة بالإضافة إلى الانتباه المتقاطع، فإن الانتباه المتقاطع فقط هو الذي يُرجع، بينما تُهمل مخرجات الانتباه الذاتي لكلا الوسيلتين.

الموارد

LxmertConfig

فئة transformers.LxmertConfig

< >

( 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 = 30522hidden_size: int = 768num_attention_heads: int = 12num_qa_labels: int = 9500num_object_labels: int = 1600num_attr_labels: int = 400intermediate_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.02l_layers: int = 9x_layers: int = 5r_layers: int = 5visual_feat_dim: int = 2048visual_pos_dim: int = 4visual_loss_normalizer: float = 6.67task_matched: bool = Truetask_mask_lm: bool = Truetask_obj_predict: bool = Truetask_qa: bool = Truevisual_obj_loss: bool = Truevisual_attr_loss: bool = Truevisual_feat_loss: bool = Truepad_token_id: int | None = Nonebos_token_id: int | None = Noneeos_token_id: int | list[int] | None = Nonetie_word_embeddings: bool = True )

المعاملات

  • vocab_size (int، اختياري، القيمة الافتراضية 30522) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة input_ids.
  • hidden_size (int، اختياري، القيمة الافتراضية 768) — أبعاد التمثيلات المخفية.
  • num_attention_heads (int، اختياري، القيمة الافتراضية 12) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • num_qa_labels (int, اختياري، القيمة الافتراضية 9500) — يمثل هذا العدد الإجمالي لملabels مختلفة للإجابة على الأسئلة (QA). عند استخدام أكثر من مجموعة بيانات تتضمن أسئلة وأجوبة، يجب على المستخدم مراعاة العدد الإجمالي للملبيات التي تحتوي عليها جميع مجموعات البيانات مجتمعة.
  • num_object_labels (int, اختياري، القيمة الافتراضية 1600) — يمثل هذا العدد الإجمالي للأهداف الفريدة دلاليًا التي سيتمكن lxmert من تصنيف ميزة الهدف المجمعة على أنها تنتمي إلى أحدها.
  • num_attr_labels (int، اختياري، القيمة الافتراضية 400) — يمثل هذا العدد الإجمالي للسمات الفريدة دلاليًا التي يمكن لـ lxmert تصنيف ميزة الكائن المجمَّعة على أساس امتلاكها لها.
  • 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 المستخدم في تهيئة جميع مصفوفات الأوزان.
  • l_layers (int، اختياري، القيمة الافتراضية 9) — عدد الطبقات المخفية في مُشفِّر اللغة الخاص بـ Transformer.
  • x_layers (int، اختياري، القيمة الافتراضية 5) — عدد الطبقات المخفية في مُشفِّر التحويلات بين الوسائط.
  • r_layers (int، اختياري، القيمة الافتراضية 5) — عدد الطبقات المخفية في مُشفِّر الرؤية الخاص بـ Transformer.
  • visual_feat_dim (int، اختياري، القيمة الافتراضية 2048) — يمثل هذا البُعد الأخير لميزات الكائنات المجمّعة المستخدمة كمدخلات للنموذج، مما يعكس حجم ميزات كل كائن بحد ذاته.
  • visual_pos_dim (int, اختياري، القيمة الافتراضية 4) — يمثل هذا عدد الميزات المكانية التي تُدمج مع الميزات البصرية. يتم تعيين القيمة الافتراضية إلى 4 لأن هذا يمثل في الغالب موقع صندوق الإحاطة (bounding box)، أي: (x, y, width, height)
  • visual_loss_normalizer (float، اختياري، القيمة الافتراضية 6.67) — يمثل هذا عامل التوسيع الذي يُضرب به كل خسارة بصرية إذا قررت أثناء التدريب المسبق التدريب على أهداف خسارة متعددة تعتمد على الرؤية.
  • task_matched (bool، اختياري، القيمة الافتراضية True) — يُستخدم هذا النشاط لمطابقة الجملة مع الصورة. إذا كانت الجملة تصف الصورة بشكل صحيح، فسيكون التسمية 1. وإذا لم تكن الجملة تصف الصورة بشكل صحيح، فسيكون التسمية 0.
  • task_mask_lm (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إضافة نمذجة اللغة المقنّعة (كما تُستخدم في نماذج ما قبل التدريب مثل BERT) إلى هدف الدالة الخاسرة.
  • task_obj_predict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إضافة التنبؤ بالكائنات والتنبؤ بالسمات والانحدار المميز إلى هدف الدالة الخاسرة أم لا.
  • task_qa (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إضافة خسارة الإجابة عن الأسئلة إلى الدالة الهدف أم لا
  • visual_obj_loss (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم حساب هدف خسارة التنبؤ بالكائنات أم لا
  • visual_attr_loss (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم حساب هدف خسارة التنبؤ بالسمات أم لا
  • visual_feat_loss (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم حساب هدف خسارة الانحدار المميز أم لا
  • pad_token_id (int, اختياري) — معرّف الرمز المستخدم للتعبئة في المفردات.
  • bos_token_id (int, اختياري) — معرّف الرمز المستخدم لبدء البث في المفردات.
  • eos_token_id (Union[int, list[int]], اختياري) — معرّف الرمز المستخدم لنهاية التدفق في المفردات.
  • tie_word_embeddings (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب ربط ترميزات الأوزان (weight embeddings) وفقاً لخريطة tied_weights_keys الخاصة بالنموذج.

هذه فئة الإعدادات المخزنة لإعدادات نموذج LxmertModel. تُستخدم لتوليد نموذج Lxmert بناءً على المعلمات المحددة، مع تحديد بنية النموذج. إن إنشاء فئة الإعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ unc-nlp/lxmert-base-uncased

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

LxmertTokenizer

فئة transformers.BertTokenizer

< >

( vocab: str | dict[str, int] | None = Nonedo_lower_case: bool = Trueunk_token: str = '[UNK]'sep_token: str = '[SEP]'pad_token: str = '[PAD]'cls_token: str = '[CLS]'mask_token: str = '[MASK]'tokenize_chinese_chars: bool = Truestrip_accents: bool | None = None**kwargs )

المعاملات

  • vocab (str أو dict[str, int]، اختياري) — قاموس مفردات مخصص. إذا لم يُقدَّم، يتم تحميل المفردات من vocab_file.
  • do_lower_case (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب تحويل المدخلات إلى أحرف صغيرة عند تقسيم النص إلى رموز.
  • unk_token (str، اختياري، القيمة الافتراضية "[UNK]") — رمز المجهول. أي رمز غير موجود في المفردات لا يمكن تحويله إلى معرّف، فيتم تعيينه ليكون هذا الرمز بدلاً من ذلك.
  • sep_token (str، اختياري، القيمة الافتراضية "[SEP]") — رمز الفاصل، الذي يُستخدم عند بناء تسلسل من عدة تسلسلات، على سبيل المثال تسلسلان لتصنيف التسلسل، أو نص وسؤال للإجابة على الأسئلة. كما يُستخدم كآخر رمز في تسلسل مبني باستخدام الرموز الخاصة.
  • pad_token (str، اختياري، القيمة الافتراضية "[PAD]") — الرمز المستخدم للتعبئة، على سبيل المثال عند تجميع تسلسلات ذات أطوال مختلفة.
  • cls_token (str، اختياري، القيمة الافتراضية "[CLS]") — رمز المُصنِّف الذي يُستخدم عند إجراء تصنيف التسلسل (تصنيف التسلسل بأكمله بدلاً من التصنيف لكل رمز على حدة). وهو الرمز الأول في التسلسل عند بناؤه باستخدام الرموز الخاصة.
  • mask_token (str، اختياري، القيمة الافتراضية "[MASK]") — الرمز المستخدم لإخفاء القيم. هذا هو الرمز المستخدم عند تدريب هذا النموذج باستخدام نمذجة اللغة المقنّعة. وهو الرمز الذي سيحاول النموذج التنبؤ به.
  • tokenize_chinese_chars (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم تقسيم الأحرف الصينية إلى رموز أم لا.
  • strip_accents (bool، اختياري) — ما إذا كان يجب إزالة جميع الحركات أم لا. إذا لم يُحدد هذا الخيار، فسيتم تحديده بناءً على قيمة lowercase (كما في BERT الأصلي).

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

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

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

فئة transformers.models.lxmert.modeling_lxmert.LxmertModelOutput

< >

( language_output: typing.Optional[torch.Tensor] = Nonevision_output: typing.Optional[torch.Tensor] = Nonepooled_output: typing.Optional[torch.Tensor] = Nonelanguage_hidden_states: tuple[torch.Tensor] | None = Nonevision_hidden_states: tuple[torch.Tensor] | None = Nonelanguage_attentions: tuple[torch.Tensor] | None = Nonevision_attentions: tuple[torch.Tensor] | None = Nonecross_encoder_attentions: tuple[torch.Tensor] | None = None )

المعاملات

  • language_output (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من مشفّر اللغة.
  • vision_output (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من المُشفِّر البصري.
  • pooled_output (torch.Tensor من الشكل (batch_size, hidden_size)) — حالة المخفية للطبقة الأخيرة للرمز الأول من التسلسل (رمز التصنيف، CLS، الرمز) بعد معالجتها بواسطة طبقة خطية ودالة تفعيل Tanh. الطبقة
  • language_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لميزات الإدخال + واحدة لإخراج كل طبقة بين الوسائط) من الشكل (batch_size, sequence_length, hidden_size).
  • vision_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لميزات الإدخال + واحدة لإخراج كل طبقة بين الوسائط) من الشكل (batch_size, sequence_length, hidden_size).
  • language_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد تطبيق softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.
  • vision_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.
  • cross_encoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد تطبيق softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.

المخرجات الخاصة بـ Lxmert التي تتضمن الحالات المخفية الأخيرة، والمخرجات المجمعة، واحتمالات الانتباه لكل من مشفّرات اللغة، والبصرية، والتفاعل بين الوسائط. (ملاحظة: يُشار إلى المشفّر البصري في Lxmert باسم مشفّر "العلاقات")

فئة transformers.models.lxmert.modeling_lxmert.LxmertForPreTrainingOutput

< >

( loss: typing.Optional[torch.Tensor] = Noneprediction_logits: typing.Optional[torch.Tensor] = Nonecross_relationship_score: typing.Optional[torch.Tensor] = Nonequestion_answering_score: typing.Optional[torch.Tensor] = Nonelanguage_hidden_states: tuple[torch.Tensor] | None = Nonevision_hidden_states: tuple[torch.Tensor] | None = Nonelanguage_attentions: tuple[torch.Tensor] | None = Nonevision_attentions: tuple[torch.Tensor] | None = Nonecross_encoder_attentions: tuple[torch.Tensor] | None = None )

المعاملات

  • loss (*optional*, returned when labels is provided, torch.Tensor of shape (1,)) — Total loss as the sum of the masked language modeling loss and the next sequence prediction (classification) loss.
  • prediction_logits (torch.Tensor من الشكل (batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).
  • cross_relationship_score (torch.Tensor من الشكل (batch_size, 2)) — درجات التنبؤ لرأس هدف المطابقة النصية (التصنيف) (درجات الاستمرار الصحيح/الخاطئ قبل SoftMax).
  • question_answering_score (torch.Tensor من الشكل (batch_size, n_qa_answers)) — درجات التنبؤ لهدف الإجابة على الأسئلة (التصنيف).
  • language_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لميزات الإدخال + واحدة لإخراج كل طبقة بين الوسائط) من الشكل (batch_size, sequence_length, hidden_size).
  • vision_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لميزات الإدخال + واحدة لإخراج كل طبقة بين الوسائط) من الشكل (batch_size, sequence_length, hidden_size).
  • language_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد تطبيق softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.
  • vision_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.
  • cross_encoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد تطبيق softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.

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

فئة transformers.models.lxmert.modeling_lxmert.LxmertForQuestionAnsweringOutput

< >

( loss: typing.Optional[torch.Tensor] = Nonequestion_answering_score: typing.Optional[torch.Tensor] = Nonelanguage_hidden_states: tuple[torch.Tensor] | None = Nonevision_hidden_states: tuple[torch.Tensor] | None = Nonelanguage_attentions: tuple[torch.Tensor] | None = Nonevision_attentions: tuple[torch.Tensor] | None = Nonecross_encoder_attentions: tuple[torch.Tensor] | None = None )

المعاملات

  • loss (*optional*, returned when labels is provided, torch.Tensor of shape (1,)) — Total loss as the sum of the masked language modeling loss and the next sequence prediction (classification) loss.k.
  • question_answering_score (torch.Tensor من الشكل (batch_size, n_qa_answers)، اختياري) — درجات التنبؤ لهدف الإجابة على الأسئلة (التصنيف).
  • language_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لميزات الإدخال + واحدة لإخراج كل طبقة بين الوسائط) من الشكل (batch_size, sequence_length, hidden_size).
  • vision_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لميزات الإدخال + واحدة لإخراج كل طبقة بين الوسائط) من الشكل (batch_size, sequence_length, hidden_size).
  • language_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد تطبيق softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.
  • vision_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.
  • cross_encoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد تطبيق softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.

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

LxmertModel

فئة transformers.LxmertModel

< >

( config: LxmertConfig )

المعاملات

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

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

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonevisual_feats: typing.Optional[torch.Tensor] = Nonevisual_pos: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonevisual_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → LxmertModelOutput or tuple(torch.Tensor)

المعاملات

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

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

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

  • visual_feats (torch.Tensor بشكل (batch_size, num_visual_features, visual_feat_dim)) — يمثل هذا المدخل ميزات بصرية. وهي ميزات كائنات مجمّعة عبر مناطق الاهتمام (ROI) من صناديق الحدود باستخدام نموذج faster-RCNN)

    لا توفر مكتبة transformers هذه الميزات حاليًا.

  • visual_pos (torch.Tensor بشكل (batch_size, num_visual_features, visual_pos_dim)) — تمثل هذه المدخلات ميزات مكانية تتوافق مع ميزات بصرية نسبية (عبر الفهرس). يتوقع نموذج LXMERT المُدرَّب مسبقًا أن تكون هذه الميزات المكانية صناديق حدود مُطبَّعة على مقياس من 0 إلى

    لا توفر مكتبة transformers هذه الميزات حاليًا.

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

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

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

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

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

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

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

يعيد

LxmertModelOutput أو tuple(torch.Tensor)

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

تُعيد طريقة LxmertModel الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.

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

  • language_output (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من مشفّر اللغة.
  • vision_output (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)) — تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من المُشفِّر البصري.
  • pooled_output (torch.Tensor من الشكل (batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف، CLS، رمز) بعد معالجتها بواسطة طبقة خطية ودالة تفعيل Tanh. الطبقة
  • language_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لميزات الإدخال + واحدة لكل طبقة بين الوسائط) من الشكل (batch_size, sequence_length, hidden_size).
  • vision_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لميزات الإدخال + واحدة لإخراج كل طبقة بين الوسائط) من الشكل (batch_size, sequence_length, hidden_size).
  • language_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد تطبيق softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.
  • vision_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد تطبيق softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.
  • cross_encoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.

LxmertForPreTraining

class transformers.LxmertForPreTraining

< >

( config: LxmertConfig )

المعاملات

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

نموذج Lxmert مع رأس تدريب مسبق محدد في الأعلى.

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonevisual_feats: typing.Optional[torch.Tensor] = Nonevisual_pos: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonevisual_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneobj_labels: dict[str, tuple[torch.Tensor, torch.Tensor]] | None = Nonematched_label: typing.Optional[torch.LongTensor] = Noneans: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → LxmertForPreTrainingOutput or tuple(torch.Tensor)

المعاملات

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

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

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

  • visual_feats (torch.Tensor بشكل (batch_size, num_visual_features, visual_feat_dim)) — يمثل هذا المدخل ميزات بصرية. وهي ميزات كائنات مجمّعة عبر مناطق الاهتمام (ROI) من صناديق الحدود باستخدام نموذج faster-RCNN)

    لا توفر مكتبة transformers هذه الميزات حاليًا.

  • visual_pos (torch.Tensor بشكل (batch_size, num_visual_features, visual_pos_dim)) — تمثل هذه المدخلات ميزات مكانية تتوافق مع ميزات بصرية نسبية (عبر الفهرس). يتوقع نموذج LXMERT المُدرَّب مسبقًا أن تكون هذه الميزات المكانية صناديق حدود مُطبَّعة على مقياس من 0 إلى

    لا توفر مكتبة transformers هذه الميزات حاليًا.

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

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

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

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

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

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

  • 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]
  • obj_labels (dict[Str -- tuple[torch.Tensor, torch.Tensor]]، اختياري): كل مفتاح يُسمّى باسم أحد الخسائر البصرية، وكل عنصر من عناصر المجموعة المرتبة (tuple) يكون على الشكل (batch_size, num_features) و(batch_size, num_features, visual_feature_dim) لكلٍّ من معرّف التسمية و درجة التسمية على التوالي
  • matched_label (torch.LongTensor بشكل (batch_size,), اختياري) — تسميات لحساب خسارة التصنيف التي تحدد ما إذا كان النص المدخل يطابق الصورة أم لا. يجب أن يكون المدخل زوجًا من التسلسلات (انظر input_ids في توثيق الوصف) يجب أن تكون الفهارس ضمن النطاق [0, 1]:
    • 0 يشير إلى أن الجملة لا تتطابق مع الصورة،
    • 1 يشير إلى أن الجملة تتطابق مع الصورة.
  • ans (Torch.Tensor من الشكل (batch_size)، اختياري) — تمثيل one hot للإجابة الصحيحة اختياري
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

LxmertForPreTrainingOutput أو tuple(torch.Tensor)

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

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

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

  • loss (*optional*, يُعاد عند تقديم labels، torch.Tensor من الشكل (1,)) — إجمالي الخسارة كمجموع خسارة نمذجة اللغة المقنّعة وخسارة (تصنيف) التنبؤ بالتسلسل التالي.
  • prediction_logits (torch.Tensor من الشكل (batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).
  • cross_relationship_score (torch.Tensor من الشكل (batch_size, 2)) — درجات التنبؤ لرأس الهدف المطابق النصي (التصنيف) (درجات الاستمرار صحيح/خطأ قبل SoftMax).
  • question_answering_score (torch.Tensor من الشكل (batch_size, n_qa_answers)) — درجات التنبؤ لهدف الإجابة على الأسئلة (التصنيف).
  • language_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لميزات الإدخال + واحدة لكل طبقة بين الوسائط) من الشكل (batch_size, sequence_length, hidden_size).
  • vision_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لميزات الإدخال + واحدة لإخراج كل طبقة بين الوسائط) من الشكل (batch_size, sequence_length, hidden_size).
  • language_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد تطبيق softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.
  • vision_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد تطبيق softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.
  • cross_encoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.

مثال:

LxmertForQuestionAnswering

فئة transformers.LxmertForQuestionAnswering

< >

( config: LxmertConfig )

المعاملات

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

نموذج Lxmert مع رأس للإجابة البصرية في الأعلى لمهام الإجابة عن الأسئلة

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonevisual_feats: typing.Optional[torch.Tensor] = Nonevisual_pos: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonevisual_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.LongTensor] = 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 ) → LxmertForQuestionAnsweringOutput or tuple(torch.Tensor)

المعاملات

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

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

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

  • visual_feats (torch.Tensor بشكل (batch_size, num_visual_features, visual_feat_dim)) — يمثل هذا المدخل ميزات بصرية. وهي ميزات كائنات مجمّعة عبر مناطق الاهتمام (ROI) من صناديق الحدود باستخدام نموذج faster-RCNN)

    لا توفر مكتبة transformers هذه الميزات حاليًا.

  • visual_pos (torch.Tensor بشكل (batch_size, num_visual_features, visual_pos_dim)) — تمثل هذه المدخلات ميزات مكانية تتوافق مع ميزات بصرية نسبية (عبر الفهرس). يتوقع نموذج LXMERT المُدرَّب مسبقًا أن تكون هذه الميزات المكانية صناديق حدود مُطبَّعة على مقياس من 0 إلى

    لا توفر مكتبة transformers هذه الميزات حاليًا.

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

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

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

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

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

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

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

يعيد

LxmertForQuestionAnsweringOutput أو tuple(torch.Tensor)

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

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

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

  • loss (*optional*, returned when labels is provided, torch.Tensor of shape (1,)) — Total loss as the sum of the masked language modeling loss and the next sequence prediction (classification) loss.k.
  • question_answering_score (torch.Tensor من الشكل (batch_size, n_qa_answers)، اختياري) — درجات التنبؤ لهدف الإجابة على الأسئلة (التصنيف).
  • language_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لميزات الإدخال + واحدة لكل طبقة بين الوسائط) من الشكل (batch_size, sequence_length, hidden_size).
  • vision_hidden_states (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_hidden_states=True أو عند تعيين config.output_hidden_states=True) — مجموعة من torch.Tensor (واحدة لميزات الإدخال + واحدة لإخراج كل طبقة بين الوسائط) من الشكل (batch_size, sequence_length, hidden_size).
  • language_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد تطبيق softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.
  • vision_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد تطبيق softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.
  • cross_encoder_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, LxmertForQuestionAnswering
>>> import torch

>>> tokenizer = AutoTokenizer.from_pretrained("unc-nlp/lxmert-base-uncased")
>>> model = LxmertForQuestionAnswering.from_pretrained("unc-nlp/lxmert-base-uncased")

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

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

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

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

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

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