نقل التعلم لنماذج تصنيف نص TensorFlow في Amazon SageMaker

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

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

يوفر تصنيف النص باستخدام TensorFlow في SageMaker التعلم النقل على العديد من النماذج المدربة مسبقًا والمتوفرة في TensorFlow Hub. وفقًا لعدد تسميات الفصل في بيانات التدريب ، يتم إرفاق طبقة تصنيف بنموذج محور TensorFlow الذي تم تدريبه مسبقًا. تتكون طبقة التصنيف من طبقة متسربة وطبقة كثيفة ، وطبقة متصلة بالكامل ، مع منظم 2-معياري ، والذي يتم تهيئته باستخدام أوزان عشوائية. يحتوي تدريب النموذج على معلمات فائقة لمعدل تسرب طبقة التسرب ، وعامل تنظيم L2 للطبقة الكثيفة. بعد ذلك ، يمكن ضبط الشبكة بالكامل ، بما في ذلك النموذج المدرب مسبقًا ، أو طبقة التصنيف العليا فقط على بيانات التدريب الجديدة. في وضع تعلم النقل هذا ، يمكن تحقيق التدريب حتى مع مجموعة بيانات أصغر.

كيفية استخدام خوارزمية تصنيف نص TensorFlow الجديدة

يصف هذا القسم كيفية استخدام خوارزمية تصنيف نص TensorFlow مع ملف SageMaker بيثون SDK. للحصول على معلومات حول كيفية استخدامه من Studio UI ، راجع سيج ميكر جومب ستارت.

تدعم الخوارزمية نقل التعلم للنماذج المدربة مسبقًا المدرجة في نماذج Tensorflow. يتم تحديد كل نموذج من قبل فريد model_id. يوضح الكود التالي كيفية ضبط نموذج BERT الأساسي المحدد بواسطة model_id tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2 على مجموعة بيانات تدريب مخصصة. لكل model_id، لإطلاق وظيفة تدريب SageMaker من خلال مقدر فئة SageMaker Python SDK ، يجب عليك إحضار URI لصورة Docker ، و URI للبرنامج النصي للتدريب ، و URI للنموذج المدرّب مسبقًا من خلال وظائف الأداة المساعدة المتوفرة في SageMaker. يحتوي البرنامج النصي للتدريب URI على جميع الكودات اللازمة لمعالجة البيانات ، وتحميل النموذج المدرَّب مسبقًا ، والتدريب النموذجي ، وحفظ النموذج المدرَّب للاستدلال. يحتوي نموذج URI المدربين مسبقًا على تعريف بنية النموذج المدربين مسبقًا ومعلمات النموذج. نموذج URI المدرب مسبقًا خاص بالنموذج المعين. تم تنزيل كرات القطران النموذجية المدربة مسبقًا من TensorFlow وحفظها مع توقيع النموذج المناسب بتنسيق خدمة تخزين أمازون البسيطة (Amazon S3) ، بحيث تعمل مهمة التدريب بمعزل عن الشبكة. انظر الكود التالي:

from sagemaker import image_uris, model_uris, script_urisfrom sagemaker.estimator import Estimator

model_id, model_version = "tensorflow-tc-bert-en-uncased-L-12-H-768-A-12-2", "*"
training_instance_type = "ml.p3.2xlarge"
# Retrieve the docker image
train_image_uri = image_uris.retrieve(model_id=model_id,model_version=model_version,image_scope="training",instance_type=training_instance_type,region=None,framework=None)# Retrieve the training script
train_source_uri = script_uris.retrieve(model_id=model_id, model_version=model_version, script_scope="training")# Retrieve the pre-trained model tarball for transfer learning
train_model_uri = model_uris.retrieve(model_id=model_id, model_version=model_version, model_scope="training")

output_bucket = sess.default_bucket()
output_prefix = "jumpstart-example-tensorflow-tc-training"
s3_output_location = f"s3://{output_bucket}/{output_prefix}/output"

باستخدام هذه الأدوات التدريبية الخاصة بالنموذج ، يمكنك إنشاء كائن من مقدر صف دراسي:

# Create SageMaker Estimator instance
tf_tc_estimator = Estimator(
    role=aws_role,
    image_uri=train_image_uri,
    source_dir=train_source_uri,
    model_uri=train_model_uri,
    entry_point="transfer_learning.py",
    instance_count=1,
    instance_type=training_instance_type,
    max_run=360000,
    hyperparameters=hyperparameters,
    output_path=s3_output_location,)

