إدارة التعليمات البرمجية للتدريب باستخدام عمليات تشغيل MLflow

توضح هذه المقالة تشغيل MLflow لإدارة تدريب التعلم الآلي. كما يتضمن إرشادات حول كيفية إدارة ومقارنة عمليات التشغيل عبر التجارب.

يتوافق تشغيل MLflow مع تنفيذ واحد للتعليمات البرمجية للنموذج. يسجل كل تشغيل المعلومات التالية:

  • المصدر: اسم دفتر الملاحظات الذي قام بتشغيل التشغيل أو اسم المشروع ونقطة الإدخال للتشغيل.
    • الإصدار: تجزئة تثبيت Git إذا تم تخزين دفتر الملاحظات في مجلد Databricks Git أو تشغيله من مشروع MLflow. بخلاف ذلك، مراجعة دفتر الملاحظات.
    • وقت البدء والانتهاء: وقت البدء والانتهاء من التشغيل.
    • المعلمات: معلمات النموذج المحفوظة كأزواج قيم المفاتيح. كل من المفاتيح والقيم هي سلاسل.
    • المقاييس: مقاييس تقييم النموذج المحفوظة كأزواج قيم المفاتيح. القيمة رقمية. يمكن تحديث كل مقياس طوال مسار التشغيل (على سبيل المثال، لتتبع كيفية تقارب دالة فقدان النموذج)، وسجلات MLflow ويتيح لك تصور محفوظات المقياس.
    • العلامات: تشغيل بيانات التعريف المحفوظة كأزواج قيم المفاتيح. يمكنك تحديث العلامات أثناء اكتمال التشغيل وبعده. كل من المفاتيح والقيم هي سلاسل.
    • Artifacts: ملفات الإخراج بأي تنسيق. على سبيل المثال، يمكنك تسجيل الصور والنماذج (على سبيل المثال، نموذج scikit-learn منتقي) وملفات البيانات (على سبيل المثال، ملف Parquet) كبيانات اصطناعية.

يتم تسجيل جميع عمليات تشغيل MLflow إلى التجربة النشطة. إذا لم تقم بتعيين تجربة بشكل صريح كتجربة نشطة، يتم تسجيل عمليات التشغيل إلى تجربة دفتر الملاحظات.

عرض عمليات التشغيل

يمكنك الوصول إلى تشغيل إما من صفحة التجربة الأصلية الخاصة به أو مباشرة من دفتر الملاحظات الذي أنشأ التشغيل.

من صفحة التجربة، في جدول التشغيل، انقر فوق وقت بدء التشغيل.

من دفتر الملاحظات، انقر إلى ارتباط خارجي جانب تاريخ ووقت التشغيل في الشريط الجانبي تشغيل التجربة.

تعرض شاشة التشغيل المعلمات المستخدمة للتشغيل والمقاييس الناتجة عن التشغيل وأي علامات أو ملاحظات. لعرض الملاحظات أو المعلمات أو المقاييس أو العلامات لهذا التشغيل، انقر على سهم يشير إلى اليمين يسار التسمية.

يمكنك أيضا الوصول إلى البيانات الاصطناعية المحفوظة من تشغيل في هذه الشاشة.

عرض التشغيل

مقتطفات التعليمات البرمجية للتنبؤ

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

توقع قصاصات التعليمات البرمجية

عرض دفتر الملاحظات أو مشروع Git المستخدم للتشغيل

لعرض إصدار دفتر الملاحظات الذي أنشأ تشغيل:

  • في صفحة التجربة، انقر فوق الارتباط في العمود المصدر .
  • في صفحة التشغيل، انقر فوق الارتباط الموجود بجانب المصدر.
  • من دفتر الملاحظات، في الشريط الجانبي تشغيل التجربة، انقر فوق أيقونة أيقونة إصدار دفتر الملاحظات دفتر الملاحظات في مربع تشغيل التجربة هذا.

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

إذا تم تشغيل التشغيل عن بعد من مشروع Git، فانقر فوق الارتباط في حقل Git Commit لفتح الإصدار المحدد من المشروع المستخدم في التشغيل. يفتح الارتباط الموجود في حقل المصدر الفرع الرئيسي لمشروع Git المستخدم في التشغيل.

إضافة علامة إلى تشغيل

