في هذا المنشور، نعرض الضبط الدقيق لنموذج Llama 2 باستخدام طريقة الضبط الدقيق الفعال للمعلمات (PEFT) ونشر النموذج المضبوط بدقة على AWS الاستدلال 2. نحن نستخدم ال AWS نيورون مجموعة تطوير البرامج (SDK) للوصول إلى جهاز AWS Inferentia2 والاستفادة من أدائه العالي. نستخدم بعد ذلك حاوية استدلال نموذجية كبيرة مدعومة بـ مكتبة جافا العميقة (DJLServing) كحل تقديم نموذجي لدينا.
حل نظرة عامة
ضبط Llama2 بكفاءة باستخدام QLoRa
عائلة Llama 2 من نماذج اللغات الكبيرة (LLMs) عبارة عن مجموعة من نماذج النصوص التوليدية المدربة مسبقًا والمضبوطة بدقة والتي يتراوح حجمها من 7 مليارات إلى 70 مليار معلمة. تم تدريب Llama 2 مسبقًا على 2 تريليون رمز من البيانات من المصادر المتاحة للعامة. يختار عملاء AWS أحيانًا ضبط نماذج Llama 2 باستخدام بيانات العملاء الخاصة لتحقيق أداء أفضل للمهام النهائية. ومع ذلك، نظرًا للعدد الكبير من المعلمات في طراز Llama 2، قد يكون الضبط الدقيق الكامل مكلفًا للغاية ويستغرق وقتًا طويلاً. يمكن لنهج الضبط الدقيق ذو كفاءة المعلمات (PEFT) معالجة هذه المشكلة عن طريق ضبط عدد صغير فقط من معلمات النموذج الإضافية أثناء تجميد معظم معلمات النموذج المُدرب مسبقًا. لمزيد من المعلومات حول PEFT، يمكن للمرء قراءة هذا بريد.. اعلاني. في هذه التدوينة نستخدم كلورا لضبط نموذج Llama 2 7B.
انشر نموذجًا مضبوطًا على Inf2 باستخدام Amazon SageMaker
AWS Inferentia2 عبارة عن مسرع التعلم الآلي (ML) المصمم خصيصًا لأحمال عمل الاستدلال ويقدم أداءً عاليًا بتكلفة أقل بنسبة تصل إلى 40% لأعباء عمل الذكاء الاصطناعي وLLM التوليدية مقارنة بمثيلات الاستدلال المحسنة الأخرى على AWS. في هذا المنشور، نستخدم Amazon Elastic Compute Cloud (Amazon EC2) مثيل Inf2، الذي يتميز بـ AWS Inferentia2، الجيل الثاني من مسرعات Inferentia2، يحتوي كل منها على اثنين NeuronCores- v2 تحديث. كل NeuronCore-v2 عبارة عن وحدة حسابية مستقلة وغير متجانسة، مع أربعة محركات رئيسية: محركات Tensor وVector وScalar وGPSIMD. وهو يشتمل على ذاكرة SRAM مُدارة بواسطة برنامج على الشريحة لزيادة موضع البيانات إلى الحد الأقصى. وبما أنه تم نشر العديد من المدونات على Inf2، فيمكن للقارئ الرجوع إلى هذا بريد.. اعلاني ولنا توثيق لمزيد من المعلومات حول Inf2.
لنشر النماذج على Inf2، نحتاج إلى AWS Neuron SDK كطبقة برمجية تعمل فوق أجهزة Inf2. AWS Neuron هي حزمة SDK المستخدمة لتشغيل أعباء عمل التعلم العميق على AWS Inferentia و تدريب AWS الأمثلة القائمة. إنه يمكّن دورة حياة تطوير ML من طرف إلى طرف لبناء نماذج جديدة ، وتدريب هذه النماذج وتحسينها ، ونشرها للإنتاج. تتضمن AWS Neuron تعلمًا عميقًا مترجم, وقت التشغيلو أدوات التي تم دمجها أصلاً مع أطر العمل الشائعة مثل TensorFlow وPyTorch. في هذه المدونة سوف نستخدم transformers-neuronx
، وهو جزء من AWS Neuron SDK لسير عمل استنتاج وحدة فك ترميز المحولات. هو - هي وتدعم مجموعة من النماذج المشهورة، بما في ذلك Llama 2.
لنشر النماذج على الأمازون SageMaker، نستخدم عادةً حاوية تحتوي على المكتبات المطلوبة، مثل Neuron SDK و transformers-neuronx
وكذلك عنصر تقديم النموذج. يؤكد أمازون SageMaker حاويات التعلم العميق (DLCs) مع مكتبات شعبية مفتوحة المصدر لاستضافة النماذج الكبيرة. في هذه التدوينة نستخدم حاوية استدلال نموذجية كبيرة للخلايا العصبية. تحتوي هذه الحاوية على كل ما تحتاجه لنشر نموذج Llama 2 الخاص بك على Inf2. للحصول على موارد لبدء استخدام LMI على Amazon SageMaker، يرجى الرجوع إلى العديد من منشوراتنا الحالية (بلوق 1, بلوق 2, بلوق 3) في هذا الموضوع. باختصار، يمكنك تشغيل الحاوية دون كتابة أي كود إضافي. يمكنك استخدام ال المعالج الافتراضي للحصول على تجربة مستخدم سلسة وتمرير أحد أسماء النماذج المدعومة وأي معلمات قابلة للتكوين لوقت التحميل. يقوم هذا بتجميع وتقديم LLM على مثيل Inf2. على سبيل المثال، للنشر OpenAssistant/llama2-13b-orca-8k-3319
، يمكنك توفير تكوين المتابعة (مثل serving.properties
ملف). في serving.properties
، نحدد نوع النموذج كـ llama2-13b-orca-8k-3319
، حجم الدفعة هو 4، ودرجة الموازية الموتر هي 2، وهذا كل شيء. للحصول على القائمة الكاملة للمعلمات القابلة للتكوين، راجع جميع خيارات تكوين DJL.
وبدلاً من ذلك، يمكنك كتابة ملف معالج النموذج الخاص بك كما هو موضح في هذا مثال، ولكن هذا يتطلب تنفيذ أساليب تحميل النموذج والاستدلال لتكون بمثابة جسر بين واجهات برمجة تطبيقات DJLServing.
المتطلبات الأساسية المسبقة
توضح القائمة التالية المتطلبات الأساسية لنشر النموذج الموضح في منشور المدونة هذا. يمكنك تنفيذ أي منهما من وحدة تحكم إدارة AWS أو باستخدام أحدث إصدار من واجهة سطر الأوامر AWS (AWS CLI).
تجول
في القسم التالي، سنتعرف على الكود في جزأين:
- الضبط الدقيق لنموذج Llama2-7b، وتحميل عناصر النموذج إلى موقع حاوية Amazon S3 المحدد.
- انشر النموذج في Inferentia2 باستخدام حاوية تقديم DJL المستضافة في Amazon SageMaker.
يمكن العثور على نماذج التعليمات البرمجية الكاملة مع التعليمات في هذا GitHub جيثب: مستودع.
الجزء 1: ضبط نموذج Llama2-7b باستخدام PEFT
سنستخدم الطريقة التي تم تقديمها مؤخرًا في المقالة QLoRA: ضبط محول منخفض الرتبة مدرك للتكميم لتوليد اللغة بواسطة تيم ديتميرز وآخرون. QLoRA هي تقنية جديدة لتقليل أثر الذاكرة لنماذج اللغات الكبيرة أثناء الضبط الدقيق، دون التضحية بالأداء.
ملحوظة: تم اختبار الضبط الدقيق لنموذج llama2-7b الموضح في ما يلي على موقع أمازون دفتر الملاحظات ستوديو SageMaker مع Python 2.0 GPU Optimized Kernel باستخدام ml.g5.2xlarge نوع الطلب. كأفضل الممارسات، نوصي باستخدام أمازون ساجميكر ستوديو بيئة التطوير المتكاملة (IDE) تم إطلاقها بنفسك سحابة أمازون الافتراضية الخاصة (أمازون VPC). يتيح لك ذلك التحكم في حركة مرور الشبكة ومراقبتها وفحصها داخل وخارج VPC الخاص بك باستخدام شبكة AWS القياسية وإمكانيات الأمان. لمزيد من المعلومات، راجع تأمين اتصال Amazon SageMaker Studio باستخدام VPC خاص.
تكميم النموذج الأساسي
نقوم أولاً بتحميل نموذج كمي باستخدام تكميم 4 بت محولات الوجه المعانقة المكتبة على النحو التالي:
تحميل مجموعة بيانات التدريب
بعد ذلك، نقوم بتحميل مجموعة البيانات لتغذية النموذج لخطوة الضبط الموضحة على النحو التالي:
إرفاق طبقة محول
نحن هنا نعلق طبقة محول صغيرة قابلة للتدريب، تم تكوينها كـ لوراالتكوين المحددة في الوجه المعانق com.peft مكتبة.
تدريب نموذج
باستخدام تكوين LoRA الموضح أعلاه، سنقوم بضبط نموذج Llama2 جنبًا إلى جنب مع المعلمات الفائقة. يظهر مقتطف التعليمات البرمجية لتدريب النموذج في ما يلي:
دمج وزن النموذج
أنشأ النموذج المضبوط أعلاه نموذجًا جديدًا يحتوي على أوزان محول LoRA المدربة. في مقتطف التعليمات البرمجية التالي، سنقوم بدمج المحول مع النموذج الأساسي حتى نتمكن من استخدام النموذج المضبوط بدقة للاستدلال.
قم بتحميل وزن النموذج إلى Amazon S3
في الخطوة الأخيرة من الجزء الأول، سنقوم بحفظ أوزان النموذج المدمج في موقع Amazon S1 محدد. سيتم استخدام وزن النموذج بواسطة حاوية تقديم النموذج في Amazon SageMaker لاستضافة النموذج باستخدام مثيل Inferentia3.
الجزء 2: استضافة نموذج QLoRA للاستدلال باستخدام AWS Inf2 باستخدام حاوية SageMaker LMI
في هذا القسم، سنتعرف على خطوات نشر نموذج QLoRA المضبوط بدقة في بيئة استضافة Amazon SageMaker. سوف نستخدم أ خدمة دي جي إل حاوية من SageMaker DLC، والذي يتكامل مع محولات الخلايا العصبية مكتبة لاستضافة هذا النموذج. يسهل الإعداد تحميل النماذج على مسرعات AWS Inferentia2، ويوازن النموذج عبر العديد من NeuronCores، ويتيح الخدمة عبر نقاط نهاية HTTP.
تحضير التحف النموذجية
يدعم DJL العديد من مكتبات تحسين التعلم العميق، بما في ذلك السرعة العميقة, أسرع محول و اكثر. بالنسبة للتكوينات الخاصة بالطراز، فإننا نقدم أ serving.properties
مع المعلمات الرئيسية، مثل tensor_parallel_degree
و model_id
لتحديد خيارات تحميل النموذج. ال model_id
يمكن أن يكون معرف نموذج Hugging Face، أو مسار Amazon S3 حيث يتم تخزين أوزان النموذج. في مثالنا، نوفر موقع Amazon S3 لنموذجنا المضبوط بدقة. يعرض مقتطف الكود التالي الخصائص المستخدمة لعرض النموذج:
يرجى الرجوع إلى هذا توثيق لمزيد من المعلومات حول الخيارات القابلة للتكوين المتاحة عبر serving.properties
. يرجى ملاحظة أننا نستخدم option.n_position=512
في هذه المدونة لتجميع AWS Neuron بشكل أسرع. إذا كنت ترغب في تجربة طول أكبر لرمز الإدخال، فإننا نوصي القارئ بتجميع النموذج مسبقًا مسبقًا (راجع نموذج الترجمة المسبقة AOT على EC2). وإلا، فقد تواجه خطأ المهلة إذا كان وقت الترجمة أكثر من اللازم.
بعد serving.properties
تم تعريف الملف، سنقوم بتجميع الملف في ملف tar.gz
التنسيق، على النحو التالي:
بعد ذلك، سنقوم بتحميل tar.gz إلى موقع حاوية Amazon S3:
قم بإنشاء نقطة نهاية لنموذج Amazon SageMaker
لاستخدام مثيل Inf2 للعرض، نستخدم Amazon حاوية SageMaker LMI مع دعم DJL neuronX. يرجى الرجوع إلى هذا بريد.. اعلاني لمزيد من المعلومات حول استخدام حاوية DJL NeuronX للاستدلال. يوضح التعليمة البرمجية التالية كيفية نشر نموذج باستخدام Amazon SageMaker Python SDK:
نقطة نهاية نموذج الاختبار
بعد نشر النموذج بنجاح، يمكننا التحقق من صحة نقطة النهاية عن طريق إرسال نموذج طلب إلى المتنبئ:
يظهر إخراج العينة على النحو التالي:
في سياق تحليل البيانات، يشير التعلم الآلي (ML) إلى تقنية إحصائية قادرة على استخلاص القدرة التنبؤية من مجموعة بيانات ذات تعقيد ودقة متزايدة من خلال تضييق نطاق الإحصائية بشكل متكرر.
التعلم الآلي ليس تقنية إحصائية جديدة، بل هو مزيج من التقنيات الموجودة. علاوة على ذلك، لم يتم تصميمه ليتم استخدامه مع مجموعة بيانات محددة أو لإنتاج نتيجة محددة. بل تم تصميمه ليكون مرنًا بما يكفي للتكيف مع أي مجموعة بيانات والتنبؤ بأي نتيجة.
تنظيف
إذا قررت أنك لم تعد ترغب في استمرار تشغيل نقطة نهاية SageMaker، فيمكنك حذفها باستخدام AWS SDK لـ Python (boto3) أو AWS CLI أو Amazon SageMaker Console. بالإضافة إلى ذلك ، يمكنك أيضًا قم بإيقاف تشغيل موارد Amazon SageMaker Studio التي لم تعد مطلوبة.
وفي الختام
في هذا المنشور، أوضحنا لك كيفية ضبط نموذج Llama2-7b باستخدام محول LoRA مع تكميم 4 بت باستخدام مثيل GPU واحد. ثم قمنا بنشر النموذج على مثيل Inf2 المستضاف في Amazon SageMaker باستخدام حاوية تقديم DJL. أخيرًا، قمنا بالتحقق من صحة نقطة نهاية نموذج Amazon SageMaker من خلال التنبؤ بإنشاء النص باستخدام SageMaker Python SDK. تفضل وجربها، نحن نحب أن نسمع تعليقاتك. ترقب التحديثات حول المزيد من الإمكانات والابتكارات الجديدة مع AWS Inferentia.
لمزيد من الأمثلة حول AWS Neuron، راجع عينات الخلايا العصبية AWS.
حول المؤلف
وي تيه هو أحد كبار مهندسي الحلول المتخصصة في الذكاء الاصطناعي/تعلم الآلة في AWS. إنه متحمس لمساعدة العملاء على تطوير رحلة AWS الخاصة بهم، مع التركيز على خدمات Amazon Machine Learning والحلول القائمة على التعلم الآلي. خارج العمل، يستمتع بالأنشطة الخارجية مثل التخييم وصيد الأسماك والمشي لمسافات طويلة مع عائلته.
تشينغويأنا لي هو متخصص في التعلم الآلي في Amazon Web Services. حصل على الدكتوراه. في بحوث العمليات بعد أن كسر حساب منحة مستشاره البحثي وفشل في تسليم جائزة نوبل التي وعد بها. يقوم حاليًا بمساعدة العملاء في مجال الخدمات المالية وصناعة التأمين في بناء حلول التعلم الآلي على AWS. في أوقات فراغه يحب القراءة والتعليم.
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- PlatoData.Network Vertical Generative Ai. تمكين نفسك. الوصول هنا.
- أفلاطونايستريم. ذكاء Web3. تضخيم المعرفة. الوصول هنا.
- أفلاطون كربون، كلينتك ، الطاقة، بيئة، شمسي، إدارة المخلفات. الوصول هنا.
- أفلاطون هيلث. التكنولوجيا الحيوية وذكاء التجارب السريرية. الوصول هنا.
- المصدر https://aws.amazon.com/blogs/machine-learning/fine-tune-llama-2-using-qlora-and-deploy-it-on-amazon-sagemaker-with-aws-inferentia2/