Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Seri tutorial ini menunjukkan bagaimana fitur mengintegrasikan semua fase siklus hidup pembelajaran mesin dengan lancar: prototipe, pelatihan, dan operasionalisasi.
Tutorial pertama menunjukkan cara membuat spesifikasi set fitur dengan transformasi kustom. Kemudian menunjukkan cara menggunakan set fitur tersebut untuk menghasilkan data pelatihan, mengaktifkan materialisasi, dan melakukan isi ulang. Tutorial kedua menunjukkan cara mengaktifkan materialisasi dan melakukan isi ulang. Ini juga menunjukkan cara bereksperimen dengan fitur, sebagai cara untuk meningkatkan performa model.
Tutorial ini menjelaskan cara:
- Aktifkan materialisasi berulang untuk
transactionsset fitur. - Jalankan alur inferensi batch pada model terdaftar.
Prasyarat
Sebelum Anda melanjutkan tutorial ini, pastikan untuk menyelesaikan tutorial pertama dan kedua dalam seri.
Penyiapan
Konfigurasikan notebook Azure Pembelajaran Mesin Spark.
Untuk menjalankan tutorial ini, Anda dapat membuat buku catatan baru dan menjalankan instruksi, langkah demi langkah. Anda juga bisa membuka dan menjalankan buku catatan yang sudah ada bernama 3. Aktifkan materialisasi berulang dan jalankan inferensi batch. Anda bisa menemukan buku catatan tersebut, dan semua buku catatan dalam seri ini, di direktori featurestore_sample/notebooks . Anda dapat memilih sdk_only atau sdk_and_cli. Tetap buka tutorial ini dan lihat tautan dokumentasi dan penjelasan lainnya.
Di daftar dropdown Komputasi di navigasi atas, pilih Komputasi Spark Tanpa Server di bawah Azure Pembelajaran Mesin Spark Tanpa Server.
Konfigurasikan sesi:
- Pilih Konfigurasikan sesi di bilah status atas.
- Pilih tab paket Python.
- Pilih Unggah file conda.
-
azureml-examples/sdk/python/featurestore-sample/project/env/online.ymlPilih file dari komputer lokal Anda. - Secara opsional, tingkatkan waktu habis sesi (waktu diam) untuk menghindari pengulangan prasyarat yang sering.
Mulai sesi Spark.
# run this cell to start the spark session (any code block will start the session ). This can take around 10 mins. print("start spark session")Siapkan direktori akar untuk sampel.
import os # please update the dir to ./Users/<your_user_alias> (or any custom directory you uploaded the samples to). # You can find the name from the directory structure in the left nav root_dir = "./Users/<your_user_alias>/featurestore_sample" if os.path.isdir(root_dir): print("The folder exists.") else: print("The folder does not exist. Please create or fix the path")Menyiapkan CLI.
Tidak berlaku.
Menginisialisasi klien CRUD ruang kerja proyek (buat, baca, perbarui, dan hapus).
Buku catatan tutorial berjalan dari ruang kerja saat ini.
### Initialize the MLClient of this project workspace import os from azure.ai.ml import MLClient from azure.ai.ml.identity import AzureMLOnBehalfOfCredential project_ws_sub_id = os.environ["AZUREML_ARM_SUBSCRIPTION"] project_ws_rg = os.environ["AZUREML_ARM_RESOURCEGROUP"] project_ws_name = os.environ["AZUREML_ARM_WORKSPACE_NAME"] # connect to the project workspace ws_client = MLClient( AzureMLOnBehalfOfCredential(), project_ws_sub_id, project_ws_rg, project_ws_name )Menginisialisasi variabel penyimpanan fitur.
Untuk mencerminkan apa yang Anda buat dalam tutorial pertama, pastikan untuk memperbarui
featurestore_namenilai.from azure.ai.ml import MLClient from azure.ai.ml.identity import AzureMLOnBehalfOfCredential # feature store featurestore_name = ( "<FEATURESTORE_NAME>" # use the same name from part #1 of the tutorial ) featurestore_subscription_id = os.environ["AZUREML_ARM_SUBSCRIPTION"] featurestore_resource_group_name = os.environ["AZUREML_ARM_RESOURCEGROUP"] # feature store ml client fs_client = MLClient( AzureMLOnBehalfOfCredential(), featurestore_subscription_id, featurestore_resource_group_name, featurestore_name, )Menginisialisasi klien SDK penyimpanan fitur.
# feature store client from azureml.featurestore import FeatureStoreClient from azure.ai.ml.identity import AzureMLOnBehalfOfCredential featurestore = FeatureStoreClient( credential=AzureMLOnBehalfOfCredential(), subscription_id=featurestore_subscription_id, resource_group_name=featurestore_resource_group_name, name=featurestore_name, )
Aktifkan materialisasi berulang pada set fitur transaksi
Dalam tutorial kedua, Anda mengaktifkan materialisasi dan melakukan isi ulang pada transactions set fitur. Isi ulang adalah operasi satu kali sesuai permintaan yang menghitung dan menempatkan nilai fitur di penyimpanan materialisasi.
Untuk menangani inferensi model dalam produksi, Anda mungkin ingin menyiapkan pekerjaan materialisasi berulang untuk menjaga penyimpanan materialisasi tetap terbaru. Pekerjaan ini berjalan pada jadwal yang ditentukan pengguna. Jadwal pekerjaan berulang berfungsi dengan cara ini:
Nilai interval dan frekuensi menentukan jendela. Misalnya, nilai berikut menentukan jendela tiga jam:
interval=3frequency=Hour
Jendela pertama dimulai pada nilai yang
start_timeditentukan dalamRecurrenceTrigger, dan sebagainya.Pekerjaan berulang pertama dikirimkan pada awal jendela berikutnya setelah waktu pembaruan.
Pekerjaan berulang nanti dikirimkan di setiap jendela setelah pekerjaan pertama.
Seperti yang dijelaskan dalam tutorial sebelumnya, setelah data terwujud (isi ulang atau materialisasi berulang), pengambilan fitur menggunakan data materialisasi secara default.
from datetime import datetime
from azure.ai.ml.entities import RecurrenceTrigger
transactions_fset_config = fs_client.feature_sets.get(name="transactions", version="1")
# create a schedule that runs the materialization job every 3 hours
transactions_fset_config.materialization_settings.schedule = RecurrenceTrigger(
interval=3, frequency="Hour", start_time=datetime(2023, 4, 15, 0, 4, 10, 0)
)
fs_poller = fs_client.feature_sets.begin_create_or_update(transactions_fset_config)
print(fs_poller.result())(Opsional) Simpan file YAML untuk aset set fitur
Anda menggunakan pengaturan yang diperbarui untuk menyimpan file YAML.
## uncomment and run
# transactions_fset_config.dump(root_dir + "/featurestore/featuresets/transactions/featureset_asset_offline_enabled_with_schedule.yaml")Menjalankan alur inferensi batch
Inferensi batch memiliki langkah-langkah berikut:
Anda menggunakan komponen pengambilan fitur bawaan yang sama untuk pengambilan fitur yang Anda gunakan dalam alur pelatihan (tercakup dalam tutorial ketiga). Untuk pelatihan alur, Anda menyediakan spesifikasi pengambilan fitur sebagai input komponen. Untuk inferensi batch, Anda meneruskan model terdaftar sebagai input. Komponen mencari spesifikasi pengambilan fitur dalam artefak model.
Selain itu, untuk pelatihan, data pengamatan memiliki variabel target. Namun, data pengamatan inferensi batch tidak memiliki variabel target. Langkah pengambilan fitur menggabungkan data pengamatan dengan fitur dan menghasilkan data untuk inferensi batch.
Alur menggunakan data input inferensi batch dari langkah sebelumnya, menjalankan inferensi pada model, dan menambahkan nilai yang diprediksi sebagai output.
Catatan
Anda menggunakan pekerjaan untuk inferensi batch dalam contoh ini. Anda juga dapat menggunakan titik akhir batch di Azure Pembelajaran Mesin.
from azure.ai.ml import load_job # will be used later # set the batch inference pipeline path batch_inference_pipeline_path = ( root_dir + "/project/fraud_model/pipelines/batch_inference_pipeline.yaml" ) batch_inference_pipeline_definition = load_job(source=batch_inference_pipeline_path) # run the training pipeline batch_inference_pipeline_job = ws_client.jobs.create_or_update( batch_inference_pipeline_definition ) # stream the run logs ws_client.jobs.stream(batch_inference_pipeline_job.name)
Memeriksa data output untuk inferensi batch
Dalam tampilan alur:
Pilih
inference_stepdioutputskartu.DataSalin nilai bidang. Ini terlihat sepertiazureml_995abbc2-3171-461e-8214-c3c5d17ede83_output_data_data_with_prediction:1.Tempelkan
Datanilai bidang di sel berikut, dengan nama dan nilai versi terpisah. Karakter terakhir adalah versi, didahului oleh titik dua (:).predict_is_fraudPerhatikan kolom yang dihasilkan alur inferensi batch.Dalam output alur inferensi batch (/project/fraud_mode/pipelines/batch_inference_pipeline.yaml), sistem membuat aset data yang tidak terlacak dengan GUID sebagai nilai nama dan
1sebagai nilai versi. Ini terjadi karena Anda tidak menyediakannameatauversionnilai untukoutputsinference_step. Dalam sel ini, Anda memperoleh lalu menampilkan jalur data dari aset.inf_data_output = ws_client.data.get( name="azureml_1c106662-aa5e-4354-b5f9-57c1b0fdb3a7_output_data_data_with_prediction", version="1", ) inf_output_df = spark.read.parquet(inf_data_output.path + "data/*.parquet") display(inf_output_df.head(5))
Penghapusan
Tutorial kelima dalam seri menjelaskan cara menghapus sumber daya.
Langkah berikutnya
- Pelajari tentang konsep penyimpanan fitur dan entitas tingkat atas di toko fitur terkelola.
- Pelajari tentang identitas dan kontrol akses untuk toko fitur terkelola.
- Lihat panduan pemecahan masalah untuk toko fitur terkelola.
- Lihat referensi YAML.