إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
توضح هذه المقالة كيفية إنشاء نقاط نهاية خدمة النموذج التي تخدم نماذج مخصصة باستخدام خدمة نموذج Databricks.
توفر خدمة النموذج الخيارات التالية لخدمة إنشاء نقطة النهاية:
- واجهة مستخدم الخدمة
- واجهة برمجة تطبيقات REST
- MLflow Deployments SDK
لإنشاء نقاط نهاية تخدم نماذج الذكاء الاصطناعي التوليدية، راجع إنشاء نموذج الذكاء الاصطناعي إنشاء يخدم نقاط النهاية.
المتطلبات
- يجب أن تكون مساحة العمل الخاصة بك في منطقة مدعومة.
- إذا كنت تستخدم مكتبات أو مكتبات مخصصة من خادم النسخ المتطابق الخاص مع النموذج الخاص بك، فشاهد استخدام مكتبات Python المخصصة مع خدمة النموذج قبل إنشاء نقطة نهاية النموذج.
- لإنشاء نقاط نهاية باستخدام MLflow Deployments SDK، يجب تثبيت عميل نشر MLflow. لتثبيته، قم بتشغيل:
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
عنصر تحكم الوصول
لفهم خيارات التحكم في الوصول لنقاط نهاية خدمة النموذج لإدارة نقطة النهاية، راجع إدارة الأذونات على نقطة نهاية خدمة النموذج.
يمكنك أيضا إضافة متغيرات البيئة لتخزين بيانات الاعتماد لخدمة النموذج. راجع تكوين الوصول إلى الموارد من نقاط نهاية خدمة النموذج
إنشاء نقطة نهاية
خدمة واجهة المستخدم
يمكنك إنشاء نقطة نهاية للنموذج الذي يخدم مع واجهة مستخدم الخدمة .
انقر فوق تقديم في الشريط الجانبي لعرض واجهة مستخدم العرض.
انقر فوق Create serving endpoint.

بالنسبة للنماذج المسجلة في سجل نموذج مساحة العمل أو النماذج في كتالوج Unity:
في حقل الاسم ، أدخل اسما لنقطة النهاية.
في قسم الكيانات التي تم تقديمها
- انقر فوق الحقل Entity لفتح نموذج Select served entity .
- حدد نوع النموذج الذي تريد تقديمه. يتم تحديث النموذج ديناميكيا استنادا إلى اختيارك.
- حدد النموذج وإصدار النموذج الذي تريد تقديمه.
- حدد النسبة المئوية لنسبة استخدام الشبكة لتوجيهها إلى النموذج الذي تم تقديمه.
- حدد حجم الحساب الذي تريد استخدامه. يمكنك استخدام حسابات وحدة المعالجة المركزية أو وحدة معالجة الرسومات لأحمال العمل الخاصة بك. راجع أنواع حمل عمل وحدة معالجة الرسومات للحصول على مزيد من المعلومات حول حسابات وحدة معالجة الرسومات المتوفرة.
- حدد حجم الحساب الذي تريد استخدامه. يمكنك استخدام حسابات وحدة المعالجة المركزية أو وحدة معالجة الرسومات لأحمال العمل الخاصة بك. راجع أنواع حمل عمل وحدة معالجة الرسومات للحصول على مزيد من المعلومات حول حسابات وحدة معالجة الرسومات المتوفرة.
- ضمن Compute Scale-out، حدد حجم مقياس الحساب الذي يتوافق مع عدد الطلبات التي يمكن أن يعالجها هذا النموذج المقدم في نفس الوقت. يجب أن يكون هذا الرقم مساويا تقريبا لوقت تشغيل نموذج QPS x.
- الأحجام المتوفرة صغيرة للطلبات من 0 إلى 4 وطلبات متوسطة من 8 إلى 16 وطلبات كبيرة ل 16-64 طلبا.
- حدد ما إذا كان يجب تغيير حجم نقطة النهاية إلى الصفر عندما لا تكون قيد الاستخدام.
انقر فوق Create. تظهر صفحة نقاط نهاية العرض مع عرض حالة نقطة نهاية العرض على أنها غير جاهزة.

