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

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

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

Multiple workspaces

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

يتم اعتماد كافة أساليب API العميل و بطلاقة لتسجيل نموذج لمساحات العمل البعيدة.

المتطلبات

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

ملاحظة

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

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

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

ملاحظة

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

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

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

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

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

mlflow.set_registry_uri(registry_uri)

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

client = MlflowClient(registry_uri=registry_uri)

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

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

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

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)

إدارة طراز في التسجيل البعيد

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

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

دفتر الملاحظات

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

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