الضبط الدقيق الموزع لنموذج BERT الكبير لمهمة الإجابة على الأسئلة باستخدام محولات تعانق الوجه على Amazon SageMaker

عقدة المصدر: 1885069

من تدريب النماذج الجديدة إلى نشرها في الإنتاج ، الأمازون SageMaker تقدم المجموعة الأكثر اكتمالا من الأدوات للشركات الناشئة والمؤسسات لتسخير قوة التعلم الآلي (ML) والتعلم العميق.

من خلال مكتبة Transformers مفتوحة المصدر ومنصة ML ، تجعل Hugging Face تعلم النقل وأحدث نماذج التعلم الآلي متاحة لمجتمع الذكاء الاصطناعي العالمي ، مما يقلل من الوقت اللازم لعلماء البيانات ومهندسي ML في الشركات حول العالم للاستفادة من كل علم علمي جديد. تقدم.

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

يتطلب ضبط النموذج لإنتاج تنبؤات دقيقة لمشكلة العمل المطروحة تدريب نماذج كبيرة من Transformers ، على سبيل المثال ، BERT و BART و RoBERTa و T5 ، والتي قد يكون من الصعب تنفيذها بطريقة قابلة للتطوير.

تعمل Hugging Face بشكل وثيق مع SageMaker لتقديمها حاويات التعلم العميق الجاهزة للاستخدام (DLC) التي تجعل التدريب ونشر أحدث طرازات Transformers أسهل وأسرع من أي وقت مضى. نظرًا لأن ميزات مثل SageMaker Data Parallel (SMDP) و SageMaker Model Parallel (SMMP) ووضع أنبوب S3 مدمجة في الحاوية ، فإن استخدام هذه الميزات يقلل بشكل كبير من وقت الشركات لإنشاء حلول ML تعتمد على المحولات مثل الإجابة على الأسئلة وتوليد النصوص والصور ، وتحسين نتائج البحث ، وتحسين أتمتة دعم العملاء ، وواجهات المحادثة ، والبحث الدلالي ، وتحليل المستندات ، والعديد من التطبيقات الأخرى.

في هذا المنشور ، نركز على التكامل العميق لمكتبات SageMaker الموزعة مع Hugging Face ، والتي تمكن علماء البيانات من تسريع التدريب وضبط نماذج المحولات من أيام إلى ساعات ، كل ذلك في SageMaker.

نظرة عامة على التدريب الموزع

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

يمكن أن يؤدي التدريب الموزع إلى تقسيم عبء العمل لتدريب النموذج بين معالجات متعددة ، تسمى العمال. يعمل هؤلاء العمال بالتوازي لتسريع تدريب النموذج.

بناءً على ما نريد قياسه (نموذج أو بيانات) ، هناك طريقتان للتدريب الموزع: توازي البيانات والنموذج المتوازي.

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

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

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

المتطلبات الأساسية المسبقة

لإجراء تدريب موزع على نماذج Hugging Face Transformers في SageMaker ، تحتاج إلى إكمال المتطلبات الأساسية التالية:

تنفيذ التدريب الموزع

توفر مكتبة Hugging Face Transformers واجهة API الخاصة بالمدرب التي تم تحسينها لتدريب النماذج التي توفرها المكتبة أو ضبطها. يمكنك أيضًا استخدامه على النماذج الخاصة بك إذا كانت تعمل بنفس طريقة نماذج Transformers ؛ نرى مدرب لمزيد من التفاصيل. يتم استخدام واجهة برمجة التطبيقات هذه في ملف أمثلة على البرامج النصية، والتي توضح كيفية المعالجة المسبقة للبيانات لمختلف مهام البرمجة اللغوية العصبية ، والتي يمكنك أن تأخذها كنماذج لكتابة برنامج نصي يحل مشكلتك المخصصة. وعد Trainer API هو أن هذا البرنامج النصي يعمل خارج الصندوق على أي إعداد موزع ، بما في ذلك SageMaker.

