نموذج MLflow يخدم على ستريك البيانات Azure

هام

هذه الميزة في المعاينة العامة.

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

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

أثناء هذه الخدمة في المعاينة، توصي Databricks باستخدامها للتطبيقات ذات الإنتاجية المنخفضة والتطبيقات غير الحرجة. تبلغ الإنتاجية المستهدفة 200 qps والتوافر المستهدف هو 99.5٪، على الرغم من عدم وجود ضمان لأي منهما. بالإضافة إلى ذلك، هناك حد لحجم الحمولة 16 ميغابايت لكل طلب.

يتم نشر كل إصدار طراز باستخدام نشر طراز MLflow ويتم تشغيله في بيئة Conda المحددة من قبل تبعياته.

ملاحظة

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

المتطلبات

  • MLflow النموذجي خدمة متاح لنماذج بيثون MLflow. يجب أن تقوم بتعريف كافة تبعيات الطراز في بيئة conda.
  • لتمكين Model Serving، يجب أن يكون لديك إذن إنشاء نظام المجموعة.

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

يتوفر عرض الطراز في Azure Databricks من "التسجيل النموذجي".

تمكين وتعطيل عرض الطراز

يمكنك تمكين نموذج للخدمة من صفحة النموذج المسجلةالخاصة به .

  1. انقر فوق علامة التبويب التقديم. إذا لم يكن النموذج ممكنا للخدمة، يظهر الزر تمكين الخدمة.

    تمكين زر التقديم

  2. انقر فوق تمكين التقديم. تظهر علامة التبويب "التقديم" بالحالة المعروضة على أنها معلقة. بعد بضع دقائق، تتغير الحالة إلى جاهز.

لتعطيل نموذج للخدمة، انقر فوق إيقاف.

التحقق من صحة خدمة الطراز

من علامة التبويب "التقديم"، يمكنك إرسال طلب إلى النموذج الذي تم تقديمه وعرض الاستجابة.

تمكين التقديم

محددات مواقع المعلومات الخاصة بإصدار الطراز

يتم تعيين إصدار طراز منشور واحد أو عدة معرفات مواقع معلومات فريدة. كحد أدنى، يتم تعيين كل إصدار طراز URI التي شيدت على النحو التالي:

<databricks-instance>/model/<registered-model-name>/<model-version>/invocations

على سبيل المثال، للاتصال بالإصدار 1 من نموذج مسجل ك iris-classifier ، استخدم URI هذا:

https://<databricks-instance>/model/iris-classifier/1/invocations

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

https://<databricks-instance>/model/iris-classifier/Production/invocations

تظهر قائمة مؤشرات أسعار النماذج المتوفرة في أعلى علامة التبويب "إصدارات الطراز" في صفحة التقديم.

إدارة الإصدارات التي تم تقديمها

يتم نشر كافة إصدارات الطراز النشطة (غير المؤرشفة)، ويمكنك الاستعلام عنها باستخدام معرفات مواقع المعلومات ( URIs). يقوم Azure Databricks تلقائيا بنشر إصدارات طراز جديدة عند تسجيلها، كما يقوم تلقائيا بإزالة الإصدارات القديمة عند أرشفتها.

ملاحظة

تشترك كافة الإصدارات المنشورة من طراز مسجل في نفس الكتلة.

إدارة حقوق الوصول إلى النموذج

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

نقاط إصدارات الطراز المنشورة

لتسجيل نموذج منشور، يمكنك استخدام واجهة المستخدم أو إرسال طلب REST API إلى الطراز URI.

النتيجة عبر واجهة المستخدم

هذه هي أسهل وأسرع طريقة لاختبار النموذج. يمكنك إدراج بيانات إدخال النموذج بتنسيق JSON والنقر فوق إرسال طلب. إذا تم تسجيل النموذج مع مثال إدخال (كما هو موضح في الرسم أعلاه)، انقر فوق تحميل المثال لتحميل مثال الإدخال.

النتيجة عبر طلب REST API

يمكنك إرسال طلب تسجيل نقاط من خلال واجهة برمجة تطبيقات REST باستخدام مصادقة Databricks القياسية. توضح الأمثلة أدناه المصادقة باستخدام رمز وصول شخصي.

نظرا MODEL_VERSION_URI لما يشبه https://<databricks-instance>/model/iris-classifier/Production/invocations (أين <databricks-instance> هو اسم مثيل MODEL_VERSION_URIورمز واجهة برمجة تطبيقات Rest Databricks يسمى DATABRICKS_API_TOKEN ، إليك بعض مقتطفات المثال عن كيفية الاستعلام عن نموذج خدم:

Bash

قصاصة للاستعلام عن نموذج يقبل مدخلات إطار البيانات.

curl -X POST -u token:$DATABRICKS_API_TOKEN $MODEL_VERSION_URI \
  -H 'Content-Type: application/json' \
  -d '[
    {
      "sepal_length": 5.1,
      "sepal_width": 3.5,
      "petal_length": 1.4,
      "petal_width": 0.2
    }
  ]'

