Bagikan melalui


Melacak eksperimen dan model dengan MLflow

Pelacakan adalah proses menyimpan informasi yang relevan tentang eksperimen. Dalam artikel ini, Anda mempelajari cara menggunakan MLflow untuk melacak eksperimen dan menjalankan di ruang kerja Azure Pembelajaran Mesin.

Beberapa metode yang tersedia di API MLflow mungkin tidak tersedia saat tersambung ke Azure Pembelajaran Mesin. Untuk detail tentang operasi yang didukung dan tidak didukung, lihat Matriks dukungan untuk mengkueri eksekusi dan eksperimen. Anda juga dapat mempelajari tentang fungsionalitas MLflow yang didukung di Azure Pembelajaran Mesin dari artikel MLflow dan Azure Pembelajaran Mesin.

Catatan

Prasyarat

  • Instal paket MLflow SDK mlflow dan plugin Azure Pembelajaran Mesin azureml-mlflow untuk MLflow sebagai berikut:

    pip install mlflow azureml-mlflow
    

    Tip

    Anda dapat menggunakan mlflow-skinny paket, yang merupakan paket MLflow ringan tanpa penyimpanan SQL, server, UI, atau dependensi ilmu data. Paket ini direkomendasikan untuk pengguna yang terutama membutuhkan kemampuan pelacakan dan pengelogan MLflow tanpa mengimpor rangkaian fitur lengkap, termasuk penyebaran.

  • Buat ruang kerja Azure Machine Learning. Untuk membuat ruang kerja, lihat Membuat sumber daya yang Anda butuhkan untuk memulai. Tinjau izin akses yang Anda butuhkan untuk melakukan operasi MLflow di ruang kerja Anda.

  • Untuk melakukan pelacakan jarak jauh, atau melacak eksperimen yang berjalan di luar Azure Pembelajaran Mesin, konfigurasikan MLflow untuk mengarahkan ke URI pelacakan ruang kerja Azure Pembelajaran Mesin Anda. Untuk informasi selengkapnya tentang cara menyambungkan MLflow ke ruang kerja Anda, lihat Mengonfigurasi MLflow untuk Azure Pembelajaran Mesin.

Konfigurasikan eksperimen

MLflow mengatur informasi dalam eksperimen dan berjalan. Eksekusi disebut pekerjaan di Azure Pembelajaran Mesin. Secara default, menjalankan log ke eksperimen yang dibuat secara otomatis bernama Default, tetapi Anda dapat mengonfigurasi eksperimen mana yang akan dilacak.

Untuk pelatihan interaktif, seperti di notebook Jupyter, gunakan perintah mlflow.set_experiment()MLflow . Misalnya, cuplikan kode berikut mengonfigurasi eksperimen:

experiment_name = 'hello-world-example'
mlflow.set_experiment(experiment_name)

Mengonfigurasi eksekusi

Azure Pembelajaran Mesin melacak pekerjaan pelatihan dalam panggilan MLflow apa yang dijalankan. Gunakan eksekusi untuk menangkap semua pemrosesan yang dilakukan pekerjaan Anda.

Saat Anda bekerja secara interaktif, MLflow mulai melacak rutinitas pelatihan Anda segera setelah Anda mencatat informasi yang memerlukan eksekusi aktif. Misalnya, jika fungsionalitas autologging Mlflow diaktifkan, pelacakan MLflow dimulai saat Anda mencatat metrik atau parameter, atau memulai siklus pelatihan.

Namun, biasanya membantu untuk memulai eksekusi secara eksplisit, terutama jika Anda ingin mengambil total waktu untuk eksperimen Anda di bidang Durasi . Untuk memulai eksekusi secara eksplisit, gunakan mlflow.start_run().

Apakah Anda memulai eksekusi secara manual atau tidak, Anda akhirnya perlu menghentikan eksekusi, sehingga MLflow tahu bahwa eksekusi eksperimen Anda selesai dan dapat menandai status eksekusi sebagai Selesai. Untuk menghentikan eksekusi, gunakan mlflow.end_run().

Kode berikut memulai eksekusi secara manual dan mengakhirinya di akhir buku catatan:

mlflow.start_run()

# Your code

mlflow.end_run()

Yang terbaik adalah mulai berjalan secara manual sehingga Anda tidak lupa untuk mengakhirinya. Anda dapat menggunakan paradigma manajer konteks untuk membantu Anda mengingat untuk mengakhiri eksekusi.

with mlflow.start_run() as run:
    # Your code

Saat Anda memulai eksekusi baru dengan mlflow.start_run(), akan berguna untuk menentukan run_name parameter, yang nantinya diterjemahkan ke nama eksekusi di antarmuka pengguna Azure Pembelajaran Mesin. Praktik ini membantu Anda mengidentifikasi eksekusi dengan lebih cepat.

with mlflow.start_run(run_name="hello-world-example") as run:
    # Your code

Mengaktifkan autologging MLflow

Anda dapat mencatat metrik, parameter, dan file dengan MLflow secara manual, dan Anda juga dapat mengandalkan kemampuan pengelogan otomatis MLflow. Setiap kerangka kerja pembelajaran mesin yang didukung oleh MLflow menentukan apa yang harus dilacak secara otomatis untuk Anda.

Untuk mengaktifkan pengelogan otomatis, sisipkan kode berikut sebelum kode pelatihan Anda:

mlflow.autolog()

Melihat metrik dan artefak di ruang kerja Anda

Metrik dan artefak dari pengelogan MLflow dilacak di ruang kerja Anda. Anda dapat melihat dan mengaksesnya di studio Azure Pembelajaran Mesin atau mengaksesnya secara terprogram melalui MLflow SDK.

Untuk melihat metrik dan artefak di studio:

  1. Pada halaman Pekerjaan di ruang kerja Anda, pilih nama eksperimen.

  2. Pada halaman detail eksperimen, pilih tab Metrik .

  3. Pilih metrik yang dicatat untuk merender bagan di sisi kanan. Anda dapat menyesuaikan bagan dengan menerapkan penghalusan, mengubah warna, atau memplot beberapa metrik pada satu grafik. Anda juga dapat mengubah ukuran dan menyusun ulang tata letak.

  4. Setelah Anda membuat tampilan yang diinginkan, simpan untuk digunakan di masa mendatang dan bagikan dengan rekan satu tim Anda dengan menggunakan tautan langsung.

    Cuplikan layar tampilan metrik yang memperlihatkan daftar metrik dan bagan yang dibuat dari metrik.

Untuk mengakses atau mengkueri metrik, parameter, dan artefak secara terprogram melalui MLflow SDK, gunakan mlflow.get_run().

import mlflow

run = mlflow.get_run("<RUN_ID>")

metrics = run.data.metrics
params = run.data.params
tags = run.data.tags

print(metrics, params, tags)

Tip

Contoh sebelumnya hanya mengembalikan nilai terakhir dari metrik tertentu. Untuk mengambil semua nilai metrik tertentu, gunakan metode .mlflow.get_metric_history Untuk informasi selengkapnya tentang mengambil nilai metrik, lihat Mendapatkan param dan metrik dari eksekusi.

Untuk mengunduh artefak yang Anda catat, seperti file dan model, gunakan mlflow.artifacts.download_artifacts().

mlflow.artifacts.download_artifacts(run_id="<RUN_ID>", artifact_path="helloworld.txt")

Untuk informasi selengkapnya tentang cara mengambil atau membandingkan informasi dari eksperimen dan eksekusi di Azure Pembelajaran Mesin dengan menggunakan MLflow, lihat Kueri & bandingkan eksperimen dan eksekusi dengan MLflow.