تأخذ Trainer API كل ما يلزم للتدريب. يتضمن هذا مجموعات البيانات الخاصة بك ، أو النموذج الخاص بك (أو الوظيفة التي ترجع النموذج الخاص بك) ، أ compute_metrics الوظيفة التي تعرض المقاييس التي تريد تتبعها من صفائف التنبؤات والتسميات ، والمحسن وجدول معدل التعلم (يتم توفير الإعدادات الافتراضية الجيدة) ، بالإضافة إلى جميع المعلمات الفائقة التي يمكنك ضبطها لتدريبك المجمعة في فئة بيانات تسمى TrainingArguments. مع كل ذلك ، فإنه يعرض ثلاث طرق - التدريب والتقييم والتنبؤ - لتدريب نموذجك ، أو الحصول على النتائج المترية على أي مجموعة بيانات ، أو الحصول على تنبؤات من أي مجموعة بيانات. لمعرفة المزيد حول كائن المدرب ، ارجع إلى صقل النموذج باستخدام Trainer API والفيديو واجهة برمجة تطبيقات المدرب، الذي يرشدك عبر مثال بسيط.

خلف الكواليس ، تبدأ واجهة برمجة تطبيقات المدرب بتحليل البيئة التي تقوم فيها بتشغيل البرنامج النصي الخاص بك عند إنشاء ملف TrainingArguments. على سبيل المثال ، إذا بدأت تدريبك مع SageMaker ، فإنه يبحث في ملف SM_FRAMEWORK_PARAMS متغير في البيئة لاكتشاف ما إذا كنت قد قمت بتمكين توازي بيانات SageMaker أو نموذج التوازي. ثم تحصل على المتغيرات ذات الصلة (مثل رتبة العملية أو الحجم العالمي) من البيئة قبل تنفيذ خطوات التهيئة اللازمة (مثل smdistributed.dataparallel.torch.distributed.init_process_group()).

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

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

عند استخدام أساليب التقييم والتنبؤ ، يقوم المدرب بإجراء تقييم موزع للاستفادة من جميع وحدات معالجة الرسومات الخاصة بك. يتعامل بشكل صحيح مع تقسيم البيانات الخاصة بك لكل عملية (عملية من نفس الشيء dp_rank إذا تم تنشيط نموذج التوازي) وتأكد من جمع التنبؤات بشكل صحيح بنفس ترتيب مجموعة البيانات التي تستخدمها قبل إرسالها إلى compute_metrics وظيفة أو عاد لتوه. استخدام Trainer API ليس إلزاميًا. لا يزال بإمكان المستخدمين استخدام Keras أو PyTorch داخل Hugging Face. ومع ذلك ، يمكن لـ Trainer API توفير طبقة تجريد مفيدة.

قم بتدريب نموذج باستخدام مقدرات الوجه المعانقة من SageMaker

An Estimator هي واجهة عالية المستوى لتدريب SageMaker وتتعامل مع تدريب SageMaker الشامل ومهام النشر. يتم استدعاء تدريب البرنامج النصي الخاص بك عند الاتصال fit على HuggingFace مقدر. في "المقدر" ، يمكنك تحديد البرنامج النصي الذي يتم ضبطه بدقة لاستخدامه كملف entry_point، التي instance_type لاستخدامها والمعلمات التشعبية التي يتم تمريرها. لمزيد من المعلومات حول HuggingFace المعلمات ، انظر تعانق الوجه المقدر.

التدريب الموزع: موازاة البيانات

في هذا المثال ، نستخدم Hugging Face DLCs و SageMaker SDK لتدريب نموذج محول Seq2Seq الموزع على السؤال ومهمة الإجابة باستخدام مكتبات المحولات ومجموعات البيانات. ال اخفاء كلمة كاملة غير مسجلة تم ضبط النموذج بدقة على فرقة مجموعة البيانات.

توضح لك نماذج التعليمات البرمجية التالية خطوات إنشاء ملف HuggingFace مقدر للتدريب الموزع مع توازي البيانات.

  1. اختر سيناريو Hugging Face Transformers:
    # git configuration to download our fine-tuning script
    git_config = {'repo': 'https://github.com/huggingface/transformers.git','branch': 'v4.6.1'}

