T5X هو التنفيذ الجديد والمحسّن لـ T5 (والمزيد) في Jax و Flax. T5 على Tensorflow مع Meshtf لم يعد تطوير نشط. إذا كنت جديدًا على T5 ، فإننا نوصي بالبدء بـ T5x.
تعمل مكتبة t5
في المقام الأول كرمز لإعادة إنتاج التجارب في استكشاف حدود التعلم النقل باستخدام محول نص إلى نص موحد . في الورقة ، نوضح كيفية تحقيق النتائج الحديثة على مهام NLP متعددة باستخدام محول نص إلى نص تم تدريبه مسبقًا على مجموعة نصية كبيرة.
يتم استخدام الجزء الأكبر من الكود في هذا المستودع للتحميل والمعالجة المسبقة والخلط وتقييم مجموعات البيانات. كما يوفر وسيلة لضبط النماذج المدربة مسبقًا التي تم إصدارها إلى جانب المنشور.
يمكن استخدام مكتبة t5
لتطوير النماذج المستقبلية من خلال توفير وحدات مفيدة للتدريب والنماذج الدقيقة (التي يحتمل أن تكون ضخمة ) على مزيج من المهام النصية.
t5.data
هي حزمة لتحديد كائنات Task
التي توفر tf.data.Dataset
s.
تتكون كل Task
من:
بالإضافة إلى ذلك ، يمكنك توفير:
يمكن أن يكون مصدر البيانات وظيفة تعسفية توفر tf.data.Dataset
، لكننا نقدم أيضًا أغلفة أبسط لمجموعات البيانات المتوفرة في مجموعات بيانات TensorFlow (TFDs) ( TfdsTask
) أو تخزينها كملفات نصية مع مثال واحد لكل سطر (A TextLineTask
) .
يقوم المعالج المسبق للنص بتحويل الأمثلة في مجموعة بيانات المصدر إلى التنسيق المناسب لنموذج النص إلى نص مع حقول inputs
targets
. على سبيل المثال ، يحول المعالج المسبق t5.data.preprocessors.translate
مسبقًا.
{ 'de' : 'Das ist gut.' , 'en' : 'That is good.' }
إلى النموذج
{ 'inputs' : 'translate German to English: Das ist gut.' , 'targets' : 'That is good.' }
بالإضافة إلى المعالجة المسبقة النصية ، يمكنك أيضًا استخدام المعالجات المسبقة المميزة أو أكثر لتعديل المدخلات بعد التغلب. قمنا بتنفيذ أهدافنا غير الخاضعة للإشراف قبل التدريب باستخدام هذه المعالجات المسبقة.
نحن نقدم العديد من المعالجات المسبقة المحددة مسبقًا في t5.data.preprocessors
.
يتم استخدام نموذج Sentnespiece لتكرار سلاسل الإدخال وفك تشفير الرموز المميزة للإخراج. يمكنك إنشاء النموذج الخاص بك مع مكتبة Google/SentencePiece ، أو استخدام وضعنا الافتراضي في t5.data.DEFAULT_SPM_PATH
. إذا قمت بإنشاء خاص بك ، فيجب عليك استخدام Flags --pad_id=0 --eos_id=1 --unk_id=2 --bos_id=-1
مع spm_train
لتكون متوافقة مع رمز النموذج الخاص بنا.
تُرجع الدالة المترية درجة بالنظر إلى الهدف والتنبؤ من النموذج. يمكنك أيضًا تحديد وظيفة Postprocess لتحويل النص ونص التنبؤ إلى تنسيق آخر قبل استدعاء المقياس. نحن نقدم بعض المقاييس المحددة مسبقا في t5.evaluation.metrics
.
أخيرًا ، يحتوي t5.data
على فئة Mixture
يمكن إنشاء مثيل لها للجمع بين مجموعات بيانات Task
المتعددة للتدريب متعدد المهام باستخدام وظائف مختلفة لتحديد معدلات الخليط.
t5.evaluation
يحتوي على عنصرين أساسيين:
يحتوي t5.models
على حشوات لتوصيل Tasks
T5 Mixtures
بتنفيذ نموذج للتدريب والتقييم والاستدلال.
يوجد حاليًا نوعان متاحان: أحدهما لمحول Mesh TensorFlow الذي استخدمناه في ورقتنا وآخر لمكتبة Transformers المعانقة. تعد واجهة برمجة تطبيقات Face Hugging تجريبية حاليًا وتخضع للتغيير ، ولكنها توفر طريقة بسيطة وسهلة للتحميل ، وضبطها ، وتقييم نماذجنا التي تم تدريبنا مسبقًا باستخدام Pytorch على وحدة معالجة الرسومات الواحدة. إذا كنت ترغب في استخدام أكبر نماذجنا على TPUs و/أو إعادة إنتاج النتائج في ورقتنا ، فيجب عليك استخدام MTFModel API و t5_mesh_transformer
ثنائي. إذا كنت مهتمًا بصحبة نماذجنا على وحدة معالجة الرسومات في Pytorch ، فيجب عليك تجربة واجهة برمجة تطبيقات HfpyTorChmodel. نظرًا لأن hfpytorchmodel تجريبية ، فإن بقية هذه القراءة تفترض استخدام MTFModel وثنائي المرتبط به. يتوفر مثال على استخدام HfpyTorchModel هنا.
أسهل طريقة لتجربة T5 هي مع TPU مجاني في البرنامج التعليمي كولاب لدينا.
نوفر أدناه أمثلة لكيفية كيفية التحويل المسبق والتقييم والتقييم ونفصل من نموذج من سطر الأوامر باستخدام قاعدة الشفرة الخاصة بنا. يمكنك استخدام هذه الإرشادات لإعادة إنتاج نتائجنا ، أو ضبط إحدى نقاط التفتيش التي تم إصدارها مع البيانات الخاصة بك و/أو مكافآت عالية ، أو قبل تدريب نموذج من نقطة الصفر.
يمكنك إما استخدام Task
جديدة أو موجودة مسبقًا ، أو يمكنك تحميل أمثلة من ملف TSV المعالجة مسبقًا.
Task
اعتمادًا على مصدر البيانات الخاص بك (انظر أعلاه) ، ستحتاج إلى إعداد بياناتك بشكل مناسب.
Task
إذا كنت تستخدم مهمة Vanilla ، فقط تأكد من أن أي ملف (ملفات) تم تحميله بواسطة dataset_fn
يمكن الوصول إليه من TPU (أي ، في دلو GCS) ، ويجب أن تكون على ما يرام!
TfdsTask
تستخدم معظم Task
المحددة مسبقًا مجموعات بيانات TensorFlow (TFDs) كمصدر للبيانات. عندما تقوم بتشغيل تدريبنا الثنائي (انظر التعليمات أدناه) باستخدام TfdsTask
، سيتم تنزيل مجموعة البيانات تلقائيًا وإعدادها على استخدامها الأول. بعد اكتمال التحضير ، يتم تخزين مجموعة البيانات مؤقتًا للتخزين المحلي لتجنب هذا النفقات العامة في عمليات التشغيل في المستقبل. إذا كنت تعمل في السحابة ، فإننا نوصيك بتعيين علامة --t5_tfds_data_dir
للإشارة إلى موقع تخزين ثابت ، مثل دلو GCS. هذا مطلب عند التدريب على TPU.
تتوفر مجموعة بيانات C4 التي أنشأناها للتدريب غير الخاضع للإشراف في مجموعات بيانات TensorFlow ، ولكنها تتطلب قدرًا كبيرًا من النطاق الترددي لتنزيل عمليات الزحف الشائعة الخام (~ 7 تيرابايت) وحسابها لإعدادها (~ 335 أيام وحدة المعالجة المركزية). نقترح عليك الاستفادة من دعم شعاع Apache في TFDS ، والذي يتيح المعالجة المسبقة الموزعة لمجموعة البيانات ويمكن تشغيله على Google Cloud Dataflow. مع 500 عامل ، يجب أن تكتمل الوظيفة في حوالي 16 ساعة.
بعد تحديد MY_PROJECT
و MY_BUCKET
بشكل مناسب ، يمكنك إنشاء مجموعة البيانات في تدفق البيانات من GCP باستخدام الأوامر التالية:
pip install tfds-nightly[c4]
echo ' tfds-nightly[c4] ' > /tmp/beam_requirements.txt
python -m tensorflow_datasets.scripts.download_and_prepare
--datasets=c4/en
--data_dir=gs:// $MY_BUCKET /tensorflow_datasets
--beam_pipeline_options= " project= $MY_PROJECT ,job_name=c4,staging_location=gs:// $MY_BUCKET /binaries,temp_location=gs:// $MY_BUCKET /temp,runner=DataflowRunner,requirements_file=/tmp/beam_requirements.txt,experiments=shuffle_mode=service,region= $MY_REGION "
اقرأ المزيد في تعليمات شعاع TFDS.
TextLineTask
يكون TextLineTask
مفيدًا عندما يكون مصدر البيانات الخاص بك عبارة عن ملف نصي (أو ملفات) مع مثال واحد لكل سطر. يمكنك بعد ذلك استخدام معالج مسبق نص لتحويل كل سطر إلى قاموس من المدخلات والأهداف.
تأكد من أن ملفاتك في متناول TPU (أي ، في دلو GCS) ، ويجب أن تكون على ما يرام!
بدلاً من تحديد Task
جديدة ، يمكنك استخدام ملف TSV (أو الملفات) مباشرة كمجموعة البيانات الخاصة بك حيث يتم تنسيق كل سطر على أنه <input>t<target>
.
ومع ذلك ، هناك اثنين من التحذيرات:
إذا كنت بحاجة إلى أي من هذه الميزات ، فيجب عليك تحديد Task
جديدة أو TfdsTask
أو TextLineTask
.
على غرار الحالات المذكورة أعلاه ، يجب أن تكون ملفات (ملفات) TSV في متناول TPU (أي ، في دلو GCS).
لتثبيت حزمة T5 ، ما عليك سوى التشغيل:
pip install t5[gcp]
ستحتاج أولاً إلى إطلاق جهاز افتراضي (VM) على Google Cloud. يمكن العثور على تفاصيل حول إطلاق VM في وثائق Google Cloud.
من أجل تشغيل التدريب أو التقييم على سحابة TPUs ، يجب عليك إعداد المتغيرات التالية بناءً على مشروعك و Bucket و GCS بشكل مناسب. يرجى الرجوع إلى دليل السحابة TPU QuickStart لمزيد من التفاصيل.
export PROJECT=your_project_name
export ZONE=your_project_zone
export BUCKET=gs://yourbucket/
export TPU_NAME=t5-tpu
export TPU_SIZE=v3-8
export DATA_DIR= " ${BUCKET} /your_data_dir "
export MODEL_DIR= " ${BUCKET} /your_model_dir "
يرجى استخدام الأمر التالي لإنشاء جهاز TPU في السحابة VM.
ctpu up --name= $TPU_NAME --project= $PROJECT --zone= $ZONE --tpu-size= $TPU_SIZE
--tpu-only --noconf
في الأمر أدناه ، نقوم بتدريب نموذج على مهمة Glue Benchmark MRPC من نقطة الصفر. يمكنك تغيير معلمة MIXTURE_NAME
gin لاستخدام أي من المهام أو الخلائط المقدمة في الحزمة الخاصة بنا.
t5_mesh_transformer
--tpu= " ${TPU_NAME} "
--gcp_project= " ${PROJECT} "
--tpu_zone= " ${ZONE} "
--model_dir= " ${MODEL_DIR} "
--t5_tfds_data_dir= " ${DATA_DIR} "
--gin_file= " dataset.gin "
--gin_file= " models/bi_v1.gin "
--gin_param= " utils.tpu_mesh_shape.model_parallelism = 1 "
--gin_param= " utils.tpu_mesh_shape.tpu_topology = ' ${TPU_SIZE} ' "
--gin_param= " MIXTURE_NAME = 'glue_mrpc_v002' "
يمكن الحصول على القائمة الكاملة للمهام والمخاليط عن طريق التشغيل:
python -c " import t5; print(t5.data.MixtureRegistry.names()) "
يمكنك أيضًا تحديد مهام ومخاليط إضافية في ملف جديد واستيراده باستخدام علامة --module_import
.
بدلاً من ذلك ، يمكنك التدريب مع ملف TSV حيث يتم تنسيق كل سطر كـ <input>t<target>
(انظر أعلاه).
من أجل ضبط إحدى نماذجنا المدربة مسبقًا ، تحتاج إلى تمرير التكوين الجراحي للنموذج الذي تم تدريبه مسبقًا إلى البرنامج النصي التدريبي. يجب تمرير التكوين الجراحي كعلم gin_file
. إنه يحدد بنية النموذج وغيرها من المقاييس المفرطة. بالإضافة إلى ذلك ، تحتاج إلى تحديد الخليط لضبطه. على سبيل المثال ، لضبط طراز T5-small على خليط glue_mrpc_v002
، يرجى التشغيل:
t5_mesh_transformer
--tpu= " ${TPU_NAME} "
--gcp_project= " ${PROJECT} "
--tpu_zone= " ${ZONE} "
--model_dir= " ${MODEL_DIR} "
--t5_tfds_data_dir= " ${DATA_DIR} "
--gin_file= " dataset.gin "
--gin_param= " utils.tpu_mesh_shape.model_parallelism = 1 "
--gin_param= " utils.tpu_mesh_shape.tpu_topology = ' ${TPU_SIZE} ' "
--gin_param= " MIXTURE_NAME = 'glue_mrpc_v002' "
--gin_file= " gs://t5-data/pretrained_models/small/operative_config.gin "
يتم تضمين مسار نقطة التفتيش الصحيح الذي تم تدريبه مسبقًا في التكوين الجراحي.
يمكنك أيضًا تحديد مهام ومخاليط إضافية في ملف جديد واستيراده باستخدام علامة --module_import
.
بدلاً من ذلك ، يمكنك ضبط ملف TSV حيث يتم تنسيق كل سطر كـ <input>t<target>
(انظر أعلاه). على سبيل المثال ، يمكنك تجربة واحدة من مجموعات بيانات الترجمة المقترنة من مجموعة التدريب من WMT '19 News 14 (على سبيل المثال ، الإنجليزية-فرنسية). عند استخدام ملف TSV ، يمكنك استبدال علامة MIXTURE_NAME
بـ:
--gin_param= " utils.run.train_dataset_fn = @t5.models.mesh_transformer.tsv_dataset_fn "
--gin_param= " tsv_dataset_fn.filename = 'gs:/path/to/tsv' "
لضبطها مع نفس المقاييس المفرطة التي استخدمناها في الورقة (باستخدام معدل تعليمي ثابت قدره 0.001) ، يمكنك تمرير ملف GIN هذا الذي يتم تضمينه في حزمة T5:
--gin_file="learning_rate_schedules/constant_0_001.gin"
يتم تعيين التكوين الجراحي للنماذج التي تم تدريبها مسبقًا بحيث لا يوجد حد فعال على عدد خطوات القطار. إذا كنت ترغب في التدريب على عدد محدد من الخطوات ، فستحتاج إلى تمرير ذلك. نظرًا لأن النموذج الذي تم تدريبه مسبقًا قد تم تدريبه بالفعل على 1،000،000 خطوة ، يجب عليك تحديد إجمالي عدد الخطوات بعد التدريب المسبق و الكون المثالى. على سبيل المثال ، إذا كنت ترغب في التخلص من 10000 خطوة إضافية ، فيجب عليك المرور
--gin_param="run.train_steps = 1010000"
يمكنك أيضًا استخدام حجم دفعة مختلفة للضبط. قمنا بتعيين حجم الدُفعة وفقًا لإجمالي عدد الرموز في دفعة. بشكل افتراضي ، تستخدم الدُفعة طول تسلسل 512. لتعيين عدد الرموز في دفعة ، يجب تعيينك
--gin_param = "tokens_per_batch=1048576"
لتقييم نموذج في إطار T5 ، تحتاج إلى استخدام ملف eval.gin
، وتحديد دليل النموذج ، وطريقة فك التشفير ، وأي خطوة (خطوات) نقطة التفتيش للتقييم. لذلك ، للتقييم على مهمة Glue MRPC باستخدام البحث في جميع نقاط التفتيش ، استخدم الأمر التالي:
t5_mesh_transformer
--tpu= " ${TPU_NAME} "
--gcp_project= " ${PROJECT} "
--tpu_zone= " ${ZONE} "
--model_dir= " ${MODEL_DIR} "
--gin_file= " ${MODEL_DIR} /operative_config.gin "
--t5_tfds_data_dir= ${DATA_DIR}
--gin_file= " eval.gin "
--gin_file= " beam_search.gin "
--gin_param= " run.dataset_split = 'validation' "
--gin_param= " utils.tpu_mesh_shape.tpu_topology = ' ${TPU_SIZE} ' "
--gin_param= " MIXTURE_NAME = 'glue_mrpc_v002' "
--gin_param= " eval_checkpoint_step = 'all' "
لتقييم نقطة تفتيش معينة ، ما عليك سوى تعيين معلمة eval_checkpoint_step
إلى نقطة تفتيش مناسبة.
--gin_param="eval_checkpoint_step = 100000"
يمكنك أيضًا استخدام greedy_decode.gin
أو sample_decode.gin
بدلاً من beam_search.gin
في الأمر أعلاه.
من أجل إنتاج تنبؤات من نموذج في إطار T5 ، تحتاج إلى تحديد دليل النموذج وطريقة فك التشفير وأي خطوات (خطوات) نقطة التفتيش لاستخدامها في فك التشفير. على افتراض أن لديك ملفًا نصيًا من تسلسل الإدخال المخزّن على /path/to/inputs.txt
، سيكون الأمر مثالًا هو:
t5_mesh_transformer
--tpu= " ${TPU_NAME} "
--gcp_project= " ${PROJECT} "
--tpu_zone= " ${ZONE} "
--model_dir= " ${MODEL_DIR} "
--gin_file= " ${MODEL_DIR} /operative_config.gin "
--gin_file= " infer.gin "
--gin_file= " sample_decode.gin "
--gin_param= " input_filename = '/path/to/inputs.txt' "
--gin_param= " output_filename = '/tmp/outputs.txt' "
--gin_param= " utils.tpu_mesh_shape.tpu_topology = ' ${TPU_SIZE} ' "
--gin_param= " infer_checkpoint_step = 'all' "
للتنبؤ بنقطة تفتيش محددة ، ما عليك سوى تعيين معلمة infer_checkpoint_step
إلى نقطة تفتيش مناسبة.
--gin_param="infer_checkpoint_step = 100000"
يمكنك أيضًا استخدام beam_search.gin
أو greedy_decode.gin
بدلاً من sample_decode.gin
في الأمر أعلاه.
قد ترغب أيضًا في تصدير عارضة SavedModel
، وهو أمر مفيد لخدمة النموذج المدرب ، (على سبيل المثال ، عند النشر مع محرك ML أو في صورة Docker).
t5_mesh_transformer
--gcp_project= " ${PROJECT} "
--tpu_zone= " ${ZONE} "
--model_dir= " ${MODEL_DIR} "
--use_model_api
--mode= " export_predict "
--export_dir= " /path/to/export/dir "
يقوم الأمر أعلاه بتصدير أحدث نقطة تفتيش في دليل النموذج. لتصدير نقطة تفتيش معينة ، أضف الأعلام التالية:
--checkpoint_mode= " specific "
--checkpoint_steps=1000000
يوضح دفتر T5-Deploy تصدير نموذج SavedModel
وتغليفه في صورة Docker للتقديم.
إذا كنت ترغب في استخدام GPU بدلاً من TPUs ، فيمكنك تعديل الأوامر أعلاه عن طريق إزالة الأعلام الخاصة بـ TPU ( --tpu
، --tpu_zone
، --gcp_project
) وإعداد معلمة GIN لـ mesh_shape
و mesh_devices
بناءً على الإعداد المطلوب المطلوب .
على سبيل المثال ، إذا كان جهازك لديه إمكانية الوصول إلى 6 وحدات معالجة الرسومات وترغب في القيام بالتوازي النموذجي ثلاثي الاتجاهات والموازاة للبيانات ثنائية الاتجاه ، فسيصبح الأمر المرفق أعلاه:
t5_mesh_transformer
--model_dir= " ${MODEL_DIR} "
--t5_tfds_data_dir= " ${DATA_DIR} "
--gin_file= " dataset.gin "
--gin_param= " utils.run.mesh_shape = 'model:3,batch:2' "
--gin_param= " utils.run.mesh_devices = ['gpu:0','gpu:1','gpu:2','gpu:3','gpu:4','gpu:5'] "
--gin_param= " MIXTURE_NAME = 'glue_mrpc_v002' "
--gin_file= " gs://t5-data/pretrained_models/small/operative_config.gin "
مع وحدة معالجة الرسومات الواحدة ، فإن الأمر هو:
t5_mesh_transformer
--model_dir= " ${MODEL_DIR} "
--t5_tfds_data_dir= " ${DATA_DIR} "
--gin_file= " dataset.gin "
--gin_param= " utils.run.mesh_shape = 'model:1,batch:1' "
--gin_param= " utils.run.mesh_devices = ['gpu:0'] "
--gin_param= " MIXTURE_NAME = 'glue_mrpc_v002' "
--gin_file= " gs://t5-data/pretrained_models/small/operative_config.gin "
نحن نقدم التكوينات الجراحية لجميع التجارب في الورقة في GS: // T5-data/التجارب. يحتوي مجلد experiments
على دليل فرعي مختلف يتوافق مع الأقسام المختلفة في ورقتنا. على سبيل المثال ، يحتوي GS: // T5-data/Aperiments/الأهداف على التجارب من القسم 3.3 ("الأهداف غير الخاضعة للإشراف"). يحتوي كل دليل فرعي لمجلد objectives
على تكوينات تشغيل لتجربة معينة (حيث يتحدث "تجربة" بشكل فضفاض هو أحد الصفوف في أحد الجداول في ورقتنا).
دعنا نقول أنك تريد إعادة إنتاج نتائج هدف "نمذجة لغة البادئة" (الصف الأول في الجدول 4). يتكوين المنطوق لتلك التجربة يعيش في GS: // T5-data/التجارب/الأهداف/OBJ-PREFIX_LM. في الدليل الأساسي ، هناك تكوين تشغيل لتدريب النموذج مسبقًا (gs: //t5-data/experiments/objectives/OBJ-Prefix_LM/OPERATION_CONFIG.GIN). بعد ذلك ، هناك دليل فرعي لكل من مخاليط الضبط الناتجة التي نعتبرها ، كل منها له تكوين تشغيل خاص به (على سبيل المثال ، gs: //t5-data/experiments/objectives ). لتشغيل هذه التجربة ، قم أولاً بتدريب نموذج مع التكوين الجراحي قبل التدريب:
export PRETRAIN_MODEL_DIR= " ${BUCKET} /obj-prefix_lm "
t5_mesh_transformer
--tpu= " ${TPU_NAME} "
--gcp_project= " ${PROJECT} "
--tpu_zone= " ${ZONE} "
--model_dir= " ${PRETRAIN_MODEL_DIR} "
--gin_file= " gs://t5-data/experiments/objectives/obj-prefix_lm/operative_config.gin "
--gin_param= " utils.tpu_mesh_shape.model_parallelism = 1 "
--gin_param= " utils.tpu_mesh_shape.tpu_topology = ' ${TPU_SIZE} ' "
بعد ذلك ، يمكنك ضبط النموذج الذي تم تدريبه مسبقًا على CNN/Daily Mail مثل SO:
export FINETUNE_MODEL_DIR= " ${BUCKET} /obj-prefix_lm/cnn_dailymail_v002 "
t5_mesh_transformer
--tpu= " ${TPU_NAME} "
--gcp_project= " ${PROJECT} "
--tpu_zone= " ${ZONE} "
--model_dir= " ${FINETUNE_MODEL_DIR} "
--gin_file= " gs://t5-data/experiments/objectives/obj-prefix_lm/cnn_dailymail_v002/operative_config.gin "
--gin_param= " init_checkpoint = ' ${PRETRAIN_MODEL_DIR} /model.ckpt-524288' "
--gin_param= " utils.tpu_mesh_shape.model_parallelism = 1 "
--gin_param= " utils.tpu_mesh_shape.tpu_topology = ' ${TPU_SIZE} ' "
تحتاج بعض المتغيرات التدريبية إلى تعيين علامات متعددة في نفس الوقت. لكل من المتغيرات أدناه ، أضف مجموعة الأعلام إلى ./third_party/py/t5/google/scripts/run_finetune.sh
.
التدريب الحتمي
--train_gin_param= " mesh_train_dataset_fn.seed= ${SEED} "
--train_gin_param= " utils.run.skip_seen_data = True "
نموذج اللغة
--objective= " lm "
--train_gin_param= " utils.run.model_type = " lm " "
لقد أصدرنا نقاط التفتيش التالية للنماذج المدربة مسبقًا الموضحة في ورقتنا:
انظر هنا للحصول على قائمة بنقاط تفتيش النموذج التجريبية الإضافية التي تم تدريبها مسبقًا.
إذا قمت بتمديد هذا العمل أو استخدمته ، فيرجى الاستشهاد بالورقة التي تم تقديمها:
@article { 2020t5 ,
author = { Colin Raffel and Noam Shazeer and Adam Roberts and Katherine Lee and Sharan Narang and Michael Matena and Yanqi Zhou and Wei Li and Peter J. Liu } ,
title = { Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer } ,
journal = { Journal of Machine Learning Research } ,
year = { 2020 } ,
volume = { 21 } ,
number = { 140 } ,
pages = { 1-67 } ,
url = { http://jmlr.org/papers/v21/20-074.html }
}