بعد ذلك ، لنقل التعلم على مجموعة البيانات المخصصة الخاصة بك ، قد تحتاج إلى تغيير القيم الافتراضية لمعلمات التدريب التشعبية المدرجة في معلمات هايبر. يمكنك إحضار قاموس Python لهذه المعلمات التشعبية بقيمها الافتراضية عن طريق الاتصال hyperparameters.retrieve_default، قم بتحديثها حسب الحاجة ، ثم قم بتمريرها إلى فئة المقدر. لاحظ أن القيم الافتراضية لبعض المعلمات التشعبية تختلف باختلاف الطرز. بالنسبة للنماذج الكبيرة ، يكون حجم الدُفعة الافتراضي أصغر ويكون حجم train_only_top_layer تم تعيين المعلمة التشعبية على True. المعلمة الفائقة Train_only_top_layer يحدد معلمات النموذج التي تتغير أثناء عملية الضبط الدقيق. إذا train_only_top_layer is True، ثم تتغير معلمات طبقات التصنيف وتبقى باقي المعلمات ثابتة أثناء عملية الضبط الدقيق. من ناحية أخرى ، إذا train_only_top_layer is False، ثم يتم ضبط جميع معلمات النموذج بدقة. انظر الكود التالي:

from sagemaker import hyperparameters# Retrieve the default hyper-parameters for fine-tuning the model
hyperparameters = hyperparameters.retrieve_default(model_id=model_id, model_version=model_version)# [Optional] Override default hyperparameters with custom values
hyperparameters["epochs"] = "5"

نحن نقدم SST2 كمجموعة بيانات افتراضية لضبط النماذج. تحتوي مجموعة البيانات على مراجعات أفلام إيجابية وسلبية. تم تنزيله من TensorFlow مع ترخيص Apache 2.0. يوفر الكود التالي مجموعة بيانات التدريب الافتراضية المستضافة في حاويات S3.

# Sample training data is available in this bucket
training_data_bucket = f"jumpstart-cache-prod-{aws_region}"
training_data_prefix = "training-datasets/SST2/"

training_dataset_s3_path = f"s3://{training_data_bucket}/{training_data_prefix}"

أخيرًا ، لبدء تشغيل وظيفة تدريب SageMaker لضبط النموذج بدقة ، اتصل بـ .fit على كائن فئة المقدر ، أثناء اجتياز موقع Amazon S3 لمجموعة بيانات التدريب:

# Launch a SageMaker Training job by passing s3 path of the training data
tf_od_estimator.fit({"training": training_dataset_s3_path}, logs=True)

لمزيد من المعلومات حول كيفية استخدام خوارزمية تصنيف نص SageMaker TensorFlow الجديدة لنقل التعلم على مجموعة بيانات مخصصة ، ونشر النموذج الدقيق ، وتشغيل الاستدلال على النموذج المنشور ، ونشر النموذج المدرَّب مسبقًا كما هو دون الضبط الدقيق الأول في مجموعة بيانات مخصصة ، راجع مثال دفتر الملاحظات التالي: مقدمة إلى JumpStart - تصنيف النص.

واجهة الإدخال / الإخراج لخوارزمية تصنيف نص TensorFlow

يمكنك ضبط كل من النماذج المدربة مسبقًا المدرجة في نماذج TensorFlow إلى أي مجموعة بيانات معينة تتكون من جمل نصية بأي عدد من الفئات. يقوم النموذج المدرب مسبقًا بإرفاق طبقة تصنيف بنموذج Text Embedding وتهيئة معلمات الطبقة إلى قيم عشوائية. يتم تحديد بُعد الإخراج لطبقة التصنيف بناءً على عدد الفئات المكتشفة في بيانات الإدخال. الهدف هو تقليل أخطاء التصنيف في بيانات الإدخال. يمكن نشر النموذج الذي تم إرجاعه عن طريق الضبط الدقيق للاستدلال.

تصف الإرشادات التالية كيفية تنسيق بيانات التدريب لإدخالها في النموذج:

  • الإدخال - دليل يحتوي على ملف data.csv. يجب أن يحتوي كل صف من العمود الأول على تسميات فئة عدد صحيح بين 0 وعدد الفئات. يجب أن يحتوي كل صف من العمود الثاني على البيانات النصية المقابلة.
  • الإخراج - نموذج دقيق يمكن نشره للاستدلال أو مزيد من التدريب باستخدام التدريب الإضافي. يتم حفظ فهارس فئة تعيين الملفات لتسميات الفئات جنبًا إلى جنب مع النماذج.

فيما يلي مثال لملف CSV للإدخال. لاحظ أن الملف يجب ألا يحتوي على أي رأس. يجب استضافة الملف في حاوية S3 بمسار مشابه لما يلي: s3://bucket_name/input_directory/. لاحظ أن الزائدة / هو مطلوب.