عندما تقوم بإنشاء ملف HuggingFace المقدر ، يمكنك تحديد برنامج نصي للتدريب يتم تخزينه في مستودع GitHub كنقطة دخول للمقدر ، لذلك لا يتعين عليك تنزيل البرامج النصية محليًا. يمكنك استخدام git_config لتشغيل البرامج النصية لأمثلة Hugging Face Transformers و "الفرع" الصحيح إذا كان لديك transformers_version يحتاج إلى تكوين. على سبيل المثال ، إذا كنت تستخدم transformers_version 4.6.1 ، يجب عليك استخدام "branch':'v4.6.1".

  1. تكوين معلمات التدريب التشعبية التي يتم تمريرها إلى وظيفة التدريب:
    # hyperparameters, which are passed into the training job
    hyperparameters={ 'model_name_or_path': 'bert-large-uncased-whole-word-masking', 'dataset_name':'squad', 'do_train': True, 'do_eval': True, 'fp16': True, 'per_device_train_batch_size': 4, 'per_device_eval_batch_size': 4, 'num_train_epochs': 2, 'max_seq_length': 384, 'max_steps': 100, 'pad_to_max_length': True, 'doc_stride': 128, 'output_dir': '/opt/ml/model'
    }

كمعلمة تشعبية ، يمكننا تحديد أي منها Seq2SeqTrainingArguments وتلك المحددة في البرنامج النصي للتدريب.

  1. حدد معلمات التوزيع في ملف HuggingFace المقدر:
    # configuration for running training on smdistributed Data Parallel
    distribution = {'smdistributed':{'dataparallel':{ 'enabled': True }}}

يمكنك استخدام مكتبة توازي البيانات SageMaker من خارج منطقة الجزاء للتدريب الموزع. أضفنا وظيفة توازي البيانات مباشرة إلى المدرب. لتمكين توازي البيانات ، يمكنك ببساطة إضافة معلمة واحدة إلى ملف HuggingFace المقدر للسماح للكود المستند إلى المدرب باستخدامه تلقائيًا.

  1. إنشاء HuggingFace المقدر بما في ذلك المعلمات المحددة في الخطوات السابقة وبدء التدريب:
