تشغيل البحث في MLflow

Tshghyl Albhth Fy Mlflow



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

يمكن تصفية عمليات التشغيل حسب الحالة ووقت البدء ووقت الانتهاء والمدة باستخدام واجهة برمجة تطبيقات بحث MLflow. فهو يجعل من السهل التصفية خلال العديد من عمليات التشغيل والعثور على عمليات تشغيل محددة تهم المستخدمين.

وظيفة البحث MLflow

استخدم وظيفة mlflow.search_runs() للوصول إلى واجهة برمجة تطبيقات بحث MLflow. تقبل هذه الوظيفة مجموعة متنوعة من الوسائط مثل ما يلي:







  • معرف التجربة أو اسمها
  • تصفية السلسلة أو النص
  • يتم تحديد الحد الأقصى لعدد عمليات التشغيل التي سيتم إرجاعها بواسطة الوسيطة max_results

متغير مبسط من جملة SQL (لغة الاستعلام المنظمة) WHERE هي سلسلة أو نص المرشح. يمكن استخدامه للإشارة إلى المعايير التي نريد فرز عمليات التشغيل من خلالها.



بناء جملة الدالة MLflow Search_Runs()

يجب استبدال المعرف الفعلي أو الاسم الفعلي للتجربة التي نريد البحث فيها بـ 'experiment_id أو experience_name' في المثال التالي. يسمح المتغير search_criteria بإدخال معايير البحث حسب الرغبة. يمكن تحديد هذه المعايير بواسطة المقاييس أو العلامات أو المعلمات أو الخصائص الإضافية. بناء الجملة الأساسي لوظيفة search_runs() هو كما يلي:



# قم باستيراد واجهة برمجة تطبيقات البحث mlflow لاستخدام وظيفة search_runs

يستورد com.mlflow

# قدم معرفًا أو اسمًا للتجربة (إنه اختياري؛)

exp_id = 'معرف التجربة أو الاسم'

# تحديد معايير البحث للتشغيل

دالة البحث = 'metrics.accuracy > 0.8 AND params.learning_rate = '0.01' AND params.efficiency_rate > '80''

# إجراء البحث

أشواط = com.mlflow. search_runs ( experience_ids = exp_id , filter_string = دالة البحث )

# عرض النتائج

مطبعة ( 'نتائج البحث:' )

مطبعة ( أشواط )

قم بإجراء بحث باستخدام معايير عديدة

1. البحث حسب القيمة المترية

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





المقاييس. دقة > 0.9

يتم تقديم القائمة الكاملة للمقاييس المتاحة للاستخدام في حقل المقاييس كما يلي:

  • دقة
  • الجامعة الأمريكية
  • f1
  • دقة
  • يتذكر
  • خريطة
  • com.logloss
  • class_error
  • multi_class_logloss

بالإضافة إلى ذلك، يمكن للمستخدمين تصفية عمليات التشغيل حسب نطاق قيم المقياس باستخدام حقل المقاييس. على سبيل المثال، تحدد سلسلة التصفية التالية جميع عمليات التشغيل التي لها مقياس دقة بقيمة تتراوح بين 0.4 و0.8:



المقاييس. دقة بين 0.4 و 0.8

في حقل المقاييس، يجمع عاملي التشغيل AND وOR المقاييس للعثور على عمليات التشغيل بدقة المقاييس وقيم f1 أعلى من 0.3 و0.8:

المقاييس. دقة > 0.3 والمقاييس. f1 > 0.8

2. البحث حسب قيمة المعلمة

استفد من حقل المعلمات في واجهة برمجة تطبيقات بحث MLflow لإجراء بحث حسب قيمة المعلمة. يتم إدراج أسماء المعلمات وقيمها في حقل المعلمات باستخدام الفواصل. في هذا المثال، تحدد سلسلة التصفية المذكورة أعلاه جميع عمليات التشغيل باستخدام المعلمة num_boost_round التي لها القيمة 100:

المعلمات. num_boost_round = '100'

بعض الأمثلة الإضافية لسلاسل البحث عن قيم المعلمات:

  • params.num_boost_round = 900
  • params.learning_rate بين 0.001 و0.01
  • params.num_boost_round='70' وparams.learning_rate='0.01'

3. البحث عن طريق العلامات

فيما يلي مثال للبحث الذي يستخدم العلامات:

معايير البحث = 'tags.mlflow.source.type = 'قاموس''

مثال على قيم المصفوفات والمعلمات لتنفيذ وظيفة Mlflow.search_runs()

دعونا نعمل من خلال مثال لإعداد تجربة MLflow، وعمليات التسجيل، ثم استخدام mlflow.search_runs() لبدء البحث. لفهم الكود بشكل كامل، اتبع الخطوات التالية:

الخطوة 1: إنشاء تجربة MLflow

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

شرح الكود:

يتم استيراد مكتبة MLflow في السطر الأول من الكود، ويتم تعيين اسم التجربة على 'تجربتي الأولى لـ MLflow' في السطر التالي. عندما يتم تمرير اسم التجربة إلى الدالة 'mlflow.get_experiment_by_name'، تقوم هذه الدالة بإرجاع 'لا شيء' إذا لم تكن التجربة موجودة وكائن التجربة بخلاف ذلك.