قصاصة للاستعلام عن نموذج يقبل مدخلات الشد. يجب تنسيق مدخلات Tensor كما هو موضح في مستندات API الخاصة ب TensorFlow Serving.

curl -X POST -u token:$DATABRICKS_API_TOKEN $MODEL_VERSION_URI \
   -H 'Content-Type: application/json' \
   -d '{"inputs": [[5.1, 3.5, 1.4, 0.2]]}'

Python

import numpy as np
import pandas as pd
import requests

def create_tf_serving_json(data):
  return {'inputs': {name: data[name].tolist() for name in data.keys()} if isinstance(data, dict) else data.tolist()}

def score_model(model_uri, databricks_token, data):
  headers = {
    "Authorization": f"Bearer {databricks_token}",
    "Content-Type": "application/json",
  }
  data_json = data.to_dict(orient='records') if isinstance(data, pd.DataFrame) else create_tf_serving_json(data)
  response = requests.request(method='POST', headers=headers, url=model_uri, json=data_json)
  if response.status_code != 200:
      raise Exception(f"Request failed with status {response.status_code}, {response.text}")
  return response.json()

# Scoring a model that accepts pandas DataFrames
data =  pd.DataFrame([{
  "sepal_length": 5.1,
  "sepal_width": 3.5,
  "petal_length": 1.4,
  "petal_width": 0.2
}])
score_model(MODEL_VERSION_URI, DATABRICKS_API_TOKEN, data)

# Scoring a model that accepts tensors
data = np.asarray([[5.1, 3.5, 1.4, 0.2]])
score_model(MODEL_VERSION_URI, DATABRICKS_API_TOKEN, data)

باوربي

يمكنك تسجيل مجموعة بيانات في Power BI Desktop باستخدام الخطوات التالية:

  1. افتح مجموعة البيانات التي تريد تسجيلها.

  2. انتقل إلى تحويل البيانات.

  3. انقر بزر الماوس الأيمن في اللوحة اليمنى وحدد إنشاء استعلام جديد.

  4. انتقل إلى عرض محرر متقدم.

  5. استبدل نص الاستعلام بمقتطف التعليمات البرمجية أدناه، بعد ملء جزء مناسب DATABRICKS_API_TOKEN و MODEL_VERSION_URI .

    (dataset as table ) as table =>
    let
      call_predict = (dataset as table ) as list =>
      let
        apiToken = DATABRICKS_API_TOKEN,
        modelUri = MODEL_VERSION_URI,
        responseList = Json.Document(Web.Contents(modelUri,
          [
            Headers = [
              #"Content-Type" = "application/json",
              #"Authorization" = Text.Format("Bearer #{0}", {apiToken})
            ],
            Content = Json.FromValue(dataset)
          ]
        ))
      in
        responseList,
      predictionList = List.Combine(List.Transform(Table.Split(dataset, 256), (x) => call_predict(x))),
      predictionsTable = Table.FromList(predictionList, (x) => {x}, {"Prediction"}),
      datasetWithPrediction = Table.Join(
        Table.AddIndexColumn(predictionsTable, "index"), "index",
        Table.AddIndexColumn(dataset, "index"), "index")
    in
      datasetWithPrediction
    
  6. قم بتسمية الاستعلام باسم الطراز المطلوب.

  7. افتح محرر الاستعلام المتقدم لمجموعة البيانات الخاصة بك وتطبيق وظيفة الطراز.

لمزيد من المعلومات حول تنسيقات بيانات الإدخال المقبولة من قبل الخادم (على سبيل المثال، تنسيق الباندا ذو التوجه المنقسم)، راجع وثائق MLflow.

رصد النماذج المقدمة

تعرض صفحة التقديم مؤشرات الحالة الخاصة بمجموعة الخدمة بالإضافة إلى إصدارات النماذج الفردية.

  • لفحص حالة نظام المجموعة الخدمة، استخدم علامة التبويب أحداث الطراز، التي تعرض قائمة بكافة أحداث الخدمة لهذا الطراز.
  • لفحص حالة إصدار طراز واحد، انقر فوق علامة التبويب إصدارات الطراز ثم قم بالتمرير لعرض علامات التبويب سجلات أو أحداث الإصدار.

علامة التبويب التقديم

تخصيص نظام المجموعة خدمة

لتخصيص نظام المجموعة خدمة، استخدم علامة التبويب الإعدادات الكتلة في التبويب "التقديم".

إعدادات الكتلة

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

أخطاء معروفة

ResolvePackageNotFound: pyspark=3.1.0

يمكن أن يحدث هذا الخطأ إذا كان نموذج يعتمد على pyspark ويتم تسجيل باستخدام Databricks وقت التشغيل 8.x. إذا رأيت هذا الخطأ، حدد pyspark الإصدار بوضوح عند تسجيل النموذج، باستخدام pyspark.