from sagemaker.huggingface import HuggingFace
# estimator
huggingface_estimator = HuggingFace(entry_point='run_qa.py', source_dir='./examples/pytorch/question-answering', git_config=git_config, instance_type= 'ml.p3.16xlarge', instance_count= 2, volume_size= 200, role= <SageMaker Role>, # IAM role, transformers_version='4.6', pytorch_version='1.7', py_version='py36', distribution= distribution, hyperparameters = hyperparameters) # starting the train job huggingface_estimator.fit()

Hugging Face Transformers مستودع يحتوي على العديد من الأمثلة والنصوص لضبط النماذج على المهام من نمذجة اللغة إلى تصنيف الرموز. في حالتنا ، نستخدم run_qa.py من examples/pytorch/question-answering أمثلة.

smdistributed.dataparallel يدعم تدريب النموذج على SageMaker مع أنواع المثيل التالية فقط. للحصول على أفضل أداء ، نوصي باستخدام نوع مثيل يدعم محول النسيج المرن (التعليم للجميع):

  • مل. 3.16xlarge
  • ml.p3dn.24xlarge (موصى به)
  • ml.p4d.24xlarge (موصى به)

للحصول على أفضل أداء والاستفادة القصوى منه SMDataParallel، يجب عليك استخدام حالتين على الأقل ، ولكن يمكنك أيضًا استخدام واحدة لاختبار هذا المثال.

ما يلي سبيل المثال دفتر يوفر إرشادات مفصلة خطوة بخطوة.

التدريب الموزع: النموذج الموازي

للتدريب الموزع مع نموذج التوازي ، نستخدم مكتبة Hugging Face Transformers ومجموعات البيانات جنبًا إلى جنب مع SageMaker SDK لتصنيف التسلسل على التقييم العام لفهم اللغة (GLUE) على مجموعة متعددة العقد ، متعددة وحدات معالجة الرسومات باستخدام مكتبة التوازي النموذجية SageMaker.

كما هو الحال مع توازي البيانات ، قمنا أولاً بتعيين تكوين git وتدريب المعلمات الفوقية ومعلمات التوزيع في ملف HuggingFace المقدر:

# git configuration to download our fine-tuning script
git_config = {'repo': 'https://github.com/huggingface/transformers.git','branch': 'v4.6.1'} # hyperparameters, which are passed into the training job
hyperparameters={ 'model_name_or_path':'roberta-large', 'task_name': 'mnli', 'per_device_train_batch_size': 16, 'per_device_eval_batch_size': 16, 'do_train': True, 'do_eval': True, 'do_predict': True, 'num_train_epochs': 2, 'output_dir':'/opt/ml/model', 'max_steps': 500,
} # configuration for running training on smdistributed Model Parallel
mpi_options = { "enabled" : True, "processes_per_host" : 8,
}
smp_options = { "enabled":True, "parameters": { "microbatches": 4, "placement_strategy": "spread", "pipeline": "interleaved", "optimize": "speed", "partitions": 4, "ddp": True, }
} distribution={ "smdistributed": {"modelparallel": smp_options}, "mpi": mpi_options
}

تستخدم مكتبة التوازي النموذجية داخليًا MPI ، لذلك لاستخدام نموذج التوازي ، يجب تمكين MPI باستخدام معلمة التوزيع. "processes_per_host"في الكود السابق يحدد عدد العمليات التي يجب أن يبدأ MPI على كل مضيف. نقترح هذه للتطوير والاختبار. في وقت الإنتاج ، يمكنك الاتصال بدعم AWS إذا طلبت سعة GPU كبيرة. لمزيد من المعلومات، راجع قم بتشغيل وظيفة تدريب موازية لنموذج SageMaker الموزع.

ما يلي سبيل المثال دفتر يحتوي على نصوص التعليمات البرمجية الكاملة.

بقعة الحالات

مع امتداد إطار عمل Hugging Face لـ SageMaker Python SDK ، يمكننا أيضًا الاستفادة من الإدارة الكاملة الأمازون الحوسبة المرنة السحابية (أمازون EC2) بقعة الحالات ووفر ما يصل إلى 90٪ من تكلفة التدريب لدينا.

ما لم تكتمل وظيفتك التدريبية بسرعة ، نوصيك باستخدامها نقاط التفتيش مع التدريب الموضعي المُدار ، لذلك تحتاج إلى تحديد checkpoint_s3_uri.

لاستخدام مثيلات Spot مع امتداد HuggingFace مقدر ، علينا ضبط use_spot_instances المعلمة إلى True وحدد الخاص بك max_wait و max_run زمن. لمزيد من المعلومات حول دورة حياة التدريب الموضعي المُدارة ، راجع تدريب بقعة مدارة في Amazon SageMaker.

فيما يلي مقتطف التعليمات البرمجية لإعداد مقدر تدريب موضعي:

from sagemaker.huggingface import HuggingFace # hyperparameters, which are passed into the training job
hyperparameters={'epochs': 1, 'train_batch_size': 32, 'model_name':'distilbert-base-uncased', 'output_dir':'/opt/ml/checkpoints' } # s3 uri where our checkpoints will be uploaded during training
job_name = "using-spot"
checkpoint_s3_uri = f's3://{sess.default_bucket()}/{job_name}/checkpoints' huggingface_estimator = HuggingFace(entry_point='train.py', source_dir='./scripts', instance_type='ml.p3.2xlarge', instance_count=1, base_job_name=job_name, checkpoint_s3_uri=checkpoint_s3_uri, use_spot_instances=True, max_wait=3600, # This should be equal to or greater than max_run in seconds' max_run=1000, # expected max run in seconds role=role, transformers_version='4.6', pytorch_version='1.7', py_version='py36', hyperparameters = hyperparameters)

ما يلي مفكرة يحتوي على نصوص التعليمات البرمجية الكاملة.

وفي الختام

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

في حالة استخدام توازي البيانات التي ناقشناها ، يستغرق تدريب نموذج على مثيل p3.2xlarge واحد (مع وحدة معالجة رسومات واحدة) 4 ساعات ويكلف حوالي 15 دولارًا في وقت كتابة هذا التقرير. باستخدام توازي البيانات ، يمكننا تدريب نفس النموذج في 24 دقيقة بتكلفة 28 دولارًا. على الرغم من أن التكلفة قد تضاعفت ، فقد أدى ذلك إلى تقليل وقت التدريب بمعامل 10. بالنسبة للموقف الذي تحتاج فيه إلى تدريب العديد من النماذج خلال فترة زمنية قصيرة ، يمكن لتوازي البيانات أن يتيح ذلك بتكلفة منخفضة نسبيًا. بالنسبة لحالة استخدام نموذج التوازي ، فإنها تضيف القدرة على تدريب النماذج التي لم يكن من الممكن تدريبها مسبقًا على الإطلاق بسبب قيود الأجهزة. تتيح كلتا الميزتين تدفقات عمل جديدة لممارسي تعلم الآلة ، ويمكن الوصول إليها بسهولة من خلال HuggingFace المقدر كجزء من SageMaker Python SDK. يتبع توزيع هذه النماذج على نقاط النهاية المستضافة نفس الإجراء المتبع في المقدرات الأخرى.

يتيح هذا التكامل ميزات أخرى تعد جزءًا من نظام SageMaker البيئي. على سبيل المثال ، يمكنك استخدام مثيلات Spot عن طريق إضافة علامة بسيطة إلى المقدر لتحسين التكلفة الإضافية. كخطوة تالية ، يمكنك العثور على ملف عرض التدريب و سبيل المثال دفتر.


حول المؤلف

ارشيس جوجلكار هو مهندس حلول شريك AI / ML في فريق التقنيات الناشئة. إنه مهتم بالتعلم العميق عالي الأداء والقابل للتطوير والحوسبة العلمية باستخدام اللبنات الأساسية في AWS. تتراوح خبراته السابقة من أبحاث الفيزياء الحاسوبية إلى تطوير منصة التعلم الآلي في الأوساط الأكاديمية والمختبرات الوطنية والشركات الناشئة. يقضي وقته بعيدًا عن الكمبيوتر في لعب كرة القدم مع الأصدقاء والعائلة.

جيمس يي هو مهندس حلول شريك كبير في الذكاء الاصطناعي / التعلم الآلي في فريق التقنيات الناشئة في Amazon Web Services. إنه متحمس للعمل مع عملاء المؤسسات والشركاء لتصميم ونشر وتوسيع نطاق تطبيقات AI / ML لاشتقاق قيم أعمالهم. خارج العمل ، يستمتع بلعب كرة القدم والسفر وقضاء الوقت مع أسرته.

فيليب شميد هو مهندس تعلم الآلة وقائد تقني في Hugging Face ، حيث يقود التعاون مع فريق Amazon SageMaker. إنه متحمس لإضفاء الطابع الديمقراطي على نماذج البرمجة اللغوية العصبية المتطورة وتحسينها وإنتاجها وتحسين سهولة الاستخدام في التعلم العميق.

سيلفان جوجر هو مهندس بحث في Hugging Face وأحد المشرفين الرئيسيين على مكتبة Transformers. يحب البرامج مفتوحة المصدر ويساعد المجتمع على استخدامها.

جيف بودير تصمم منتجات في Hugging Face ، مبتكر Transformers ، مكتبة ML مفتوحة المصدر الرائدة. كان جيف سابقًا أحد مؤسسي Stupeflix ، التي استحوذت عليها GoPro ، حيث شغل منصب مدير إدارة المنتجات وتسويق المنتجات وتطوير الأعمال وتطوير الشركات.

المصدر: https://aws.amazon.com/blogs/machine-learning/distributed-fine-tuning-of-a-bert-large-model-for-a-question-answering-task-using-hugging-face- محولات على أمازون ساجيماكر /

الطابع الزمني:

اكثر من AWS مدونة التعلم الآلي