التحقق من وجود التجربة في العبارة الشرطية. إذا كانت التجربة موجودة بالفعل، فقم بتعيين experience_id. بخلاف ذلك، استخدم 'mlflow.create_experiment' لإنشاء تجربة جديدة. يتم إرجاع معرف التجربة بواسطة هذه الوظيفة. اعرض معرف التجربة على وحدة التحكم أو الشاشة الطرفية في نهاية التجربة. انسخ الكود التالي في المفكرة واحفظ الملف بالاسم المطلوب وبامتداد '.py':

# استيراد مكتبة mlflow

يستورد com.mlflow

# إنشاء أو جلب التجربة

exp_name = 'تجربتي الأولى في MLflow'

# جلب التجربة بالاسم باستخدام وظيفة mlflow get_experiment_by_name

إكسب = com.mlflow. get_experiment_by_name ( exp_name )

# تحقق مما إذا كانت التجربة غير موجودة بالفعل

لو إكسب يكون لا أحد :

# أنشئ تجربة جديدة وقم بتمرير اسم التجربة إلى وظيفة mlflow.create_experiment

exp_id = com.mlflow. create_experiment ( exp_name )

# عرض رسالة النجاح على الشاشة

مطبعة ( 'التجربة غير موجودة. تم إنشاء التجربة بنجاح!' )

آخر :

# جلب معرف التجربة للتجربة الحالية

exp_id = إكسب. معرف التجربة

مطبعة ( 'التجربة موجودة بالفعل!' )

# عرض معرف التجربة

مطبعة ( 'معرف التجربة:' , exp_id )

الآن، قم بتشغيل البرنامج في موجه الأوامر أو النافذة الطرفية باستخدام مترجم Python واكتب 'Python' ثم اسم الملف الذي، في هذه الحالة، هو 'MyFirstMlflowExperiment.py'. عند تشغيل التجربة لأول مرة، لم تكن موجودة بعد. وبالتالي، يقوم MLFlow بإنشاء واحدة وطباعة معرف التجربة على شاشة وحدة التحكم:

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

الخطوة 2: قم بتسجيل عمليات التشغيل باستخدام المقاييس والمعلمات

فلنحاول الآن تسجيل بعض عمليات التشغيل باستخدام المقاييس والمعلمات الخاصة بالتجربة التي تم إنشاؤها للتو. في سيناريو العالم الحقيقي، نقوم بتطوير نماذج التعلم الآلي وتسجيل المعلومات ذات الصلة، مثل المقاييس والمعلمات، في نهاية كل تشغيل. هنا، يتم استخدام الدقة كقيمة مصفوفية، وهي 0.95 في هذه الحالة. قيم المعلمات لمعدل التعلم والكفاءة هي 0.01 و90 على التوالي. هنا هو الرمز:

# ابدأ تشغيل MLflow لتسجيل المقاييس والمعلمات

مع com.mlflow. بدء تشغيل ( معرف التجربة = exp_id ) :

# رمز التعلم الآلي الخاص بك هنا (هذا مجرد مثال محاكاة)

دقة النموذج = 0.95

معدل التعلم الآلي = 0.01

معدل الكفاءة = 90

# سجل المقاييس والمعلمات

com.mlflow. log_metric ( 'دقة' , دقة النموذج )

com.mlflow. log_param ( 'معدل التعليم' , معدل التعلم الآلي )

com.mlflow. log_param ( 'معدل_كفاءة' , معدل الكفاءة )

تظهر النتيجة هنا عند تنفيذ الكود المذكور. والنتيجة هي نفسها كما في السابق:

الخطوة 3: إجراء بحث باستخدام Mlflow.search_runs()

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

# تحديد معايير البحث للتشغيل

Define_search_criteria = 'metrics.accuracy > 0.8 AND params.learning_rate = '0.01' AND params.efficiency_rate = '90''

# إجراء البحث

أشواط = com.mlflow. search_runs ( experience_ids = exp_id , filter_string = Define_search_criteria )

# عرض النتائج

مطبعة ( 'نتائج البحث:' )

مطبعة ( أشواط )

يتم إنتاج تحذير يتعلق بأداة Git من خلال تنفيذ وظيفة search_runs:


أضف بعض التعليمات البرمجية في أعلى ملف Python لتعطيل هذا التحذير. هنا هو القسم القصير من الكود:

يستورد com.mlflow

يستورد أنت

أنت . تقريبًا [ 'GIT_PYTHON_REFRESH' ] = 'هادئ'

يتم تنفيذ وظيفة 'mlflow.search_runs' بنجاح بمجرد إضافة هذه الأسطر من التعليمات البرمجية:

خاتمة

تتيح وظيفة 'mlflow.search_runs' للمستخدمين استكشاف تجارب التعلم الآلي وتقييمها بسرعة، وتحليل العديد من عمليات التشغيل، وتحديد الاختلافات أو النماذج المثلى للمعلمات الفائقة التي تؤدي إلى النتائج المرجوة. إنها أداة فعالة للإشراف على سير عمل التعلم الآلي وتخطيطه وتحليله.