مشاركة عبر


استخدام مكتبات Python المخصصة مع خدمة النموذج

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

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

المتطلبات

  • MLflow 1.29 أو أعلى

الخطوة 1: تحميل ملف التبعية

توصي Databricks بتحميل ملف التبعية إلى وحدات تخزين كتالوج Unity. بدلا من ذلك، يمكنك تحميله إلى نظام ملفات Databricks (DBFS) باستخدام واجهة مستخدم Azure Databricks.

للتأكد من توفر مكتبتك لدفتر الملاحظات، تحتاج إلى تثبيتها باستخدام %pip%. يؤدي استخدام %pip إلى تثبيت المكتبة في دفتر الملاحظات الحالي وتنزيل التبعية إلى نظام المجموعة.

الخطوة 2: تسجيل النموذج باستخدام مكتبة مخصصة

هام

الإرشادات الموجودة في هذا القسم غير مطلوبة إذا قمت بتثبيت المكتبة الخاصة عن طريق الإشارة إلى مرآة PyPi مخصصة.

بعد تثبيت المكتبة وتحميل ملف عجلة Python إما إلى وحدات تخزين كتالوج Unity أو DBFS، قم بتضمين التعليمات البرمجية التالية في البرنامج النصي الخاص بك. في تحديد extra_pip_requirements مسار ملف التبعية.

mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/volume/path/to/dependency.whl"])

بالنسبة إلى DBFS، استخدم ما يلي:

mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/dbfs/path/to/dependency.whl"])

إذا كان لديك مكتبة مخصصة، فيجب عليك تحديد جميع مكتبات Python المخصصة المقترنة بالنموذج الخاص بك عند تكوين التسجيل. يمكنك القيام بذلك باستخدام extra_pip_requirements المعلمات أو conda_env في log_model().

هام

إذا كنت تستخدم DBFS، فتأكد من تضمين شرطة مائلة للأمام، /، قبل المسار الخاص بك dbfs عند تسجيل .extra_pip_requirements تعرف على المزيد حول مسارات DBFS في العمل مع الملفات على Azure Databricks.

from mlflow.utils.environment import _mlflow_conda_env
conda_env =  _mlflow_conda_env(
            additional_conda_deps= None,
            additional_pip_deps= ["/volumes/path/to/dependency"],
            additional_conda_channels=None,
)
mlflow.pyfunc.log_model(..., conda_env = conda_env)

الخطوة 3: تحديث نموذج MLflow مع ملفات عجلة Python

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

في المثال التالي، model_uri يشير إلى سجل النموذج باستخدام بناء الجملة models:/<model-name>/<model-version>.

عند استخدام عنوان URI لسجل النموذج، تنشئ هذه الأداة المساعدة إصدارا جديدا ضمن النموذج المسجل الحالي.

import mlflow.models.utils
mlflow.models.utils.add_libraries_to_model(<model-uri>)

الخطوة 4: خدمة النموذج الخاص بك

عندما يتوفر إصدار نموذج جديد مع الحزم المضمنة في سجل النموذج، يمكنك إضافة إصدار النموذج هذا إلى نقطة نهاية مع خدمة النموذج.