Memecahkan masalah eksperimen ML otomatis dengan Python

BERLAKU UNTUK:Python SDK azureml v1

Dalam panduan ini, pelajari cara mengidentifikasi dan mengatasi masalah yang diketahui dalam eksperimen pembelajaran mesin otomatis Anda dengan Azure Machine Learning SDK.

Dependensi versi

AutoML dependensi ke versi paket yang lebih baru memutus kompatibilitas. Setelah SDK versi 1.13.0, model tidak dimuat dalam SDK yang lebih lama karena ketidakcocokan antara versi lama yang disematkan dalam paket sebelumnya AutoML, dan versi yang lebih baru disematkan hari ini.

Mengharapkan kesalahan seperti:

  • Modul tidak menemukan kesalahan seperti,

    No module named 'sklearn.decomposition._truncated_svd'

  • Kesalahan impor seperti,

    ImportError: cannot import name 'RollingOriginValidator',

  • Kesalahan atribut seperti,

    AttributeError: 'SimpleImputer' object has no attribute 'add_indicator'

Resolusi bergantung pada versi AutoML pelatihan SDK Anda:

  • Jika versi AutoML pelatihan SDK Anda lebih besar dari 1.13.0, Anda perlu pandas == 0.25.1 dan scikit-learn==0.22.1.

    • Jika ada versi yang tidak cocok, tingkatkan scikit-learn dan/atau pandas untuk memperbaiki versi dengan yang berikut ini,

          pip install --upgrade pandas==0.25.1
          pip install --upgrade scikit-learn==0.22.1
      
  • Jika versi AutoML pelatihan SDK Anda kurang dari atau sama dengan 1.12.0, Anda perlu pandas == 0.23.4 dan sckit-learn==0.20.3.

    • Jika ada versi yang tidak cocok, turunkan versi scikit-learn dan/atau pandas untuk memperbaiki versi dengan yang berikut,

        pip install --upgrade pandas==0.23.4
        pip install --upgrade scikit-learn==0.20.3
      

Siapkan

AutoML perubahan paket sejak versi 1.0.76 mengharuskan versi sebelumnya dihapus sebelum diperbarui ke versi baru.

  • ImportError: cannot import name AutoMLConfig

    Jika Anda mengalami kesalahan ini setelah memutakhirkan dari versi SDK sebelum v1.0.76 ke v1.0.76 atau yang lebih baru, atasi kesalahan dengan menjalankan: pip uninstall azureml-train automl dan lalu pip install azureml-train-automl. Skrip automl_setup cmd melakukan ini secara otomatis.

  • automl_setup gagal

    • Pada Windows, jalankan automl_setup dari Prompt Anaconda. Pasang Miniconda.

    • Pastikan bahwa conda versi 4.4.10 64-bit atau yang lebih baru telah dipasang. Anda dapat memeriksa bit dengan conda info perintah. Seharusnya platform untuk Windows atau win-64osx-64 untuk Mac. Untuk memeriksa versi, gunakan perintah conda -V. Jika Anda memiliki versi sebelumnya yang terpasang, Anda dapat memperbaruinya dengan menggunakan perintah: conda update conda. Untuk memeriksa 32-bit dengan menjalankan

    • Pastikan bahwa conda telah terpasang.

    • Linux - gcc: error trying to exec 'cc1plus'

      1. Jika gcc: error trying to exec 'cc1plus': execvp: No such file or directory kesalahan ditemui, pasang alat build GCC untuk distribusi Linux Anda. Misalnya, di Ubuntu, gunakan perintah sudo apt-get install build-essential.

      2. Berikan nama baru sebagai parameter pertama yang automl_setup untuk membuat lingkungan conda baru. Lihat lingkungan conda yang ada menggunakan conda env list dan hapus dengan conda env remove -n <environmentname>.

  • automl_setup_linux.sh gagal: automl_setup_linus.sh gagal di Ubuntu Linux dengan kesalahan: unable to execute 'gcc': No such file or directory

    1. Pastikan bahwa port keluar 53 dan 80 diaktifkan. Pada mesin virtual Azure, Anda dapat melakukan ini dari portal Microsoft Azure dengan memilih VM dan mengeklik Jaringan.
    2. Jalankan perintah: sudo apt-get update
    3. Jalankan perintah: sudo apt-get install build-essential --fix-missing
    4. Jalankan automl_setup_linux.sh lagi
  • configuration.ipynb gagal:

    • Untuk konda lokal, pertama-tama pastikan automl_setup yang telah berhasil berjalan.
    • Pastikan bahwa subscription_id sudah benar. Temukan subscription_id di portal Microsoft Azure dengan memilih Semua Layanan lalu Langganan. Karakter "<" and ">" tidak boleh disertakan dalam nilai subscription_id. Misalnya, subscription_id = "12345678-90ab-1234-5678-1234567890abcd" memiliki format yang valid.
    • Pastikan kontributor atau pemilik mengakses langganan.
    • Periksa apakah wilayah tersebut adalah salah satu wilayah yang didukung: eastus2, eastus, westcentralus, southeastasia, westeurope, australiaeast, westus2, southcentralus.
    • Pastikan akses ke wilayah tersebut menggunakan portal Microsoft Azure.
  • workspace.from_config gagal:

    Jika panggilan ws = Workspace.from_config() gagal:

    1. Pastikan bahwa notebook configuration.ipynb berhasil dijalankan.
    2. Jika buku catatan sedang dijalankan dari folder yang tidak berada di bawah folder tempat configuration.ipynb dijalankan, salin folder aml_config dan file config.jsyang dikandungnya ke folder baru. Workspace.from_config membaca config.json untuk folder buku catatan atau folder induknya.
    3. Jika langganan baru, grup sumber daya, ruang kerja, atau kawasan, sedang digunakan, pastikan Anda menjalankan buku configuration.ipynb catatan lagi. Mengubah config.jssecara langsung hanya akan berfungsi jika ruang kerja sudah ada di grup sumber daya yang ditentukan di bawah langganan yang ditentukan.
    4. Jika Anda ingin mengubah kawasan, ubah ruang kerja, grup sumber daya, atau langganan. Workspace.create tidak akan membuat atau memperbarui ruang kerja jika sudah ada, meskipun wilayah yang ditentukan berbeda.

