Transformers documentation

الحشو والتقليم

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v4.46.2).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

الحشو والتقليم

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

في معظم الحالات، ييُعدّ حشو دُفعتك إلى طول أطول تسلسل فيها وتقليمها إلى الطول الأقصى المقبول من النموذج حلًا فعالًا. ومع ذلك، تدعم واجهة برمجة التطبيقات المزيد من الاستراتيجيات إذا كنت بحاجة إليها. هناك ثلاثة معامﻻت تحتاجها لفهم آلية العمل: padding، وtruncation، وmax_length.

يحكم معامل padding عملية الحشو. يمكن أن يكون قيمة منطقية أو نصية:

  • True أو 'longest': الحشو إلى أطول تسلسل في الدفعة (لا يتم تطبيق الحشو عند تقديم تسلسل واحد فقط).
  • 'max_length': الحشو إلى طول محدد بواسطة معامل max_length أو الطول الأقصى الذي يقبله النموذج إذا لم يتم توفير max_length (max_length=None). سيظل الحشو مطبقًا إذا قدمت تسلسلًا واحدًا فقط.
  • False أو 'do_not_pad': لا يتم تطبيق أي حشو. هذا هو السلوك الافتراضي.

تحكم معامل truncation عملية التقليم. يمكن أن يكون قيمة منطقية أو نصية:

-قيمة True أو 'longest_first' : تقليم التسلسلات إلى طول أقصى مُحدد بواسطة معامل max_length، أو أقصى طول يقبله النموذج في حال عدم تحديد طول مُحدد من قبل المستخدم (max_length=None). ستتم عملية التقليم إزالة رمز تلو الآخر، بدءًا من أطول تسلسل في الزوج، إلى أن يصل الطول إلى القيمة المُحددة. -قيمة 'only_second': اقطع إلى طول أقصى محدد بواسطة معامل max_length أو أقصى طول يقبله النموذج إذا لم يتم توفير max_length (max_length=None). هذا سيقلم فقط الجملة الثانية من الزوج إذا تم توفير زوج من التسلسلات (أو دُفعة من أزواج التسلسلات). -قيمة 'only_first': تقليم الجملة الأولى فقط من الزوج عند تقديم زوج من التسلسلات (أو دُفعة من أزواج التسلسلات) إلى طول أقصى مُحدد بواسطة حجة max_length، أو أقصى طول يقبله النموذج في حال عدم تحديد طول مُحدد من قبل المستخدم (max_length=None). -قيمة False أو 'do_not_truncate': لا يتم تطبيق أي تقليم. هذا هو السلوك الافتراضي. “

يحكم معامل max_length طول الحشو والتقليم. يمكن أن يكون عدد صحيح أو None، وعندها يُحدد افتراضيًا إلى الطول الأقصى الذي يمكن أن يقبله النموذج. إذا لم يكن للنموذج طول إدخال أقصى محدد، يتم إلغاء تنشيط التقليم أو الحشو إلى max_length.

يلخّص الجدول التالي الطريقة المُوصى بها لإعداد الحشو والتقليم. إذا كنت تستخدم أزواج تسلسلات الإدخال في أي من الأمثلة التالية، فيمكنك استبدال truncation=True بـ STRATEGY المحدد في ['only_first'، 'only_second'، 'longest_first']، أي truncation='only_second' أو truncation='longest_first' للتحكم في كيفية تقليم كلا التسلسلين في الزوج كما هو موضّح سابقًا.

حيل الترميز

هناك العديد من الاستراتيجيات لترميز دفعات الجمل. فيما يلي بعض الأمثلة على ذلك.

الترميز الحشو التعليمات
لا ترميز لا حشو tokenizer(batch_sentences)
الحشو إلى الحد الأقصى للتسلسل في الدفعة tokenizer(batch_sentences, padding=True) أو
tokenizer(batch_sentences, padding='longest')
الحشو إلى الحد الأقصى لطول إدخال النموذج tokenizer(batch_sentences, padding='max_length')
الحشو إلى طول محدد tokenizer(batch_sentences, padding='max_length', max_length=42)
الحشو إلى مضاعف لقيمة معينة tokenizer(batch_sentences, padding=True, pad_to_multiple_of=8)
الترميز إلى الحد الأقصى لطول إدخال النموذج لا حشو tokenizer(batch_sentences, truncation=True) أو
tokenizer(batch_sentences, truncation=STRATEGY)
الحشو إلى الحد الأقصى للتسلسل في الدفعة tokenizer(batch_sentences, padding=True, truncation=True) أو
tokenizer(batch_sentences, padding=True, truncation=STRATEGY)
الحشو إلى الحد الأقصى لطول إدخال النموذج tokenizer(batch_sentences, padding='max_length', truncation=True) أو
tokenizer(batch_sentences, padding='max_length', truncation=STRATEGY)
الحشو إلى طول محدد غير ممكن
الترميز إلى طول محدد لا حشو tokenizer(batch_sentences, truncation=True, max_length=42) أو
tokenizer(batch_sentences, truncation=STRATEGY, max_length=42)
الحشو إلى الحد الأقصى للتسلسل في الدفعة tokenizer(batch_sentences, padding=True, truncation=True, max_length=42) أو
tokenizer(batch_sentences, padding=True, truncation=STRATEGY, max_length=42)
الحشو إلى الحد الأقصى لطول إدخال النموذج غير ممكن
الحشو إلى طول محدد tokenizer(batch_sentences, padding='max_length', truncation=True, max_length=42) أو
tokenizer(batch_sentences, padding='max_length', truncation=STRATEGY, max_length=42)
< > Update on GitHub