العلامات هي أزواج قيم المفاتيح التي يمكنك إنشاؤها واستخدامها لاحقا للبحث عن عمليات التشغيل.

  1. من صفحة التشغيل، انقر إذا أيقونة العلامة لم تكن مفتوحة بالفعل. يظهر جدول العلامات.

    جدول العلامات

  2. انقر في حقلي الاسم والقيمة واكتب المفتاح والقيمة للعلامة.

  3. انقر فوق إضافة.

    إضافة علامة

تحرير علامة للتشغيل أو حذفها

لتحرير علامة موجودة أو حذفها، استخدم الأيقونات في عمود الإجراءات .

إجراءات العلامة

إعادة إنتاج بيئة البرنامج للتشغيل

يمكنك إعادة إنتاج بيئة البرنامج الدقيقة للتشغيل بالنقر فوق إعادة إنتاج تشغيل. يظهر مربع الحوار التالي:

إعادة إنشاء مربع حوار التشغيل

باستخدام الإعدادات الافتراضية، عند النقر فوق تأكيد:

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

يمكنك تحديد موقع مختلف لدفتر الملاحظات المستنسخ وفحص تكوين نظام المجموعة والمكتبات المثبتة:

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

إدارة عمليات التشغيل

إعادة تسمية التشغيل

لإعادة تسمية تشغيل، انقر في أيقونة الزر الثلاثة الزاوية العلوية اليسرى من صفحة التشغيل وحدد إعادة تسمية.

تشغيل عامل التصفية

يمكنك البحث عن عمليات التشغيل استنادا إلى قيم المعلمات أو المقاييس. يمكنك أيضا البحث عن عمليات التشغيل حسب العلامة.

  • للبحث عن عمليات التشغيل التي تطابق تعبيرا يحتوي على قيم معلمة ومقاييس، أدخل استعلاما في حقل البحث وانقر فوق بحث. بعض أمثلة بناء جملة الاستعلام هي:

    metrics.r2 > 0.3

    params.elasticNetParam = 0.5

    params.elasticNetParam = 0.5 AND metrics.avg_areaUnderROC > 0.3

  • للبحث عن عمليات التشغيل حسب العلامة، أدخل العلامات بالتنسيق: tags.<key>="<value>". يجب أن تكون قيم السلسلة محاطة بعلامات اقتباس كما هو موضح.

    tags.estimator_name="RandomForestRegressor"

    tags.color="blue" AND tags.size=5

    يمكن أن تحتوي كل من المفاتيح والقيم على مسافات. إذا كان المفتاح يتضمن مسافات، يجب إحاطته بخلفيات كما هو موضح.

    tags.`my custom tag` = "my value"
    

يمكنك أيضا تصفية عمليات التشغيل استنادا إلى حالتها (نشطة أو محذوفة) واستنادا إلى ما إذا كان إصدار النموذج مقترنا بالتشغيل. للقيام بذلك، قم بإجراء التحديدات من القائمة المنسدلة State and Time Created على التوالي.

تشغيل عامل التصفية

تنزيل عمليات التشغيل

  1. حدد تشغيل واحد أو أكثر.

  2. انقر فوق تنزيل CSV. يتم تنزيل ملف CSV يحتوي على الحقول التالية:

    Run ID,Name,Source Type,Source Name,User,Status,<parameter1>,<parameter2>,...,<metric1>,<metric2>,...
    

حذف عمليات التشغيل

يمكنك حذف عمليات التشغيل باستخدام واجهة مستخدم التعلم الآلي Databricks بالخطوات التالية:

  1. في التجربة، حدد تشغيل واحد أو أكثر بالنقر في خانة الاختيار إلى يسار التشغيل.
  2. انقر على حذف.
  3. إذا كان التشغيل هو تشغيل أصل، فحدد ما إذا كنت تريد أيضا حذف عمليات التشغيل التابعة. يكون هذا الخيار محددًا بشكل افتراضي.
  4. انقر فوق حذف للتأكيد. يتم حفظ عمليات التشغيل المحذوفة لمدة 30 يوما. لعرض عمليات التشغيل المحذوفة، حدد محذوف في حقل الحالة.

عمليات تشغيل الحذف المجمع استنادا إلى وقت الإنشاء

يمكنك استخدام Python للحذف المجمع لعمليات تشغيل تجربة تم إنشاؤها قبل أو في طابع زمني UNIX. باستخدام Databricks Runtime 14.1 أو أحدث، يمكنك استدعاء mlflow.delete_runs واجهة برمجة التطبيقات لحذف عمليات التشغيل وإرجاع عدد عمليات التشغيل المحذوفة.

