بالنسبة لعلماء البيانات ، غالبًا ما يمثل نقل نماذج التعلم الآلي (ML) من إثبات المفهوم إلى الإنتاج تحديًا كبيرًا. يمكن أن يكون أحد التحديات الرئيسية نشر نموذج جيد الأداء ومدرب محليًا على السحابة للاستدلال والاستخدام في التطبيقات الأخرى. قد تكون إدارة العملية مرهقة ، ولكن باستخدام الأداة المناسبة ، يمكنك تقليل الجهد المطلوب بشكل كبير.
استنتاج Amazon SageMaker، الذي تم توفيره بشكل عام في أبريل 2022 ، يسهل عليك نشر نماذج ML في الإنتاج لعمل تنبؤات على نطاق واسع ، مما يوفر مجموعة واسعة من البنية التحتية لتعلم الآلة وخيارات نشر النموذج للمساعدة في تلبية جميع أنواع احتياجات استدلال تعلم الآلة. يمكنك استخدام نقاط نهاية الاستدلال بدون خادم من SageMaker لأحمال العمل التي لها فترات خمول بين فترات الازدحام المروري ويمكنها تحمل البدايات الباردة. تتدرج نقاط النهاية تلقائيًا بناءً على حركة المرور وتزيل العبء الثقيل غير المتمايز لاختيار وإدارة الخوادم. بالإضافة إلى ذلك ، يمكنك استخدام ملفات AWS لامدا لعرض نماذجك ونشر تطبيقات ML الخاصة بك باستخدام إطار العمل المفضل لديك مفتوح المصدر ، والذي يمكن أن يكون أكثر مرونة وفعالية من حيث التكلفة.
FastAPI هو إطار عمل ويب حديث وعالي الأداء لبناء واجهات برمجة التطبيقات باستخدام Python. إنه يبرز عندما يتعلق الأمر بتطوير تطبيقات بدون خادم مع خدمات صغيرة RESTful وحالات استخدام تتطلب استدلال ML على نطاق واسع عبر العديد من الصناعات. تجعله السهولة والوظائف المضمنة مثل وثائق API التلقائية خيارًا شائعًا بين مهندسي ML لنشر واجهات برمجة تطبيقات الاستدلال عالية الأداء. يمكنك تحديد وتنظيم مساراتك باستخدام وظائف جاهزة من FastAPI لتوسيع نطاق منطق الأعمال المتزايد والتعامل معه حسب الحاجة ، واختباره محليًا واستضافته على Lambda ، ثم كشفه من خلال بوابة API واحدة ، مما يتيح لك قم بإحضار إطار عمل ويب مفتوح المصدر إلى Lambda دون أي رفع ثقيل أو إعادة هيكلة أكوادك.
يوضح لك هذا المنشور كيفية نشر وتشغيل استدلال ML بدون خادم بسهولة عن طريق عرض نموذج ML الخاص بك كنقطة نهاية باستخدام FastAPI و Docker و Lambda و بوابة أمازون API. نوضح لك أيضًا كيفية أتمتة النشر باستخدام ملف مجموعة تطوير سحابة AWS (أوس سي دي كيه).
حل نظرة عامة
يوضح الرسم البياني التالي بنية الحل الذي ننشره في هذا المنشور.
المتطلبات الأساسية المسبقة
يجب أن تكون لديك المتطلبات الأساسية التالية:
- تم تثبيت Python3 مع ملفات
virtualenv
لإنشاء وإدارة البيئات الافتراضية في Python - تم تثبيت aws-cdk v2 على نظامك لتتمكن من استخدام AWS CDK CLI
- تم تثبيت Docker وتشغيله على جهازك المحلي
اختبر ما إذا تم تثبيت جميع البرامج الضرورية:
- • واجهة سطر الأوامر AWS (AWS CLI) مطلوب. سجّل الدخول إلى حسابك واختر المنطقة التي تريد نشر الحل فيها.
- استخدم الكود التالي للتحقق من إصدار Python الخاص بك:
- تحقق فيما لو
virtualenv
تم تثبيته لإنشاء وإدارة البيئات الافتراضية في Python. بالمعنى الدقيق للكلمة ، هذا ليس مطلبًا صعبًا ، ولكنه سيجعل حياتك أسهل ويساعد في متابعة هذا المنشور بسهولة أكبر. استخدم الكود التالي: - تحقق مما إذا كان cdk مثبتًا. سيتم استخدام هذا لنشر حلنا.
- تحقق من تثبيت Docker. سيجعل حلنا نموذجك متاحًا من خلال صورة Docker إلى Lambda. لبناء هذه الصورة محليًا ، نحتاج إلى Docker.
- تأكد من تشغيل Docker وتشغيله باستخدام الكود التالي:
كيفية هيكلة مشروع FastAPI الخاص بك باستخدام AWS CDK
نستخدم بنية الدليل التالية لمشروعنا (تجاهل بعض أكواد AWS CDK المعيارية التي تعتبر غير جوهرية في سياق هذا المنشور):
الدليل يتبع الهيكل الموصى به لمشاريع AWS CDK لبايثون.
أهم جزء في هذا المستودع هو ملف fastapi_model_serving
الدليل. يحتوي على الكود الذي سيحدد مكدس AWS CDK والموارد التي سيتم استخدامها لخدمة النموذج.
• fastapi_model_serving
يحتوي الدليل على model_endpoint
الدليل الفرعي ، الذي يحتوي على جميع الأصول الضرورية التي تشكل نقطة النهاية التي لا تحتاج إلى خادم ، وهي ملف Dockerfile لبناء صورة Docker التي سيستخدمها Lambda ، ورمز دالة Lambda الذي يستخدم FastAPI للتعامل مع طلبات الاستدلال وتوجيهها إلى نقطة النهاية الصحيحة ، والنموذج القطع الأثرية للنموذج الذي نريد نشره. model_endpoint
يحتوي أيضًا على ما يلي:
Docker
- يحتوي هذا الدليل الفرعي على ما يلي:Dockerfile
- يستخدم هذا لبناء الصورة لوظيفة Lambda مع جميع القطع الأثرية (رمز وظيفة Lambda ، والتحف النموذجية ، وما إلى ذلك) في المكان المناسب بحيث يمكن استخدامها دون مشاكل.serving.api.tar.gz
- هذه كرة تار تحتوي على جميع الأصول من مجلد وقت التشغيل الضرورية لبناء صورة Docker. نناقش كيفية إنشاء.tar.gz
ملف لاحقًا في هذا المنصب.runtime
- يحتوي هذا الدليل الفرعي على ما يلي:serving_api
- كود دالة Lambda وتبعياتها المحددة في ملف requirements.txt.custom_lambda_utils
- يتضمن ذلك برنامج نصي للاستدلال يقوم بتحميل عناصر النموذج الضرورية بحيث يمكن تمرير النموذج إلى ملفserving_api
سيعرضها بعد ذلك كنقطة نهاية.
بالإضافة إلى ذلك ، لدينا دليل القوالب ، والذي يوفر نموذجًا لهياكل المجلدات والملفات حيث يمكنك تحديد الأكواد المخصصة وواجهات برمجة التطبيقات وفقًا للعينة التي مررنا بها سابقًا. يحتوي دليل القوالب على رمز وهمي يمكنك استخدامه لإنشاء وظائف Lambda جديدة:
dummy
- يحتوي على الكود الذي ينفذ بنية دالة Lambda العادية باستخدام وقت تشغيل Pythonapi
- يحتوي على الكود الذي ينفذ وظيفة Lambda التي تلتف نقطة نهاية FastAPI حول بوابة API موجودة
انشر الحل
بشكل افتراضي ، يتم نشر الكود داخل منطقة eu-west-1. إذا كنت تريد تغيير المنطقة ، فيمكنك تغيير متغير سياق DEPLOYMENT_REGION في ملف cdk.json
ملف.
ومع ذلك ، ضع في اعتبارك أن الحل يحاول نشر وظيفة Lambda أعلى بنية arm64 ، وأن هذه الميزة قد لا تكون متاحة في جميع المناطق. في هذه الحالة ، تحتاج إلى تغيير معلمة البنية في ملف fastapi_model_serving_stack.py
بالإضافة إلى السطر الأول من Dockerfile داخل دليل Docker ، لاستضافة هذا الحل على بنية x86.
لنشر الحل ، أكمل الخطوات التالية:
- قم بتشغيل الأمر التالي لاستنساخ مستودع GitHub:
git clone https://github.com/aws-samples/lambda-serverless-inference-fastapi
نظرًا لأننا نريد أن نظهر أن الحل يمكن أن يعمل مع مصنوعات نموذجية تقوم بتدريبها محليًا ، فإننا نحتوي على عينة أثرية لنموذج تم اختباره مسبقًا ديستيلبيرت نموذج على محور نموذج Hugging Face لمهمة الإجابة على السؤال فيserving_api.tar.gz
ملف. يمكن أن يستغرق وقت التنزيل حوالي 3-5 دقائق. الآن ، لنقم بإعداد البيئة. - قم بتنزيل النموذج الذي تم اختباره مسبقًا والذي سيتم نشره من محور نموذج Hugging Face إلى ملف
./model_endpoint/runtime/serving_api/custom_lambda_utils/model_artifacts
الدليل. كما أنه ينشئ بيئة افتراضية ويثبت جميع التبعيات المطلوبة. ما عليك سوى تشغيل هذا الأمر مرة واحدة:make prep
. يمكن أن يستغرق هذا الأمر حوالي 5 دقائق (اعتمادًا على النطاق الترددي للإنترنت) لأنه يحتاج إلى تنزيل عناصر النموذج. - قم بتعبئة القطع الأثرية للنموذج داخل ملف
.tar.gz
الأرشيف الذي سيتم استخدامه داخل صورة Docker المضمنة في مكدس AWS CDK. تحتاج إلى تشغيل هذه الشفرة متى قمت بإجراء تغييرات على عناصر النموذج أو واجهة برمجة التطبيقات نفسها للحصول دائمًا على أحدث إصدار من نقطة نهاية العرض الخاصة بك:make package_model
. القطع الأثرية كلها في مكانها. يمكننا الآن نشر حزمة AWS CDK على حساب AWS الخاص بك. - قم بتشغيل cdk bootstrap إذا كانت هذه هي المرة الأولى التي تنشر فيها تطبيق AWS CDK في بيئة (مجموعة الحساب + المنطقة):
يتضمن هذا المكدس الموارد اللازمة لتشغيل مجموعة الأدوات. على سبيل المثال ، تتضمن الحزمة حاوية Amazon Simple Storage Service (Amazon S3) التي تُستخدم لتخزين القوالب والأصول أثناء عملية النشر.
نظرًا لأننا نبني صور Docker محليًا في نشر AWS CDK هذا ، نحتاج إلى التأكد من تشغيل برنامج Docker الخفي قبل أن نتمكن من نشر هذه الحزمة عبر AWS CDK CLI.
- للتحقق مما إذا كان Docker daemon يعمل على نظامك أم لا ، استخدم الأمر التالي:
إذا لم تحصل على رسالة خطأ ، يجب أن تكون جاهزًا لنشر الحل.
- انشر الحل باستخدام الأمر التالي:
يمكن أن تستغرق هذه الخطوة حوالي 5-10 دقائق بسبب إنشاء صورة Docker ودفعها.
استكشاف الأخطاء:
إذا كنت من مستخدمي Mac ، فقد تواجه خطأً عند تسجيل الدخول سجل الأمازون المرنة للحاويات (Amazon ECR) مع تسجيل دخول Docker ، مثل Error saving credentials ... not implemented
. على سبيل المثال:
قبل أن تتمكن من استخدام Lambda أعلى حاويات Docker داخل AWS CDK ، قد تحتاج إلى تغيير ملف ~/docker/config.json
ملف. بشكل أكثر تحديدًا ، قد تضطر إلى تغيير معلمة credsStore في ~/.docker/config.json
إلى osxkeychain. هذا يحل مشكلات تسجيل الدخول إلى Amazon ECR على جهاز Mac.
قم بتشغيل الاستدلال في الوقت الفعلي
بعد الخاص بك تكوين سحابة AWS تم نشر المكدس بنجاح ، انتقل إلى النواتج علامة التبويب للحزمة الخاصة بك على وحدة تحكم AWS CloudFormation وافتح عنوان URL لنقطة النهاية. يمكن الآن الوصول إلى نموذجنا عبر عنوان URL لنقطة النهاية ، ونحن جاهزون لتشغيل الاستدلال في الوقت الفعلي.
انتقل إلى عنوان URL لمعرفة ما إذا كان بإمكانك رؤية رسالة "أهلًا بالعالم" وإضافتها /docs
إلى العنوان لمعرفة ما إذا كان يمكنك رؤية صفحة Swagger UI التفاعلية بنجاح. قد يكون هناك بعض الوقت البارد لبدء التشغيل ، لذلك قد تحتاج إلى الانتظار أو التحديث عدة مرات.
بعد تسجيل الدخول إلى الصفحة المقصودة لصفحة FastAPI swagger UI ، يمكنك التشغيل عبر الجذر /
أو عن طريق /question
.
من /
، يمكنك تشغيل API والحصول على رسالة "hello world".
من /question
، يمكنك تشغيل API وتشغيل استدلال ML على النموذج الذي نشرناه لحالة الإجابة على الأسئلة. على سبيل المثال نستخدم السؤال ما هو لون سيارتي الآن؟ والسياق هو أن سيارتي كانت زرقاء لكنني رسمت باللون الأحمر.
عندما تختار تنفيذ، بناءً على السياق المحدد ، سيجيب النموذج على السؤال بإجابة ، كما هو موضح في لقطة الشاشة التالية.
في نص الاستجابة ، يمكنك رؤية الإجابة بدرجة الثقة من النموذج. يمكنك أيضًا تجربة أمثلة أخرى أو تضمين واجهة برمجة التطبيقات في تطبيقك الحالي.
بدلاً من ذلك ، يمكنك تشغيل الاستنتاج عبر الكود. إليك مثال واحد مكتوب بلغة بايثون ، باستخدام امتداد requests
مكتبة:
يُخرج الكود سلسلة مشابهة لما يلي:
إذا كنت مهتمًا بمعرفة المزيد حول نشر الذكاء الاصطناعي التوليدي ونماذج اللغات الكبيرة على AWS ، تحقق من هنا:
- انشر AI Generative AI على AWS Lambda باستخدام OpenLLaMa
- انشر نماذج اللغات الكبيرة على AWS Inferentia2 باستخدام حاويات استدلال كبيرة
تنظيف
داخل الدليل الجذر لمستودعك ، قم بتشغيل الكود التالي لتنظيف مواردك:
وفي الختام
في هذا المنشور ، قدمنا كيف يمكنك استخدام Lambda لنشر نموذج ML المدرب الخاص بك باستخدام إطار عمل تطبيق الويب المفضل لديك ، مثل FastAPI. لقد قدمنا مستودع تعليمات برمجية تفصيليًا يمكنك نشره ، وتحتفظ بمرونة التبديل إلى أي نماذج نموذجية مدربة تقوم بمعالجتها. يمكن أن يعتمد الأداء على كيفية تنفيذ النموذج ونشره.
نرحب بتجربتها بنفسك ، ويسعدنا سماع تعليقاتك!
حول المؤلف
تينجي لي هو مهندس حلول مؤسسي من AWS ومقره في ستوكهولم ، السويد يدعم عملاء بلدان الشمال الأوروبي. وهي تستمتع بمساعدة العملاء في هندسة وتصميم وتطوير حلول البنية التحتية السحابية المُحسّنة. وهي متخصصة في الذكاء الاصطناعي والتعلم الآلي وهي مهتمة بتمكين العملاء بالذكاء في تطبيقات الذكاء الاصطناعي / التعلم الآلي الخاصة بهم. في أوقات فراغها ، تعمل أيضًا رسامة بدوام جزئي تكتب الروايات وتعزف على البيانو.
دمير كاتوفيتش هو مهندس تعلم الآلة من AWS ومقره في زيورخ ، سويسرا. يتعامل مع العملاء ويساعدهم في تنفيذ تطبيقات ML قابلة للتطوير وكاملة الوظائف. إنه متحمس لبناء وإنتاج تطبيقات التعلم الآلي للعملاء وهو حريص دائمًا على استكشاف الاتجاهات الجديدة والتقنيات المتطورة في عالم الذكاء الاصطناعي / التعلم الآلي.
- محتوى مدعوم من تحسين محركات البحث وتوزيع العلاقات العامة. تضخيم اليوم.
- PlatoData.Network Vertical Generative Ai. تمكين نفسك. الوصول هنا.
- أفلاطونايستريم. ذكاء Web3. تضخيم المعرفة. الوصول هنا.
- أفلاطون السيارات / المركبات الكهربائية ، كربون، كلينتك ، الطاقة، بيئة، شمسي، إدارة المخلفات. الوصول هنا.
- BlockOffsets. تحديث ملكية الأوفست البيئية. الوصول هنا.
- المصدر https://aws.amazon.com/blogs/machine-learning/deploy-a-serverless-ml-inference-endpoint-of-large-language-models-using-fastapi-aws-lambda-and-aws-cdk/
- :يكون
- :ليس
- :أين
- $ UP
- 1
- 10
- 100
- 13
- 2022
- 7
- 9
- a
- ماهرون
- من نحن
- يمكن الوصول
- حسابي
- في
- تضيف
- وبالإضافة إلى ذلك
- العنوان
- AI
- AI / ML
- الكل
- يسمح
- على طول
- أيضا
- دائما
- أمازون
- أمازون ويب سيرفيسز
- وسط
- an
- و
- إجابة
- أي وقت
- API
- واجهات برمجة التطبيقات
- التطبيق
- تطبيق
- التطبيقات
- ابريل
- هندسة معمارية
- أرشيف
- هي
- حول
- AS
- ممتلكات
- At
- أتمتة
- أوتوماتيك
- تلقائيا
- متاح
- بعيدا
- AWS
- تكوين سحابة AWS
- AWS لامدا
- الخلفية
- عرض النطاق الترددي
- على أساس
- BE
- لان
- قبل
- ما بين
- الأزرق
- الجسدي
- التمهيد
- جلب
- واسع
- نساعدك في بناء
- ابني
- بنيت
- مدمج
- الأعمال
- لكن
- by
- CAN
- سيارة
- حقيبة
- الحالات
- تحدى
- التحديات
- تغيير
- التغييرات
- التحقق
- خيار
- اختار
- سحابة
- الكود
- رموز
- بارد
- اللون
- مجموعة
- يأتي
- إكمال
- مفهوم
- الثقة
- التواصل
- صلة
- كنسولات
- تحتوي على
- وعاء
- حاويات
- يحتوي
- سياق الكلام
- تصحيح
- فعاله من حيث التكلفه
- استطاع
- خلق
- يخلق
- خلق
- أوراق اعتماد
- العملاء
- حسب الطلب
- المتطور والحديث
- البيانات
- الترتيب
- اعتمادا
- نشر
- نشر
- نشر
- نشر
- تصميم
- مفصلة
- تطوير
- التطوير التجاري
- مباشرة
- بحث
- عامل في حوض السفن
- توثيق
- لا
- بإمكانك تحميله
- اثنان
- أثناء
- في وقت سابق
- سهولة
- أسهل
- بسهولة
- سهل
- جهد
- تضمين
- تمكين
- النهاية
- نقطة النهاية
- يشغل
- مهندس
- المهندسين
- ضمان
- مشروع
- البيئة
- البيئات
- خطأ
- مثال
- أمثلة
- متحمس
- تنفيذ
- القائمة
- خروج
- تجربة
- اكتشف
- الوجه
- الميزات
- قليل
- قم بتقديم
- ملفات
- الاسم الأول
- لأول مرة
- مرونة
- مرن
- اتباع
- متابعيك
- متابعات
- في حالة
- الإطار
- تبدأ من
- وظيفة
- وظائف
- وظائف
- بوابة
- على العموم
- توليدي
- الذكاء الاصطناعي التوليدي
- دولار فقط واحصل على خصم XNUMX% على جميع
- GitHub جيثب:
- معطى
- Go
- الذهاب
- متزايد
- مقبض
- الثابت
- يملك
- he
- سماع
- ثقيل
- رفع أحمال ثقيلة
- مساعدة
- مساعدة
- يساعد
- لها
- هنا
- أداء عالي
- مضيف
- كيفية
- كيفية
- لكن
- HTML
- HTTP
- HTTPS
- محور
- i
- الخمول
- if
- صورة
- صور
- تنفيذ
- الأدوات
- أهمية
- in
- في أخرى
- يشمل
- الصناعات
- البنية التحتية
- في الداخل
- تثبيت
- رؤيتنا
- التفاعلية
- يستفد
- Internet
- إلى
- أدخلت
- مسائل
- IT
- انها
- نفسها
- جسون
- شديد
- معرفة
- هبوط
- لغة
- كبير
- الى وقت لاحق
- تعلم
- المكتبة
- الحياة
- تجميل
- مثل
- خط
- الأحمال
- محلي
- محليا
- سجل
- تسجيل
- منطق
- تسجيل الدخول
- لجنة الهدنة العسكرية
- آلة
- آلة التعلم
- صنع
- الرئيسية
- جعل
- يصنع
- إدارة
- إدارة
- مايو..
- تعرف علي
- الرسالة
- microservices
- ربما
- مانع
- دقيقة
- ML
- نموذج
- عارضات ازياء
- تقدم
- الأكثر من ذلك
- أكثر
- يتحرك
- متعدد
- يجب
- my
- أي
- ضروري
- حاجة
- بحاجة
- إحتياجات
- جديد
- الآن
- of
- غالبا
- on
- مرة
- ONE
- فقط
- جاكيت
- المصدر المفتوح
- عملية
- مزيد من الخيارات
- or
- طلب
- العادي
- أخرى
- لنا
- خارج
- معلب
- صفحة
- المعلمة
- جزء
- مرت
- عاطفي
- أداء
- فترات
- المكان
- أفلاطون
- الذكاء افلاطون البيانات
- أفلاطون داتا
- يلعب
- الرائج
- منشور
- تنبؤات
- المفضل
- الشروط
- الهدايا
- عملية المعالجة
- الإنتــاج
- تنفيذ المشاريع
- مشروع ناجح
- دليل
- دليل على المفهوم
- إثبات
- المقدمة
- ويوفر
- توفير
- دفع
- بايثون
- سؤال
- استعداد
- في الوقت الحقيقي
- أحمر
- تخفيض
- منطقة
- المناطق
- مستودع
- طلبات
- مطلوب
- المتطلبات
- المتطلبات الأساسية
- الموارد
- استجابة
- نتيجة
- احتفظ
- حق
- جذر
- طريق
- طرق
- يجري
- تشغيل
- sagemaker
- إنقاذ
- تحجيم
- حجم
- العلماء
- نطاق
- أحرز هدفاً
- انظر تعريف
- اختيار
- اختيار
- Serverless
- خوادم
- الخدمة
- خدماتنا
- خدمة
- طقم
- هي
- ينبغي
- إظهار
- عرض
- أظهرت
- يظهر
- هام
- بشكل ملحوظ
- مماثل
- الاشارات
- عزباء
- So
- تطبيقات الكمبيوتر
- حل
- الحلول
- يحل
- بعض
- تحدث
- متخصص
- على وجه التحديد
- محدد
- كومة
- المدرجات
- بداية
- يبدأ
- الحالة
- خطوة
- خطوات
- تخزين
- متجر
- تخزين
- خيط
- بناء
- بنجاح
- هذه
- دعم
- السويد
- سويسرا
- نظام
- أخذ
- مهمة
- التكنولوجيا
- قالب
- النماذج
- تجربه بالعربي
- أن
- •
- من مشاركة
- منهم
- then
- هناك.
- هم
- عبر
- الوقت
- مرات
- إلى
- أداة
- تيشرت
- حركة المرور
- قطار
- متدرب
- جديد الموضة
- محاولة
- ui
- يونيكس
- حديث جديد
- URL
- تستخدم
- مستعمل
- مستخدم
- يستخدم
- استخدام
- الإصدار
- بواسطة
- افتراضي
- انتظر
- تريد
- وكان
- we
- الويب
- تطبيق ويب
- خدمات ويب
- ترحيب
- حسن
- ذهب
- ابحث عن
- ما هي تفاصيل
- متى
- كلما
- سواء
- التي
- من الذى
- سوف
- مع
- بدون
- للعمل
- العالم
- مكتوب
- أنت
- حل متجر العقارات الشامل الخاص بك في جورجيا
- نفسك
- زفيرنت
- زيوريخ