Bundel Aset Databricks untuk Tumpukan MLOps
Anda dapat menggunakan Bundel Aset Databricks, Databricks CLI, dan repositori Databricks MLOps Stack di GitHub untuk membuat Tumpukan MLOps. MLOps Stack adalah proyek MLOps di Azure Databricks yang mengikuti praktik terbaik produksi di luar kotak. Lihat Apa itu Bundel Aset Databricks?.
Untuk membuat, menyebarkan, dan menjalankan proyek MLOps Stacks, selesaikan langkah-langkah berikut:
Persyaratan
- Pastikan ruang kerja jarak jauh target mengaktifkan file ruang kerja. Lihat Apa itu file ruang kerja?.
- Pada komputer pengembangan Anda, pastikan Databricks CLI versi 0.212.2 atau yang lebih tinggi diinstal. Untuk memeriksa versi Databricks CLI yang terinstal, jalankan perintah
databricks -v
. Untuk memperbarui versi Databricks CLI Anda, lihat Menginstal atau memperbarui Databricks CLI. (Bundel tidak berfungsi dengan Databricks CLI versi 0.18 ke bawah.)
Langkah 1: Menyiapkan autentikasi
Konfigurasikan Databricks CLI untuk autentikasi.
Artikel ini mengasumsikan bahwa Anda ingin menggunakan autentikasi pengguna-ke-mesin (U2M) OAuth dan profil konfigurasi Azure Databricks terkait bernama DEFAULT
untuk autentikasi.
Catatan
Autentikasi U2M sesuai untuk mencoba langkah-langkah ini secara real time. Untuk alur kerja yang sepenuhnya otomatis, Databricks menyarankan agar Anda menggunakan autentikasi mesin-ke-mesin (M2M) OAuth sebagai gantinya. Lihat instruksi penyiapan autentikasi M2M di Autentikasi.
Gunakan Databricks CLI untuk memulai manajemen token OAuth secara lokal dengan menjalankan perintah berikut untuk setiap ruang kerja target.
Dalam perintah berikut, ganti
<workspace-url>
dengan URL per ruang kerja Azure Databricks Anda, misalnyahttps://adb-1234567890123456.7.azuredatabricks.net
.databricks auth login --host <workspace-url>
Databricks CLI meminta Anda untuk menyimpan informasi yang Anda masukkan sebagai profil konfigurasi Azure Databricks. Tekan
Enter
untuk menerima nama profil yang disarankan, atau masukkan nama profil baru atau yang sudah ada. Profil yang ada dengan nama yang sama ditimpa dengan informasi yang Anda masukkan. Anda dapat menggunakan profil untuk mengalihkan konteks autentikasi dengan cepat di beberapa ruang kerja.Untuk mendapatkan daftar profil yang ada, di terminal atau prompt perintah terpisah, gunakan Databricks CLI untuk menjalankan perintah
databricks auth profiles
. Untuk melihat pengaturan profil tertentu yang sudah ada, jalankan perintahdatabricks auth env --profile <profile-name>
.Di browser web Anda, selesaikan instruksi di layar untuk masuk ke ruang kerja Azure Databricks Anda.
Untuk melihat nilai token OAuth profil saat ini dan tanda waktu kedaluwarsa token yang akan datang, jalankan salah satu perintah berikut:
databricks auth token --host <workspace-url>
databricks auth token -p <profile-name>
databricks auth token --host <workspace-url> -p <profile-name>
Jika Anda memiliki beberapa profil dengan nilai yang sama
--host
, Anda mungkin perlu menentukan--host
opsi dan-p
bersama-sama untuk membantu Databricks CLI menemukan informasi token OAuth yang cocok dengan benar.
Langkah 2: Membuat proyek bundel
Gunakan templat Bundel Aset Databricks untuk membuat file starter proyek MLOps Stacks Anda. Untuk melakukan ini, mulailah dengan menjalankan perintah berikut:
databricks bundle init mlops-stacks
Jawab perintah di layar. Untuk panduan tentang menjawab perintah ini, lihat Memulai proyek baru di repositori Databricks MLOps Stacks di GitHub.
Prompt pertama menawarkan opsi untuk menyiapkan komponen kode ML, komponen CI/CD, atau keduanya. Opsi ini menyederhanakan penyiapan awal karena Anda dapat memilih untuk membuat hanya komponen yang segera relevan. (Untuk menyiapkan komponen lain, jalankan perintah inisialisasi lagi.) Pilih salah satu hal berikut ini:
CICD_and_Project
(default) - Siapkan kode ML dan komponen CI/CD.Project_Only
- Siapkan komponen kode ML saja. Opsi ini adalah agar ilmuwan data memulai.CICD_Only
- Siapkan komponen CI/CD saja. Opsi ini agar teknisi ML menyiapkan infrastruktur.
Setelah Anda menjawab semua perintah di layar, templat membuat file starter proyek MLOps Stacks Anda dan menambahkannya ke direktori kerja Anda saat ini.
Sesuaikan file starter proyek MLOps Stacks Anda sesuai keinginan. Untuk melakukan ini, ikuti panduan dalam file berikut dalam proyek baru Anda:
Peran Tujuan: Docs Pengguna pertama kali repositori ini Pahami alur ML dan struktur kode dalam repositori ini README.md
Saintis Data Mulai menulis kode ML untuk proyek baru <project-name>/README.md
Saintis Data Memperbarui kode ML produksi (misalnya, logika pelatihan model) untuk proyek yang ada docs/ml-pull-request.md
Saintis Data Mengubah sumber daya ML model produksi (misalnya, pelatihan model atau pekerjaan inferensi) <project-name>/resources/README.md
MLOps / DevOps Menyiapkan CI/CD untuk proyek ML saat ini docs/mlops-setup.md
Untuk menyesuaikan eksperimen, pemetaan dalam deklarasi eksperimen sesuai dengan payload permintaan operasi buat eksperimen seperti yang didefinisikan dalam format POST /api/2.0/mlflow/experiments/create dalam referensi REST API, yang dinyatakan dalam format YAML.
Untuk menyesuaikan pekerjaan, pemetaan dalam deklarasi pekerjaan sesuai dengan payload permintaan operasi pekerjaan buat seperti yang didefinisikan dalam POST /api/2.1/jobs/create dalam referensi REST API, yang dinyatakan dalam format YAML.
Tip
Anda dapat menentukan, menggabungkan, dan mengambil alih pengaturan untuk kluster pekerjaan baru dalam bundel dengan menggunakan teknik yang dijelaskan dalam Mengambil alih pengaturan kluster di Bundel Aset Databricks.
Untuk menyesuaikan model, pemetaan dalam deklarasi model sesuai dengan payload permintaan operasi buat model Katalog Unity seperti yang didefinisikan dalam POST /api/2.1/unity-catalog/models dalam referensi REST API, yang dinyatakan dalam format YAML.
Untuk menyesuaikan alur, pemetaan dalam deklarasi alur sesuai dengan payload permintaan operasi buat alur seperti yang didefinisikan dalam POST /api/2.0/pipelines dalam referensi REST API, yang dinyatakan dalam format YAML.
Langkah 3: Memvalidasi proyek bundel
Periksa apakah konfigurasi bundel valid. Untuk melakukan ini, jalankan Databricks CLI dari akar proyek, di mana databricks.yml
berada, sebagai berikut:
databricks bundle validate
Jika ringkasan konfigurasi bundel dikembalikan, maka validasi berhasil. Jika ada kesalahan yang dikembalikan, perbaiki kesalahan, lalu ulangi langkah ini.
Langkah 4: Menyebarkan bundel
Sebarkan sumber daya dan artefak proyek ke ruang kerja jarak jauh yang diinginkan. Untuk melakukan ini, jalankan Databricks CLI dari akar proyek, di mana databricks.yml
berada, sebagai berikut:
databricks bundle deploy -t <target-name>
Ganti <target-name>
dengan nama target yang diinginkan dalam databricks.yml
file, misalnya dev
, , test
staging
, atau prod
.
Langkah 5: Jalankan bundel yang disebarkan
Pekerjaan Azure Databricks yang disebarkan proyek secara otomatis berjalan pada jadwal yang telah ditentukan sebelumnya. Untuk segera menjalankan pekerjaan yang disebarkan, jalankan Databricks CLI dari akar proyek, tempat databricks.yml
lokasinya, sebagai berikut:
databricks bundle run -t <target-name> <job-name>
- Ganti
<target-name>
dengan nama target yang diinginkan dalamdatabricks.yml
file tempat pekerjaan disebarkan, misalnyadev
, ,test
staging
, atauprod
. - Ganti
<job-name>
dengan nama pekerjaan di salah.yml
satu file dalam<project-name>/databricks-resources
, misalnyabatch_inference_job
, ,write_feature_table_job
ataumodel_training_job
.
Tautan ke pekerjaan Azure Databricks muncul, yang dapat Anda salin ke browser web Anda untuk membuka pekerjaan dalam antarmuka pengguna Azure Databricks.
Langkah 6: Hapus bundel yang disebarkan (opsional)
Untuk menghapus sumber daya dan artefak proyek yang disebarkan jika Anda tidak lagi membutuhkannya, jalankan Databricks CLI dari akar proyek, tempat databricks.yml
lokasinya, sebagai berikut:
databricks bundle destroy -t <target-name>
Ganti <target-name>
dengan nama target yang diinginkan dalam databricks.yml
file, misalnya dev
, , test
staging
, atau prod
.
Jawab permintaan di layar untuk mengonfirmasi penghapusan sumber daya dan artefak yang disebarkan sebelumnya.