Transformers documentation

mLUKE

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 في 15 أكتوبر 2021، وأُضيف إلى مكتبة Hugging Face Transformers في 7 ديسمبر 2021.

mLUKE

نظرة عامة

قُدم نموذج mLUKE في mLUKE: The Power of Entity Representations in Multilingual Pretrained Language Models من قِبل Ryokan Ri وIkuya Yamada وYoshimasa Tsuruoka. وهو امتداد متعدد اللغات لنموذج LUKE model تم تدريبه بناءً على XLM-RoBERTa.

يستند إلى XLM-RoBERTa ويضيف تمثيلات الكيانات، مما يساعد على تحسين الأداء في مهام لاحقة متنوعة تتضمن الاستدلال على الكيانات مثل التعرف على الكيانات المسمّاة، والإجابة الاستخراجية على الأسئلة، وتصنيف العلاقات، وإكمال المعرفة بأسلوب الفراغات.

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

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

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

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

يمكن إدخال أوزان mLUKE مباشرةً في نموذج LUKE، على النحو التالي:

from transformers import LukeModel


model = LukeModel.from_pretrained("studio-ousia/mluke-base", device_map="auto")

لاحظ أن mLUKE يحتوي على مُجزِّئ خاص به، MLukeTokenizer. يمكنك تهيئته على النحو التالي:

from transformers import MLukeTokenizer


tokenizer = MLukeTokenizer.from_pretrained("studio-ousia/mluke-base")

بما أن بنية mLUKE مكافئة لبنية LUKE، يمكن الرجوع إلى صفحة توثيق LUKE لجميع النصائح وأمثلة الأكواد والدفاتر.

MLukeTokenizer

فئة transformers.MLukeTokenizer

< >

