استكشاف أخطاء تجارب التعلم الآلي التلقائي وإصلاحها في نظام Python
ينطبق على: Python SDK azureml v1
في هذا الإرشاد، تعرف على كيفية تحديد وحل المشكلات المعروفة في تجارب التعلم الآلي التلقائية باستخدام عدة SDK للتعلم الآلي من Microsoft Azure.
تبعيات الإصدارات
AutoML
توافق قطع التبعيات إلى إصدارات الحزمة الأحدث. بعد الإصدار 1.13.0 من SDK، لم يتم تحميل النماذج في حزم SDK القديمة بسبب عدم التوافق بين الإصدارات القديمة المثبتة في حزم AutoML
السابقة، والإصدارات الأحدث المثبتة اليوم.
توقع حدوث الأخطاء التالية:
أخطاء عدم العثور على الوحدة النمطية مثل،
No module named 'sklearn.decomposition._truncated_svd'
أخطاء استيراد مثل،
ImportError: cannot import name 'RollingOriginValidator'
,أخطاء في السمة مثل،
AttributeError: 'SimpleImputer' object has no attribute 'add_indicator'
تعتمد الحلول على AutoML
إصدار تدريب SDK الخاص بك:
AutoML
إذا كان إصدار تدريب SDK أكثر من 1.13.0، فأنت بحاجة إلىpandas == 0.25.1
وscikit-learn==0.22.1
.إذا وجد عدم تطابق في الإصدار، قم بترقية scikit-learn و/أو pandas لتصحيح الإصدار بما يلي،
pip install --upgrade pandas==0.25.1 pip install --upgrade scikit-learn==0.22.1
إذا كان إصدار تدريب SDK الخاص بك
AutoML
أقل من أو يساوي إلى 1.12.0، فأنت بحاجة إلىpandas == 0.23.4
وsckit-learn==0.20.3
.إذا وجد عدم تطابق في الإصدار، ارجع إلى إصدار أقدم من scikit-learn و/أو pandas لتصحيح الإصدار بما يلي،
pip install --upgrade pandas==0.23.4 pip install --upgrade scikit-learn==0.20.3
الإعداد
AutoML
تتطلب تغييرات الحزمة منذ الإصدار 1.0.76 إلى إلغاء تثبيت الإصدار السابق قبل التحديث إلى الإصدار الجديد.
ImportError: cannot import name AutoMLConfig
إذا واجهت هذا الخطأ بعد الترقية من إصدار SDK الذي يسبق من الإصدار 1.0.76 إلى v1.0.76 أو الأحدث، فقم بحل الخطأ عن طريق تشغيل:
pip uninstall azureml-train automl
ثمpip install azureml-train-automl
. يجري البرنامج النصي automl_setup.cmd ذلك تلقائيًا.فشل automl_setup
في نظام Windows، قم بتشغيل automl_setup من Anaconda Prompt. قم بتثبيت Miniconda.
تأكد من تثبيت الإصدار 4.4.10 من conda 64 بت أو الأحدث. يمكنك التحقق من البت عبر الأمر
conda info
. ينبغيplatform
أن يكونwin-64
لنظام Windows أوosx-64
لنظام Mac. للتحقق من الإصدار، استخدم الأمرconda -V
. إذا كان لديك إصدار سابق مثبت، قم بتحديثه باستخدام الأمر:conda update conda
. للتحقق من 32 بت من خلال تشغيلتأكد من أن conda مثبت.
نظام Linux -
gcc: error trying to exec 'cc1plus'
إذا تمت مصادفة الخطأ
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
، فقم بتثبيت أدوات إنشاء سحابة القطاع الحكومي لتوزيع Linux الخاص بك. على سبيل المثال، في Ubuntu، استخدم الأمرsudo apt-get install build-essential
.مرر اسمًا جديدًا كمعلمة أولى إلى automl_setup لإنشاء بيئة conda جديدة. عرض بيئات conda الموجودة باستخدام
conda env list
وإزالتها باستخدامconda env remove -n <environmentname>
.
فشل automl_setup_linux.sh: إذا فشل automl_setup_linus.sh في Ubuntu Linux مع الخطأ:
unable to execute 'gcc': No such file or directory
- تأكد من تمكين المنفذين الصادرين رقم 53 و80. على جهاز Azure الظاهري، يمكنك القيام بذلك من مدخل Microsoft Azure عن طريق تحديد الجهاز الظاهري والنقر على الشبكة.
- شغّل الأمر:
sudo apt-get update
- شغّل الأمر:
sudo apt-get install build-essential --fix-missing
- قم بتشغيل
automl_setup_linux.sh
مرة أخرى
فشل configuration.ipynb:
- فيما يخص conda المحلي، تأكد أولاً من تشغيل
automl_setup
بنجاح. - التأكد من صحة subscription_id. ابحث عن subscription_id في مدخل Microsoft Azure عن طريق تحديد "كل الخدمات" ثم "الاشتراكات". ينبغي عدم تضمين الأحرف "<" و">" في القيمة subscription_id. على سبيل المثال، يحتوي
subscription_id = "12345678-90ab-1234-5678-1234567890abcd"
على التنسيق الصحيح. - تأكد من إمكانية وصول المساهم أو المالك إلى الاشتراك.
- تحقق من أن المنطقة هي واحدة من المناطق المدعومة:
eastus2
،eastus
،westcentralus
،southeastasia
،westeurope
،australiaeast
،westus2
،southcentralus
. - تأكد من إمكانية الوصول إلى المنطقة باستخدام مدخل Microsoft Azure.
- فيما يخص conda المحلي، تأكد أولاً من تشغيل
فشل workspace.from_config:
إذا فشل استدعاء
ws = Workspace.from_config()
:- تأكد من تشغيل مفكرة configuration.ipynb بنجاح.
- إذا كانت المفكرة قيد التشغيل من مجلد ليس ضمن المجلد الذي تم تشغيل
configuration.ipynb
فيه، فانسخ المجلد aml_config والملف config.json الذي يحتوي عليه إلى المجلد الجديد. يقرأ تكوين مساحة العمل Workspace.from_config الملف config.json لمجلد المفكرة أو المجلد الأصل الخاص به. - إذا كان يتم استخدام اشتراك أو مجموعة موارد أو مساحة عمل أو منطقة جديدة، فتأكد من تشغيل دفتر مفكرة
configuration.ipynb
مرة أخرى. لن يعمل تغيير config.json بطريقة مباشرة إلا إذا كانت مساحة العمل موجودة بالفعل في مجموعة الموارد المحددة ضمن الاشتراك المحدد. - إذا تريد تغيير المنطقة، فقم بتغيير مساحة العمل أو مجموعة الموارد أو الاشتراك.
Workspace.create
لن يقوم بإنشاء مساحة عمل أو تحديثها إذا كانت موجودة بالفعل، حتى إذا كانت المنطقة المحددة مختلفة.
TensorFlow
اعتبارًا من الإصدار 1.5.0 من SDK، لا يقوم التعلّم الآلي التلقائي بتثبيت نماذج TensorFlow بشكل افتراضي. لتثبيت TensorFlow واستخدامه مع تجارب التعلم الآلي من Microsoft Azure، قم بتثبيت tensorflow==1.12.0
عبر CondaDependencies
.
from azureml.core.runconfig import RunConfiguration
from azureml.core.conda_dependencies import CondaDependencies
run_config = RunConfiguration()
run_config.environment.python.conda_dependencies = CondaDependencies.create(conda_packages=['tensorflow==1.12.0'])
عمليات فشل Numpy
import numpy
يفشل في Windows: ترى بعض بيئات Windows خطأ في تحميل numpy مع أحدث إصدار من Python 3.6.8. إذا اختبرت هذه المشكلة، فجرب الإصدار 3.6.7 من Python.import numpy
فشل: تحقق من إصدار TensorFlow في بيئة التعلم الآلي من conda التلقائي. الإصدارات المدعومة هي < 1.13. قم بإلغاء تثبيت TensorFlow من البيئة إذا كان الإصدار > = 1.13.
يمكنك التحقق من إصدار TensorFlow وإلغاء التثبيت كالآتي:
- ابدأ تشغيل أمر shell، وقم بتنشيط بيئة conda حيث يتم تثبيت حزم التعلم الآلي التلقائي.
- أدخل
pip freeze
وابحث عنtensorflow
، إذا تم العثور عليه، يجب أن يكون الإصدار المدرج < هو 1.13 - إذا لم يكن الإصدار المدرج إصدارًا مدعومًا،
pip uninstall tensorflow
في الأمر shell وأدخل y للتأكيد.
jwt.exceptions.DecodeError
رسالة خطأ دقيقة: jwt.exceptions.DecodeError: It is required that you pass in a value for the "algorithms" argument when calling decode()
.
بالنسبة لإصدارات SDK < = 1.17.0، قد ينتج عن التثبيت إصدار غير مدعوم من PyJWT. تحقق من أن إصدار PyJWT في بيئة التعلم الآلي من conda التلقائي هو إصدار مدعوم. هذا هو الإصدار 2.0.0 < من PyJWT.
يمكنك التحقق من إصدار PyJWT كالآتي:
ابدأ تشغيل أمر shell، ثم قم بتنشيط بيئة conda حيث يتم تثبيت حزم التعلم الآلي التلقائي.
أدخل
pip freeze
وابحث عنPyJWT
، إذا تم العثور عليه، يجب أن يكون الإصدار المدرج < 2.0.0
إذا لم يكن الإصدار المدرج إصدارًا معتمدًا:
ضع في الاعتبار الترقية إلى أحدث إصدار من AutoML SDK:
pip install -U azureml-sdk[automl]
إذا لم يكن ذلك قابلاً للتطبيق، فقم بإلغاء تثبيت PyJWT من البيئة ثم قم بتثبيت الإصدار الصحيح كما يلي:
pip uninstall PyJWT
في الأمر shell ثم أدخلy
للتأكيد.- قم بالتثبيت باستخدام
pip install 'PyJWT<2.0.0'
.
الوصول إلى البيانات
لعمليات وظائف التعلم الآلي المؤتمت، تحتاج إلى التأكد من أن مخزن بيانات الملف الذي يتصل بتخزين AzureFile خاصتك يحتوي على بيانات اعتماد المصادقة المناسبة. خلاف ذلك، تظهر الرسالة التالية. تعرف على طريقة تحديث بيانات اعتماد مصادقة الوصول إلى البيانات.
رسالة الخطأ: Could not create a connection to the AzureFileService due to missing credentials. Either an Account Key or SAS token needs to be linked the default workspace blob store.
مخطط البيانات
عند محاولة إنشاء تجربة تعلم آلي تلقائي جديدة عبر الزر تحرير وإرسال في استوديو التعلم الآلي من Microsoft Azure، يجب أن يتطابق مخطط البيانات للتجربة الجديدة مع مخطط البيانات التي تم استخدامها في التجربة الأصلية. خلاف ذلك، تظهر رسالة خطأ مشابهة للنتائج التالية. تعرف على المزيد حول طريقة تحرير التجارب وإرسالها من واجهة المستخدم استوديو.
تجارب عدم رؤية رسائل الخطأ: Schema mismatch error: (an) additional column(s): "Column1: String, Column2: String, Column3: String", (a) missing column(s)
رسالة خطأ لمجموعات البيانات للرؤية: Schema mismatch error: (an) additional column(s): "dataType: String, dataSubtype: String, dateTime: Date, category: String, subcategory: String, status: String, address: String, latitude: Decimal, longitude: Decimal, source: String, extendedProperties: String", (a) missing column(s): "image_url: Stream, image_details: DataRow, label: List" Vision dataset error(s): Vision dataset should have a target column with name 'label'. Vision dataset should have labelingProjectType tag with value as 'Object Identification (Bounding Box)'.
Databricks
راجع كيفية تكوين تجربة التعلم الآلي التلقائي باستخدام Databricks (Azure التعلم الآلي SDK v1).
يكون التنبؤ بنقاط R2 دائمًا صفر
تنشأ هذه المشكلة إذا كانت بيانات التدريب المقدمة تحتوي على سلاسل زمنية تحتوي على نفس القيمة n_cv_splits
+ forecasting_horizon
لنقاط البيانات الأخيرة.
إذا كان هذا النمط متوقعًا في السلسلة الزمنية الخاصة بك، يمكنك تبديل المقياس الأساسي الخاص بك إلى متوسط جذر الخطأ التربيعي.
فشل التوزيع
بالنسبة للإصدارات <= 1.18.0 من SDK، قد تفشل الصورة الأساسية التي تم إنشاؤها للتوزيع مع الخطأ الآتي: ImportError: cannot import name cached_property from werkzeug
.
يمكن أن تعمل الخطوات التالية مع المشكلة:
- التنزيل لحزمة النموذج
- فك ضغط الحزمة
- توزيع عبر أصول غير مضغوطة
تطبيقات وظائف Azure
لا يدعم التعلم الآلي التلقائي حاليًا تطبيقات وظائف Azure.
عينة من حالات فشل المفكرة
إذا فشل نموذج المفكرة مع وجود خطأ في أن الخاصية أو الأسلوب أو المكتبة غير موجودة:
عليك تأكد من تحديد النواة الصحيحة في Jupyter Notebook. تعرض النواة في أعلى يمين صفحة المفكرة. يكون الإعداد الافتراضي azure_automl. يتم حفظ النواة كجزء من المفكرة. إذا قمت بالتبديل إلى بيئة conda جديدة، فسيلزمك تحديد النواة الجديدة في المفكرة.
- بالنسبة لمفكرات Azure، يجب أن يكون الإصدار 3.6 من Python.
- بالنسبة لبيئات conda المحلية، يجب أن يكون اسم بيئة conda هو الذي حددته في automl_setup.
للتأكد من أن المفكرة خاصة بإصدار SDK الذي تستخدمه،
- تحقق من إصدار SDK عن طريق تنفيذ
azureml.core.VERSION
في خلية Jupyter Notebook. - يمكنك تنزيل الإصدار السابق من نماذج دفاتر الملاحظات من GitHub باستخدام الخطوات التالية:
- تحديد الزر
Branch
- الانتقال إلى علامة التبويب
Tags
- تحديد الإصدار
- تحديد الزر
- تحقق من إصدار SDK عن طريق تنفيذ
التحكم بنطاق التجربة الترددي
إذا كان لديك أكثر من 100 تجربة تعلم آلي تلقائي، فقد يتسبب ذلك في أن يكون لتجارب التعلم الآلي التلقائي الجديدة أوقات طويلة الأمد.
فشل تنزيل إعداد جدار حماية الشبكة الظاهرية
إذا كنت ضمن الشبكات الظاهرية (VNets)، فقد تواجه فشل تنزيل النموذج عند استخدام AutoML NLP. وذلك لأن حركة مرور الشبكة محظورة من تنزيل النماذج والرموز المميزة من Azure CDN. لإلغاء حظر هذا، يرجى السماح بإدراج عناوين URL أدناه في إعداد "قواعد التطبيق" لنهج جدار حماية الشبكة الظاهرية:
aka.ms
https://automlresources-prod.azureedge.net
يرجى اتباع الإرشادات هنا لتكوين إعدادات جدار الحماية.
تتوفر إرشادات لتكوين مساحة العمل ضمن vnet هنا.
الخطوات التالية
تعرف على المزيد حول طريقة تدريب نموذج الانحدار من خلال التعلم الآلي التلقائي أو طريقة التدريب عن طريق التعلم الآلي التلقائي على مورد بعيد.
تعرف على المزيد حول طريقة توزيع النموذج ومكانه.
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