TensorFlow

Pada versi 1.5.0 dari SDK, pembelajaran mesin otomatis tidak memasang model TensorFlow secara default. Untuk memasang TensorFlow dan menggunakannya dengan eksperimen ML otomatis Anda, pasang tensorflow==1.12.0 melalui 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'])

Kegagalan numpy

  • import numpy gagal di Windows: Beberapa lingkungan Windows melihat kesalahan memuat numpy dengan Python versi terbaru 3.6.8. Jika Anda melihat masalah ini, coba dengan Python versi 3.6.7.

  • import numpy gagal: Periksa versi TensorFlow di lingkungan ml conda otomatis. Versi yang didukung adalah < 1.13. Hapus instalan TensorFlow dari lingkungan jika versinya adalah >= 1.13.

Anda dapat memeriksa versi TensorFlow dan menghapus pemasangan sebagai berikut:

  1. Mulai shell perintah, aktifkan lingkungan conda tempat paket ml otomatis dipasang.
  2. Masukkan pip freeze dan cari tensorflow, jika ditemukan, versi yang tercantum adalah < 1.13
  3. Jika versi yang tercantum bukan versi yang didukung, pip uninstall tensorflow di shell perintah dan masukkan y untuk konfirmasi.

jwt.exceptions.DecodeError

Pesan kesalahan yang tepat: jwt.exceptions.DecodeError: It is required that you pass in a value for the "algorithms" argument when calling decode().

Untuk versi SDK <= 1.17.0, penginstalan mungkin menghasilkan versi PyJWT yang tidak didukung. Pastikan bahwa versi PyJWT di lingkungan ml conda otomatis adalah versi yang didukung. Itu adalah versi PyJWT < 2.0.0.

Anda dapat memeriksa versi PyJWT sebagai berikut:

  1. Mulai shell perintah dan aktifkan lingkungan conda tempat paket ML otomatis dipasang.

  2. Masukkan pip freeze dan cari PyJWT, jika ditemukan, versi yang tercantum adalah < 2.0.0

Jika versi yang tercantum bukan versi yang didukung:

  1. Pertimbangkan untuk meningkatkan ke versi terbaru AutoML SDK: pip install -U azureml-sdk[automl]

  2. Jika itu tidak layak, hapus pemasangan PyJWT dari lingkungan dan pasang versi yang tepat sebagai berikut:

    1. pip uninstall PyJWT di shell perintah dan masukkan y untuk konfirmasi.
    2. Memasang menggunakan pip install 'PyJWT<2.0.0'.

