Cara kerja Pembelajaran Mesin Azure: Arsitektur dan konsep (v1)

BERLAKU UNTUK:Ekstensi ml Azure CLI v1Python SDK azureml v1

Artikel ini berlaku untuk versi pertama (v1) Azure Pembelajaran Mesin CLI & SDK. Untuk versi dua (v2), lihat Cara kerja Azure Machine Learning (v2).

Pelajari arsitektur dan konsep untuk Azure Machine Learning. Artikel ini memberikan pemahaman tingkat tinggi tentang komponen dan bagaimana mereka bekerja sama untuk membantu dalam proses membangun, menyebarkan, dan memelihara model pembelajaran mesin.

Ruang kerja

Ruang kerja pembelajaran mesin adalah sumber daya tingkat teratas untuk Azure Machine Learning.

Diagram: Azure Machine Learning architecture of a workspace and its components

Ruang kerja adalah tempat terpusat untuk:

Ruang kerja menyertakan sumber daya Azure lainnya yang digunakan oleh ruang kerja:

  • Azure Container Registry (ACR): Mendaftarkan kontainer docker yang Anda gunakan selama pelatihan dan ketika menyebarkan model. Untuk meminimalkan biaya, ACR hanya dibuat saat citra penyebaran dibuat.
  • Akun Azure Storage: Digunakan sebagai penyimpanan data default untuk ruang kerja. Buku catatan Jupyter yang digunakan dengan instans komputasi Azure Machine Learning juga disimpan di sini.
  • Azure Application Insights: Menyimpan informasi pemantauan tentang model Anda.
  • Azure Key Vault: Menyimpan rahasia yang digunakan oleh target komputasi dan informasi sensitif lainnya yang diperlukan oleh ruang kerja.

Anda dapat berbagi ruang kerja dengan orang lain.

Komputasi

Target komputasi adalah komputer atau set komputer yang Anda gunakan untuk menjalankan skrip pelatihan atau menghosting penyebaran layanan. Anda dapat menggunakan komputer lokal atau sumber daya komputasi jarak jauh sebagai target komputasi. Dengan target komputasi, Anda dapat mulai berlatih di komputer lokal Anda kemudian memperluas skala ke cloud tanpa mengubah skrip pelatihan.

Azure Machine Learning memperkenalkan dua komputer virtual (VM) berbasis cloud yang dikelola sepenuhnya yang dikonfigurasi untuk tugas pembelajaran mesin:

  • Instans komputasi: Instans komputasi adalah VM yang menyertakan beberapa alat dan lingkungan yang diinstal untuk pembelajaran mesin. Penggunaan utama instans komputasi adalah untuk stasiun kerja pengembangan Anda. Anda dapat mulai menjalankan contoh buku catatan tanpa memerlukan penyiapan. Instans komputasi juga dapat digunakan sebagai target komputasi untuk pelatihan dan menyimpulkan pekerjaan.

  • Kluster komputasi: Kluster komputasi adalah kluster VM dengan kemampuan penskalaan multi-node. Kluster komputasi lebih cocok untuk target komputasi pekerjaan dan produksi besar. Kluster secara otomatis meningkatkan skala ketika pekerjaan dikirimkan. Gunakan sebagai target komputasi pelatihan atau untuk penyebaran dev/test.

Untuk informasi lebih lanjut tentang target komputasi pelatihan, lihat Target komputasi pelatihan. Untuk informasi lebih lanjut tentang target komputasi penyebaran, lihat Target penyebaran.

Himpunan data dan penyimpanan data

Himpunan data Azure Machine Learning memudahkan untuk mengakses dan bekerja dengan data Anda. Dengan membuat himpunan data, Anda membuat referensi ke lokasi sumber data sekaligus salinan metadata sumber data tersebut. Karena data tetap berada di lokasinya yang sudah ada, Anda tidak dikenakan biaya penyimpanan ekstra, dan tidak mempertaruhkan integritas sumber data Anda.

Untuk informasi lebih lanjut, lihat Membuat dan mendaftarkan Himpunan Data Azure Machine Learning. Untuk contoh lainnya dalam menggunakan Himpunan Data, lihat contoh buku catatan.

