مشاركة النماذج عبر مساحات العمل

هام

توصي Databricks باستخدام النماذج في كتالوج Unity لمشاركة النماذج عبر مساحات العمل. تم إهمال النهج الوارد في هذه المقالة.

يدعم Azure Databricks مشاركة النماذج عبر مساحات عمل متعددة. على سبيل المثال، يمكنك تطوير نموذج وتسجيله في مساحة عمل تطوير، ثم الوصول إليه ومقارنته مع النماذج في مساحة عمل إنتاج منفصلة. وهذا مفيد عندما تشارك فرق متعددة الوصول إلى النماذج أو عندما يكون لدى مؤسستك مساحات عمل متعددة للتعامل مع المراحل المختلفة للتطوير. لتطوير نموذج مساحة العمل ونشره، توصي Databricks بنهج نشر التعليمات البرمجية ، حيث يتم نشر التعليمات البرمجية لتدريب النموذج في بيئات متعددة.

في حالات مساحات العمل المتعددة، يمكنك الوصول إلى النماذج عبر مساحات عمل Azure Databricks باستخدام سجل نموذج بعيد. على سبيل المثال، يمكن لعلماء البيانات الوصول إلى سجل نموذج الإنتاج مع الوصول للقراءة فقط لمقارنة نماذجهم قيد التطوير بنماذج الإنتاج الحالية. يظهر أدناه مثال على إعداد مساحات عمل متعددة.

مساحات عمل متعددة

يتم التحكم في الوصول إلى سجل بعيد بواسطة الرموز المميزة. ينشئ كل مستخدم أو برنامج نصي يحتاج إلى الوصول رمز وصول شخصي في السجل البعيد وينسخ هذا الرمز المميز إلى المدير السري لمساحة العمل المحلية الخاصة به. يجب أن يتضمن كل طلب واجهة برمجة تطبيقات يتم إرساله إلى مساحة عمل السجل البعيد رمز الوصول المميز؛ يوفر MLflow آلية بسيطة لتحديد الأسرار التي سيتم استخدامها عند تنفيذ عمليات تسجيل النموذج.

إشعار

كأفضل ممارسة أمان، عند المصادقة باستخدام الأدوات والأنظمة والبرامج النصية والتطبيقات التلقائية، توصي Databricks باستخدام رموز الوصول الشخصية التي تنتمي إلى كيانات الخدمة بدلا من مستخدمي مساحة العمل. لإنشاء رموز مميزة لكيانات الخدمة، راجع إدارة الرموز المميزة لكيان الخدمة.

يتم دعم جميع أساليب العميل وواجهة برمجة التطبيقات بطلاقة لسجل النموذج لمساحات العمل البعيدة.

المتطلبات

يتطلب استخدام سجل نموذج عبر مساحات العمل عميل MLflow Python، الإصدار 1.11.0 أو أعلى.

إشعار

يتم تنفيذ سير العمل هذا من المنطق في عميل MLflow. تأكد من أن البيئة التي تشغل العميل لديها حق الوصول لإجراء طلبات الشبكة مقابل مساحة عمل Azure Databricks التي تحتوي على سجل النموذج البعيد. أحد القيود الشائعة الموضوعة على مساحة عمل التسجيل هو قائمة السماح ب IP، والتي يمكن أن تمنع الاتصالات من عملاء MLflow الذين يعملون في نظام مجموعة في مساحة عمل أخرى.

إعداد الرمز المميز لواجهة برمجة التطبيقات لسجل بعيد

  1. في مساحة عمل سجل النموذج، قم بإنشاء رمز مميز للوصول.
  2. في مساحة العمل المحلية، قم بإنشاء أسرار لتخزين الرمز المميز للوصول ومعلومات مساحة العمل البعيدة:
    1. إنشاء نطاق سري: databricks secrets create-scope <scope>.
    2. اختر اسما فريدا لمساحة العمل الهدف، الموضح هنا ك <prefix>. ثم قم بإنشاء ثلاثة أسرار:
      • databricks secrets put-secret <scope> <prefix>-host : أدخل اسم المضيف لمساحة عمل سجل النموذج. على سبيل المثال: https://westus.azuredatabricks.net/ أو https://adb-5555555555555555.19.azuredatabricks.net/.
      • databricks secrets put-secret <scope> <prefix>-token : أدخل الرمز المميز للوصول من مساحة عمل سجل النموذج.
      • databricks secrets put-secret <scope> <prefix>-workspace-id : أدخل معرف مساحة العمل لمساحة عمل سجل النموذج التي يمكن العثور عليها في عنوان URL لأي صفحة.