واجهة برمجة تطبيقات REST
يمكنك إنشاء نقاط نهاية باستخدام واجهة برمجة تطبيقات REST. راجع POST /api/2.0/serving-endpoints لمعلمات تكوين نقطة النهاية.
ينشئ المثال التالي نقطة نهاية تخدم الإصدار الأول من ads1 النموذج المسجل في سجل النموذج. لتحديد نموذج من كتالوج Unity، قم بتوفير اسم النموذج الكامل بما في ذلك الكتالوج الأصلي والمخطط مثل . catalog.schema.example-model
POST /api/2.0/serving-endpoints
{
"name": "workspace-model-endpoint",
"config":
{
"served_entities": [
{
"name": "ads-entity"
"entity_name": "my-ads-model",
"entity_version": "3",
"workload_size": "Small",
"scale_to_zero_enabled": true
},
{
"entity_name": "my-ads-model",
"entity_version": "4",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
],
"traffic_config":
{
"routes": [
{
"served_model_name": "my-ads-model-3",
"traffic_percentage": 100
},
{
"served_model_name": "my-ads-model-4",
"traffic_percentage": 20
}
]
}
},
"tags": [
{
"key": "team",
"value": "data science"
}
]
}
فيما يلي مثال على الاستجابة. حالة نقطة config_update النهاية هي NOT_UPDATING والنموذج الذي يتم تقديمه في READY حالة.
{
"name": "workspace-model-endpoint",
"creator": "user@email.com",
"creation_timestamp": 1700089637000,
"last_updated_timestamp": 1700089760000,
"state": {
"ready": "READY",
"config_update": "NOT_UPDATING"
},
"config": {
"served_entities": [
{
"name": "ads-entity",
"entity_name": "my-ads-model-3",
"entity_version": "3",
"workload_size": "Small",
"scale_to_zero_enabled": true,
"workload_type": "CPU",
"state": {
"deployment": "DEPLOYMENT_READY",
"deployment_state_message": ""
},
"creator": "user@email.com",
"creation_timestamp": 1700089760000
}
],
"traffic_config": {
"routes": [
{
"served_model_name": "my-ads-model-3",
"traffic_percentage": 100
}
]
},
"config_version": 1
},
"tags": [
{
"key": "team",
"value": "data science"
}
],
"id": "e3bd3e471d6045d6b75f384279e4b6ab",
"permission_level": "CAN_MANAGE",
"route_optimized": false
}
MLflow Deployments SDK
توفر عمليات نشر MLflow واجهة برمجة تطبيقات لإنشاء مهام وتحديثها وحذفها. تقبل واجهات برمجة التطبيقات لهذه المهام نفس المعلمات مثل واجهة برمجة تطبيقات REST لخدمة نقاط النهاية. راجع POST /api/2.0/serving-endpoints لمعلمات تكوين نقطة النهاية.
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="workspace-model-endpoint",
config={
"served_entities": [
{
"name": "ads-entity"
"entity_name": "my-ads-model",
"entity_version": "3",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
],
"traffic_config": {
"routes": [
{
"served_model_name": "my-ads-model-3",
"traffic_percentage": 100
}
]
}
}
)
يمكنك أيضًا:
تكوين نقطة النهاية لخدمة نماذج متعددة.
تمكين جداول الاستدلال لالتقاط الطلبات الواردة والاستجابات الصادرة تلقائيا إلى نموذجك الذي يخدم نقاط النهاية.
أنواع حمل عمل GPU
توزيع GPU متوافق مع إصدارات الحزمة التالية:
- Pytorch 1.13.0 - 2.0.1
- TensorFlow 2.5.0 - 2.13.0
- MLflow 2.4.0 وما فوق
لنشر النماذج الخاصة بك باستخدام وحدات معالجة الرسومات، قم بتضمين workload_type الحقل في تكوين نقطة النهاية أثناء إنشاء نقطة النهاية أو كتحديث تكوين نقطة نهاية باستخدام واجهة برمجة التطبيقات. لتكوين نقطة النهاية لأحمال عمل وحدة معالجة الرسومات باستخدام واجهة مستخدم العرض ، حدد نوع وحدة معالجة الرسومات المطلوب من القائمة المنسدلة نوع الحساب.
{
"served_entities": [{
"name": "ads1",
"entity_version": "2",
"workload_type": "GPU_LARGE",
"workload_size": "Small",
"scale_to_zero_enabled": false,
}]
}
يلخص الجدول التالي أنواع أحمال عمل GPU المتوفرة المدعومة.
| نوع حمل عمل GPU | مثيل وحدة معالجة الرسومات | ذاكرة وحدة معالجة الرسومات |
|---|---|---|
GPU_SMALL |
1xT4 | 16 غيغابايت |
GPU_LARGE |
1xA100 | 80 غيغابايت |
GPU_LARGE_2 |
2xA100 | 160 غيغابايت |
تعديل نقطة نهاية نموذج مخصص
بعد تمكين نقطة نهاية نموذج مخصص، يمكنك تحديث تكوين الحساب كما هو مطلوب. هذا التكوين مفيد بشكل خاص إذا كنت بحاجة إلى موارد إضافية للنموذج الخاص بك. يلعب حجم حمل العمل وتكوين الحساب دورا رئيسيا في الموارد المخصصة لخدمة النموذج الخاص بك.
حتى يكون التكوين الجديد جاهزا، يحتفظ التكوين القديم بخدمة نسبة استخدام الشبكة المتوقعة. أثناء وجود تحديث قيد التقدم، لا يمكن إجراء تحديث آخر. ومع ذلك، يمكنك إلغاء تحديث قيد التقدم من واجهة مستخدم تقديم الخدمة.
خدمة واجهة المستخدم
بعد تمكين نقطة نهاية نموذج، حدد تحرير نقطة النهاية لتعديل تكوين الحساب لنقطة النهاية.
يمكنك القيام بما يلي:
- اختر من بين بعض أحجام حمل العمل، ويتم تكوين التحجيم التلقائي تلقائيا ضمن حجم حمل العمل.
- حدد ما إذا كان يجب تقليص نقطة النهاية إلى الصفر عندما لا تكون قيد الاستخدام.
- تعديل النسبة المئوية لنسبة استخدام الشبكة لتوجيهها إلى النموذج الذي تم تقديمه.
يمكنك إلغاء تحديث تكوين قيد التقدم عن طريق تحديد إلغاء التحديث في الجزء العلوي الأيسر من صفحة تفاصيل نقطة النهاية. تتوفر هذه الوظيفة فقط في واجهة مستخدم العرض.
واجهة برمجة تطبيقات REST
فيما يلي مثال على تحديث تكوين نقطة النهاية باستخدام واجهة برمجة تطبيقات REST. راجع PUT /api/2.0/serving-endpoints/{name}/config.
PUT /api/2.0/serving-endpoints/{name}/config
{
"name": "unity-catalog-model-endpoint",
"config":
{
"served_entities": [
{
"entity_name": "catalog.schema.my-ads-model",
"entity_version": "5",
"workload_size": "Small",
"scale_to_zero_enabled": true
}
],
"traffic_config":
{
"routes": [
{
"served_model_name": "my-ads-model-5",
"traffic_percentage": 100
}
]
}
}
}
MLflow Deployments SDK
تستخدم MLflow Deployments SDK نفس المعلمات مثل واجهة برمجة تطبيقات REST، راجع PUT /api/2.0/serving-endpoints/{name}/config للحصول على تفاصيل مخطط الطلب والاستجابة.
يستخدم نموذج التعليمات البرمجية التالي نموذجا من سجل نموذج كتالوج Unity:
import mlflow
from mlflow.deployments import get_deploy_client
mlflow.set_registry_uri("databricks-uc")
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name=f"{endpointname}",
config={
"served_entities": [
{
"entity_name": f"{catalog}.{schema}.{model_name}",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": True
}
],
"traffic_config": {
"routes": [
{
"served_model_name": f"{model_name}-1",
"traffic_percentage": 100
}
]
}
}
)
تسجيل نقطة نهاية نموذج
لتسجيل نموذجك، أرسل طلبات إلى نقطة نهاية خدمة النموذج.
- راجع نقاط نهاية خدمة الاستعلام للنماذج المخصصة.
- راجع نماذج الذكاء الاصطناعي التوليدية للاستعلام.
الموارد الإضافية
- إدارة نقاط نهاية خدمة النموذج.
- نماذج خارجية في الفسيفساء الذكاء الاصطناعي خدمة النموذج.
- إذا كنت تفضل استخدام Python، يمكنك استخدام Databricks في الوقت الحقيقي لخدمة Python SDK.
أمثلة دفتر الملاحظات
تتضمن دفاتر الملاحظات التالية نماذج مسجلة مختلفة في Databricks يمكنك استخدامها لبدء العمل باستخدام نقاط نهاية خدمة النموذج.
يمكن استيراد أمثلة النموذج إلى مساحة العمل باتباع التوجيهات في استيراد دفتر ملاحظات. بعد اختيار نموذج وإنشاءه من أحد الأمثلة، قم بتسجيله في كتالوج Unity، ثم اتبع خطوات سير عمل واجهة المستخدم لخدمة النموذج.