اليوم، تغطي نماذج الذكاء الاصطناعي التوليدية مجموعة متنوعة من المهام بدءًا من تلخيص النص والأسئلة والأجوبة وإنشاء الصور والفيديو. لتحسين جودة المخرجات، يتم استخدام أساليب مثل التعلم القصير والهندسة السريعة وتوليد الاسترجاع المعزز (RAG) والضبط الدقيق. يتيح لك الضبط الدقيق ضبط نماذج الذكاء الاصطناعي التوليدية هذه لتحقيق أداء محسن في المهام الخاصة بالمجال الخاص بك.
مع Amazon SageMaker، يمكنك الآن تشغيل مهمة تدريب SageMaker ببساطة عن طريق إضافة تعليق توضيحي إلى كود Python الخاص بك باستخدام @remote Decorator. ال SageMaker بيثون SDK يقوم تلقائيًا بترجمة بيئة مساحة العمل الحالية الخاصة بك، وأي تعليمات برمجية ومجموعات بيانات مرتبطة بمعالجة البيانات، إلى مهمة تدريب SageMaker التي يتم تشغيلها على منصة التدريب. يتمتع هذا بميزة كتابة التعليمات البرمجية بطريقة أكثر طبيعية وموجهة للكائنات، ولا يزال يستخدم إمكانات SageMaker لتشغيل مهام التدريب على مجموعة بعيدة مع الحد الأدنى من التغييرات.
في هذا المنشور، نعرض كيفية ضبط أ فالكون-7ب نماذج الأساس (FM) باستخدام أداة الديكورremote من SageMaker Python SDK. ويستخدم أيضا الضبط الدقيق الفعال للمعلمات من Hugging Face مكتبة (PEFT) وتقنيات التكميم من خلال bitsandbytes لدعم الضبط الدقيق. يمكن أيضًا استخدام الكود المعروض في هذه المدونة لضبط أجهزة FM الأخرى، مثل اللاما-2 13 ب.
قد تواجه التمثيلات الدقيقة لهذا النموذج تحديات في وضعها في الذاكرة على نموذج واحد أو حتى عدة نماذج وحدات معالجة الرسومات (GPUs) - أو قد تحتاج إلى مثيل أكبر. وبالتالي، من أجل تحسين هذا النموذج دون زيادة التكلفة، نستخدم التقنية المعروفة باسم LLMs الكمية مع محولات منخفضة الرتبة (QLoRA). يعد QLoRA أسلوبًا فعالاً للضبط الدقيق يقلل من استخدام ذاكرة LLMs مع الحفاظ على أداء جيد جدًا.
مميزات استخدام @remote Decorator
قبل المضي قدمًا، دعنا نفهم كيف يعمل برنامج الديكور عن بعد على تحسين إنتاجية المطورين أثناء العمل مع SageMaker:
- يقوم @remote Decorator بتشغيل مهمة تدريبية مباشرةً باستخدام تعليمات برمجية python الأصلية، دون الاستدعاء الصريح لـ SageMaker Estimators وقنوات إدخال SageMaker
- حاجز منخفض أمام دخول نماذج تدريب المطورين على SageMaker.
- لا حاجة للتبديل بيئات التطوير المتكاملة (IDEs). استمر في كتابة التعليمات البرمجية حسب اختيارك لـ IDE واستدعاء وظائف تدريب SageMaker.
- لا حاجة للتعرف على الحاويات. استمر في توفير التبعيات في ملف
المتطلبات.txt
وتزويد ذلك لمصمم الديكور البعيد.
المتطلبات الأساسية
يلزم وجود حساب AWS مع دور AWS Identity and Access Management (AWS IAM) الذي يتمتع بأذونات لإدارة الموارد التي تم إنشاؤها كجزء من الحل. للحصول على التفاصيل، راجع إنشاء حساب AWS.
في هذا المنشور، نستخدم Amazon SageMaker Studio مع علم البيانات 3.0
صورة و أ ml.t3.medium
مثيل التشغيل السريع. ومع ذلك، يمكنك استخدام أي بيئة تطوير متكاملة (IDE) من اختيارك. تحتاج فقط إلى إعداد بيانات اعتماد واجهة سطر أوامر AWS (AWS CLI) بشكل صحيح. لمزيد من المعلومات، راجع تكوين AWS CLI.
من أجل الضبط الدقيق، تم استخدام Falcon-7B ml.g5.12xlarge
يتم استخدام المثال في هذا المنصب. يرجى التأكد من وجود سعة كافية لهذا المثيل في حساب AWS.
تحتاج إلى استنساخ هذا مستودع جيثب لتكرار الحل الموضح في هذا المنشور.
حل نظرة عامة
- قم بتثبيت المتطلبات المسبقة لضبط طراز Falcon-7B
- قم بإعداد تكوينات الديكور عن بعد
- المعالجة المسبقة لمجموعة البيانات التي تحتوي على الأسئلة الشائعة حول خدمات AWS
- ضبط Falcon-7B على الأسئلة الشائعة حول خدمات AWS
- اختبر نماذج الضبط الدقيق على نماذج الأسئلة المتعلقة بخدمات AWS
1. قم بتثبيت المتطلبات الأساسية لضبط طراز Falcon-7B
إطلاق دفتر الملاحظات falcon-7b-qlora-remote-decorator_qa.ipynb في SageMaker Studio عن طريق تحديد ملف Iبركه مثل علم البيانات
و نواة مثل بايثون 3
. قم بتثبيت جميع المكتبات المطلوبة المذكورة في ملف المتطلبات.txt
. يلزم تثبيت عدد قليل من المكتبات على مثيل الكمبيوتر المحمول نفسه. تنفيذ العمليات الأخرى اللازمة لمعالجة مجموعة البيانات وتفعيل مهمة تدريب SageMaker.
2. إعداد تكوينات الديكور عن بعد
قم بإنشاء ملف تكوين حيث يتم تحديد كافة التكوينات المتعلقة بمهمة تدريب Amazon SageMaker. تتم قراءة هذا الملف بواسطة @remote Decorator أثناء تشغيل مهمة التدريب. يحتوي هذا الملف على إعدادات مثل التبعيات وصورة التدريب والمثيل ودور التنفيذ الذي سيتم استخدامه لمهمة التدريب. للحصول على مرجع تفصيلي لجميع الإعدادات التي يدعمها ملف التكوين، راجع تكوين الإعدادات الافتراضية واستخدامها مع SageMaker Python SDK.
ليس من الضروري استخدام config.yaml
الملف للعمل مع @remote Decorator. هذه مجرد طريقة أنظف لتزويد جميع التكوينات لمصمم الديكور @remote. يؤدي هذا إلى إبقاء المعلمات ذات الصلة بـ SageMaker وAWS خارج التعليمات البرمجية بجهد لمرة واحدة لإعداد ملف التكوين المستخدم عبر أعضاء الفريق. يمكن أيضًا توفير جميع التكوينات مباشرةً في وسيطات الديكور، لكن هذا يقلل من إمكانية قراءة التغييرات وقابليتها للصيانة على المدى الطويل. كما يمكن للمسؤول إنشاء ملف التكوين ومشاركته مع كافة المستخدمين في البيئة.
المعالجة المسبقة لمجموعة البيانات التي تحتوي على الأسئلة الشائعة حول خدمات AWS
الخطوة التالية هي تحميل مجموعة البيانات ومعالجتها مسبقًا لجعلها جاهزة لمهمة التدريب. أولاً، دعونا نلقي نظرة على مجموعة البيانات:
يعرض الأسئلة الشائعة لإحدى خدمات AWS. بالإضافة إلى QLoRA، bitsanbytes
يستخدم للتحويل إلى دقة 4 بت لتكميم LLM المجمدة إلى 4 بت وإرفاقها لورا محولات عليه.
قم بإنشاء قالب مطالبة لتحويل كل نموذج للأسئلة الشائعة إلى تنسيق مطالبة:
الخطوة التالية هي تحويل المدخلات (النص) إلى معرفات الرمز المميز. يتم ذلك بواسطة أ معانقة محولات الوجه الرمزية.
الآن ببساطة استخدم Prompt_template
وظيفة لتحويل جميع الأسئلة الشائعة إلى تنسيق سريع وإعداد مجموعات بيانات التدريب والاختبار.
4. قم بضبط Falcon-7B على الأسئلة الشائعة حول خدمات AWS
يمكنك الآن إعداد البرنامج النصي للتدريب وتحديد وظيفة التدريب Train_fn
وقم بوضع @remote Decorator على الوظيفة.
تقوم وظيفة التدريب بما يلي:
- يرمز ويقطع مجموعة البيانات
- يثبت
BitsAndBytesConfig
، والذي يحدد أنه يجب تحميل النموذج في 4 بت ولكن أثناء الحساب يجب أن يتم تحويله إلىbfloat16
. - قم بتحميل النموذج
- ابحث عن الوحدات المستهدفة وقم بتحديث المصفوفات الضرورية باستخدام طريقة الأداة المساعدة
find_all_linear_names
- يخلق لورا التكوينات التي تحدد تصنيف مصفوفات التحديث (
س
) ، عامل التحجيم (lora_alpha
)، وحدات تطبيق مصفوفات تحديث LoRA (target_modules
) ، احتمالية التسرب لطبقات لورا(lora_dropout
),نوع المهمة
، إلخ. - ابدأ التدريب والتقييم
واستدعاء قطار_fn()
سيتم تشغيل مهمة الضبط في مجموعة تدريب Amazon SageMaker. انتظر حتى تنتهي مهمة الضبط.
5. اختبر نماذج الضبط الدقيق على نماذج من الأسئلة المتعلقة بخدمات AWS
والآن حان الوقت لإجراء بعض الاختبارات على النموذج. أولا نقوم بتحميل النموذج:
الآن قم بتحميل نموذج سؤال من مجموعة بيانات التدريب لرؤية الإجابة الأصلية ثم اطرح نفس السؤال من النموذج المضبوط لرؤية الإجابة بالمقارنة.
فيما يلي نموذج لسؤال من مجموعة التدريب والإجابة الأصلية:
الآن، يتم طرح نفس السؤال على طراز Falcon-7B الذي تم ضبطه:
بهذا ينتهي تنفيذ الضبط الدقيق لـ Falcon-7B على مجموعة بيانات الأسئلة الشائعة لخدمات AWS باستخدام @remote Decorator من Amazon SageMaker Python SDK.
تنظيف
أكمل الخطوات التالية لتنظيف مواردك:
- قم بإيقاف تشغيل مثيلات Amazon SageMaker Studio لتجنب تكبد تكاليف إضافية.
- قم بتنظيف دليل Amazon Elastic File System (Amazon EFS) الخاص بك عن طريق مسح دليل ذاكرة التخزين المؤقت Hugging Face:
خاتمة
في هذا المنشور، أظهرنا لك كيفية استخدام إمكانات @remote Decorator بشكل فعال لضبط نموذج Falcon-7B باستخدام QLoRA، Hugging Face PEFT مع bitsandbtyes
دون تطبيق تغييرات كبيرة في دفتر التدريب، واستخدمت إمكانات Amazon SageMaker لتشغيل مهام التدريب على مجموعة بعيدة.
كل التعليمات البرمجية الموضحة كجزء من هذا المنشور لضبط Falcon-7B متاحة في مستودع جيثب. يحتوي المستودع أيضًا على دفتر ملاحظات يوضح كيفية ضبط Llama-13B.
كخطوة تالية، نشجعك على التحقق من وظيفة @remote Decorator و واجهة برمجة تطبيقات بايثون SDK واستخدامها في اختيارك للبيئة وIDE. تتوفر أمثلة إضافية في أمثلة الأمازون-sagemaker مستودع لتبدأ بسرعة. يمكنك أيضًا الاطلاع على المشاركات التالية:
عن المؤلفين
برونو بيستون هو مهندس حلول متخصص في الذكاء الاصطناعي/تعلم الآلة لشركة AWS ومقره في ميلانو. إنه يعمل مع كبار العملاء لمساعدتهم على فهم احتياجاتهم التقنية بعمق وتصميم حلول الذكاء الاصطناعي والتعلم الآلي التي تحقق أفضل استفادة من AWS Cloud ومكدس Amazon Machine Learning. تشمل خبرته: التعلم الآلي الشامل، وتصنيع التعلم الآلي، والذكاء الاصطناعي التوليدي. يستمتع بقضاء الوقت مع أصدقائه واستكشاف أماكن جديدة، بالإضافة إلى السفر إلى وجهات جديدة.
فيكيش باندي هو مهندس حلول متخصص في التعلم الآلي في AWS، حيث يساعد العملاء من الصناعات المالية على تصميم وبناء الحلول على الذكاء الاصطناعي وتعلم الآلة. خارج العمل، يستمتع فيكيش بتجربة المأكولات المختلفة وممارسة الرياضة في الهواء الطلق.
اترك رد