فيما يلي mlflow.delete_runs المعلمات:

  • experiment_id: معرف التجربة التي تحتوي على عمليات التشغيل المراد حذفها.
  • max_timestamp_millis: الحد الأقصى للطابع الزمني للإنشاء بالمللي ثانية منذ فترة UNIX لحذف عمليات التشغيل. يتم حذف عمليات التشغيل التي تم إنشاؤها قبل الطابع الزمني أو في هذا الطابع الزمني فقط.
  • max_runs:الاختياري. عدد صحيح موجب يشير إلى الحد الأقصى لعدد عمليات التشغيل المراد حذفها. الحد الأقصى للقيمة المسموح بها max_runs هو 10000. إذا لم يتم تحديده، max_runs فسيتم تعيينه افتراضيا إلى 10000.
import mlflow

# Replace <experiment_id>, <max_timestamp_ms>, and <max_runs> with your values.
runs_deleted = mlflow.delete_runs(
  experiment_id=<experiment_id>,
  max_timestamp_millis=<max_timestamp_ms>,
  max_runs=<max_runs>
)
# Example:
runs_deleted = mlflow.delete_runs(
  experiment_id="4183847697906956",
  max_timestamp_millis=1711990504000,
  max_runs=10
)

باستخدام Databricks Runtime 13.3 LTS أو إصدار سابق، يمكنك تشغيل التعليمات البرمجية للعميل التالية في دفتر ملاحظات Azure Databricks.

from typing import Optional

def delete_runs(experiment_id: str,
                max_timestamp_millis: int,
                max_runs: Optional[int] = None) -> int:
    """
    Bulk delete runs in an experiment that were created prior to or at the specified timestamp.
    Deletes at most max_runs per request.

    :param experiment_id: The ID of the experiment containing the runs to delete.
    :param max_timestamp_millis: The maximum creation timestamp in milliseconds
                                 since the UNIX epoch for deleting runs. Only runs
                                 created prior to or at this timestamp are deleted.
    :param max_runs: Optional. A positive integer indicating the maximum number
                     of runs to delete. The maximum allowed value for max_runs
                     is 10000. If not specified, max_runs defaults to 10000.
    :return: The number of runs deleted.
    """
    from mlflow.utils.databricks_utils import get_databricks_host_creds
    from mlflow.utils.request_utils import augmented_raise_for_status
    from mlflow.utils.rest_utils import http_request

    json_body = {"experiment_id": experiment_id, "max_timestamp_millis": max_timestamp_millis}
    if max_runs is not None:
        json_body["max_runs"] = max_runs
    response = http_request(
        host_creds=get_databricks_host_creds(),
        endpoint="/api/2.0/mlflow/databricks/runs/delete-runs",
        method="POST",
        json=json_body,
    )
    augmented_raise_for_status(response)
    return response.json()["runs_deleted"]

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

عمليات تشغيل الاستعادة

يمكنك استعادة عمليات التشغيل المحذوفة مسبقا باستخدام واجهة مستخدم التعلم الآلي Databricks.

  1. في صفحة التجربة ، حدد محذوف في حقل الحالة لعرض عمليات التشغيل المحذوفة.
  2. حدد تشغيلا واحدا أو أكثر بالنقر فوق خانة الاختيار إلى يسار التشغيل.
  3. انقر فوق استعادة.
  4. انقر فوق استعادة للتأكيد. لعرض عمليات التشغيل المستعادة، حدد نشط في حقل الحالة.

يتم تشغيل الاستعادة المجمعة استنادا إلى وقت الحذف

يمكنك أيضا استخدام Python للاستعادة المجمعة لعمليات تشغيل تجربة تم حذفها في الطابع الزمني UNIX أو بعده. باستخدام Databricks Runtime 14.1 أو أحدث، يمكنك استدعاء mlflow.restore_runs واجهة برمجة التطبيقات لاستعادة عمليات التشغيل وإرجاع عدد عمليات التشغيل المستعادة.

فيما يلي mlflow.restore_runs المعلمات:

  • experiment_id: معرف التجربة التي تحتوي على عمليات التشغيل المراد استعادتها.
  • min_timestamp_millis: الحد الأدنى للطابع الزمني للحذف بالمللي ثانية منذ فترة UNIX لاستعادة عمليات التشغيل. تتم استعادة عمليات التشغيل المحذوفة فقط في هذا الطابع الزمني أو بعده.
  • max_runs:الاختياري. عدد صحيح موجب يشير إلى الحد الأقصى لعدد عمليات التشغيل التي يجب استعادتها. الحد الأقصى للقيمة المسموح بها max_runs هو 10000. إذا لم يتم تحديدها، max_runs افتراضيا إلى 10000.