Himpunan data menggunakan penyimpanan data untuk menyambungkan ke layanan penyimpanan Azure Anda dengan aman. Penyimpanan data menyimpan informasi koneksi tanpa membahayakan info masuk autentikasi dan integritas sumber data orisinal Anda. Penyimpanan data menyimpan informasi koneksi, seperti ID langganan dan otorisasi token di Key Vault yang terkait dengan ruang kerja, sehingga Anda dapat mengakses penyimpanan secara aman tanpa harus mengkodekan secara permanen di skrip Anda.

Lingkungan

Ruang kerja>Lingkungan

Lingkungan adalah pewadahan lingkungan tempat terjadinya pelatihan atau penskoran untuk model pembelajaran mesin. Lingkungan menentukan paket Python, variabel lingkungan, dan pengaturan perangkat lunak terkait pelatihan dan penskoran skrip.

Untuk sampel kode, lihat bagian "Kelola lingkungan" pada Cara menggunakan lingkungan.

Percobaan

Ruang kerja>Percobaan

Percobaan adalah pengelompokan berbagai eksekusi dari skrip tertentu. Percobaan selalu termasuk dalam ruang kerja. Saat mengirimkan eksekusi, Anda memberikan nama percobaan. Informasi untuk eksekusi disimpan pada percobaan. Jika nama tidak ada saat mengirimkan percobaan, percobaan baru dibuat secara otomatis.

Untuk contoh penggunaan percobaan, lihat Tutorial: Melatih model pertama Anda.

Jalankan

Ruang kerja>Percobaan>Eksekusi

Eksekusi adalah operasi tunggal dari skrip pelatihan. Percobaan umumnya akan berisi beberapa eksekusi.

Azure Machine Learning mencatat semua eksekusi dan menyimpan informasi berikut pada percobaan:

  • Metadata tentang eksekusi (tanda waktu, durasi, dan sebagainya)
  • Metrik yang dicatat oleh skrip Anda
  • File output yang dikumpulkan secara otomatis oleh percobaan atau diunggah secara eksplisit oleh Anda
  • Rekam jepret direktori berisi skrip Anda, sebelum eksekusi

Anda menghasilkan eksekusi ketika mengirimkan skrip untuk melatih suatu model. Eksekusi dapat memiliki nol anak eksekusi atau lebih. Contohnya, eksekusi tingkat tertinggi dapat memiliki dua anak eksekusi, masing-masing dapat memiliki anak eksekusinya sendiri.

Konfigurasi eksekusi

Ruang kerja>Percobaan>Eksekusi>Konfigurasi eksekusi

Konfigurasi eksekusi menentukan bagaimana skrip harus dijalankan dalam target komputasi tertentu. Anda menggunakan konfigurasi untuk menentukan skrip, target komputasi, dan lingkungan Azure Pembelajaran Mesin untuk dijalankan, konfigurasi khusus pekerjaan terdistribusi, dan beberapa properti tambahan. Untuk informasi lebih lanjut tentang set lengkap opsi eksekusi yang dapat dikonfigurasi, lihat ScriptRunConfig.

Konfigurasi eksekusi dapat ditampung dalam file di dalam direktori yang berisi skrip pelatihan Anda. Konfigurasi eksekusi juga dapat dibangun sebagai objek dalam memori dan digunakan untuk mengirimkan eksekusi.

Untuk contoh konfigurasi eksekusi, lihat Mengonfigurasi eksekusi pelatihan.

Rekam jepret

Ruang kerja>Percobaan>Eksekusi>Rekam Jepret

Ketika mengirimkan eksekusi, Azure Machine Learning memadatkan direktori yang berisi skrip sebagai file zip dan mengirimkannya ke target komputasi. File zip kemudian diekstraksi, dan skrip dijalankan di sana. Azure Machine Learning juga menyimpan file zip sebagai rekam jepret sebagai bagian dari catatan eksekusi. Siapa pun yang memiliki akses ke ruang kerja dapat menelusuri catatan eksekusi dan mengunduh rekam jepret.

