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

هام

هذه الميزة موجودة في المعاينة العامة في المناطق التالية: centralusوeastus2eastusnorthcentralus.westus

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

المتطلبات

راجع المتطلبات.

إنشاء تشغيل تدريبي

لإنشاء عمليات تشغيل التدريب برمجيا، استخدم الدالة create() . تقوم هذه الدالة بتدريب نموذج على مجموعة البيانات المتوفرة وتحويل نقطة التحقق Composer النهائية إلى نقطة تحقق منسقة في Hugging Face للاستدلال.

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

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

يتم حفظ النموذج من التشغيل المكتمل، وليس إصدار النموذج المستنسخ في كتالوج Unity، ونقاط تفتيش Composer و Hugging Face في MLflow. يمكن استخدام نقاط التحقق Composer لمهام الضبط الدقيق المستمرة.

راجع تكوين تشغيل تدريب للحصول على تفاصيل حول وسيطات الدالة create() .

from databricks.model_training import foundation_model as fm

run = fm.create(
  model='meta-llama/Llama-2-7b-chat-hf',
  train_data_path='dbfs:/Volumes/main/mydirectory/ift/train.jsonl', # UC Volume with JSONL formatted data
  # Public HF dataset is also supported
  # train_data_path='mosaicml/dolly_hhrlhf/train'
  register_to='main.mydirectory', # UC catalog and schema to register the model to
)

تكوين تشغيل تدريب

يلخص الجدول التالي معلمات الدالة create() .

المعلمة‬ المطلوب نوع ‏‏الوصف
model × شارع اسم النموذج المراد استخدامه. راجع النماذج المدعومة.
train_data_path × شارع موقع بيانات التدريب الخاصة بك. يمكن أن يكون هذا موقعا في كتالوج Unity (<catalog>.<schema>.<table> أو )، أو dbfs:/Volumes/<catalog>/<schema>/<volume>/<dataset>.jsonlمجموعة بيانات HuggingFace.

بالنسبة إلى INSTRUCTION_FINETUNE، يجب تنسيق البيانات مع كل صف يحتوي على prompt حقل و response .

بالنسبة إلى CONTINUED_PRETRAIN، هذا مجلد من الملفات .txt . راجع إعداد البيانات ل Mosaic الذكاء الاصطناعي Model Training لتنسيقات البيانات المقبولة وحجم البيانات الموصى به لتدريب النموذج لتوصيات حجم البيانات.
register_to × شارع كتالوج ومخطط كتالوج Unity (<catalog>.<schema> أو <catalog>.<schema>.<custom-name>) حيث يتم تسجيل النموذج بعد التدريب لسهولة النشر. إذا custom-name لم يتم توفيره، تعيين هذا افتراضيا إلى اسم التشغيل.
data_prep_cluster_id شارع معرف نظام المجموعة للمجموعة لاستخدامه لمعالجة بيانات Spark. هذا مطلوب لمهام التدريب الخاضعة للإشراف حيث تكون بيانات التدريب في جدول Delta. للحصول على معلومات حول كيفية العثور على معرف نظام المجموعة، راجع الحصول على معرف نظام المجموعة.
experiment_path شارع المسار إلى تجربة MLflow حيث يتم حفظ إخراج تشغيل التدريب (المقاييس ونقاط التحقق). الإعدادات الافتراضية لاسم التشغيل داخل مساحة العمل الشخصية للمستخدم (أي /Users/<username>/<run_name>).
task_type شارع نوع المهمة التي سيتم تشغيلها. يمكن أن يكون INSTRUCTION_FINETUNE (افتراضيا) أو CHAT_COMPLETIONأو CONTINUED_PRETRAIN.
eval_data_path شارع الموقع البعيد لبيانات التقييم (إن وجدت). يجب أن تتبع نفس تنسيق train_data_path.
eval_prompts List[str] قائمة بسلاسل المطالبة لإنشاء استجابات أثناء التقييم. الافتراضي هو None (لا تنشئ مطالبات). يتم تسجيل النتائج إلى التجربة في كل مرة يتم فيها فحص النموذج. تحدث الأجيال في كل نقطة تحقق نموذج مع معلمات الجيل التالية: max_new_tokens: 100، temperature: 1، top_k: 50، top_p: 0.95، . do_sample: true
custom_weights_path شارع الموقع البعيد لنقطة فحص نموذج مخصص للتدريب. الافتراضي هو None، ما يعني أن التشغيل يبدأ من الأوزان الأصلية المدربة مسبقا للنموذج المختار. إذا تم توفير الأوزان المخصصة، يتم استخدام هذه الأوزان بدلا من الأوزان الأصلية المدربة مسبقا للنموذج. يجب أن تكون هذه الأوزان نقطة تحقق Composer ويجب أن تتطابق مع بنية model المحدد. راجع البناء على أوزان النموذج المخصص
training_duration شارع المدة الإجمالية لتشغيلك. الافتراضي هو فترة واحدة أو 1ep. يمكن تحديدها في فترات (10ep) أو رموز مميزة (1000000tok).
learning_rate شارع معدل التعلم للتدريب النموذجي. بالنسبة لجميع النماذج بخلاف Llama 3.1 405B Instruct، يكون معدل التعلم الافتراضي هو 5e-7. بالنسبة إلى Llama 3.1 405B Instruct، يكون معدل التعلم الافتراضي هو 1.0e-5. المحسن هو فصلLionW مع بيتا من 0.99 و 0.95 وعدم تسوس الوزن. مجدول معدل التعلم هو LinearWithWarmupSchedule مع تجهيز بنسبة 2٪ من إجمالي مدة التدريب ومضاعف معدل التعلم النهائي من 0.
context_length شارع الحد الأقصى لطول التسلسل لعينة بيانات. يتم استخدام هذا لاقتطاع أي بيانات طويلة جدا ولحزم تسلسلات أقصر معا لتحقيق الكفاءة.

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

