ما هو الجديد! |
---|
أحدث إصدار: 15 نوفمبر 2024. kaito v0.3.2. |
الإصدار الأول: 15 نوفمبر 2023. kaito v0.1.0. |
kaito هو عامل يقوم بأتمتة استدلال نموذج AI/ML أو ضبط عبء العمل في مجموعة Kubernetes. النماذج المستهدفة هي نماذج كبيرة مفتوحة المصدر مثل falcon و phi-3. يتمتع kaito بالاختلافات الرئيسية التالية مقارنة بمعظم منهجيات نشر النماذج السائدة المبنية على البنى التحتية للأجهزة الافتراضية:
باستخدام kaito ، تم تبسيط سير العمل الخاص بإعداد نماذج استدلال الذكاء الاصطناعي الكبيرة في Kubernetes إلى حد كبير.
يتبع kaito نمط تصميم وحدة التحكم/تعريف الموارد المخصصة لـ Kubernetes الكلاسيكي. يدير المستخدم موردًا مخصصًا workspace
يصف متطلبات وحدة معالجة الرسومات ومواصفات الاستدلال أو الضبط. ستقوم وحدات تحكم kaito بأتمتة النشر عن طريق التوفيق بين المورد المخصص workspace
.
يعرض الشكل أعلاه نظرة عامة على بنية kaito . تتكون مكوناته الرئيسية من:
workspace
، وإنشاء موارد مخصصة machine
(موضح أدناه) لتشغيل التوفير التلقائي للعقدة، وإنشاء عبء عمل الاستدلال أو الضبط ( deployment
أو statefulset
أو job
) استنادًا إلى التكوينات المحددة مسبقًا للنموذج.machine
CRD الذي تم إنشاؤه من Karpenter للتفاعل مع وحدة التحكم في مساحة العمل. إنه يتكامل مع Azure Resource Manager REST APIs لإضافة عقد GPU جديدة إلى مجموعة AKS أو AKS Arc.ملحوظة: مزود GPU هو مكون مفتوح المصدر. ويمكن استبداله بوحدات تحكم أخرى إذا كانت تدعم واجهات برمجة تطبيقات Karpenter-core.
يرجى التحقق من إرشادات التثبيت هنا للنشر باستخدام Azure CLI وهنا للنشر باستخدام Terraform.
بعد تثبيت kaito ، يمكن للمرء تجربة الأوامر التالية لبدء خدمة الاستدلال falcon-7b.
$ cat examples/inference/ kaito _workspace_falcon_7b.yaml
apiVersion: kaito .sh/v1alpha1
kind: Workspace
metadata:
name: workspace-falcon-7b
resource:
instanceType: " Standard_NC12s_v3 "
labelSelector:
matchLabels:
apps: falcon-7b
inference:
preset:
name: " falcon-7b "
$ kubectl apply -f examples/inference/ kaito _workspace_falcon_7b.yaml
يمكن تتبع حالة مساحة العمل عن طريق تشغيل الأمر التالي. عندما يصبح العمود WORKSPACEREADY True
، فهذا يعني أنه قد تم نشر النموذج بنجاح.
$ kubectl get workspace workspace-falcon-7b
NAME INSTANCE RESOURCEREADY INFERENCEREADY JOBSTARTED WORKSPACESUCCEEDED AGE
workspace-falcon-7b Standard_NC12s_v3 True True True True 10m
بعد ذلك، يمكن للمرء العثور على عنوان IP لمجموعة خدمة الاستدلال واستخدام حجرة curl
مؤقتة لاختبار نقطة نهاية الخدمة في المجموعة.
$ kubectl get svc workspace-falcon-7b
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
workspace-falcon-7b ClusterIP < CLUSTERIP > < none > 80/TCP,29500/TCP 10m
export CLUSTERIP= $( kubectl get svc workspace-falcon-7b -o jsonpath= " {.spec.clusterIPs[0]} " )
$ kubectl run -it --rm --restart=Never curl --image=curlimages/curl -- curl -X POST http:// $CLUSTERIP /chat -H " accept: application/json " -H " Content-Type: application/json " -d " { " prompt " : " YOUR QUESTION HERE " } "
يمكن العثور على الاستخدام التفصيلي للنماذج المدعومة kaito هنا . في حالة رغبة المستخدمين في نشر نماذجهم المعبأة في حاويات، يمكنهم توفير قالب pod في حقل inference
الخاص بالمورد المخصص لمساحة العمل (يرجى الاطلاع على تعريفات واجهة برمجة التطبيقات للحصول على التفاصيل). ستقوم وحدة التحكم بإنشاء عبء عمل نشر باستخدام جميع عقد GPU المتوفرة. لاحظ أن وحدة التحكم حاليًا لا تتعامل مع ترقية النموذج التلقائي. فهو يقوم فقط بإنشاء أعباء عمل الاستدلال بناءً على التكوينات المحددة مسبقًا في حالة عدم وجود أعباء العمل.
عدد النماذج المدعومة في kaito آخذ في الازدياد! الرجاء مراجعة هذا المستند لمعرفة كيفية إضافة نموذج مدعوم جديد.
بدءًا من الإصدار v0.3.0، يدعم kaito الضبط الدقيق للنموذج واستخدام المحولات المضبوطة بدقة في خدمة الاستدلال. راجع وثيقة الضبط ووثيقة الاستدلال لمزيد من المعلومات.
لاستخدام العقد المفضلة، تأكد من أن العقدة لديها التسمية المحددة في labelSelector ضمن matchLabels. على سبيل المثال، إذا كان محدد التصنيف الخاص بك هو:
labelSelector:
matchLabels:
apps: falcon-7b
ثم يجب أن تحمل العقدة التسمية: apps=falcon-7b
.
عند استخدام النماذج العامة المستضافة، يمكن للمستخدم حذف عبء عمل الاستدلال الموجود ( Deployment
StatefulSet
) يدويًا، وستقوم وحدة التحكم في مساحة العمل بإنشاء وحدة تحكم جديدة بأحدث تكوين محدد مسبقًا (على سبيل المثال، إصدار الصورة) المحدد في الإصدار الحالي. بالنسبة للنماذج الخاصة، يوصى بإنشاء مساحة عمل جديدة بإصدار صورة جديد في المواصفات.
يوفر kaito قدرة محدودة على تجاوز التكوينات المحددة مسبقًا للنماذج التي تستخدم وقت تشغيل transformer
يدويًا. لتحديث المعلمات لنموذج منشور، قم بإجراء kubectl edit
مقابل عبء العمل، والذي يمكن أن يكون إما StatefulSet
أو Deployment
. على سبيل المثال، لتمكين تكميم 4 بت في نشر falcon-7b-instruct
، يمكنك تنفيذ ما يلي:
kubectl edit deployment workspace-falcon-7b-instruct
ضمن مواصفات النشر، حدد موقع حقل الأمر وقم بتعديله.
accelerate launch --num_processes 1 --num_machines 1 --machine_rank 0 --gpu_ids all inference_api.py --pipeline text-generation --torch_dtype bfloat16
accelerate launch --num_processes 1 --num_machines 1 --machine_rank 0 --gpu_ids all inference_api.py --pipeline text-generation --torch_dtype bfloat16 --load_in_4bit
حاليًا، نسمح للمستخدمين بتغيير المعلمات التالية يدويًا:
pipeline
: بالنسبة لنماذج إنشاء النص، يمكن أن يكون هذا إما text-generation
أو conversational
.load_in_4bit
أو load_in_8bit
: دقة نموذج التكميم.إذا كنت بحاجة إلى تخصيص معلمات أخرى، فيرجى تقديم مشكلة لتضمينها في المستقبل.
الفرق الرئيسي يكمن في حالات الاستخدام المقصودة. نماذج التعليمات هي إصدارات مضبوطة ومُحسَّنة لتطبيقات الدردشة التفاعلية. وهي عادةً الخيار المفضل لمعظم عمليات التنفيذ نظرًا لأدائها المحسن في سياقات المحادثة. من ناحية أخرى، تم تصميم النماذج غير الموجهة أو الخام لمزيد من الضبط الدقيق.
اقرأ المزيد
يرحب هذا المشروع بالمساهمات والاقتراحات. تتطلب المساهمات منك الموافقة على اتفاقية ترخيص المساهم (CLA) التي تعلن أن لديك الحق في منحنا حقوق استخدام مساهمتك، وتفعل ذلك بالفعل. للحصول على التفاصيل، قم بزيارة CLAs لـ CNCF.
عند إرسال طلب سحب، سيحدد روبوت CLA تلقائيًا ما إذا كنت بحاجة إلى تقديم CLA وتزيين العلاقات العامة بشكل مناسب (على سبيل المثال، التحقق من الحالة، التعليق). ما عليك سوى اتباع التعليمات التي يقدمها لك الروبوت. سوف تحتاج إلى القيام بذلك مرة واحدة فقط في جميع عمليات إعادة الشراء باستخدام CLA الخاص بنا.
لقد اعتمد هذا المشروع CLAs لـ CNCF، يرجى التوقيع إلكترونيًا على CLA عبر https://easycla.lfx.linuxfoundation.org. إذا واجهت مشكلات، فيمكنك إرسال تذكرة مع مجموعة معرف Linux Foundation من خلال موقع دعم Linux Foundation على الويب.
انظر ترخيص معهد ماساتشوستس للتكنولوجيا.
اعتمد kaito مدونة قواعد السلوك الخاصة بمؤسسة Cloud Native Compute Foundation. لمزيد من المعلومات، راجع مدونة قواعد سلوك kaito .
" kaito ديفز " kaito [email protected]