Pencatatan

Azure Machine Learning secara otomatis mencatat metrik eksekusi standar untuk Anda. Namun, Anda juga dapat menggunakan Python SDK untuk mencatat metrik arbitrer.

Terdapat beberapa cara untuk melihat log Anda: memantau status eksekusi secara real time, atau melihat hasil setelah penyelesaian. Untuk informasi lebih lanjut, lihat Memantau dan melihat log eksekusi ML.

Catatan

Untuk mencegah file yang tidak perlu disertakan dalam cuplikan, buat file abaikan (.gitignore atau .amlignore) di direktori. Tambahkan file dan direktori untuk dikecualikan ke file ini. Untuk informasi selengkapnya tentang sintaks yang digunakan di dalam file ini, lihat sintaks dan pola untuk .gitignore. File .amlignore menggunakan sintaks yang sama. Jika kedua file ada, file .amlignore digunakan dan file .gitignore tidak digunakan.

Pelacakan dan integrasi Git

Ketika Anda memulai eksekusi pelatihan di mana direktori sumber adalah repositori Git lokal, informasi tentang repositori tersebut disimpan dalam riwayat eksekusi. Hal ini bekerja untuk eksekusi yang dikirimkan menggunakan konfigurasi eksekusi skrip atau alur ML. Hal ini juga bekerja untuk eksekusi yang dikirimkan dari SDK atau Machine Learning CLI.

Untuk informasi lebih lanjut, lihat Integrasi Git untuk Azure Machine Learning.

Alur kerja pelatihan

Ketika Anda menjalankan percobaan untuk melatih model, langkah berikut terjadi. Hal ini digambarkan dalam diagram alur kerja pelatihan di bawah:

  • Azure Machine Learning dipanggil dengan ID rekam jepret untuk kode rekam jepret yang disimpan di bagian sebelumnya.

  • Azure Machine Learning membuat ID eksekusi (opsional) dan token layanan Machine Learning, yang nantinya digunakan oleh target komputasi seperti Machine Learning Compute/VM untuk berkomunikasi dengan layanan Machine Learning.

  • Anda dapat memilih antara target komputasi terkelola (seperti Machine Learning Compute) atau target komputasi yang tidak dikelola (seperti VM) untuk menjalankan pekerjaan pelatihan. Berikut alur data untuk kedua skenario tersebut:

    • VM/HDInsight, diakses oleh info masuk SSH dalam key vault dalam langganan Microsoft. Azure Machine Learning menjalankan kode manajemen pada target komputasi yang:
    1. Menyiapkan lingkungan. (Docker adalah opsi untuk VM dan komputer lokal. Lihat langkah-langkah berikut untuk Komputasi Pembelajaran Mesin guna memahami cara kerja eksperimen yang berjalan pada kontainer Docker.)
    2. Mengunduh kode.
    3. Menyiapkan variabel dan konfigurasi lingkungan.
    4. Menjalankan skrip pengguna (rekam jepret kode yang disebutkan pada bagian sebelumnya).
    • Machine Learning Compute, diakses melalui identitas yang dikelola ruang kerja. Karena Machine Learning Compute adalah target komputasi terkelola (yaitu, dikelola oleh Microsoft) yang dijalankan pada langganan Microsoft Anda.
    1. Konstruksi Remote Docker dimulai, jika diperlukan.
    2. Kode manajemen ditulis ke Azure Files berbagi pengguna.
    3. Kontainer dimulai dengan perintah awal. Yaitu, kode manajemen seperti dijelaskan pada langkah sebelumnya.
  • Setelah eksekusi selesai, Anda dapat mengkueri eksekusi dan metrik. Dalam diagram alur di bawah ini, langkah ini terjadi ketika target komputasi pelatihan menulis metrik eksekusi kembali ke Azure Pembelajaran Mesin dari penyimpanan di database Azure Cosmos DB. Klien dapat memanggil Azure Machine Learning. Pembelajaran Mesin pada gilirannya akan menarik metrik dari database Azure Cosmos DB dan mengembalikannya kembali ke klien.

