عن
Lambda-instructor هو نشر تجريبي لمدرب طراز eMbedding على AWS Lambda.
المدرب Large هو نموذج تم بناؤه من قبل مجموعة NLP بجامعة هونغ كونغ بموجب ترخيص Apache-2.0 ويؤدي أداءً جيدًا في مهام الاسترجاع (أي العثور على المستندات ذات الصلة للحصول على جملة معينة). اعتبارًا من يونيو -2023 ، يبدو أنه على مستوى مع Openai في Openai-Pedding-ADA-002 عبر العديد من المعايير على لوحة المتصدرين Face.
حالات الاستخدام المحتملة:
- إقران مع الاستدلال المحلي: قم بإنشاء عدد كبير من التضمين مع مدرب على الجهاز المحلي مقدمًا (مقابل الدفع مقابل واجهات برمجة التطبيقات التجارية مثل Openai حتى للاختبار).
- إقامة البيانات: نشر وظيفة Lambda في مناطق AWS العالمية مثل أوروبا والولايات المتحدة.
- قابلية التوسع: AWS Lambda مقاييس غير محدودة تقريبًا ، دون أن تكون النفقات العامة لإدارة الخوادم.
- الاستدلال الإنتاج منخفض التكلفة: مع تسعير AWS Lambda لكل مسابقة مقابل تشغيل خادم 24/7.
- استخدم مع قواعد بيانات المتجهات: مثل chromadb أو pinecone.
الأداء والتكلفة والقيود:
- بداية باردة: تتمتع وظيفة Lambda ببداية باردة تبلغ حوالي 150 ثانية (مع قاعدة مدرب حوالي 50s).
- الاستدلال: تتم معالجة طلب متتالي في حوالي 6 ثوان لكل طلب (مع قاعدة مدرب حوالي 3 ثوان).
- الأعلى. الرموز المميزة: يبدو أن المدرب-large قد تم تغطيته بطول تسلسل 512 رمزًا (حوالي 380 كلمة) ، في حين يدعم Openai -Embedding-ADA-002 ما يصل إلى 8191 رمزًا (حوالي 6000 كلمة).
- التكلفة: يمكن تقدير تكلفة AWS Lambda على:
- إعدادات:
- المنطقة: الاتحاد الأوروبي المركزية 1 (أوروبا ، فرانكفورت)
- سعر الذراع: 0.0000133334 دولار لكل جيجابايت ثانية
- الطلبات: 0.20 دولار لكل 1 مليون طلب
- حجم الذاكرة: 10240 ميغابايت
- حساب:
- المدة: 0.0000133334 * 10،24 جيجابايت * 6 ثوانٍ = 0.000819204096 / طلب
- الطلبات: $ 0.20 / 1M الطلبات = 0.0000002 / طلبات
- المجموع = 0.0008194 دولار / طلب
- اعتبارًا من يونيو 2023 ، يكون هذا أكثر دفعة من رموز ADA V2 من Openai عند 0.0001/1K دولار بعد تخفيض سعر 75 ٪.
مزيد من التحسينات: يمكن تحسين التكلفة والبدء البارد بشكل أكبر من خلال التزامن AWS Lambda وخطط التوفير AWS. تحقق أيضًا من حاسبة AWS عند 1 مليون طلب شهريًا لهذا المشروع.
النشر
المتطلبات الأساسية
- المعرفة العامة AWS مفيدة.
- تحتاج إلى تثبيت Docker و Git-LFS محليًا.
- تحتاج إلى تثبيت AWS-SAM محليًا وتكوينه مع حساب AWS الخاص بك.
- يوصى ببيئة محلية قائمة على الذراع (Mac M1/M2). إذا واجهت مشكلات ، فحاول النشر عبر جهاز EC2 يعتمد على الذراع (دليل أدناه).
يثبت
سنقوم بتنزيل نموذج المدرب محليًا ، وحزم التطبيق في حاوية Docker ونشره على وظيفة Lambda القائمة على الذراع. نحن نستخدم ARM لأنه أقل تكلفة مع AWS واتضح أنها أسرع.
- استنساخ المستودع
git clone https://github.com/maxsagt/lambda-instructor.git
- استنساخ نموذج large المدرب إلى مجلد ./app/model (انظر https://huggingface.co/hkunlp/instructor-large؟clone=true)
git lfs install ./app/model
git clone https://huggingface.co/hkunlp/instructor-large ./app/model
- بناء حاوية Docker مع AWS-SAM
sam build --cached --parallel
- اختبر محليًا مع عينة الحمولة في Event.json.
sam local invoke -e event.json
- نشر على AWS. لاحظ أن أذونات IAM الخاصة بمستخدم AWS أو الدور (المؤقت) لـ AWS Cloudformation ، وسجل الحاويات المرنة ، S3 ، Lambda و IAM.
- منتهي. ستجد وظيفة lambda في AWS جاهزة لمزيد من التكوين. على سبيل المثال:
- اختبار وظيفة Lambda في وحدة التحكم Lambda.
- تكوين عنوان URL لدالة Lambda لاستخدام وظيفة Lambda مباشرة عبر عنوان URL.
- أضف بوابة API لمزيد من وظائف API المتقدمة.
اختياري: نشر عبر آلة EC2 القائمة على الذراع.
إذا لم يكن لديك آلة ذراع في متناول اليد ، أو ترغب في النشر داخل AWS لتحميل أسرع لحاوية Docker.
- إنشاء مثيل AWS:
- تم اختباره على خادم Ubuntu 22.04 LTS (HVM) ، ونوع حجم SSD ، AMI-0329D3839379BFD15 ، الهندسة المعمارية: 64 بت (ذراع) ، نوع المثيل: T4G.Medium ، التخزين: 20GIB GP3.
- تأكد من أن VPC الخاص بك عام.
- ابدأ المثيل.
- انقر على المثيل وأضف دور IAM عبر الإجراءات -> الأمان. يحتاج دور IAM إلى IAM و S3 و ECR و CloudFormation و Lambda Access.
- تحميل مستودع إلى مثيل AWS عن بُعد:
git clone https://github.com/maxsagt/lambda-instructor.git
cd lambda-instructor
zip -r deployment.zip . -x ' ./app/model/* '
PUBLIC_IPv4_DNS=ec2-x-xx-xxx-xxx.eu-central-1.compute.amazonaws.com
scp -o StrictHostKeyChecking=no -i " ../my_key.pem " ./deployment.zip ubuntu@ $PUBLIC_IPv4_DNS :deployment.zip
- قم بتسجيل الدخول إلى المثيل الخاص بك وتنفيذ نصي النشر نموذج.
ssh -o StrictHostKeyChecking=no -i " ../my_key.pem " ubuntu@ $PUBLIC_IPv4_DNS
sudo apt install unzip
unzip -o deployment.zip
chmod +x sample_deployment.sh
sudo bash -x sample_deployment.sh
- بناء ونشر حسب أعلاه. إذا لم يتم التعرف على الأمر SAM ، فاقرأ وثائق SAM هنا.
- لا تنسى إنهاء المثيل بعد الاستخدام.
تعليق
ردود الفعل والمساهمات مرحب بها!