Akses data

Untuk pekerjaan ML otomatis, Anda perlu memastikan datastore file yang tersambung ke penyimpanan AzureFile Anda memiliki informasi masuk autentikasi yang sesuai. Jika tidak, hasil berikut menghasilkan. Pelajari cara memperbarui info masuk autentikasi akses data Anda.

Pesan Kesalahan: 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.

Skema data

Saat Anda mencoba membuat eksperimen ML otomatis baru melalui tombol Edit dan kirimkan di studio Azure Machine Learning, skema data untuk eksperimen baru harus cocok dengan skema data yang digunakan dalam eksperimen asli. Jika tidak, pesan kesalahan mirip dengan hasil berikut. Pelajari selengkapnya cara mengedit dan mengirimkan eksperimen dari antarmuka pengguna studio.

Eksperimen non-visi pesan kesalahan: Schema mismatch error: (an) additional column(s): "Column1: String, Column2: String, Column3: String", (a) missing column(s)

Pesan kesalahan untuk himpunan data visi: 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

Lihat Cara mengonfigurasi eksperimen ML otomatis dengan Databricks (Azure Machine Learning SDK v1).

Memperkirakan skor R2 selalu nol

Masalah ini muncul jika data pelatihan yang diberikan memiliki rangkaian waktu yang berisi nilai yang sama untuk titik n_cv_splits + forecasting_horizon data terakhir.

Jika pola ini diharapkan dalam rangkaian waktu Anda, Anda dapat mengalihkan metrik utama Anda ke kesalahan kuadrat rata-rata akar yang dinormalisasi.

Penyebaran gagal

Untuk versi <= 1.18.0 SDK, citra dasar yang dibuat untuk penyebaran mungkin gagal dengan kesalahan berikut: ImportError: cannot import name cached_property from werkzeug.

Langkah-langkah berikut ini bisa mengatasi masalah ini:

  1. Unduh paket model
  2. Unzip paketnya
  3. Menerapkan menggunakan aset yang belum di-zip

Aplikasi Azure Functions

ML otomatis saat ini tidak mendukung aplikasi Azure Functions.

Sampel kegagalan buku catatan

Jika sampel buku catatan gagal dengan kesalahan properti, metode, atau pustaka tersebut tidak ada:

  • Pastikan bahwa kernel yang benar telah dipilih di Jupyter Notebook. Kernel ditampilkan di kanan atas halaman buku catatan. Defaultnya adalah azure_automl. Kernel disimpan sebagai bagian dari buku catatan. Jika Anda beralih ke lingkungan conda baru, Anda perlu memilih kernel baru di buku catatan.

    • Untuk Azure Notebooks, seharusnya Python 3.6.
    • Untuk lingkungan konda lokal, itu harus menjadi nama lingkungan conda yang Anda tentukan di automl_setup.
  • Untuk memastikan buku catatan adalah untuk versi SDK yang Anda gunakan,

    • Periksa versi SDK dengan mengeksekusi azureml.core.VERSION di sel Buku Catatan Jupyter.
    • Anda dapat mengunduh versi sebelumnya dari contoh notebook dari GitHub dengan langkah-langkah berikut:
      1. Pilih tombol Branch
      2. Menavigasi ke Tags tab
      3. Pilih versi

Pembatasan eksperimen

Jika Anda memiliki lebih dari 100 eksperimen ML otomatis, ini dapat menyebabkan eksperimen ML otomatis baru memiliki waktu eksekusi yang panjang.

Kegagalan Pengunduhan Pengaturan Firewall VNet

Jika Anda berada di bawah jaringan virtual (VNet), Anda mungkin mengalami kegagalan pengunduhan model saat menggunakan AutoML NLP. Ini karena lalu lintas jaringan diblokir agar tidak mengunduh model dan tokenizer dari Azure CDN. Untuk membuka blokir ini, silakan izinkan daftar URL di bawah ini dalam pengaturan "Aturan aplikasi" dari kebijakan firewall VNet:

  • aka.ms
  • https://automlresources-prod.azureedge.net

Ikuti petunjuk di sini untuk mengonfigurasi pengaturan firewall.

Instruksi untuk mengonfigurasi ruang kerja di bawah vnet tersedia di sini.

Langkah berikutnya