Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
BERLAKU UNTUK:
Ekstensi ml Azure CLI v2 (saat ini)
Python SDK azure-ai-ml v2 (saat ini)
Dalam artikel ini, pelajari cara menyiapkan pekerjaan pelatihan AutoML dengan Azure Machine Learning Python SDK v2. AutoML memilih algoritma dan hiperparameter untuk Anda dan menghasilkan model yang siap untuk penyebaran. Artikel ini menyediakan detail berbagai opsi yang dapat Anda gunakan untuk mengonfigurasi eksperimen AutoML.
Jika Anda lebih suka pengalaman tanpa kode, Anda juga dapat menyiapkan pelatihan AutoML tanpa kode untuk data tabular dengan antarmuka pengguna studio.
Prasyarat
- Langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai. Coba versi gratis atau berbayar Azure Machine Learning.
- Ruang kerja Azure Machine Learning. Jika Anda tidak memilikinya, lihat Membuat sumber daya untuk memulai.
Untuk menggunakan informasi SDK, instal SDK v2 untuk Python Azure Machine Learning.
Anda dapat menginstal SDK dengan dua cara:
- Buat instans komputasi, yang sudah memiliki Azure Pembelajaran Mesin Python SDK terbaru dan dikonfigurasi untuk alur kerja ML. Untuk informasi selengkapnya, lihat Membuat instans komputasi Azure Machine Learning.
- Instal SDK di komputer lokal Anda.
Menyiapkan ruang kerja Anda
Untuk menyambungkan ke ruang kerja, Anda perlu menyediakan langganan, grup sumber daya, dan ruang kerja.
Detail ruang kerja dimasukkan ke MLClient dari azure.ai.ml untuk terhubung ke ruang kerja Azure Machine Learning Anda.
Contoh berikut menggunakan autentikasi Azure bawaan dengan konfigurasi ruang kerja bawaan atau konfigurasi dari file config.json di dalam struktur folder. Jika tidak menemukan config.json, Anda perlu memberikan ID langganan, grup sumber daya, dan ruang kerja secara manual saat membuat MLClient.
from azure.identity import DefaultAzureCredential, InteractiveBrowserCredential
from azure.ai.ml import MLClient
try:
credential = DefaultAzureCredential()
credential.get_token("https://management.azure.com/.default")
except Exception:
credential = InteractiveBrowserCredential()
ml_client = None
try:
ml_client = MLClient.from_config(credential)
except Exception as ex:
print(ex)
# Enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
ml_client = MLClient(credential, subscription_id, resource_group, workspace)
Tentukan sumber dan format data
Untuk menyediakan data pelatihan di SDK v2, Anda perlu mengunggahnya ke cloud melalui MLTable.
Persyaratan untuk memuat data ke dalam MLTable:
- Data harus dalam bentuk tabular.
- Nilai yang akan diprediksi, kolom target, harus terdapat dalam data.
Data pelatihan harus dapat diakses dari komputasi jarak jauh. AutoML v2 (Python SDK dan CLI/YAML) menerima aset data MLTable (v2). Untuk kompatibilitas mundur, ini juga mendukung Himpunan Data Tabular v1 dari v1, Himpunan Data Tabular terdaftar, melalui properti himpunan data input yang sama. Kami menyarankan agar Anda menggunakan MLTable, tersedia di v2. Dalam contoh ini, data disimpan di jalur lokal, ./train_data/bank_marketing_train_data.csv.
Anda dapat membuat MLTable menggunakan Mltable Python SDK seperti dalam contoh berikut:
import mltable
paths = [
{'file': './train_data/bank_marketing_train_data.csv'}
]
train_table = mltable.from_delimited_files(paths)
train_table.save('./train_data')
Kode ini membuat file baru, ./train_data/MLTable, yang berisi format file dan instruksi pemuatan.
Sekarang folder ./train_data memiliki file definisi MLTable ditambah file data, bank_marketing_train_data.csv.
Untuk informasi selengkapnya tentang MLTable, lihat Bekerja dengan tabel di Azure Pembelajaran Mesin.
Pelatihan, validasi, dan data pengujian
Anda dapat menentukan data pelatihan terpisah dan himpunan data validasi. Anda harus menyediakan data pelatihan untuk parameter training_data dalam fungsi factory dari tugas AutoML Anda.
Jika Anda tidak secara eksplisit menentukan validation_data parameter atau n_cross_validation , AutoML menerapkan teknik default untuk menentukan cara melakukan validasi. Penentuan ini tergantung pada jumlah baris dalam set data yang ditetapkan ke parameter training_data Anda.
| Ukuran data pelatihan | Teknik validasi |
|---|---|
| Lebih besar dari 20.000 baris | AutoML menerapkan pemisahan data pelatihan dan validasi. Secara default, sistem mengambil 10% dari set data pelatihan awal sebagai set validasi. AutoML kemudian menggunakan validasi yang ditetapkan untuk perhitungan metrik. |
| Lebih kecil dari atau sama dengan 20.000 baris | AutoML menerapkan pendekatan validasi silang. Jumlah lipatan default tergantung pada jumlah baris. Jika himpunan data kurang dari 1.000 baris, AutoML menggunakan sepuluh lipatan. Jika baris sama dengan atau antara 1.000 dan 20.000, AutoML menggunakan tiga lipatan. |
Komputasi untuk menjalankan eksperimen
Pekerjaan AutoML dengan Python SDK v2 (atau CLI v2) saat ini hanya didukung pada kluster komputasi jarak jauh azure Machine Learning atau instans komputasi. Untuk informasi selengkapnya tentang membuat komputasi dengan Python SDKv2 atau CLIv2, lihat melatih model dengan Azure Machine Learning CLI, SDK, dan REST API.
Mengonfigurasi pengaturan eksperimen Anda
Anda dapat menggunakan beberapa opsi untuk mengonfigurasi eksperimen AutoML Anda. Parameter konfigurasi ini diatur dalam metode tugas Anda. Anda juga dapat mengatur pengaturan pelatihan tugas dan kriteria keluar dengan pengaturan dan .
Contoh berikut menunjukkan parameter yang diperlukan untuk tugas klasifikasi yang menentukan akurasi sebagai metrik utama dan lima lipatan validasi silang.
from azure.ai.ml.constants import AssetTypes
from azure.ai.ml import automl, Input
# note that this is a code snippet -- you might have to modify the variable values to run it successfully
# make an Input object for the training data
my_training_data_input = Input(
type=AssetTypes.MLTABLE, path="./data/training-mltable-folder"
)
# configure the classification job
classification_job = automl.classification(
compute=my_compute_name,
experiment_name=my_exp_name,
training_data=my_training_data_input,
target_column_name="y",
primary_metric="accuracy",
n_cross_validations=5,
enable_model_explainability=True,
tags={"my_custom_tag": "My custom value"}
)
# Limits are all optional
classification_job.set_limits(
timeout_minutes=600,
trial_timeout_minutes=20,
max_trials=5,
enable_early_termination=True,
)
# Training properties are optional
classification_job.set_training(
blocked_training_algorithms=["logistic_regression"],
enable_onnx_compatible_models=True
)
Pilih jenis tugas pembelajaran mesin Anda
Sebelum Anda dapat mengirimkan pekerjaan AutoML Anda, tentukan jenis masalah pembelajaran mesin yang ingin Anda selesaikan. Masalah ini menentukan fungsi mana yang digunakan pekerjaan Anda dan algoritma model apa yang diterapkannya.
AutoML mendukung berbagai jenis tugas:
Tugas berbasis data tabular
- klasifikasi
- regresi
- prakiraan
Tugas visi komputer, termasuk
- Klasifikasi Gambar
- Deteksi Objek
Tugas pemrosesan bahasa alami, termasuk
- Klasifikasi teks
- Pengenalan Entitas
Untuk informasi selengkapnya, lihat jenis tugas. Untuk informasi selengkapnya tentang menyiapkan pekerjaan prakiraan, lihat menyiapkan AutoML untuk melatih model prakiraan rangkaian waktu.
Algoritme yang didukung
AutoML mencoba model dan algoritma yang berbeda selama proses otomatisasi dan penyetelan. Sebagai pengguna, Anda tidak perlu menentukan algoritma.
Metode tugas menentukan daftar algoritma atau model yang akan diterapkan. Untuk memodifikasi iterasi lebih lanjut dengan menyertakan atau mengecualikan model yang tersedia, gunakan parameter allowed_training_algorithms atau blocked_training_algorithms dalam konfigurasi training pada pekerjaan.
Dalam tabel berikut, jelajahi algoritma yang didukung per tugas pembelajaran mesin.
Dengan algoritma lain:
- Algoritma Multi-kelas Klasifikasi Gambar
- Algoritma Multilabel Klasifikasi Gambar
- Algoritma Deteksi Objek Gambar
- Algoritme klasifikasi teks multilabel NLP
- Algoritma NLP untuk Pengenalan Entitas Bernama pada Teks (NER)
Untuk notebook contoh untuk setiap jenis tugas, lihat automl-standalone-jobs.
Metrik utama
Parameter primary_metric menentukan metrik yang akan digunakan selama pelatihan model untuk pengoptimalan. Jenis tugas yang Anda pilih menentukan metrik yang bisa Anda pilih.
Memilih metrik utama agar AutoML dapat dioptimalkan tergantung pada banyak faktor. Kami menyarankan pertimbangan utama Anda adalah untuk memilih metrik yang paling mewakili kebutuhan bisnis. Kemudian pertimbangkan apakah metrik cocok untuk profil himpunan data Anda, termasuk ukuran data, rentang, dan distribusi kelas. Bagian berikut meringkas metrik utama yang disarankan berdasarkan jenis tugas dan skenario bisnis.
Untuk mempelajari tentang definisi spesifik metrik ini, lihat mengevaluasi hasil eksperimen AutoML.
Metrik untuk skenario klasifikasi multikelas
Metrik ini berlaku untuk semua skenario klasifikasi, termasuk data tabular, gambar atau visi komputer, dan teks pemrosesan bahasa alami (NLP-Text).
Metrik yang bergantung pada ambang batas, seperti accuracy, recall_score_weighted, norm_macro_recall, dan precision_score_weighted mungkin tidak dioptimalkan juga untuk himpunan data yang kecil, memiliki kemiringan kelas besar (ketidakseimbangan kelas), atau ketika nilai metrik yang diharapkan sangat dekat dengan 0,0 atau 1,0. Dalam kasus tersebut, AUC_weighted bisa menjadi pilihan yang lebih baik untuk metrik utama. Setelah AutoML selesai, Anda dapat memilih model pemenang berdasarkan metrik yang paling sesuai dengan kebutuhan bisnis Anda.
| Metrik | Contoh kasus penggunaan |
|---|---|
accuracy |
Klasifikasi gambar, analisis sentimen, prediksi Churn |
AUC_weighted |
Deteksi penipuan, Klasifikasi gambar, Deteksi anomali/deteksi spam |
average_precision_score_weighted |
Analisis sentimen |
norm_macro_recall |
Prediksi pelanggan yang berhenti berlangganan |
precision_score_weighted |
Metrik untuk skenario klasifikasi multi-label
Untuk klasifikasi teks multi-label, saat ini 'Akurasi' adalah satu-satunya metrik utama yang didukung.
Untuk klasifikasi gambar multi-label, metrik utama yang didukung ditentukan dalam ClassificationMultilabelPrimaryMetrics enum.
Metrik untuk skenario Pengenalan Entitas Bernama pada teks NLP
Untuk teks NLP Named Entity Recognition (NER), saat ini 'Akurasi' adalah satu-satunya metrik utama yang didukung.
Metrik untuk skenario regresi
r2_score, normalized_mean_absolute_error, dan normalized_root_mean_squared_error semua mencoba meminimalkan kesalahan prediksi.
r2_score dan normalized_root_mean_squared_error keduanya meminimalkan kesalahan kuadrat rata-rata sambil normalized_mean_absolute_error meminimalkan nilai absolut rata-rata kesalahan. Nilai absolut memperlakukan kesalahan di semua besaran sama dan kesalahan kuadrat memiliki penalti yang jauh lebih besar untuk kesalahan dengan nilai absolut yang lebih besar. Bergantung pada apakah kesalahan yang lebih besar harus dihukum lebih banyak atau tidak, Anda dapat memilih untuk mengoptimalkan kesalahan kuadrat atau kesalahan absolut.
Perbedaan utama antara r2_score dan normalized_root_mean_squared_error adalah bagaimana mereka dinormalisasi dan maknanya.
normalized_root_mean_squared_error adalah akar rata-rata kesalahan kuadrat dinormalisasi oleh rentang dan dapat ditafsirkan sebagai besarnya kesalahan rata-rata untuk prediksi.
r2_score adalah kesalahan kuadrat rata-rata yang dinormalisasi oleh perkiraan varians data. Ini adalah proporsi variasi yang dapat ditangkap model.
Catatan
r2_score dan normalized_root_mean_squared_error juga berperilaku serupa dengan metrik utama. Jika set validasi tetap diterapkan, kedua metrik ini mengoptimalkan target yang sama, yaitu galat kuadrat rata-rata, dan dioptimalkan oleh model yang sama pula. Saat hanya data pelatihan yang tersedia dan validasi silang diterapkan, keduanya akan sedikit berbeda karena normalizer untuk normalized_root_mean_squared_error ditetapkan berdasarkan rentang data pelatihan, sedangkan normalizer untuk r2_score akan bervariasi pada setiap fold karena variansnya dihitung untuk masing-masing fold.
Jika yang penting adalah peringkat, bukan nilai yang tepat, spearman_correlation dapat menjadi pilihan yang lebih baik. Ini mengukur korelasi peringkat antara nilai nyata dan prediksi.
AutoML saat ini tidak mendukung metrik utama apa pun yang mengukur perbedaan relatif antara prediksi dan pengamatan. Metrik r2_score, normalized_mean_absolute_error, dan normalized_root_mean_squared_error adalah semua ukuran perbedaan absolut. Misalnya, jika prediksi berbeda dari pengamatan sebesar 10 unit, metrik ini menghitung nilai yang sama jika pengamatan adalah 20 unit atau 20.000 unit. Sebaliknya, perbedaan persentase, yang merupakan ukuran relatif, masing-masing memberikan kesalahan 50% dan 0,05%. Untuk mengoptimalkan perbedaan relatif, Anda dapat menjalankan AutoML dengan metrik utama yang didukung lalu memilih model dengan yang terbaik mean_absolute_percentage_error atau root_mean_squared_log_error. Metrik ini tidak terdefinisi ketika nilai pengamatan apa pun nol, sehingga mungkin tidak selalu menjadi pilihan yang baik.
| Metrik | Contoh kasus penggunaan |
|---|---|
spearman_correlation |
|
normalized_root_mean_squared_error |
Prediksi harga (rumah/produk/tip), Tinjau prediksi skor |
r2_score |
Keterlambatan maskapai, Estimasi gaji, waktu resolusi bug |
normalized_mean_absolute_error |
Metrik untuk skenario peramalan deret waktu
Rekomendasinya mirip dengan rekomendasi untuk skenario regresi.
| Metrik | Contoh kasus penggunaan |
|---|---|
normalized_root_mean_squared_error |
Prediksi harga (perkiraan), Pengoptimalan persediaan, Perkiraan permintaan |
r2_score |
Prediksi harga (perkiraan), Pengoptimalan persediaan, Perkiraan permintaan |
normalized_mean_absolute_error |
|
spearman_correlation |
Metrik untuk skenario Deteksi Objek Gambar
Untuk Deteksi Objek gambar, metrik utama yang didukung didefinisikan dalam ObjectDetectionPrimaryMetrics enum.
Metrik untuk skenario Segmentasi Instans Gambar
Untuk skenario Segmentasi Instans gambar, metrik utama yang didukung ditentukan dalam InstanceSegmentationPrimaryMetrics enum.
Featurisasi data
Dalam setiap eksperimen AutoML, data Anda secara otomatis diubah menjadi angka dan vektor angka. Data juga diskalakan dan dinormalisasi untuk membantu algoritma yang sensitif terhadap fitur yang berada pada skala yang berbeda. Transformasi data ini disebut fiturisasi.
Catatan
Langkah-langkah fiturisasi AutoML, seperti normalisasi fitur, menangani data yang hilang, dan mengonversi teks menjadi numerik, menjadi bagian dari model yang mendasar. Saat Anda menggunakan model untuk prediksi, langkah-langkah fiturisasi yang sama yang diterapkan selama pelatihan diterapkan ke data input Anda secara otomatis.
Saat mengonfigurasi job AutoML, Anda dapat mengaktifkan atau menonaktifkan setelan featurization.
Tabel berikut menunjukkan pengaturan yang diterima untuk fiturisasi.
| Konfigurasi Fiturisasi | Deskripsi |
|---|---|
"mode": 'auto' |
Menunjukkan bahwa, sebagai bagian dari praproses, pagar pembatas data dan langkah-langkah fiturisasi dilakukan secara otomatis. Nilai ini adalah pengaturan default. |
"mode": 'off' |
Menunjukkan bahwa langkah fiturisasi tidak seharusnya dilakukan secara otomatis. |
"mode": 'custom' |
Menunjukkan bahwa Anda harus menggunakan langkah fiturisasi yang disesuaikan. |
Kode berikut menunjukkan cara memberikan fiturisasi kustom dalam hal ini untuk pekerjaan regresi.
from azure.ai.ml.automl import ColumnTransformer
transformer_params = {
"imputer": [
ColumnTransformer(fields=["CACH"], parameters={"strategy": "most_frequent"}),
ColumnTransformer(fields=["PRP"], parameters={"strategy": "most_frequent"}),
],
}
regression_job.set_featurization(
mode="custom",
transformer_params=transformer_params,
blocked_transformers=["LabelEncoding"],
column_name_and_types={"CHMIN": "Categorical"},
)
Kriteria penghentian
Anda dapat menentukan beberapa opsi dalam set_limits() fungsi untuk mengakhiri eksperimen Anda sebelum pekerjaan selesai.
| Kriteria | deskripsi |
|---|---|
| Tidak ada kriteria | Jika Anda tidak menentukan parameter keluar apa pun, eksperimen berlanjut hingga tidak ada kemajuan lebih lanjut yang dibuat pada metrik utama Anda. |
timeout |
Menentukan berapa lama, dalam menit, eksperimen Anda harus terus berjalan. Jika tidak ditentukan, total batas waktu pekerjaan default adalah enam hari (8.640 menit). Untuk menetapkan batas waktu kurang dari atau sama dengan 1 jam (60 menit), pastikan ukuran set data Anda tidak lebih dari 10.000.000 (jumlah baris dikali jumlah kolom); jika tidak, akan terjadi error. Batas waktu ini mencakup penyiapan, pembuatan fitur, dan proses pelatihan, tetapi tidak mencakup proses ensembel dan penjelasan model yang dijalankan di akhir proses, karena langkah-langkah tersebut baru dapat dilakukan setelah semua percobaan (job turunan) selesai. |
trial_timeout_minutes |
Waktu maksimum dalam menit yang dapat dijalankan setiap percobaan (pekerjaan turunan) sebelum berakhir. Jika tidak ditentukan, AutoML menggunakan nilai 1 bulan atau 43200 menit. |
enable_early_termination |
Apakah akan mengakhiri pekerjaan jika skor tidak membaik dalam jangka pendek. |
max_trials |
Jumlah maksimum percobaan/eksekusi, yang masing-masing menggunakan kombinasi algoritme dan hiperparameter yang berbeda, yang akan dicoba dalam suatu job. Jika tidak ditentukan, nilai bawaannya adalah 1.000 percobaan. Jika Anda menggunakan enable_early_termination, AutoML mungkin menggunakan lebih sedikit uji coba. |
max_concurrent_trials |
Jumlah maksimum uji coba (pekerjaan anak) yang akan berjalan secara paralel. Ini adalah praktik yang baik untuk mencocokkan angka ini dengan jumlah simpul kluster Anda. |
Menjalankan eksperimen
Kirim eksperimen untuk menjalankan dan membuat model.
Catatan
Jika Anda menjalankan eksperimen dengan pengaturan konfigurasi dan metrik utama yang sama beberapa kali, Anda mungkin melihat variasi dalam skor metrik akhir setiap eksperimen dan model yang dihasilkan. Algoritma yang digunakan AutoML memiliki keacakan melekat yang dapat menyebabkan sedikit variasi dalam output model oleh eksperimen dan skor metrik akhir model yang direkomendasikan, seperti akurasi. Anda mungkin juga melihat hasil dengan nama model yang sama, tetapi menggunakan hiperparameter yang berbeda.
Peringatan
Jika Anda telah menetapkan aturan di firewall atau Grup Keamanan Jaringan di ruang kerja Anda, verifikasi bahwa izin yang diperlukan diberikan untuk lalu lintas jaringan masuk dan keluar seperti yang ditentukan dalam mengonfigurasi lalu lintas jaringan masuk dan keluar.
Dengan MLClient yang dibuat pada langkah prasyarat, Anda dapat menjalankan perintah berikut di ruang kerja.
# Submit the AutoML job
returned_job = ml_client.jobs.create_or_update(
classification_job
) # submit the job to the backend
print(f"Created job: {returned_job}")
# Get a URL for the status of the job
returned_job.services["Studio"].endpoint
Beberapa anak berjalan pada kluster
Anda dapat menjalankan proses turunan eksperimen AutoML pada kluster yang sudah digunakan untuk menjalankan eksperimen lain. Waktu tergantung pada berapa banyak simpul yang dimiliki kluster dan apakah simpul tersebut tersedia untuk menjalankan eksperimen yang berbeda.
Setiap simpul dalam kluster bertindak sebagai mesin virtual (VM) tersendiri yang dapat menjalankan satu proses pelatihan. Untuk AutoML, ini berarti eksekusi anak. Jika semua simpul sibuk, AutoML mengantrekan eksperimen baru. Jika simpul gratis tersedia, eksperimen baru menjalankan eksekusi anak secara paralel dalam simpul atau komputer virtual yang tersedia.
Untuk membantu mengelola eksekusi anak dan kapan mereka dapat berjalan, kami sarankan Anda membuat kluster khusus per eksperimen, dan mencocokkan jumlah max_concurrent_iterations eksperimen Anda dengan jumlah simpul dalam kluster. Dengan cara ini, Anda menggunakan semua node kluster secara bersamaan dengan jumlah proses turunan yang berjalan secara bersamaan dan iterasi yang Anda inginkan.
Konfigurasikan max_concurrent_iterations dalam konfigurasi limits. Jika tidak dikonfigurasi, maka secara default hanya satu eksekusi/iterasi turunan bersamaan yang diizinkan per eksperimen. Untuk instans komputasi, Anda dapat mengatur max_concurrent_trials agar sama dengan jumlah inti pada komputer virtual instans komputasi.
Menjelajahi model dan metrik
AutoML menawarkan opsi bagi Anda untuk memantau dan mengevaluasi hasil pelatihan Anda.
- Untuk definisi dan contoh bagan performa dan metrik yang disediakan untuk setiap eksekusi, lihat mengevaluasi hasil eksperimen AutoML.
Dari UI Azure Machine Learning di halaman model, Anda dapat melihat ringkasan fiturisasi dan memahami fitur apa yang ditambahkan ke model tertentu. Anda juga dapat melihat hiperparameter yang digunakan saat melatih model tertentu dan melihat serta menyesuaikan kode pelatihan model internal yang digunakan.
Mendaftarkan dan menggunakan model
Setelah Anda menguji model dan mengonfirmasi bahwa Anda ingin menggunakannya dalam produksi, Anda dapat mendaftarkannya untuk digunakan nanti.
Petunjuk / Saran
Untuk model yang terdaftar, Anda dapat menggunakan penerapan sekali klik melalui Studio Azure Machine Learning. Lihat menyebarkan model Anda.
Gunakan AutoML dalam pipeline
Untuk menggunakan AutoML dalam alur kerja operasi pembelajaran mesin, Anda dapat menambahkan langkah-langkah Pekerjaan AutoML ke Alur Azure Machine Learning Anda. Pendekatan ini memungkinkan Anda mengotomatiskan seluruh alur kerja dengan menghubungkan skrip persiapan data Anda ke AutoML. Kemudian daftarkan dan validasi model terbaik yang dihasilkan.
Kode ini adalah alur sampel dengan komponen klasifikasi AutoML dan komponen perintah yang menunjukkan output yang dihasilkan. Kode mereferensikan input (data pelatihan dan validasi) dan output (model terbaik) dalam langkah yang berbeda.
# Define pipeline
@pipeline(
description="AutoML Classification Pipeline",
)
def automl_classification(
classification_train_data,
classification_validation_data
):
# define the automl classification task with automl function
classification_node = classification(
training_data=classification_train_data,
validation_data=classification_validation_data,
target_column_name="y",
primary_metric="accuracy",
# currently need to specify outputs "mlflow_model" explictly to reference it in following nodes
outputs={"best_model": Output(type="mlflow_model")},
)
# set limits and training
classification_node.set_limits(max_trials=1)
classification_node.set_training(
enable_stack_ensemble=False,
enable_vote_ensemble=False
)
command_func = command(
inputs=dict(
automl_output=Input(type="mlflow_model")
),
command="ls ${{inputs.automl_output}}",
environment="azureml://registries/azureml/environments/sklearn-1.5/labels/latest"
)
show_output = command_func(automl_output=classification_node.outputs.best_model)
pipeline_job = automl_classification(
classification_train_data=Input(path="./training-mltable-folder/", type="mltable"),
classification_validation_data=Input(path="./validation-mltable-folder/", type="mltable"),
)
# set pipeline level compute
pipeline_job.settings.default_compute = compute_name
# submit the pipeline job
returned_pipeline_job = ml_client.jobs.create_or_update(
pipeline_job,
experiment_name=experiment_name
)
returned_pipeline_job
# ...
# Note that this is a snippet from the bankmarketing example you can find in our examples repo -> https://github.com/Azure/azureml-examples/tree/main/sdk/python/jobs/pipelines/1h_automl_in_pipeline/automl-classification-bankmarketing-in-pipeline
Untuk contoh selengkapnya tentang cara menyertakan AutoML dalam alur Anda, lihat repositori contoh.
Menggunakan AutoML dalam skala besar: pelatihan terdistribusi
Untuk skenario data besar, AutoML mendukung pelatihan terdistribusi untuk serangkaian model terbatas:
| Algoritma terdistribusi | Tugas yang didukung | Batas ukuran data (perkiraan) |
|---|---|---|
| LightGBM | Klasifikasi, regresi | 1 Terabyte (TB) |
| TCNForecaster | Prakiraan | 200 GB |
Algoritma pelatihan terdistribusi secara otomatis mempartisi dan mendistribusikan data Anda di beberapa simpul komputasi untuk pelatihan model.
Catatan
Validasi silang, model ansambel, dukungan ONNX, dan pembuatan kode saat ini tidak didukung dalam mode pelatihan terdistribusi. Selain itu, AutoML dapat menentukan pilihan seperti membatasi featurizer yang tersedia dan melakukan subsampling pada data yang digunakan untuk validasi, keterjelasan, dan evaluasi model.
Pelatihan terdistribusi untuk klasifikasi dan regresi
Untuk menggunakan pelatihan terdistribusi untuk klasifikasi atau regresi, atur properti training_mode dan max_nodes pada objek pekerjaan.
| Properti | Deskripsi |
|---|---|
| mode pelatihan | Menunjukkan mode pelatihan: distributed atau non_distributed. Default-nya adalah non_distributed. |
| maksimal_simpul | Jumlah simpul yang digunakan untuk pelatihan oleh setiap uji coba. Pengaturan ini harus lebih besar dari atau sama dengan 4. |
Sampel kode berikut menunjukkan contoh pengaturan ini untuk pekerjaan klasifikasi:
Catatan
TabularTrainingMode adalah API eksperimental dan dapat berubah kapan saja.
from azure.ai.ml.constants import TabularTrainingMode
# Set the training mode to distributed
classification_job.set_training(
allowed_training_algorithms=["LightGBM"],
training_mode=TabularTrainingMode.DISTRIBUTED
)
# Distribute training across 4 nodes for each trial
classification_job.set_limits(
max_nodes=4,
# other limit settings
)
Catatan
Pelatihan terdistribusi untuk tugas klasifikasi dan regresi saat ini tidak mendukung beberapa uji coba bersamaan. Uji coba model berjalan secara berurutan dan setiap uji coba menggunakan max_nodes node.
max_concurrent_trials Pengaturan batas saat ini diabaikan.
Pelatihan terdistribusi untuk prakiraan
Untuk mempelajari cara kerja pelatihan terdistribusi untuk tugas prakiraan, lihat prakiraan dalam skala besar. Untuk menggunakan pelatihan terdistribusi untuk peramalan, Anda perlu mengatur properti training_mode, enable_dnn_training, max_nodes, dan secara opsional max_concurrent_trials dari objek tugas.
| Properti | Deskripsi |
|---|---|
| mode pelatihan | Menunjukkan mode pelatihan; distributed atau non_distributed. Default-nya adalah non_distributed. |
| aktifkan_pelatihan_dnn | Bendera untuk mengaktifkan model jaringan neural mendalam. |
| uji coba bersamaan maksimum | Nilai ini adalah jumlah maksimum model uji coba untuk dilatih secara paralel. Defaultnya adalah 1. |
| maksimal_simpul | Jumlah total node yang akan digunakan untuk pelatihan. Pengaturan ini harus lebih besar dari atau sama dengan 2. Untuk tugas prakiraan, setiap model uji coba dilatih menggunakan $\text{max}\left(2, \text{floor}( \text{max_nodes} / \text{max_concurrent_trials}) \right)$ node. |
Sampel kode berikut menunjukkan contoh pengaturan ini untuk pekerjaan prakiraan:
from azure.ai.ml.constants import TabularTrainingMode
# Set the training mode to distributed
forecasting_job.set_training(
enable_dnn_training=True,
allowed_training_algorithms=["TCNForecaster"],
training_mode=TabularTrainingMode.DISTRIBUTED
)
# Distribute training across 4 nodes
# Train 2 trial models in parallel => 2 nodes per trial
forecasting_job.set_limits(
max_concurrent_trials=2,
max_nodes=4,
# other limit settings
)
Untuk sampel kode konfigurasi lengkap, lihat bagian sebelumnya tentang konfigurasi dan pengiriman pekerjaan.
Konten terkait
- Pelajari selengkapnya tentang cara dan tempat menerapkan model.
- Pelajari selengkapnya tentang cara menyiapkan AutoML untuk melatih model prakiraan rangkaian waktu.