import mlflow

# Replace <experiment_id>, <min_timestamp_ms>, and <max_runs> with your values.
runs_restored = mlflow.restore_runs(
  experiment_id=<experiment_id>,
  min_timestamp_millis=<min_timestamp_ms>,
  max_runs=<max_runs>
)
# Example:
runs_restored = mlflow.restore_runs(
  experiment_id="4183847697906956",
  min_timestamp_millis=1711990504000,
  max_runs=10
)

باستخدام Databricks Runtime 13.3 LTS أو إصدار سابق، يمكنك تشغيل التعليمات البرمجية للعميل التالية في دفتر ملاحظات Azure Databricks.

from typing import Optional

def restore_runs(experiment_id: str,
                 min_timestamp_millis: int,
                 max_runs: Optional[int] = None) -> int:
    """
    Bulk restore runs in an experiment that were deleted at or after the specified timestamp.
    Restores at most max_runs per request.

    :param experiment_id: The ID of the experiment containing the runs to restore.
    :param min_timestamp_millis: The minimum deletion timestamp in milliseconds
                                 since the UNIX epoch for restoring runs. Only runs
                                 deleted at or after this timestamp are restored.
    :param max_runs: Optional. A positive integer indicating the maximum number
                     of runs to restore. The maximum allowed value for max_runs
                     is 10000. If not specified, max_runs defaults to 10000.
    :return: The number of runs restored.
    """
    from mlflow.utils.databricks_utils import get_databricks_host_creds
    from mlflow.utils.request_utils import augmented_raise_for_status
    from mlflow.utils.rest_utils import http_request
    json_body = {"experiment_id": experiment_id, "min_timestamp_millis": min_timestamp_millis}
    if max_runs is not None:
        json_body["max_runs"] = max_runs
    response = http_request(
        host_creds=get_databricks_host_creds(),
        endpoint="/api/2.0/mlflow/databricks/runs/restore-runs",
        method="POST",
        json=json_body,
    )
    augmented_raise_for_status(response)
    return response.json()["runs_restored"]

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

مقارنة عمليات التشغيل

يمكنك مقارنة عمليات التشغيل من تجربة واحدة أو من تجارب متعددة. تعرض صفحة مقارنة عمليات التشغيل معلومات حول عمليات التشغيل المحددة بتنسيقات رسومية وجدولية. يمكنك أيضا إنشاء مرئيات لنتائج التشغيل وجداول معلومات التشغيل ومعلمات التشغيل والمقاييس.

لإنشاء مرئيات:

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

      مقارنة مرئيات صفحة عمليات التشغيل

    2. بالنسبة إلى رسم مبعثر أو رسم إحاطة، حدد المعلمة أو المقياس لعرضه على كل محور.

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

مقارنة جداول صفحات التشغيل

مقارنة عمليات التشغيل من تجربة واحدة

  1. في صفحة التجربة، حدد تشغيلين أو أكثر بالنقر فوق خانة الاختيار إلى يسار التشغيل، أو حدد كافة عمليات التشغيل عن طريق تحديد المربع في أعلى العمود.
  2. انقر فوق مقارنة. تظهر شاشة مقارنة <N> عمليات التشغيل.

مقارنة عمليات التشغيل من تجارب متعددة

  1. في صفحة التجارب، حدد التجارب التي تريد مقارنتها بالنقر في المربع الموجود على يسار اسم التجربة.
  2. انقر فوق مقارنة (n) (n هو عدد التجارب التي حددتها). تظهر شاشة تعرض جميع عمليات التشغيل من التجارب التي حددتها.
  3. حدد تشغيلين أو أكثر بالنقر في خانة الاختيار إلى يسار التشغيل، أو حدد كافة عمليات التشغيل عن طريق تحديد المربع في أعلى العمود.
  4. انقر فوق مقارنة. تظهر شاشة مقارنة <N> عمليات التشغيل.

نسخ عمليات التشغيل بين مساحات العمل

لاستيراد أو تصدير تشغيل MLflow من أو إلى مساحة عمل Databricks الخاصة بك، يمكنك استخدام مشروع MLflow Export-Import مصدر مفتوح المستند إلى المجتمع.