MLflow adalah platform open-source untuk siklus hidup pembelajaran mesin yang digunakan untuk melacak pelatihan, mengelola model, dan menerapkannya. Topik ini menjelaskan cara mengonfigurasi registri model MLflow untuk manajemen model dalam kluster ACK Pro dengan backend RDS PostgreSQL.
Pengenalan registri model MLflow
Prasyarat
-
Kluster ACK Pro telah dibuat dengan Kubernetes 1.20 atau versi yang lebih baru.
-
Instans RDS PostgreSQL telah dibuat.
Disarankan untuk memilih VPC yang sama dengan kluster ACK Anda dan menambahkan blok CIDR-nya ke daftar putih untuk akses internal. Jika instans RDS dan kluster ACK berada di VPC yang berbeda, aktifkan akses jaringan publik dan tambahkan blok CIDR VPC kluster ACK ke daftar putih.
-
Akun standar account bernama
mlflowtelah dibuat di instans RDS PostgreSQL. -
Database bernama
mlflow_storetelah dibuat di instans RDS PostgreSQL untuk metadata model. Atur Authorized Account ke akunmlflow. -
(Opsional) Database bernama
mlflow_basic_authtelah dibuat di instans RDS PostgreSQL untuk data otentikasi MLflow. Atur Authorized Account ke akunmlflow. -
Klien Arena telah dikonfigurasi (versi 0.9.14 atau lebih baru).
Langkah 1: Deploy MLflow di kluster ACK
-
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Klik Deploy. Pada halaman Deploy, atur Application Name menjadi
mlflowdan Namespace menjadikube-ai. Di bagian Chart, cari dan pilihmlflow. Klik Next. Konfirmasi apakah akan menggunakan mlflow sebagai namespace default untuk Chart tersebut.-
Untuk menggunakan konsol AI Suite, deploy di namespace
kube-aidengan nama rilis defaultmlflow. -
Untuk menggunakan Arena, deploy di namespace apa pun dengan nama rilis default
mlflow.
-
-
Pada halaman Create, konfigurasikan parameter Chart.
-
Konfigurasikan
defaultArtifactRootdanbackendStore:trackingServer: # -- Menentukan mode jalannya server pelacakan mlflow, opsi yang tersedia adalah `serve-artifacts`, `no-serve-artifacts`, dan `artifacts-only` mode: no-serve-artifacts # -- Menentukan lokasi artefak default untuk pencatatan log; data akan dicatat ke `mlflow-artifacts/:` jika penyajian artefak diaktifkan, selain itu ke `./mlruns` defaultArtifactRoot: "./mlruns" # Untuk informasi lebih lanjut tentang cara mengonfigurasi backend store, kunjungi https://mlflow.org/docs/latest/tracking/backend-stores.html backendStore: # -- URI backend store, contoh: `<dialect>+<driver>://<username>:<password>@<host>:<port>/<database>` backendStoreUri: postgresql+psycopg2://mlflow:<password>@pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.com/mlflow_storeGanti
backendStore.backendStoreUridengan titik akhir databasemlflow_storeAnda.PentingJika instans RDS dan kluster ACK berada di VPC yang sama, gunakan titik akhir internal. Jika tidak, gunakan titik akhir publik dan pastikan kluster ACK dapat mengaksesnya.
Masuk ke Konsol RDS PostgreSQL. Klik Instance ID > Database Connection > Internal/External Endpoint untuk mendapatkan titik akhir, seperti
pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.com.Lihat Hubungkan ke database.
-
(Opsional) Untuk mengaktifkan BasicAuth:
trackingServer: # -- Menentukan mode jalannya server pelacakan mlflow, opsi yang tersedia adalah `serve-artifacts`, `no-serve-artifacts`, dan `artifacts-only` mode: no-serve-artifacts # -- Menentukan lokasi artefak default untuk pencatatan log; data akan dicatat ke `mlflow-artifacts/:` jika penyajian artefak diaktifkan, selain itu ke `./mlruns` defaultArtifactRoot: "./mlruns" # Konfigurasi autentikasi dasar, # untuk informasi lebih lanjut, kunjungi https://mlflow.org/docs/latest/auth/index.html#configuration basicAuth: # -- Menentukan apakah autentikasi dasar diaktifkan enabled: true # -- Izin default pada semua sumber daya, opsi yang tersedia adalah `READ`, `EDIT`, `MANAGE`, dan `NO_PERMISSIONS` defaultPermission: NO_PERMISSIONS # -- Lokasi database untuk menyimpan izin dan data pengguna, contoh: `<dialect>+<driver>://<username>:<password>@<host>:<port>/<database>` databaseUri: postgresql+psycopg2://<username>:<password>@pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.com/mlflow_basic_auth # -- Username admin default jika admin belum dibuat adminUsername: admin # -- Password admin default jika admin belum dibuat adminPassword: password # -- Fungsi untuk mengotentikasi permintaan authorizationFunction: mlflow.server.auth:authenticate_request_basic_auth # Untuk informasi lebih lanjut tentang cara mengonfigurasi backend store, kunjungi https://mlflow.org/docs/latest/tracking/backend-stores.html backendStore: # -- URI backend store, contoh: `<dialect>+<driver>://<username>:<password>@<host>:<port>/<database>` backendStoreUri: postgresql+psycopg2://mlflow:<password>@pgm-xxxxxxxxxxxxxx.pg.rds.aliyuncs.com/mlflow_store-
Ganti
trackingServer.basicAuth.databaseUridengan titik akhir databasemlflow_basic_authAnda. -
Atur
trackingServer.basicAuth.adminUsernamedantrackingServer.basicAuth.adminPasswordke kredensial admin MLflow. Akun admin baru hanya akan dibuat jika belum ada sebelumnya.
-
Semua parameter Chart tercantum di MLflow.
-
Langkah 2: Akses UI Web MLflow yang dideploy di Kubernetes
-
Teruskan layanan UI Web MLflow ke port lokal 5000:
kubectl port-forward -n kube-ai services/mlflow 5000Output yang diharapkan:
Forwarding from 127.0.0.1:5000 -> 5000 Forwarding from [::1]:5000 -> 5000 Handling connection for 5000 Handling connection for 5000 ... -
Buka http://127.0.0.1:5000 untuk melihat UI Web MLflow.
Halaman eksperimen Default muncul dengan tulisan "No runs logged", yang mengonfirmasi bahwa MLflow telah dideploy dan sedang berjalan.
Langkah selanjutnya: Manajemen model
Kelola model di registri MLflow menggunakan konsol AI Suite atau Arena. Lihat Kelola model registri MLflow menggunakan Arena.