Training workflow

Model

Sederhananya, model adalah potongan kodde yang mengambil input dan menghasilkan output. Membuat model pembelajaran mesin melibatkan pemilihan algoritma, menyediakannya dengan data, dan menyetel hyperparameters. Pelatihan adalah proses berulang yang menghasilkan model terlatih, yang mewadahi apa yang dipelajari model tersebut selama proses pelatihan.

Anda dapat membawa model yang dilatih di luar Azure Machine Learning. Atau Anda dapat melatih model dengan mengirimkan eksekusipercobaan ke target komputasi pada Azure Machine Learning. Setelah memiliki model, Anda mendaftarkan model di ruang kerja.

Azure Machine Learning adalah agnostik kerangka kerja. Saat membuat model, Anda dapat menggunakan kerangka kerja pembelajaran mesin populer apa pun, seperti Scikit-learn, XGBoost, PyTorch, TensorFlow, dan Chainer.

Untuk contoh pelatihan model menggunakan Scikit-learn, lihat Tutorial: Melatih model klasifikasi gambar dengan Azure Machine Learning.

Registri model

Ruang kerja>Model

Registri model memungkinkan Anda memantau semua model pada ruang kerja Azure Machine Learning.

Model diidentifikasi berdasarkan nama dan versi. Setiap kali Anda mendaftarkan model dengan nama yang sama dengan yang sudah ada, registri mengasumsikan bahwa itu adalah versi baru. Versi tersebut ditambahkan, dan model baru didaftarkan dengan nama yang sama.

Saat mendaftarkan model, Anda dapat memberikan tag metadata tambahan, kemudian menggunakan tag tersebut saat mencari model.

Tip

Model terdaftar adalah kontainer logis untuk satu atau beberapa file yang membentuk model Anda. Misalnya, jika Anda memiliki model yang disimpan dalam beberapa file, Anda dapat mendaftarkannya sebagai satu model di ruang kerja Azure Machine Learning Anda. Setelah pendaftaran, Anda kemudian dapat mengunduh atau menyebarkan model terdaftar, dan menerima semua file yang terdaftar.

Anda tidak dapat menghapus model terdaftar yang sedang digunakan oleh penyebaran aktif.

Untuk contoh pendaftaran model, lihat Melatih model klasifikasi gambar dengan Azure Machine Learning.

Penyebaran

Anda menyebarkan model terdaftar sebagai titik akhir layanan. Anda memerlukan komponen berikut:

  • Lingkungan. Lingkungan ini mewadahi dependensi yang diperlukan untuk menjalankan model Anda untuk menyimpulkan.
  • Kode penskoran. Skrip ini menerima permintaan, menskorkan permintaan menggunakan model, dan menampilkan hasilnya.
  • Konfigurasi inferensi. Konfigurasi inferensi menentukan lingkungan, skrip entri, dan komponen lain yang diperlukan untuk menjalankan model sebagai layanan.

Untuk informasi lebih lanjut tentang komponen ini, lihat Menyebarkan model dengan Azure Machine Learning.

Titik akhir

Ruang kerja>Titik akhir

Titik akhir adalah instanisasi model Anda menjadi layanan web yang dapat dihosting di cloud.

Titik akhir layanan web

Ketika menyebarkan model sebagai layanan web, titik akhir dapat disebarkan pada Azure Container Instances, Azure Kubernetes Service, atau FPGA. Anda membuat layanan dari model, skrip, dan file terkait. Semua hal tersebut ditempatkan dalam citra kontainer dasar, yang berisi lingkungan eksekusi untuk model. Citra memiliki titik akhir HTTP dengan muatan seimbang yang menerima permintaan penskoran yang dikirimkan ke layanan web.

Anda dapat mengaktifkan telemetri Application Insights atau telemetri model untuk memantau layanan web. Data telemetri hanya dapat diakses oleh Anda. Data telemetri disimpan di Application Insights dan instans akun penyimpanan Anda. Jika Anda telah mengaktifkan penskalaan otomatis, Azure secara otomatis menskalakan penyebaran Anda.

