Berbagi data di seluruh ruang kerja dengan registri (pratinjau)
Registri Azure Pembelajaran Mesin memungkinkan Anda berkolaborasi di seluruh ruang kerja dalam organisasi Anda. Dengan menggunakan registri, Anda dapat berbagi model, komponen, lingkungan, dan data. Berbagi data dengan registri saat ini adalah fitur pratinjau. Dalam artikel ini, Anda akan mempelajari cara:
- Buat aset data di registri.
- Berbagi aset data yang ada dari ruang kerja ke registri
- Gunakan aset data dari registri sebagai input ke pekerjaan pelatihan model di ruang kerja.
Penting
Fitur ini masih dalam pratinjau umum. Versi pratinjau ini 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.
Skenario utama yang ditangani oleh berbagi data menggunakan registri Azure Pembelajaran Mesin
Anda mungkin ingin memiliki data yang dibagikan di beberapa tim, proyek, atau ruang kerja di lokasi pusat. Data tersebut tidak memiliki kontrol akses sensitif dan dapat digunakan secara luas dalam organisasi.
Contohnya meliputi:
- Tim ingin berbagi himpunan data publik yang telah diprosces dan siap digunakan dalam eksperimen.
- Organisasi Anda telah memperoleh himpunan data tertentu untuk proyek dari vendor eksternal dan ingin membuatnya tersedia untuk semua tim yang mengerjakan proyek.
- Tim ingin berbagi aset data di seluruh ruang kerja di berbagai wilayah.
Dalam skenario ini, Anda dapat membuat aset data di registri atau berbagi aset data yang ada dari ruang kerja ke registri. Aset data ini kemudian dapat digunakan di beberapa ruang kerja.
Skenario TIDAK ditangani oleh berbagi data menggunakan registri Azure Pembelajaran Mesin
Berbagi data sensitif yang memerlukan kontrol akses menenangkan. Anda tidak dapat membuat aset data di registri untuk dibagikan dengan sebagian kecil pengguna/ruang kerja saat registri dapat diakses oleh banyak pengguna lain di organisasi.
Berbagi data yang tersedia di penyimpanan yang ada yang tidak boleh disalin atau terlalu besar atau terlalu mahal untuk disalin. Setiap kali aset data dibuat dalam registri, salinan data diserap ke dalam penyimpanan registri sehingga dapat direplikasi.
Jenis aset data yang didukung oleh registri Azure Pembelajaran Mesin
Tip
Lihat skenario kanonis berikut saat memutuskan apakah Anda ingin menggunakan uri_file
, , uri_folder
atau mltable
untuk skenario Anda.
Anda dapat membuat tiga jenis aset data:
Jenis | V2 API | Skenario kanonis |
---|---|---|
File: Mereferensikan satu file | uri_file |
Baca/tulis satu file - file dapat memiliki format apa pun. |
Folder: Mereferensikan satu folder | uri_folder |
Anda harus membaca/menulis direktori file parket/CSV ke Pandas/Spark. Pembelajaran mendalam dengan file gambar, teks, audio, video yang terletak di direktori. |
Tabel: Mereferensikan tabel data | mltable |
Anda memiliki skema kompleks yang sering mengalami perubahan, atau Anda memerlukan subset data tabular besar. |
Jalur yang didukung oleh registri Azure Pembelajaran Mesin
Saat membuat aset data, Anda harus menentukan parameter jalur yang menunjuk ke lokasi data. Saat ini, satu-satunya jalur yang didukung adalah ke lokasi di komputer lokal Anda.
Tip
"Lokal" berarti penyimpanan lokal untuk komputer yang Anda gunakan. Misalnya, jika Anda menggunakan laptop, drive lokal. Jika instans komputasi Azure Pembelajaran Mesin, drive "lokal" instans komputasi.
Prasyarat
Sebelum mengikuti langkah-langkah dalam artikel ini, pastikan Anda memiliki prasyarat berikut:
Memahami registri azure Pembelajaran Mesin dan konsep Data di Azure Pembelajaran Mesin.
Registri Azure Pembelajaran Mesin untuk berbagi data. Untuk membuat registri, lihat Mempelajari cara membuat registri.
Ruang kerja Azure Machine Learning. Jika Anda tidak memilikinya, gunakan langkah-langkah dalam artikel Mulai Cepat: Membuat sumber daya ruang kerja untuk membuatnya.
Penting
Wilayah Azure (lokasi) tempat Anda membuat ruang kerja harus berada dalam daftar wilayah yang didukung untuk registri Azure Pembelajaran Mesin.
Lingkungan dan komponen yang dibuat dari artikel Cara berbagi model, komponen, dan lingkungan.
Azure CLI dan
ml
ekstensi atau Azure Pembelajaran Mesin Python SDK v2:Untuk menginstal Azure CLI dan ekstensi, lihat Menginstal, menyiapkan, dan menggunakan CLI (v2).
Penting
Contoh CLI dalam artikel ini mengasumsikan bahwa Anda menggunakan shell Bash (atau kompatibel). Misalnya, dari sistem Linux atau Subsistem Windows untuk Linux.
Contohnya juga mengasumsikan bahwa Anda telah mengonfigurasi default untuk Azure CLI sehingga Anda tidak perlu menentukan parameter untuk langganan, ruang kerja, grup sumber daya, atau lokasi Anda. Untuk mengatur pengaturan default, gunakan perintah berikut. Ganti parameter berikut dengan nilai untuk konfigurasi Anda:
- Ganti
<subscription>
dengan ID langganan Azure Anda. - Ganti
<workspace>
dengan nama ruang kerja Azure Machine Learning Anda. - Ganti
<resource-group>
dengan grup sumber daya Azure yang berisi ruang kerja Anda. - Ganti
<location>
dengan wilayah Azure yang berisi ruang kerja Anda.
az account set --subscription <subscription> az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
Anda dapat melihat default saat ini dengan menggunakan perintah
az configure -l
.- Ganti
Klon contoh repositori
Contoh kode dalam artikel ini didasarkan pada nyc_taxi_data_regression
sampel dalam repositori contoh. Untuk menggunakan file-file ini di lingkungan pengembangan Anda, gunakan perintah berikut untuk mengkloning repositori dan mengubah direktori ke contoh:
git clone https://github.com/Azure/azureml-examples
cd azureml-examples
Untuk contoh CLI, ubah direktori menjadi cli/jobs/pipelines-with-components/nyc_taxi_data_regression
di klon lokal repositori contoh Anda.
cd cli/jobs/pipelines-with-components/nyc_taxi_data_regression
Membuat koneksi SDK
Tip
Langkah ini hanya diperlukan saat menggunakan Python SDK.
Buat koneksi klien ke ruang kerja dan registri Azure Pembelajaran Mesin. Dalam contoh berikut, ganti <...>
nilai tempat penampung dengan nilai yang sesuai untuk konfigurasi Anda. Misalnya, ID langganan Azure, nama ruang kerja, nama registri, dll.:
ml_client_workspace = MLClient( credential=credential,
subscription_id = "<workspace-subscription>",
resource_group_name = "<workspace-resource-group",
workspace_name = "<workspace-name>")
print(ml_client_workspace)
ml_client_registry = MLClient(credential=credential,
registry_name="<REGISTRY_NAME>",
registry_location="<REGISTRY_REGION>")
print(ml_client_registry)
Membuat data dalam registri
Aset data yang dibuat dalam langkah ini digunakan nanti dalam artikel ini saat mengirimkan pekerjaan pelatihan.
Tip
Perintah az ml data create
CLI yang sama dapat digunakan untuk membuat data di ruang kerja atau registri. Menjalankan perintah dengan --workspace-name
perintah membuat data di ruang kerja sedangkan menjalankan perintah dengan --registry-name
membuat data di registri.
Sumber data terletak di repositori contoh yang Anda kloning sebelumnya. Di bawah klon lokal, buka jalur direktori berikut: cli/jobs/pipelines-with-components/nyc_taxi_data_regression
. Dalam direktori ini, buat file YAML bernama data-registry.yml
dan gunakan YAML berikut sebagai konten file:
$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: transformed-nyc-taxt-data
description: Transformed NYC Taxi data created from local folder.
version: 1
type: uri_folder
path: data_transformed/
Nilai path
menunjuk ke data_transformed
subdirektori, yang berisi data yang dibagikan menggunakan registri.
Untuk membuat data di registri, gunakan az ml data create
. Dalam contoh berikut, ganti <registry-name>
dengan nama registri Anda.
az ml data create --file data-registry.yml --registry-name <registry-name>
Jika Anda mendapatkan kesalahan bahwa data dengan nama dan versi ini sudah ada di registri, Anda dapat mengedit version
bidang di data-registry.yml
atau menentukan versi yang berbeda pada CLI yang mengambil alih nilai versi di data-registry.yml
.
# use shell epoch time as the version
version=$(date +%s)
az ml data create --file data-registry.yml --registry-name <registry-name> --set version=$version
Tip
version=$(date +%s)
Jika perintah tidak mengatur $version
variabel di lingkungan Anda, ganti $version
dengan angka acak.
name
Simpan dan version
data dari output az ml data create
perintah dan gunakan dengan az ml data show
perintah untuk melihat detail aset.
az ml data show --name transformed-nyc-taxt-data --version 1 --registry-name <registry-name>
Tip
Jika Anda menggunakan nama atau versi data yang berbeda, ganti parameter dan --version
yang --name
sesuai.
Anda juga dapat menggunakan az ml data list --registry-name <registry-name>
untuk mencantumkan semua aset data di registri.
Membuat lingkungan dan komponen dalam registri
Untuk membuat lingkungan dan komponen dalam registri, gunakan langkah-langkah dalam artikel Cara berbagi model, komponen, dan lingkungan . Lingkungan dan komponen digunakan dalam pekerjaan pelatihan di bagian berikutnya.
Tip
Anda dapat menggunakan lingkungan dan komponen dari ruang kerja alih-alih menggunakan lingkungan dari registri.
Menjalankan pekerjaan alur di ruang kerja menggunakan komponen dari registri
Saat menjalankan pekerjaan alur yang menggunakan komponen dan data dari registri, sumber daya komputasi bersifat lokal ke ruang kerja. Dalam contoh berikut, pekerjaan menggunakan komponen pelatihan Scikit Learn dan aset data yang dibuat di bagian sebelumnya untuk melatih model.
Catatan
Aspek utamanya adalah bahwa alur ini akan berjalan di ruang kerja menggunakan data pelatihan yang tidak berada di ruang kerja tertentu. Data berada dalam registri yang dapat digunakan dengan ruang kerja apa pun di organisasi Anda. Anda dapat menjalankan pekerjaan pelatihan ini di ruang kerja mana pun yang dapat Anda akses tanpa khawatir membuat data pelatihan tersedia di ruang kerja tersebut.
Verifikasi bahwa Anda berada di cli/jobs/pipelines-with-components/nyc_taxi_data_regression
direktori. Edit bagian component
di bawah bagian train_job
single-job-pipeline.yml
file untuk merujuk ke komponen pelatihan dan path
di bawah training_data
bagian untuk merujuk ke aset data yang dibuat di bagian sebelumnya. Contoh berikut menunjukkan seperti apa single-job-pipeline.yml
tampilannya setelah pengeditan. <registry_name>
Ganti dengan nama untuk registri Anda:
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: nyc_taxi_data_regression_single_job
description: Single job pipeline to train regression model based on nyc taxi dataset
jobs:
train_job:
type: command
component: azureml://registries/<registry-name>/component/train_linear_regression_model/versions/1
compute: azureml:cpu-cluster
inputs:
training_data:
type: uri_folder
path: azureml://registries/<registry-name>/data/transformed-nyc-taxt-data/versions/1
outputs:
model_output:
type: mlflow_model
test_data:
Peringatan
- Sebelum menjalankan pekerjaan alur, konfirmasikan bahwa ruang kerja tempat Anda akan menjalankan pekerjaan berada di wilayah Azure yang didukung oleh registri tempat Anda membuat data.
- Konfirmasikan bahwa ruang kerja memiliki kluster komputasi dengan nama
cpu-cluster
atau editcompute
bidang di bawahjobs.train_job.compute
dengan nama komputasi Anda.
Jalankan pekerjaan alur dengan az ml job create
perintah .
az ml job create --file single-job-pipeline.yml
Tip
Jika Anda belum mengonfigurasi ruang kerja default dan grup sumber daya seperti yang dijelaskan di bagian prasyarat, Anda harus menentukan --workspace-name
parameter dan --resource-group
agar az ml job create
berfungsi.
Untuk informasi selengkapnya tentang menjalankan pekerjaan, lihat artikel berikut ini:
Berbagi data dari ruang kerja ke registri
Langkah-langkah berikut menunjukkan cara berbagi aset data yang ada dari ruang kerja ke registri.
Pertama, buat aset data di ruang kerja. Pastikan Anda berada di cli/assets/data
direktori. Yang local-folder.yml
terletak di direktori ini digunakan untuk membuat aset data di ruang kerja. Data yang ditentukan dalam file ini tersedia di cli/assets/data/sample-data
direktori. YAML berikut adalah konten local-folder.yml
file:
$schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
name: local-folder-example-titanic
description: Dataset created from local folder.
type: uri_folder
path: sample-data/
Untuk membuat aset data di ruang kerja, gunakan perintah berikut:
az ml data create -f local-folder.yml
Untuk informasi selengkapnya tentang membuat aset data di ruang kerja, lihat Cara membuat aset data.
Aset data yang dibuat di ruang kerja dapat dibagikan ke registri. Dari registri, registri dapat digunakan di beberapa ruang kerja. Perhatikan bahwa kita meneruskan --share_with_name
dan --share_with_version
parameter dalam fungsi berbagi. Parameter ini bersifat opsional dan jika Anda tidak meneruskan data ini akan dibagikan dengan nama dan versi yang sama seperti di ruang kerja.
Contoh berikut menunjukkan menggunakan perintah berbagi untuk berbagi aset data. Ganti <registry-name>
dengan nama registri tempat data akan dibagikan.
az ml data share --name local-folder-example-titanic --version <version-in-workspace> --share-with-name <name-in-registry> --share-with-version <version-in-registry> --registry-name <registry-name>