استكشاف أخطاء نقاط نهاية الدفعات وإصلاحها (معاينة)
APPLY TO: Azure CLI ml extension
v1
v2 (معاينة)
ملاحظة
تستخدم هذه المقالة أحدث إصدار من الإصدار 2 من CLI الموجود في المعاينة العامة. للحصول على إرشادات حول تحديث أحدث إصدار وتثبيته، راجع مستند تثبيت CLI (الإصدار 2) وإعداده .
تعرف على كيفية استكشاف الأخطاء الشائعة التي قد تصادفها وحلها وحلها أو حل بديل لها عند استخدام نقاط نهاية الدفعات (المعاينة) لتسجيل الدفعات.
هام
تُعد هذه الميزة قيد المعاينة العامة في الوقت الحالي. يجري توفير إصدار المعاينة هذا من دون اتفاقية على مستوى الخدمة، ولا يوصى به لأحمال العمل الخاصة بالإنتاج. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة. لمزيد من المعلومات، راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.
يحتوي الجدول التالي على المشكلات والحلول الشائعة التي قد تراها أثناء تطوير نقطة نهاية الدفعات واستهلاكها.
| مشكلة | الحل الممكن |
|---|---|
| تكوين التعليمات البرمجية أو البيئة مفقود. | تأكد من توفير البرنامج النصي لتسجيل النقاط وتعريف البيئة إذا كنت تستخدم نموذجا غير MLflow. يتم دعم نشر بدون تعليمات برمجية لنموذج MLflow فقط. لمزيد من المعلومات، راجع تتبع طرز ML باستخدام MLflow وAzure Machine Learning |
| بيانات الإدخال غير المدعومة. | تقبل نقطة نهاية الدفعات بيانات الإدخال في ثلاثة أشكال: 1) البيانات المسجلة 2) البيانات في السحابة 3) البيانات المحلية. تأكد من أنك تستخدم التنسيق الصحيح. لمزيد من المعلومات، راجع استخدام نقاط نهاية الدفعات (المعاينة) لتسجيل نقاط الدفعات |
| الإخراج موجود بالفعل. | إذا قمت بتكوين موقع الإخراج الخاص بك، فتأكد من توفير إخراج جديد لكل استدعاء نقطة نهاية. |
فهم سجلات مهمة تسجيل الدفعات
الحصول على سجلات
بعد استدعاء نقطة نهاية دفعة باستخدام Azure CLI أو REST، سيتم تشغيل مهمة تسجيل الدفعات بشكل غير متزامن. هناك خياران للحصول على السجلات لمهمة تسجيل الدفعات.
الخيار 1: دفق السجلات إلى وحدة التحكم المحلية
يمكنك تشغيل الأمر التالي لدفق السجلات التي ينشئها النظام إلى وحدة التحكم الخاصة بك. سيتم بث السجلات الموجودة azureml-logs في المجلد فقط.
az ml job stream -name <job_name>
الخيار 2: عرض السجلات في الاستوديو
للحصول على رابط التشغيل في الاستوديو، قم بتشغيل:
az ml job show --name <job_name> --query interaction_endpoints.Studio.endpoint -o tsv
- افتح المهمة في الاستوديو باستخدام القيمة التي تم إرجاعها بواسطة الأمر أعلاه.
- اختر تسجيل الدفعات
- افتح علامة التبويب المخرجات + السجلات
- اختر السجل (السجلات) الذي ترغب في مراجعته
فهم بنية السجل
هناك مجلدان للسجل من المستوى الأعلى ، azureml-logs و logs.
يحتوي الملف ~/azureml-logs/70_driver_log.txt على معلومات من وحدة التحكم التي تقوم بتشغيل البرنامج النصي لتسجيل النقاط.
بسبب الطبيعة الموزعة لوظائف تسجيل الدفعات ، هناك سجلات من عدة مصادر مختلفة. ومع ذلك، يتم إنشاء ملفين مدمجين يوفران معلومات عالية المستوى:
~/logs/job_progress_overview.txtيوفر هذا الملف معلومات عالية المستوى حول عدد الدفعات المصغرة (المعروفة أيضا باسم المهام) التي تم إنشاؤها حتى الآن وعدد الدفعات المصغرة التي تمت معالجتها حتى الآن.: مع انتهاء الدفعات المصغرة، يسجل السجل نتائج المهمة. إذا فشلت المهمة ، فستعرض رسالة الخطأ ومكان بدء استكشاف الأخطاء وإصلاحها.~/logs/sys/master_role.txtيوفر هذا الملف طريقة عرض العقدة الرئيسية (المعروفة أيضا باسم المنسق) للمهمة قيد التشغيل.: يوفر هذا السجل معلومات حول إنشاء المهام ومراقبة التقدم المحرز ونتيجة التشغيل.
لفهم موجز للأخطاء في البرنامج النصي الخاص بك ، هناك:
~/logs/user/error.txtسيحاول هذا الملف تلخيص الأخطاء في البرنامج النصي.:
لمزيد من المعلومات حول الأخطاء في البرنامج النصي، هناك:
~/logs/user/error/يحتوي هذا الملف على آثار مكدسة كاملة للاستثناءات التي تم طرحها أثناء تحميل البرنامج النصي للإدخال وتشغيله.:
عندما تحتاج إلى فهم كامل لكيفية تنفيذ كل عقدة للبرنامج النصي للنقاط ، انظر إلى سجلات العملية الفردية لكل عقدة. يمكن العثور على سجلات العملية في المجلد sys/node ، مجمعة حسب عقد العامل:
~/logs/sys/node/<ip_address>/<process_name>.txtيوفر هذا الملف معلومات مفصلة حول كل دفعة صغيرة عند التقاطها أو إكمالها من قبل عامل.: لكل دفعة مصغرة، يتضمن هذا الملف:- عنوان IP و PID لعملية العامل.
- إجمالي عدد العناصر وعدد العناصر التي تمت معالجتها بنجاح وعدد العناصر الفاشلة.
- وقت البدء والمدة ووقت العملية ووقت طريقة التشغيل.
يمكنك أيضا عرض نتائج عمليات الفحص الدورية لاستخدام المورد لكل عقدة. توجد ملفات السجل وملفات الإعداد في هذا المجلد:
~/logs/perfتعيين--resource_monitor_intervalلتغيير الفاصل الزمني للتحقق في ثوان.: الفاصل الزمني الافتراضي هو600، وهو حوالي 10 دقائق. لإيقاف المراقبة، قم بتعيين القيمة إلى0. يتضمن كل<ip_address>مجلد:os/معلومات حول كافة العمليات الجارية في العقدة.: يقوم فحص واحد بتشغيل أمر نظام تشغيل ويحفظ النتيجة في ملف. على لينكس ، الأمر هوps.%Y%m%d%Hاسم المجلد الفرعي هو الوقت إلى الساعة.:processes_%Mينتهي الملف بدقيقة من وقت الفحص.:
node_disk_usage.csvالاستخدام التفصيلي للقرص للعقدة.:node_resource_usage.csvنظرة عامة على استخدام الموارد للعقدة.:processes_resource_usage.csvنظرة عامة على استخدام الموارد لكل عملية.:
كيفية تسجيل الدخول إلى البرنامج النصي لتسجيل النقاط
يمكنك استخدام تسجيل Python في البرنامج النصي لتسجيل النقاط. يتم تخزين السجلات في logs/user/stdout/<node_id>/processNNN.stdout.txt.
import argparse
import logging
# Get logging_level
arg_parser = argparse.ArgumentParser(description="Argument parser.")
arg_parser.add_argument("--logging_level", type=str, help="logging level")
args, unknown_args = arg_parser.parse_known_args()
print(args.logging_level)
# Initialize Python logger
logger = logging.getLogger(__name__)
logger.setLevel(args.logging_level.upper())
logger.info("Info log statement")
logger.debug("Debug log statement")