transformers/docs/source/ar/pad_truncation.md
Ahmed Almaghz 69b5ccb887
Add Translate docs into Arabic - section files CONCEPTUAL GUIDES (#33982)
Add Translate docs into Arabic - section files CONCEPTUAL GUIDES
---------------------------------------------------------------------------------------
 Philosophy [i18n-ar] Translated file : docs/source/ar/philosophy.md into Arabic #33064
 Glossary [i18n-ar] Translated file : docs/source/ar/glossary.md into Arabic #33038
 What 🤗 Transformers can do [i18n-ar] Translated file : docs/source/ar/task_summary.md into Arabic #33073
 How 🤗 Transformers solve tasks [i18n-ar] Translated file : docs/source/ar/tasks_explained.md into Arabic #33074
 The Transformer model family [i18n-ar] Translated file : docs/source/ar/model_summary.md into Arabic #33047
 Summary of the tokenizers [i18n-ar] Translated file : docs/source/ar/tokenizer_summary.md into Arabic #33078
 Attention [i18n-ar] Translated file : docs/source/ar/attention.md into Arabic #33021
 Padding and truncation [i18n-ar] Translated file : docs/source/ar/pad_truncation.md into Arabic #33050
 BERTology [i18n-ar] Translated file : docs/source/ar/bertology.md into Arabic #33024
 Perplexity of fixed-length models [i18n-ar] Translated file : docs/source/ar/perplexity.md into Arabic #33063
 Pipelines for webserver inference [i18n-ar] Translated file : docs/source/ar/pipeline_webserver.md into Arabic #33066
 Model training anatomy [i18n-ar] Translated file : docs/source/ar/model_memory_anatomy.md into Arabic #33045
 Getting the most out of LLMs [i18n-ar] Translated file : docs/source/ar/llm_tutorial_optimization.md into Arabic #33043
2024-10-09 14:51:19 -07:00

8.5 KiB

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

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

في معظم الحالات، ييُعدّ حشو دُفعتك إلى طول أطول تسلسل فيها وتقليمها إلى الطول الأقصى المقبول من النموذج حلًا فعالًا. ومع ذلك، تدعم واجهة برمجة التطبيقات المزيد من الاستراتيجيات إذا كنت بحاجة إليها. هناك ثلاثة معامﻻت تحتاجها لفهم آلية العمل: 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)