( bos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'task = Nonemax_entity_length = 32max_mention_length = 30entity_1_token = '<ent>'entity_2_token = '<ent2>'entity_unk_token = '[UNK]'entity_pad_token = '[PAD]'entity_mask_token = '[MASK]'entity_mask2_token = '[MASK2]'vocab: str | dict | list | None = Noneentity_vocab: str | dict | list | None = None**kwargs )

المعاملات

  • vocab_file (str) — مسار ملف المفردات.
  • entity_vocab_file (str) — مسار ملف مفردات الكيانات.
  • 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>") — الرمز المستخدم لإخفاء القيم. هذا هو الرمز المستخدم عند تدريب هذا النموذج باستخدام نمذجة اللغة المقنّعة. وهو الرمز الذي سيحاول النموذج التنبؤ به.
  • task (str, اختياري) — المهمة التي تريد إعداد التسلسلات من أجلها. أحد القيم التالية: "entity_classification"، "entity_pair_classification"، أو "entity_span_classification". إذا حددت هذا الحجة، يتم إنشاء تسلسل الكيانات تلقائيًا بناءً على نطاق الكيان أو نطاقات الكيانات المحددة.
  • max_entity_length (int، اختياري، القيمة الافتراضية 32) — الحد الأقصى لطول entity_ids.
  • max_mention_length (int، اختياري، القيمة الافتراضية 30) — الحد الأقصى لعدد الرموز داخل نطاق الكيان.
  • entity_1_token (str، اختياري، القيمة الافتراضية <ent>) — الرمز الخاص المستخدم لتمثيل نطاق الكيان في تسلسل رموز الكلمات. يُستخدم هذا الرمز فقط عندما تكون قيمة task هي "entity_classification" أو "entity_pair_classification".
  • entity_2_token (str، اختياري، القيمة الافتراضية <ent2>) — الرمز الخاص المستخدم لتمثيل نطاق الكيان في تسلسل رموز الكلمات. يُستخدم هذا الرمز فقط عندما تكون قيمة task هي "entity_pair_classification".
  • additional_special_tokens (list[str]، اختياري، القيمة الافتراضية ["<s>NOTUSED", "</s>NOTUSED"]) — رموز خاصة إضافية يستخدمها مُجزّئ النص.
  • sp_model_kwargs (dict, اختياري) — سيتم تمريره إلى SentencePieceProcessor.__init__() طريقة. يمكن استخدام الغلاف البرمجي بلغة بايثون لـ SentencePiece لأغراض أخرى، بما في ذلك ضبط:
    • enable_sampling: تفعيل تنعيم الوحدات الفرعية.

    • nbest_size: معلمات العينة أحادية الكلمة. غير صالحة لـ BPE-Dropout.

      • nbest_size = {0,1}: لا يتم إجراء أي أخذ عينات.
      • nbest_size > 1: يُجري أخذ عينات من نتائج nbest_size.
      • nbest_size < 0: يُفترض أن nbest_size لا نهائية، ويتم أخذ العينات من جميع الفرضيات (الشبكة) باستخدام خوارزمية التصفية الأمامية والعينة الخلفية.
    • alpha: معامل التنعيم لعينة الأحادية، واحتمال إسقاط عمليات الدمج في BPE-dropout.

  • sp_model (SentencePieceProcessor) — معالج SentencePiece المستخدم لكل عملية تحويل (النص، الرموز والمعرّفات).

مُعدَّل من XLMRobertaTokenizer و LukeTokenizer. مبني على SentencePiece.

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

__call__

< >

( text: str | list[str]text_pair: str | list[str] | None = Noneentity_spans: list[tuple[int, int]] | list[list[tuple[int, int]]] | None = Noneentity_spans_pair: list[tuple[int, int]] | list[list[tuple[int, int]]] | None = Noneentities: list[str] | list[list[str]] | None = Noneentities_pair: list[str] | list[list[str]] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy | None = Nonemax_length: int | None = Nonemax_entity_length: int | None = Nonestride: int = 0is_split_into_words: bool | None = Falsepad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_offsets_mapping: bool = Falsereturn_length: bool = Falseverbose: bool = True**kwargs ) → BatchEncoding

يعيد

BatchEncoding

BatchEncoding يحتوي على الحقول التالية:

  • input_ids — قائمة معرّفات الرموز التي تُغذّى بها النموذج.

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

  • token_type_ids — قائمة معرّفات أنواع الرموز التي تُمرَّر إلى النموذج (عندما يكون return_token_type_ids=True أو إذا كان “token_type_ids” ضمن self.model_input_names).

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

  • attention_mask — قائمة بالفهارس تحدد الرموز التي ينبغي للنموذج الانتباه إليها (عندما يكون return_attention_mask=True أو إذا كان “attention_mask” ضمن self.model_input_names).

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

  • entity_ids — قائمة بمعرّفات الكيانات التي ستُمرَّر إلى النموذج.

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

  • entity_position_ids — قائمة بمواقع الكيانات في تسلسل الإدخال الذي يُمرَّر إلى النموذج.

  • entity_token_type_ids — قائمة معرّفات أنواع الرموز الكيانية (entity token type ids) التي تُمرَّر إلى النموذج (عندما يكون return_token_type_ids=True أو إذا كان “entity_token_type_ids” ضمن self.model_input_names).

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

  • entity_attention_mask — قائمة بالفهارس تحدد الكيانات التي يجب على النموذج الانتباه إليها (عندما يكون return_attention_mask=True أو إذا كان “entity_attention_mask” ضمن self.model_input_names).

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

  • entity_start_positions — قائمة بمواقع بداية الكيانات في تسلسل الرموز اللفظية (عندما يكون task="entity_span_classification").

  • entity_end_positions — قائمة بمواقع نهاية الكيانات في تسلسل رموز الكلمات (عندما يكون task="entity_span_classification").

  • overflowing_tokens — قائمة تسلسلات الرموز المتجاوزة (عند تحديد max_length و return_overflowing_tokens=True).

  • num_truncated_tokens — عدد الرموز المقصوصة (عند تحديد max_length و return_overflowing_tokens=True).

  • special_tokens_mask — قائمة من الأصفار والواحدات، حيث تشير الواحدة إلى الرموز الخاصة المضافة وتصفّر إلى رموز التسلسل العادية (عندما يكون add_special_tokens=True وreturn_special_tokens_mask=True).

  • length — طول المدخلات (عندما يكون return_length=True)

add_special_tokens (bool، اختياري، القيمة الافتراضية True): ما إذا كان سيتم إضافة الرموز الخاصة عند ترميز التسلسلات أم لا. سيستخدم هذا الدالة الأساسية PretrainedTokenizerBase.build_inputs_with_special_tokens، التي تحدد الرموز التي تُضاف تلقائيًا إلى معرّفات الإدخال. يكون هذا مفيدًا إذا كنت ترغب في إضافة رموز bos أو eos تلقائيًا. padding (bool أو str أو PaddingStrategy، اختياري، القيمة الافتراضية False): يفعّل التحكم في الحشو. يقبل القيم التالية:

  • True أو 'longest': يتم ملء التسلسلات حتى أطول تسلسل في الدفعة (أو لا يتم أي ملء إذا تم تقديم تسلسل واحد فقط).

  • 'max_length': يتم ملء النص حتى الطول الأقصى المحدد عبر الحجة max_length أو حتى الطول الأقصى المقبول لإدخال النموذج إذا لم تُقدَّم تلك الحجة.

  • False أو 'do_not_pad' (الافتراضي): لا يتم إضافة حشو (أي، يمكن إخراج دفعة تحتوي على تسلسلات بطول مختلف). truncation (bool، str أو TruncationStrategy، اختياري، الافتراضي False): يفعّل التحكم في القص. يقبل القيم التالية:

  • True أو 'longest_first': يُقصّ النص إلى الحد الأقصى للطول المحدد عبر الحجة max_length أو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. يتم هذا القص رمزًا تلو الآخر، حيث يُزال رمز من أطول تسلسل في الزوج إذا كان قد قُدِّم زوج من التسلسلات (أو دفعة من الأزواج).

  • 'only_first': يُقصّ النص إلى الحد الأقصى للطول المحدد عبر الحجة max_length أو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. لن يُقصّ هذا الخيار سوى التسلسل الأول من الزوج إذا قُدِّم زوج من التسلسلات (أو دفعة من الأزواج).

  • 'only_second': يُقصّ النص إلى الحد الأقصى للطول المحدد عبر الحجة max_length أو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. لن يتم قصّ النص الثاني من الزوج إلا إذا قُدِّم زوج من النصوص (أو دفعة من الأزواج).

  • False أو 'do_not_truncate' (الافتراضي): لا يوجد اقتطاع (أي، يمكن إخراج دفعة بطول تسلسل أكبر من الحد الأقصى المقبول لحجم الإدخال في النموذج). max_length (int، اختياري): يتحكم في الحد الأقصى للطول المستخدم بواسطة أحد معاملات الاقتطاع/الحشو.

If left unset or set to None, this will use the predefined model maximum length if a maximum length is required by one of the truncation/padding parameters. If the model has no specific maximum input length (like XLNet) truncation/padding to a maximum length will be deactivated. stride (int, optional, defaults to 0): If set to a number along with max_length, the overflowing tokens returned when return_overflowing_tokens=True will contain some tokens from the end of the truncated sequence returned to provide some overlap between truncated and overflowing sequences. The value of this argument defines the number of overlapping tokens. is_split_into_words (bool, optional, defaults to False): Whether or not the input is already pre-tokenized (e.g., split into words). If set to True, the tokenizer assumes the input is already split into words (for instance, by splitting it on whitespace) which it will tokenize. This is useful for NER or token classification. pad_to_multiple_of (int, optional): If set will pad the sequence to a multiple of the provided value. Requires padding to be activated. This is especially useful to enable the use of Tensor Cores on NVIDIA hardware with compute capability >= 7.5 (Volta). padding_side (str, optional): The side on which the model should have padding applied. Should be selected between [‘right’, ‘left’]. Default value is picked from the class attribute of the same name. return_tensors (str or TensorType, optional): If set, will return tensors instead of list of python integers. Acceptable values are:

  • 'pt': إرجاع كائنات torch.Tensor من PyTorch.
  • 'np': إرجاع كائنات np.ndarray من نوع Numpy.

return_token_type_ids (bool, اختياري): ما إذا كان يجب إرجاع معرّفات أنواع الرموز. إذا تُركت القيمة الافتراضية، فسيتم إرجاع معرّفات أنواع الرموز وفقاً للقيمة الافتراضية الخاصة بمجزّئ الرموز المحدد، كما هو معرّف بواسطة خاصية return_outputs.

ما هي معرّفات أنواع الرموز؟ return_attention_mask (bool، اختياري): ما إذا كان يجب إرجاع قناع الانتباه. إذا تُركت القيمة الافتراضية، فسيتم إرجاع قناع الانتباه وفقًا للقيمة الافتراضية الخاصة بمجزّئ الرموز المعني، كما تحددها خاصية return_outputs.

ما هي أقنعة الانتباه؟ return_overflowing_tokens (bool، اختياري، القيمة الافتراضية False): ما إذا كان سيتم إرجاع تسلسلات الرموز الزائدة أم لا. إذا تم تقديم زوج من تسلسلات معرّفات الإدخال (أو دفعة من الأزواج) مع truncation_strategy = longest_first أو True، فسيتم رفع خطأ بدلاً من إرجاع الرموز الزائدة. return_special_tokens_mask (bool، اختياري، القيمة الافتراضية False): ما إذا كان سيتم إرجاع معلومات قناع الرموز الخاصة أم لا. return_offsets_mapping (bool، اختياري، القيمة الافتراضية False): ما إذا كان سيتم إرجاع (char_start, char_end) لكل رمز.

يتوفر هذا فقط على مُرمّزيات سريعة ترث من PreTrainedTokenizerFast، وإذا كنت تستخدم مُرمّز Python، فسيُطلق هذا الدالة NotImplementedError. return_length (bool، اختياري، الافتراضي False): ما إذا كان يجب إرجاع أطوال المدخلات المُرمّزة أم لا. verbose (bool، اختياري، الافتراضي True): ما إذا كان يجب طباعة مزيد من المعلومات والتحذيرات أم لا. **kwargs: تُمرَّر إلى الدالة self.tokenize()

save_vocabulary

< >

( save_directory: strfilename_prefix: str | None = None )

احفظ ملف قاموس الكيانات فقط. يتم حفظ tokenizer.json بواسطة TokenizersBackend الأب.

Update on GitHub