|0 |hide new secretions from the parental units|
|0 |contains no wit , only labored gags|
|1 |that loves its characters and communicates something rather beautiful about human nature|
|...|...|

الاستدلال باستخدام خوارزمية تصنيف نص TensorFlow

يمكن استضافة النماذج التي تم إنشاؤها للاستدلال ودعم النص مثل application/x-text نوع المحتوى. يحتوي الإخراج على قيم الاحتمالات ، وتسميات الفئات لجميع الفئات ، والتسمية المتوقعة المقابلة لفهرس الفئة مع أعلى احتمال مشفر بتنسيق JSON. يعالج النموذج سلسلة واحدة لكل طلب ويخرج سطرًا واحدًا فقط. فيما يلي مثال على استجابة بتنسيق JSON:

accept: application/json;verbose
{"probabilities": [prob_0, prob_1, prob_2, ...],
 "labels": [label_0, label_1, label_2, ...],
 "predicted_label": predicted_label}

If accept ومن المقرر أن application/json، ثم يُخرج النموذج الاحتمالات فقط. لمزيد من التفاصيل حول التدريب والاستدلال ، راجع نموذج دفتر الملاحظات مقدمة إلى مقدمة إلى JumpStart - تصنيف النص.

استخدم خوارزميات SageMaker المضمنة من خلال JumpStart UI

يمكنك أيضًا استخدام تصنيف نص SageMaker TensorFlow وأي من الخوارزميات المضمنة الأخرى بنقرات قليلة عبر JumpStart UI. JumpStart هي إحدى ميزات SageMaker التي تتيح لك تدريب ونشر خوارزميات مدمجة ونماذج مدربة مسبقًا من أطر عمل تعلم متعددة ومحاور نموذجية من خلال واجهة رسومية. علاوة على ذلك ، فإنه يتيح لك نشر حلول ML كاملة تجمع بين نماذج ML والعديد من خدمات AWS الأخرى لحل حالة الاستخدام المستهدفة.

فيما يلي مقطعا فيديو يوضحان كيف يمكنك تكرار نفس عملية الضبط والنشر التي مررنا بها للتو ببضع نقرات عبر واجهة مستخدم JumpStart.

صقل النموذج المدرَّب مسبقًا

فيما يلي عملية ضبط نفس نموذج تصنيف النص الذي تم تدريبه مسبقًا.

نشر النموذج النهائي

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

وفي الختام

في هذا المنشور ، أعلنا عن إطلاق الخوارزمية المدمجة لتصنيف نص SageMaker TensorFlow. لقد قدمنا ​​مثالاً على كود لكيفية القيام بنقل التعلم على مجموعة بيانات مخصصة باستخدام نموذج مدرب مسبقًا من مركز TensorFlow باستخدام هذه الخوارزمية.

لمزيد من المعلومات، راجع توثيق والمفكرة النموذجية مقدمة إلى JumpStart - تصنيف النص.


عن المؤلفين

نقل التعلم لنماذج تصنيف النص TensorFlow في Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.الدكتور فيفيك مادان هو عالم تطبيقي مع فريق Amazon SageMaker JumpStart. حصل على الدكتوراه من جامعة إلينوي في Urbana-Champaign وكان باحثًا بعد الدكتوراه في Georgia Tech. وهو باحث نشط في التعلم الآلي وتصميم الخوارزمية وقد نشر أوراقًا علمية في مؤتمرات EMNLP و ICLR و COLT و FOCS و SODA.

نقل التعلم لنماذج تصنيف النص TensorFlow في Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.جواو مورا هو مهندس حلول متخصص في الذكاء الاصطناعي / التعلم الآلي في Amazon Web Services. يركز في الغالب على حالات استخدام البرمجة اللغوية العصبية ومساعدة العملاء على تحسين تدريب نموذج التعلم العميق ونشره. وهو أيضًا مؤيد نشط لحلول ML ذات التعليمات البرمجية المنخفضة والأجهزة المتخصصة في ML.

نقل التعلم لنماذج تصنيف النص TensorFlow في Amazon SageMaker PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.د. أشيش خيتان هو عالم تطبيقي أقدم مع خوارزميات Amazon SageMaker المضمنة ويساعد في تطوير خوارزميات التعلم الآلي. حصل على درجة الدكتوراه من جامعة إلينوي في أوربانا شامبين. وهو باحث نشط في التعلم الآلي والاستدلال الإحصائي وقد نشر العديد من الأوراق البحثية في مؤتمرات NeurIPS و ICML و ICLR و JMLR و ACL و EMNLP.

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

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