Transformers documentation
LayoutXLM
نُشر هذا النموذج في أوراق HF في 18 أبريل 2021، وأُضيف إلى مكتبة Hugging Face Transformers في 3 نوفمبر 2021.
LayoutXLM
نظرة عامة
قُدِّم نموذج LayoutXLM في LayoutXLM: Multimodal Pre-training for Multilingual Visually-rich Document Understanding بواسطة Yiheng Xu وTengchao Lv وLei Cui وGuoxin Wang وYijuan Lu وDinei Florencio وCha Zhang وFuru Wei. وهو امتداد متعدد اللغات لنموذج LayoutLMv2 تم تدريبه على 53 لغة.
المستخلص من الورقة البحثية هو كالتالي:
حقّق التدريب المسبق متعدد الوسائط باستخدام النص والتخطيط والصورة أداءً متقدماً (SOTA) في مهام فهم المستندات الغنية بصرياً مؤخراً، مما يُظهر الإمكانات الكبيرة للتعلم المشترك عبر الوسائط المختلفة. في هذه الورقة، نقدم LayoutXLM، وهو نموذج مُدرَّب مسبقاً متعدد الوسائط لفهم المستندات متعددة اللغات، ويهدف إلى تجاوز الحواجز اللغوية في فهم المستندات الغنية بصرياً. لتقييم LayoutXLM بدقة، نقدم أيضاً مجموعة بيانات مرجعية متعددة اللغات لفهم النماذج (النماذج الورقية) تُسمى XFUN، والتي تتضمن عينات لفهم النماذج في 7 لغات (الصينية، واليابانية، والإسبانية، والفرنسية، والإيطالية، والألمانية، والبرتغالية)، وقد تم تمييز أزواج المفاتيح والقيم يدوياً لكل لغة. تُظهر نتائج التجارب أن نموذج LayoutXLM تفوّق بشكل كبير على النماذج المُدرَّبة مسبقاً متعددة اللغات المتقدمة (SOTA) الموجودة على مجموعة بيانات XFUN.
تمت مساهمة هذا النموذج من قِبل nielsr. يمكن العثور على الكود الأصلي هنا.
نصائح وأمثلة للاستخدام
يمكن إدخال أوزان LayoutXLM مباشرةً في نموذج LayoutLMv2، على النحو التالي:
from transformers import LayoutLMv2Model
model = LayoutLMv2Model.from_pretrained("microsoft/layoutxlm-base", device_map="auto")لاحظ أن LayoutXLM يحتوي على مُجزِّئ خاص به، مبني على LayoutXLMTokenizer/LayoutXLMTokenizerFast. يمكنك تهيئته على النحو التالي:
from transformers import LayoutXLMTokenizer
tokenizer = LayoutXLMTokenizer.from_pretrained("microsoft/layoutxlm-base")بشكل مشابه لـ LayoutLMv2، يمكنك استخدام LayoutXLMProcessor (الذي يطبق داخليًا LayoutLMv2ImageProcessor و LayoutXLMTokenizer/LayoutXLMTokenizerFast بالتتابع) لتحضير جميع البيانات للنموذج.
بما أن بنية LayoutXLM مكافئة لبنية LayoutLMv2، يمكن الرجوع إلى صفحة توثيق LayoutLMv2 لجميع النصائح وأمثلة الأكواد ودفاتر الملاحظات.
LayoutXLMConfig
فئة transformers.LayoutXLMConfig
< source >( 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_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-12pad_token_id: int | None = 0max_2d_position_embeddings: int = 1024max_rel_pos: int = 128rel_pos_bins: int = 32fast_qkv: bool = Truemax_rel_2d_pos: int = 256rel_2d_pos_bins: int = 64convert_sync_batchnorm: bool = Trueimage_feature_pool_shape: list[int] | tuple[int, ...] = (7, 7, 256)coordinate_size: int = 128shape_size: int = 128has_relative_attention_bias: bool = Truehas_spatial_attention_bias: bool = Truehas_visual_segment_embedding: bool = Falsedetectron2_config_args: dict | None = None )
المعاملات
- 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) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة. - pad_token_id (
int، اختياري، القيمة الافتراضية0) — معرّف الرمز المستخدم للتعبئة في المفردات. - max_2d_position_embeddings (
int، اختياري، القيمة الافتراضية 1024) — القيمة القصوى التي قد يُستخدم بها تضمين الموضع ثنائي الأبعاد. يُنصح عادةً بإعداد هذه القيمة إلى رقم كبير احتياطاً (مثلاً، 1024). - max_rel_pos (
int، اختياري، القيمة الافتراضية 128) — الحد الأقصى لعدد المواضع النسبية المستخدمة في آلية الانتباه الذاتي. - rel_pos_bins (
int، اختياري، القيمة الافتراضية 32) — عدد دلاء الموضع النسبي المستخدمة في آلية الانتباه الذاتي. - fast_qkv (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم استخدام مصفوفة واحدة للاستعلامات والمفاتيح والقيم في طبقات الانتباه الذاتي. - max_rel_2d_pos (
int، اختياري، القيمة الافتراضية 256) — الحد الأقصى لعدد المواضع النسبية ثنائية الأبعاد في آلية الانتباه الذاتي. - rel_2d_pos_bins (
int، اختياري، القيمة الافتراضية 64) — عدد دلاء الموضع النسبي ثنائي الأبعاد في آلية الانتباه الذاتي. - convert_sync_batchnorm (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تحويل طبقات تطبيع الدفعة إلى طبقات تطبيع دفعة متزامنة. - image_feature_pool_shape (
list[int]، اختياري، القيمة الافتراضية[7, 7, 256]) — شكل خريطة الميزات المُجمَّعة بمتوسط التجميع (average-pooled). - coordinate_size (
int، اختياري، القيمة الافتراضية 128) — أبعاد تضمينات الإحداثيات. - shape_size (
int، اختياري، القيمة الافتراضية 128) — بعد تضمينات العرض والارتفاع. - has_relative_attention_bias (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم استخدام انحياز انتباه نسبي في آلية الانتباه الذاتي. - has_spatial_attention_bias (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم استخدام انحياز انتباه مكاني في آلية الانتباه الذاتي أم لا. - has_visual_segment_embedding (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إضافة تضمينات المقاطع البصرية أم لا. - detectron2_config_args (
dict, اختياري) — قاموس يحتوي على معاملات التهيئة الخاصة بالهيكل البصري في Detectron2. راجع هذا الملف للحصول على تفاصيل حول القيم الافتراضية.
هذه فئة الإعدادات المخزنة لإعدادات نموذج LayoutxlmModel. تُستخدم لتوليد نموذج Layoutxlm وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ microsoft/layoutxlm-base
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
مثال:
>>> from transformers import LayoutXLMConfig, LayoutXLMModel
>>> # Initializing a LayoutXLM microsoft/layoutxlm-base style configuration
>>> configuration = LayoutXLMConfig()
>>> # Initializing a model (with random weights) from the microsoft/layoutxlm-base style configuration
>>> model = LayoutXLMModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configLayoutXLMTokenizer
فئة transformers.LayoutXLMTokenizer
< source >( vocab: str | list | None = Nonebos_token = '<s>'eos_token = '</s>'sep_token = '</s>'cls_token = '<s>'unk_token = '<unk>'pad_token = '<pad>'mask_token = '<mask>'cls_token_box = [0, 0, 0, 0]sep_token_box = [1000, 1000, 1000, 1000]pad_token_box = [0, 0, 0, 0]pad_token_label = -100only_label_first_subword = Trueadd_prefix_space = True**kwargs )
المعاملات
- vocab (
strأوdictأوlist، اختياري) — مفردات مُجزِّئ النص (tokenizer) كمسار، أو قاموس، أو قائمة من أزواج(token, score). - 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>") — الرمز المستخدم لإخفاء القيم. هذا هو الرمز المستخدم عند تدريب هذا النموذج باستخدام نمذجة اللغة المقنّعة. وهو الرمز الذي سيحاول النموذج التنبؤ به. - cls_token_box (
list[int]، اختياري، القيمة الافتراضية[0, 0, 0, 0]) — صندوق الإحداثيات (bounding box) المستخدم للرمز الخاص [CLS]. - sep_token_box (
list[int]، اختياري، القيمة الافتراضية[1000, 1000, 1000, 1000]) — المربع المحيط (bounding box) المستخدم للرمز الخاص [SEP]. - pad_token_box (
list[int]، اختياري، القيمة الافتراضية[0, 0, 0, 0]) — الصندوق المحيطي (bounding box) المستخدم للرمز الخاص [PAD]. - pad_token_label (
int، اختياري، القيمة الافتراضية -100) — التسمية المستخدمة لرموز الحشو. القيمة الافتراضية هي -100، وهي قيمةignore_indexفي دالة CrossEntropyLoss الخاصة بـ PyTorch. - only_label_first_subword (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم وضع التسمية على الكلمة الفرعية الأولى فقط، في حال تم توفير تسميات الكلمات. - add_prefix_space (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إضافة مسافة أولية إلى المدخلات أم لا. - additional_special_tokens (
list[str]، اختياري، القيمة الافتراضية["<s>NOTUSED", "</s>NOTUSED"]) — رموز خاصة إضافية يستخدمها مُجزّئ النص.
أنشئ مُرمِّز LayoutXLM «سريع» (مدعوم بمكتبة tokenizers من HuggingFace). مُعدَّل من RobertaTokenizer وXLNetTokenizer. مبني على BPE.
يرث هذا المُجزِّئ من TokenizersBackend الذي يحتوي على معظم الطرق الرئيسية. ينبغي على المستخدمين الرجوع إلى هذه الفئة الأصلية لمزيد من المعلومات حول تلك الطرق.
__call__
< source >( text: str | list[str] | list[list[str]]text_pair: list[str] | list[list[str]] | None = Noneboxes: list[list[int]] | list[list[list[int]]] | None = Noneword_labels: list[int] | list[list[int]] | 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 = Nonestride: int = 0pad_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
المعاملات
- text (
str،list[str]،list[list[str]]) — التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصًا، أو قائمة من النصوص (كلمات مثال واحد أو أسئلة دفعة من الأمثلة)، أو قائمة من قوائم النصوص (دفعة من الكلمات). - text_pair (
list[str],list[list[str]]) — التسلسل أو الدفعة من التسلسلات المراد ترميزها. يجب أن يكون كل تسلسل قائمة من النصوص (نصوص مُقسّمة مسبقًا إلى رموز). - boxes (
list[list[int]],list[list[list[int]]]) — صناديق حدود على مستوى الكلمات. يجب أن تكون كل صناديق الحدود مُعايرة على مقياس من 0 إلى 1000. - word_labels (
list[int]،list[list[int]]، اختياري) — تسميات عددية صحيحة على مستوى الكلمة (لمهام تصنيف الرموز مثل FUNSD وCORD). - add_special_tokens (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم ترميز التسلسلات باستخدام الرموز الخاصة الخاصة بنموذجها أم لا. - 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, اختياري) — يتحكم في الحد الأقصى للطول الذي ستستخدمه إحدى معاملات القص/الحشو.إذا تُرك غير مُعيَّن أو عُدِّل إلى
None، فسيتم استخدام الطول الأقصى المُعرَّف مسبقًا للنموذج إذا كان أحد معاملات القص/الحشو يتطلب طولًا أقصى. وإذا لم يكن للنموذج طول إدخال أقصى محدد (مثل XLNet)، فسيتم تعطيل القص/الحشو إلى طول أقصى. - stride (
int، اختياري، القيمة الافتراضية 0) — إذا تم تعيينه إلى رقم معmax_length، فستحتوي الرموز الزائدة المُعاد عندreturn_overflowing_tokens=Trueعلى بعض الرموز من نهاية التسلسل المُقتطع المُعاد، لتوفير بعض التداخل بين التسلسلات المُقتطعة والتسلسلات الزائدة. تحدد قيمة هذا الحجة عدد الرموز المتداخلة. - pad_to_multiple_of (
int، اختياري) — إذا تم ضبطه، سيتم توسيط التسلسل إلى مضاعف للقيمة المُقدَّمة. وهذا مفيد بشكل خاص لتفعيل استخدام نوى Tensor على أجهزة NVIDIA التي تتمتع بقابلية معالجة>= 7.5(Volta). - return_tensors (
strأو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات بدلاً من قائمة من الأعداد الصحيحة في Python. القيم المقبولة هي:'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()
يعيد
BatchEncoding يحتوي على الحقول التالية:
-
input_ids — قائمة معرّفات الرموز التي تُغذّى بها النموذج.
-
bbox — قائمة صناديق الحدود المراد تمريرها إلى النموذج.
-
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). -
labels — قائمة بالتسميات التي سيتم تغذيتها إلى النموذج. (عند تحديد
word_labels). -
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).
الطريقة الرئيسية لتجزئة (tokenization) وتجهيز تسلسل واحد أو عدة تسلسلات، أو زوج واحد أو عدة أزواج من التسلسلات، مع صناديق حدود (bounding boxes) مُعايرة على مستوى الكلمة وتسميات اختيارية، للنموذج.
build_inputs_with_special_tokens
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
المعاملات
- token_ids_0 (
list[int]) — قائمة بالمعرّفات التي ستُضاف إليها الرموز الخاصة. - token_ids_1 (
list[int]، اختياري) — قائمة اختيارية ثانية من المعرّفات لأزواج التسلسلات.
يعيد
list[int]
قائمة معرفات الإدخال مع الرموز الخاصة المناسبة.
ابنِ مدخلات النموذج من تسلسل أو زوج من التسلسلات لمهام تصنيف التسلسل عن طريق الربط وإضافة الرموز الخاصة. يتبع تسلسل XLM-RoBERTa التنسيق التالي:
- تسلسل واحد:
<s> X </s> - زوج من التسلسلات:
<s> A </s></s> B </s>
get_special_tokens_mask
< source >( token_ids_0: list[int]token_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]
المعاملات
- token_ids_0 — قائمة بالمعرّفات (IDs) للتسلسل (الذي قد يكون مُنسّقًا بالفعل).
- token_ids_1 — غير مستخدم عندما يكون
already_has_special_tokens=True. يجب أن يكون None في هذه الحالة. - already_has_special_tokens — ما إذا كانت التسلسلة منسّقة مسبقًا باستخدام الرموز الخاصة.
يعيد
قائمة من الأعداد الصحيحة في المدى [0, 1]
1 لرمز خاص، 0 لرمز التسلسل.
استرجاع معرّفات التسلسلات من قائمة الرموز التي لم تُضف إليها أي رموز خاصة.
للمُرمِّزات السريعة، تستدعي مُجمِّعات البيانات هذه الدالة مع already_has_special_tokens=True لبناء قناع فوق تسلسل مُنسَّق مسبقًا. في تلك الحالة، نحسب القناع عن طريق التحقق من العضوية في all_special_ids.
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
أنشئ قناعًا من التسلسلين المُمرَّرين لاستخدامه في مهمة تصنيف أزواج التسلسلات. لا يستخدم XLM-RoBERTa معرّفات أنواع الرموز، لذلك يُعاد قائمة من الأصفار.
LayoutXLMProcessor
فئة transformers.LayoutXLMProcessor
< source >( image_processor = Nonetokenizer = None**kwargs )
ينشئ LayoutXLMProcessor الذي يجمع معالج الصور ومعالج الرموز في معالج واحد.
يوفر LayoutXLMProcessor جميع وظائف LayoutLMv2ImageProcessor وLayoutXLMTokenizer. راجع ~LayoutLMv2ImageProcessor و~LayoutXLMTokenizer لمزيد من المعلومات.
__call__
< source >( imagestext: str | list[str] | list[list[str]] = Nonetext_pair: list[str] | list[list[str]] | None = Noneboxes: list[list[int]] | list[list[list[int]]] | None = Noneword_labels: list[int] | list[list[int]] | None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy = Nonemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | 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 = Truereturn_tensors: str | transformers.utils.generic.TensorType | None = None**kwargs ) → ~tokenization_utils_base.BatchEncoding
المعاملات
- images (`
) -- Image to preprocess. Expects a single or batch of images with pixel values ranging from 0 to 255. If passing in images with pixel values between 0 and 1, setdo_rescale=False`. - text (
Union[str, list[str], list[list[str]]]، اختياري) — التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصاً أو قائمة من النصوص (نص مُقسَّم مسبقاً إلى رموز). إذا مرّرت مدخلاً مُقسَّماً مسبقاً إلى رموز، فعيّنis_split_into_words=Trueلتجنّب الغموض مع المدخلات المُجمَّعة في دفعات. - text_pair (
str, list[str] or list[int], اختياري) — التسلسل الثاني الاختياري الذي سيتم ترميزه. يمكن أن يكون نصاً، أو قائمة من النصوص (نص مُرمَّز باستخدام طريقةtokenize)، أو قائمة من الأعداد الصحيحة (معرّفات النصوص المُرمَّزة باستخدام طريقةconvert_tokens_to_ids). - boxes (
list[list[int]] or list[list[list[int]]], اختياري) — صناديق حدود على مستوى الكلمات. يجب أن تكون كل صناديق الحدود مُعايرة على مقياس من 0 إلى 1000. - word_labels (
list[int] or list[list[int]], اختياري) — تسميات عددية على مستوى الكلمة (لمهام تصنيف الرموز مثل FUNSD وCORD). - 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, اختياري) —
يُفعّل التحكم في القص. يقبل القيم التالية:
Trueأو'longest_first': يُقصّ النص إلى الحد الأقصى للطول المحدد عبر الحجةmax_lengthأو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. يتم هذا القص رمزًا تلو الآخر، حيث يُزال رمز من أطول تسلسل في الزوج إذا كان قد قُدِّم زوج من التسلسلات (أو دفعة من الأزواج).'only_first': يُقصّ النص إلى الحد الأقصى للطول المحدد عبر الحجةmax_lengthأو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. لن يُقصّ هذا الخيار سوى التسلسل الأول من الزوج إذا قُدِّم زوج من التسلسلات (أو دفعة من الأزواج).'only_second': يُقصّ النص إلى الحد الأقصى للطول المحدد عبر الحجةmax_lengthأو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة. لن يتم قصّ النص الثاني من الزوج إلا إذا قُدِّم زوج من النصوص (أو دفعة من الأزواج).Falseأو'do_not_truncate'(الافتراضي): لا يوجد اقتطاع (أي، يمكن إخراج دفعة بأطوال تسلسلات أكبر من الحد الأقصى المقبول لحجم الإدخال في النموذج).
- max_length (
int, اختياري) — يتحكم في الحد الأقصى للطول الذي ستستخدمه إحدى معاملات القص/الحشو.إذا تُرك غير مُعيَّن أو عُدِّل إلى
None، فسيتم استخدام الطول الأقصى المُعرَّف مسبقًا للنموذج إذا كان أحد معاملات القص/الحشو يتطلب طولًا أقصى. وإذا لم يكن للنموذج طول إدخال أقصى محدد (مثل XLNet)، فسيتم تعطيل القص/الحشو إلى طول أقصى. - stride (
int، اختياري، القيمة الافتراضية0) — إذا تم تعيينه إلى رقم معmax_length، فإن الرموز الزائدة المُعاد إياها عندreturn_overflowing_tokens=Trueستحتوي على بعض الرموز من نهاية التسلسل المُقتطع المُعاد، لتوفير بعض التداخل بين التسلسلات المُقتطعة والتسلسلات الزائدة. تحدد قيمة هذا الباراميتر عدد الرموز المتداخلة. - pad_to_multiple_of (
int, اختياري) — إذا تم ضبطه، سيتم توسيط التسلسل إلى مضاعف للقيمة المُقدَّمة. يتطلب تفعيلpadding. يُعدّ هذا مفيدًا بشكل خاص لتمكين استخدام نوى Tensor على أجهزة NVIDIA التي تتمتع بقابلية معالجة>= 7.5(Volta). - 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) — ما إذا كان يجب طباعة مزيد من المعلومات والتحذيرات أم لا. - return_tensors (
Union[str, ~utils.generic.TensorType], اختياري) — إذا تم تعيينه، فسيُرجع مُتجهات (tensors) لإطار عمل معين. القيم المقبولة هي:'pt': إرجاع كائناتtorch.Tensorمن PyTorch.'np': إرجاع كائناتnp.ndarrayمن NumPy.
يعيد
~tokenization_utils_base.BatchEncoding
- data (
dict، اختياري) — قاموس من القوائم/المصفوفات/الموترات التي تُعاد بواسطة طرق__call__/encode_plus/batch_encode_plus(مثل ‘input_ids’، ‘attention_mask’، وما إلى ذلك). - ترميز (
tokenizers.EncodingأوSequence[tokenizers.Encoding]، اختياري) — إذا كان مُرمِّز الكلمات (tokenizer) من النوع السريع الذي يُخرج معلومات إضافية مثل التحويل من مساحة الكلمات/الأحرف إلى مساحة الرموز (tokens)، فإن كائنtokenizers.Encodingأو قائمة بالكائنات (في حالة الدفعات) تحتفظ بهذه المعلومات. - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة. - prepend_batch_axis (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إضافة محور الدفعة عند التحويل إلى متجهات (انظرtensor_typeأعلاه). لاحظ أن لهذا المعامل تأثيرًا إذا تم تعيين المعاملtensor_type، وإلا فلا يكون له أي تأثير. - n_sequences (
int, اختياري) — عدد تسلسلات الإدخال التي يُمثّلها كل ترميز (Noneفي حال عدم المعرفة، و1لتسلسل واحد، و2لزوج من التسلسلات).