إدارة التعليمات البرمجية للتدريب باستخدام عمليات تشغيل MLflow
توضح هذه المقالة تشغيل MLflow لإدارة تدريب التعلم الآلي. كما يتضمن إرشادات حول كيفية إدارة ومقارنة عمليات التشغيل عبر التجارب.
يتوافق تشغيل MLflow مع تنفيذ واحد للتعليمات البرمجية للنموذج. يسجل كل تشغيل المعلومات التالية:
- المصدر: اسم دفتر الملاحظات الذي قام بتشغيل التشغيل أو اسم المشروع ونقطة الإدخال للتشغيل.
- الإصدار: تجزئة تثبيت Git إذا تم تخزين دفتر الملاحظات في مجلد Databricks Git أو تشغيله من مشروع MLflow. بخلاف ذلك، مراجعة دفتر الملاحظات.
- وقت البدء والانتهاء: وقت البدء والانتهاء من التشغيل.
- المعلمات: معلمات النموذج المحفوظة كأزواج قيم المفاتيح. كل من المفاتيح والقيم هي سلاسل.
- المقاييس: مقاييس تقييم النموذج المحفوظة كأزواج قيم المفاتيح. القيمة رقمية. يمكن تحديث كل مقياس طوال مسار التشغيل (على سبيل المثال، لتتبع كيفية تقارب دالة فقدان النموذج)، وسجلات MLflow ويتيح لك تصور محفوظات المقياس.
- العلامات: تشغيل بيانات التعريف المحفوظة كأزواج قيم المفاتيح. يمكنك تحديث العلامات أثناء اكتمال التشغيل وبعده. كل من المفاتيح والقيم هي سلاسل.
- Artifacts: ملفات الإخراج بأي تنسيق. على سبيل المثال، يمكنك تسجيل الصور والنماذج (على سبيل المثال، نموذج scikit-learn منتقي) وملفات البيانات (على سبيل المثال، ملف Parquet) كبيانات اصطناعية.
يتم تسجيل جميع عمليات تشغيل MLflow إلى التجربة النشطة. إذا لم تقم بتعيين تجربة بشكل صريح كتجربة نشطة، يتم تسجيل عمليات التشغيل إلى تجربة دفتر الملاحظات.
يمكنك الوصول إلى تشغيل إما من صفحة التجربة الأصلية الخاصة به أو مباشرة من دفتر الملاحظات الذي أنشأ التشغيل.
من صفحة التجربة، في جدول التشغيل، انقر فوق وقت بدء التشغيل.
من دفتر الملاحظات، انقر إلى جانب تاريخ ووقت التشغيل في الشريط الجانبي تشغيل التجربة.
تعرض شاشة التشغيل المعلمات المستخدمة للتشغيل والمقاييس الناتجة عن التشغيل وأي علامات أو ملاحظات. لعرض الملاحظات أو المعلمات أو المقاييس أو العلامات لهذا التشغيل، انقر على يسار التسمية.
يمكنك أيضا الوصول إلى البيانات الاصطناعية المحفوظة من تشغيل في هذه الشاشة.
إذا قمت بتسجيل نموذج من تشغيل، يظهر النموذج في قسم Artifacts في هذه الصفحة. لعرض أجزاء التعليمات البرمجية التي توضح كيفية تحميل النموذج واستخدامه لإجراء تنبؤات على Spark وpandas DataFrames، انقر فوق اسم النموذج.
لعرض إصدار دفتر الملاحظات الذي أنشأ تشغيل:
- في صفحة التجربة، انقر فوق الارتباط في العمود المصدر .
- في صفحة التشغيل، انقر فوق الارتباط الموجود بجانب المصدر.
- من دفتر الملاحظات، في الشريط الجانبي تشغيل التجربة، انقر فوق أيقونة دفتر الملاحظات في مربع تشغيل التجربة هذا.
يظهر إصدار دفتر الملاحظات المقترن بالتشغيل في النافذة الرئيسية مع شريط تمييز يعرض تاريخ التشغيل ووقته.
إذا تم تشغيل التشغيل عن بعد من مشروع Git، فانقر فوق الارتباط في حقل Git Commit لفتح الإصدار المحدد من المشروع المستخدم في التشغيل. يفتح الارتباط الموجود في حقل المصدر الفرع الرئيسي لمشروع Git المستخدم في التشغيل.
العلامات هي أزواج قيم المفاتيح التي يمكنك إنشاؤها واستخدامها لاحقا للبحث عن عمليات التشغيل.
من صفحة التشغيل، انقر إذا لم تكن مفتوحة بالفعل. يظهر جدول العلامات.
انقر في حقلي الاسم والقيمة واكتب المفتاح والقيمة للعلامة.
انقر فوق إضافة.
لتحرير علامة موجودة أو حذفها، استخدم الأيقونات في عمود الإجراءات .
يمكنك إعادة إنتاج بيئة البرنامج الدقيقة للتشغيل بالنقر فوق إعادة إنتاج تشغيل. يظهر مربع الحوار التالي:
باستخدام الإعدادات الافتراضية، عند النقر فوق تأكيد:
- يتم نسخ دفتر الملاحظات إلى الموقع الموضح في مربع الحوار.
- إذا كانت المجموعة الأصلية لا تزال موجودة، يتم إرفاق دفتر الملاحظات المستنسخ بالمجموعة الأصلية ويتم بدء تشغيل نظام المجموعة.
- إذا لم تعد المجموعة الأصلية موجودة، يتم إنشاء نظام مجموعة جديد بنفس التكوين، بما في ذلك أي مكتبات مثبتة، وبدء تشغيله. يتم إرفاق دفتر الملاحظات بالمجموعة الجديدة.
يمكنك تحديد موقع مختلف لدفتر الملاحظات المستنسخ وفحص تكوين نظام المجموعة والمكتبات المثبتة:
- لتحديد مجلد آخر لحفظ دفتر الملاحظات المستنسخ، انقر فوق تحرير مجلد.
- لمشاهدة مواصفات نظام المجموعة، انقر فوق عرض المواصفات. لاستنساخ دفتر الملاحظات فقط وليس نظام المجموعة، قم بإلغاء تحديد هذا الخيار.
- لمشاهدة المكتبات المثبتة على نظام المجموعة الأصلي، انقر فوق عرض المكتبات. إذا كنت لا تهتم بتثبيت المكتبات نفسها كما هو الحال على نظام المجموعة الأصلي، فقم بإلغاء تحديد هذا الخيار.
لإعادة تسمية تشغيل، انقر في الزاوية العلوية اليسرى من صفحة التشغيل وحدد إعادة تسمية.
يمكنك البحث عن عمليات التشغيل استنادا إلى قيم المعلمات أو المقاييس. يمكنك أيضا البحث عن عمليات التشغيل حسب العلامة.
للبحث عن عمليات التشغيل التي تطابق تعبيرا يحتوي على قيم معلمة ومقاييس، أدخل استعلاما في حقل البحث وانقر فوق بحث. بعض أمثلة بناء جملة الاستعلام هي:
metrics.r2 > 0.3
params.elasticNetParam = 0.5
params.elasticNetParam = 0.5 AND metrics.avg_areaUnderROC > 0.3
MIN(metrics.rmse) <= 1
MAX(metrics.memUsage) > 0.9
LATEST(metrics.memUsage) = 0 AND MIN(metrics.rmse) <= 1
بشكل افتراضي، تتم تصفية قيم القياس استنادا إلى آخر قيمة مسجلة. استخدام
MIN
أوMAX
يتيح لك البحث عن عمليات تشغيل استنادا إلى الحد الأدنى أو الأقصى من قيم القياس، على التوالي. لا تحتوي عمليات التشغيل التي تم تسجيلها إلا بعد أغسطس 2024 على الحد الأدنى والحد الأقصى للقيم القياسية.للبحث عن عمليات التشغيل حسب العلامة، أدخل العلامات بالتنسيق:
tags.<key>="<value>"
. يجب أن تكون قيم السلسلة محاطة بعلامات اقتباس كما هو موضح.tags.estimator_name="RandomForestRegressor"
tags.color="blue" AND tags.size=5
يمكن أن تحتوي كل من المفاتيح والقيم على مسافات. إذا كان المفتاح يتضمن مسافات، يجب إحاطته بخلفيات كما هو موضح.
tags.`my custom tag` = "my value"
يمكنك أيضا تصفية عمليات التشغيل استنادا إلى حالتها (نشطة أو محذوفة) واستنادا إلى ما إذا كان إصدار النموذج مقترنا بالتشغيل. للقيام بذلك، قم بإجراء التحديدات من القائمة المنسدلة State and Time Created على التوالي.
حدد تشغيل واحد أو أكثر.
انقر فوق تنزيل CSV. يتم تنزيل ملف CSV يحتوي على الحقول التالية:
Run ID,Name,Source Type,Source Name,User,Status,<parameter1>,<parameter2>,...,<metric1>,<metric2>,...
يمكنك حذف عمليات التشغيل باستخدام واجهة مستخدم الذكاء الاصطناعي Databricks الفسيفساء بالخطوات التالية:
- في التجربة، حدد تشغيل واحد أو أكثر بالنقر في خانة الاختيار إلى يسار التشغيل.
- انقر على حذف.
- إذا كان التشغيل هو تشغيل أصل، فحدد ما إذا كنت تريد أيضا حذف عمليات التشغيل التابعة. يكون هذا الخيار محددًا بشكل افتراضي.
- انقر فوق حذف للتأكيد. يتم حفظ عمليات التشغيل المحذوفة لمدة 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 Mosaic.
- في صفحة التجربة ، حدد محذوف في حقل الحالة لعرض عمليات التشغيل المحذوفة.
- حدد تشغيلا واحدا أو أكثر بالنقر فوق خانة الاختيار إلى يسار التشغيل.
- انقر فوق استعادة.
- انقر فوق استعادة للتأكيد. لعرض عمليات التشغيل المستعادة، حدد نشط في حقل الحالة.
يمكنك أيضا استخدام 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 للمعلمات ومواصفات القيمة المرجعة لاستعادة عمليات التشغيل استنادا إلى وقت الحذف.
يمكنك مقارنة عمليات التشغيل من تجربة واحدة أو من تجارب متعددة. تعرض صفحة مقارنة عمليات التشغيل معلومات حول عمليات التشغيل المحددة بتنسيقات رسومية وجدولية. يمكنك أيضا إنشاء مرئيات لنتائج التشغيل وجداول معلومات التشغيل ومعلمات التشغيل والمقاييس.
لإنشاء مرئيات:
- حدد نوع الرسم (مخطط الإحداثيات المتوازية أو رسم مبعثر أو رسم إحاطة).
بالنسبة إلى مخطط الإحداثيات المتوازية، حدد المعلمات والمقاييس المراد رسمها. من هنا، يمكنك تحديد العلاقات بين المعلمات والمقاييس المحددة، ما يساعدك على تحديد مساحة ضبط المعلمات الفائقة بشكل أفضل لنماذجك.
بالنسبة إلى رسم مبعثر أو رسم إحاطة، حدد المعلمة أو المقياس لعرضه على كل محور.
تعرض جداول المعلمات والمقاييس معلمات التشغيل والمقاييس من جميع عمليات التشغيل المحددة. يتم تعريف الأعمدة في هذه الجداول بواسطة جدول Run details أعلاه مباشرة. للتبسيط، يمكنك إخفاء المعلمات والمقاييس المتطابقة في جميع عمليات التشغيل المحددة عن طريق تبديل .
- في صفحة التجربة، حدد تشغيلين أو أكثر بالنقر فوق خانة الاختيار إلى يسار التشغيل، أو حدد كافة عمليات التشغيل عن طريق تحديد المربع في أعلى العمود.
- انقر فوق مقارنة. تظهر شاشة مقارنة
<N>
عمليات التشغيل.
- في صفحة التجارب، حدد التجارب التي تريد مقارنتها بالنقر في المربع الموجود على يسار اسم التجربة.
- انقر فوق مقارنة (n) (n هو عدد التجارب التي حددتها). تظهر شاشة تعرض جميع عمليات التشغيل من التجارب التي حددتها.
- حدد تشغيلين أو أكثر بالنقر في خانة الاختيار إلى يسار التشغيل، أو حدد كافة عمليات التشغيل عن طريق تحديد المربع في أعلى العمود.
- انقر فوق مقارنة. تظهر شاشة مقارنة
<N>
عمليات التشغيل.
لاستيراد أو تصدير تشغيل MLflow من أو إلى مساحة عمل Databricks الخاصة بك، يمكنك استخدام مشروع MLflow Export-Import مصدر مفتوح المستند إلى المجتمع.