بناء على أوزان النموذج المخصص

يدعم تدريب نموذج الفسيفساء الذكاء الاصطناعي إضافة أوزان مخصصة باستخدام المعلمة custom_weights_path الاختيارية لتدريب نموذج وتخصيصه.

للبدء، قم بتعيين custom_weights_path إلى مسار نقطة التحقق Composer من تشغيل تدريب سابق. يمكن العثور على مسارات نقطة التحقق في علامة التبويب Artifacts لتشغيل MLflow السابق. يتوافق اسم مجلد نقطة التحقق مع دفعة وعصر لقطة معينة، مثل ep29-ba30/.

علامة التبويب Artifacts لتشغيل MLflow سابق

  • لتوفير أحدث نقطة تحقق من تشغيل سابق، قم بتعيين custom_weights_path إلى نقطة التحقق Composer. على سبيل المثال، custom_weights_path=dbfs:/databricks/mlflow-tracking/<experiment_id>/<run_id>/artifacts/<run_name>/checkpoints/latest-sharded-rank0.symlink
  • لتوفير نقطة تحقق سابقة، قم بتعيين custom_weights_path إلى مسار إلى مجلد يحتوي على .distcp ملفات مطابقة لنقطة التحقق المطلوبة، مثل custom_weights_path=dbfs:/databricks/mlflow-tracking/<experiment_id>/<run_id>/artifacts/<run_name>/checkpoints/ep#-ba#.

بعد ذلك، قم بتحديث المعلمة model لمطابقة النموذج الأساسي لنقطة التحقق التي مررتها إلى custom_weights_path.

في المثال ift-meta-llama-3-1-70b-instruct-ohugkq التالي هو تشغيل سابق أن غرامة tunes meta-llama/Meta-Llama-3.1-70B. لضبط أحدث نقطة تحقق من ift-meta-llama-3-1-70b-instruct-ohugkq، قم بتعيين model المتغيرين و custom_weights_path على النحو التالي:

from databricks.model_training import foundation_model as fm

run = fm.create(
model = 'meta-llama/Meta-Llama-3.1-70B'
custom_weights_path = 'dbfs:/databricks/mlflow-tracking/2948323364469837/d4cd1fcac71b4fb4ae42878cb81d8def/artifacts/ift-meta-llama-3-1-70b-instruct-ohugkq/checkpoints/latest-sharded-rank0.symlink'
... ## other parameters for your fine-tuning run

)

راجع تكوين تشغيل تدريب لتكوين معلمات أخرى في تشغيل الضبط الدقيق.

الحصول على معرف نظام المجموعة

لاسترداد معرف نظام المجموعة:

  1. في شريط التنقل الأيسر لمساحة عمل Databricks، انقر فوق Compute.

  2. في الجدول، انقر فوق اسم نظام المجموعة.

  3. انقر الزر في الزاوية العلوية اليسرى وحدد عرض JSON من القائمة المنسدلة.

  4. يظهر ملف Cluster JSON. انسخ معرف نظام المجموعة، وهو السطر الأول في الملف.

    معرف نظام المجموعة

الحصول على حالة التشغيل

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

مثال على الإخراج من get_events():

استخدام واجهة برمجة التطبيقات للحصول على حالة التشغيل

نموذج تفاصيل التشغيل في صفحة التجربة:

الحصول على حالة التشغيل من واجهة مستخدم التجارب

الخطوات التالية

بعد اكتمال تشغيل التدريب الخاص بك، يمكنك مراجعة المقاييس في MLflow ونشر نموذجك للاستدلال. راجع الخطوات من 5 إلى 7 من البرنامج التعليمي: إنشاء وتوزيع فسيفساء الذكاء الاصطناعي تشغيل تدريب النموذج.

راجع دفتر الملاحظات التجريبي للضبط الدقيق للتعليمات: التعرف على الكيان المسمى للحصول على مثال لضبط التعليمات الذي يستعرض إعداد البيانات وتكوين تشغيل التدريب الدقيق ونشره.

مثال دفتر الملاحظات

يعرض دفتر الملاحظات التالي مثالا على كيفية إنشاء بيانات اصطناعية باستخدام نموذج التعليمات Meta Llama 3.1 405B واستخدام تلك البيانات لضبط نموذج:

إنشاء بيانات اصطناعية باستخدام دفتر ملاحظات Llama 3.1 405B Instruct

الحصول على دفتر الملاحظات

الموارد الإضافية