Membuat profil model untuk menentukan penggunaan sumber daya
BERLAKU UNTUK:Ekstensi ml Azure CLI v1Python SDK azureml v1
Artikel ini menunjukkan cara membuat profil pembelajaran mesin sebagai model untuk menentukan banyaknya CPU dan memori yang perlu dialokasikan untuk model saat menyebarkannya sebagai layanan web.
Penting
Artikel ini berlaku untuk CLI v1 dan SDK v1. Teknik pembuatan profil ini tidak tersedia untuk v2, baik CLI atau SDK.
Penting
Beberapa perintah CLI Azure dalam artikel ini menggunakan ekstensi azure-cli-ml
, atau v1, untuk Azure Machine Learning. Dukungan untuk ekstensi v1 akan berakhir pada 30 September 2025. Anda dapat memasang dan menggunakan ekstensi v1 hingga tanggal tersebut.
Kami menyarankan agar Anda beralih ke ekstensi ml
, atau v2 sebelum 30 September 2025. Untuk informasi selengkapnya mengenai ekstensi v2, lihat Ekstensi Azure ML CLI dan Python SDK v2.
Prasyarat
Artikel ini mengasumsikan bahwa Anda telah melatih dan mendaftarkan model di Azure Machine Learning. Lihat contoh tutorial di sini untuk contoh pelatihan dan mendaftarkan model scikit-learn di Azure Machine Learning.
Batasan
- Pembuatan profil tidak akan berfungsi jika Azure Container Registry (ACR) untuk ruang kerja Anda berada di belakang jaringan virtual.
Jalankan pembuat profil
Setelah Anda mendaftarkan model Anda dan menyiapkan komponen lain yang diperlukan untuk penyebarannya, Anda dapat menentukan CPU dan memori yang dibutuhkan layanan yang disebarkan. Pembuatan profil akan menguji layanan yang menjalankan model Anda dan menampilkan informasi seperti penggunaan CPU, penggunaan memori, dan latensi respons. Ini juga memberikan rekomendasi untuk CPU dan memori berdasarkan penggunaan sumber daya.
Untuk membuat profil model, Anda memerlukan:
- Model terdaftar.
- Konfigurasi inferensi berdasarkan skrip entri dan definisi lingkungan inferensi Anda.
- Himpunan data tabular kolom tunggal, tempat setiap baris berisi string yang mewakili contoh data permintaan.
Penting
Pada titik ini kami hanya mendukung pembuatan profil layanan yang mengharapkan data permintaan menjadi string, misalnya: json berseri string, teks, gambar berseri string, dll. Isi setiap baris himpunan data (string) akan dimasukkan ke dalam isi permintaan dan dikirim ke layanan yang merangkum model untuk penilaian.
Penting
Kami hanya mendukung pembuatan profil hingga 2 CPU di wilayah ChinaEast2 dan USGovArizona.
Berikut adalah contoh cara membuat himpunan data input untuk membuat profil layanan yang mengharapkan data permintaan masuk agar berisi json berseri. Dalam hal ini, kami membuat 100 instans berbasis himpunan data konten data permintaan yang sama. Dalam skenario dunia nyata, sebaiknya Anda menggunakan himpunan data yang lebih besar yang berisi berbagai input, terutama jika penggunaan/perilaku sumber daya model Anda bergantung pada input.
BERLAKU UNTUK: Python SDK azureml v1
import json
from azureml.core import Datastore
from azureml.core.dataset import Dataset
from azureml.data import dataset_type_definitions
input_json = {'data': [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]]}
# create a string that can be utf-8 encoded and
# put in the body of the request
serialized_input_json = json.dumps(input_json)
dataset_content = []
for i in range(100):
dataset_content.append(serialized_input_json)
dataset_content = '\n'.join(dataset_content)
file_name = 'sample_request_data.txt'
f = open(file_name, 'w')
f.write(dataset_content)
f.close()
# upload the txt file created above to the Datastore and create a dataset from it
data_store = Datastore.get_default(ws)
data_store.upload_files(['./' + file_name], target_path='sample_request_data')
datastore_path = [(data_store, 'sample_request_data' +'/' + file_name)]
sample_request_data = Dataset.Tabular.from_delimited_files(
datastore_path, separator='\n',
infer_column_types=True,
header=dataset_type_definitions.PromoteHeadersBehavior.NO_HEADERS)
sample_request_data = sample_request_data.register(workspace=ws,
name='sample_request_data',
create_new_version=True)
Setelah Anda memiliki himpunan data yang berisi contoh data permintaan yang siap, buat konfigurasi inferensi. Konfigurasi inferensi didasarkan pada score.py dan definisi lingkungan. Contoh berikut menunjukkan cara membuat konfigurasi inferensi dan menjalankan pembuatan profil:
from azureml.core.model import InferenceConfig, Model
from azureml.core.dataset import Dataset
model = Model(ws, id=model_id)
inference_config = InferenceConfig(entry_script='path-to-score.py',
environment=myenv)
input_dataset = Dataset.get_by_name(workspace=ws, name='sample_request_data')
profile = Model.profile(ws,
'unique_name',
[model],
inference_config,
input_dataset=input_dataset)
profile.wait_for_completion(True)
# see the result
details = profile.get_details()
BERLAKU UNTUK: Ekstensi ml Azure CLI v1
Perintah berikut ini menunjukkan cara membuat profil model menggunakan CLI:
az ml model profile -g <resource-group-name> -w <workspace-name> --inference-config-file <path-to-inf-config.json> -m <model-id> --idi <input-dataset-id> -n <unique-name>
Tip
Untuk tetap mendapatkan informasi yang ditampilkan melalui pembuatan profil, gunakan tag atau properti untuk model tersebut. Menggunakan tag atau properti akan menyimpan data dengan model dalam registri model. Contoh berikut menunjukkan penambahkan tag baru yang berisi informasi requestedCpu
dan requestedMemoryInGb
:
model.add_tags({'requestedCpu': details['requestedCpu'],
'requestedMemoryInGb': details['requestedMemoryInGb']})
az ml model profile -g <resource-group-name> -w <workspace-name> --i <model-id> --add-tag requestedCpu=1 --add-tag requestedMemoryInGb=0.5
Langkah berikutnya
- Memecahkan masalah penyebaran yang gagal
- Menyebarkan ke Azure Kubernetes Service
- Membuat aplikasi klien untuk menggunakan layanan web
- Memperbarui layanan web
- Cara menyebarkan model menggunakan gambar Docker kustom
- Menggunakan TLS untuk mengamankan layanan web melalui Azure Machine Learning
- Memantau model Azure Machine Learning Anda dengan Application Insights
- Mengumpulkan data untuk model dalam produksi
- Membuat pemberitahuan dan pemicu peristiwa untuk penyebaran model