إشعار

قد ترغب في مشاركة النطاق السري مع مستخدمين آخرين، نظرا لوجود حد لعدد النطاقات السرية لكل مساحة عمل.

تحديد سجل بعيد

استنادا إلى النطاق السري وبادئة الاسم التي أنشأتها لمساحة عمل السجل البعيد، يمكنك إنشاء سجل URI للنموذج:

registry_uri = f'databricks://<scope>:<prefix>'

يمكنك استخدام URI لتحديد سجل بعيد لأساليب واجهة برمجة التطبيقات بطلاقة عن طريق الاتصال أولا:

mlflow.set_registry_uri(registry_uri)

أو يمكنك تحديده بشكل صريح عند إنشاء MlflowClientمثيل :

client = MlflowClient(registry_uri=registry_uri)

تظهر مهام سير العمل التالية أمثلة على كلا النهجين.

تسجيل نموذج في السجل البعيد

إحدى الطرق لتسجيل نموذج هي استخدام mlflow.register_model واجهة برمجة التطبيقات:

mlflow.set_registry_uri(registry_uri)
mlflow.register_model(model_uri=f'runs:/<run-id>/<artifact-path>', name=model_name)

يمكن العثور على أمثلة لأساليب تسجيل النموذج الأخرى في دفتر الملاحظات في نهاية هذه الصفحة.

إشعار

يؤدي تسجيل نموذج في مساحة عمل بعيدة إلى إنشاء نسخة مؤقتة من البيانات الاصطناعية للنموذج في DBFS في مساحة العمل البعيدة. قد تحتاج إلى حذف هذه النسخة بمجرد أن يكون إصدار النموذج في READY حالة . يمكن العثور على الملفات المؤقتة /dbfs/databricks/mlflow/tmp-external-source/<run-id> ضمن المجلد .

يمكنك أيضا تحديد tracking_uri للإشارة إلى خدمة تتبع MLflow في مساحة عمل أخرى بطريقة مشابهة ل registry_uri. وهذا يعني أنه يمكنك إجراء تشغيل على مساحة عمل بعيدة وتسجيل نموذجها في مساحة العمل الحالية أو مساحة عمل بعيدة أخرى.

استخدام نموذج من السجل البعيد

يمكنك تحميل واستخدام إصدار نموذج في سجل بعيد باستخدام mlflow.<flavor>.load_model أساليب عن طريق تعيين عنوان URI للسجل أولا:

mlflow.set_registry_uri(registry_uri)
model = mlflow.pyfunc.load_model(f'models:/<model-name>/Staging')
model.predict(...)

أو يمكنك تحديد السجل البعيد بشكل صريح في models:/ URI:

model = mlflow.pyfunc.load_model(f'models://<scope>:<prefix>@databricks/<model-name>/Staging')
model.predict(...)

يتم أيضا دعم أساليب المساعد الأخرى للوصول إلى ملفات النموذج، مثل:

client.get_latest_versions(model_name)
client.get_model_version_download_uri(model_name, version)

إدارة نموذج في السجل البعيد

يمكنك تنفيذ أي إجراء على النماذج في السجل البعيد طالما أن لديك الأذونات المطلوبة. على سبيل المثال، إذا كان لديك أذونات CAN MANAGE على نموذج، يمكنك نقل مرحلة إصدار نموذج أو حذف النموذج باستخدام MlflowClient الأساليب:

client = MlflowClient(tracking_uri=None, registry_uri=registry_uri)
client.transition_model_version_stage(model_name, version, 'Archived')
client.delete_registered_model(model_name)

مثال دفتر الملاحظات: سجل النموذج البعيد

ينطبق دفتر الملاحظات التالي على مساحات العمل التي لم يتم تمكينها كتالوج Unity. يوضح كيفية تسجيل النماذج إلى خادم تتبع MLflow من مساحة العمل الحالية، وتسجيل النماذج في Model Registry في مساحة عمل مختلفة. توصي Databricks باستخدام النماذج في كتالوج Unity لمشاركة النماذج عبر مساحات العمل.

دفتر الملاحظات المثال لسجل النموذج البعيد

الحصول على دفتر الملاحظات