Diagram berikut menunjukkan alur kerja inferensi untuk model yang disebarkan sebagai titik akhir layanan web:

Berikut rinciannya:

  • Pengguna mendaftarkan model menggunakan klien seperti Azure Machine Learning SDK.
  • Pengguna membuat citra menggunakan model, file skor, dan dependensi model lainnya.
  • Citra Docker dibuat dan disimpan di Azure Container Registry.
  • Layanan web disebarkan ke target komputasi (Container Instances/AKS) menggunakan citra yang dibuat pada langkah sebelumnya.
  • Detail permintaan penskoran disimpan di Application Insights, yang ada dalam langganan pengguna.
  • Telemetri juga didorong ke langganan Microsoft Azure.

Inference workflow

Untuk contoh penyebaran model sebagai layanan web, lihat Tutorial: Melatih dan menyebarkan model.

Titik akhir real time

Ketika menyebarkan model terlatih dalam desainer, Anda dapat menyebarkan model sebagai titik akhir real-time. Titik akhir real-time umumnya menerima permintaan tunggal melalui titik akhir REST dan menampilkan prediksi secara real-time. Hal ini berkebalikan dengan pemrosesan batch, yang memproses beberapa nilai sekaligus dan menyimpan hasil setelah penyelesaian penyimpanan data.

Titik akhir alur

Titik akhir alur memungkinkan Anda memanggil Alur ML secara terprogram melalui titik akhir REST. Titik akhir alur memungkinkan Anda mengotomatiskan alur kerja alur.

Titik akhir alur adalah kumpulan alur yang diterbitkan. Organisasi logis ini memungkinkan Anda mengelola dan memanggil beberapa alur menggunakan titik akhir yang sama. Setiap alur yang diterbitkan dalam titik akhir alur diversikan. Anda dapat memilih alur default untuk titik akhir, atau menentukan versi dalam panggilan REST.

Automation

Azure Machine Learning CLI

Azure Pembelajaran Mesin CLI v1 adalah ekstensi untuk Azure CLI, antarmuka baris perintah lintas platform untuk platform Azure. Ekstensi ini menyediakan perintah untuk mengotomatiskan aktivitas pembelajaran mesin Anda.

Alur ML

Anda menggunakan alur pembelajaran mesin untuk membuat dan mengelola alur kerja yang menyatukan fase pembelajaran mesin. Contohnya, alur dapat mencakup persiapan data, pelatihan model, penyebaran model, dan fase inferensi/penskoran. Setiap fase dapat mencakup beberapa langkah, masing-masing dapat berjalan tanpa pengawasan dalam berbagai target komputasi.

Langkah alur dapat digunakan kembali, dan dapat dijalankan tanpa menjalankan ulang langkah sebelumnya jika output langkah tersebut belum berubah. Contohnya, Anda dapat melatih ulang model tanpa menjalankan kembali langkah persiapan data yang menghabiskan biaya jika data belum berubah. Alur juga memungkinkan ilmuwan data untuk berkolaborasi selagi mengerjakan area terpisah alur kerja pembelajaran mesin.

Pemantauan dan pengelogan

Azure Machine Learning menyediakan kemampuan pemantauan dan pengelogan berikut:

Berinteraksi dengan ruang kerja Anda

Studio

Studio Azure Machine Learning menyediakan tampilan web dari semua artefak di ruang kerja Anda. Anda dapat melihat hasil dan detail himpunan data, percobaan, alur, model, dan titik akhir Anda. Anda juga dapat mengelola sumber daya komputasi dan penyimpanan data di studio.

Studio ini juga merupakan tempat Anda mengakses alat interaktif yang merupakan bagian dari Azure Machine Learning:

Alat pemrograman

Penting

Alat yang ditandai (pratinjau) di bawah ini saat ini berada dalam pratinjau publik. Versi pratinjau disediakan tanpa perjanjian tingkat layanan, dan tidak disarankan untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Langkah berikutnya

Untuk mulai menggunakan Azure Machine Learning, lihat: