Bagikan melalui


Menyebarkan model MLflow dalam penyebaran batch di Azure Pembelajaran Mesin

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)

Artikel ini menjelaskan cara menyebarkan model MLflow ke Azure Pembelajaran Mesin untuk inferensi batch dengan menggunakan titik akhir batch. Saat Anda menyebarkan model MLflow ke titik akhir batch, Azure Pembelajaran Mesin menyelesaikan tugas berikut:

  • Menyediakan gambar dasar MLflow atau lingkungan yang dikumpulkan yang berisi dependensi yang diperlukan untuk menjalankan pekerjaan batch Pembelajaran Mesin.
  • Membuat alur pekerjaan batch dengan skrip penilaian untuk Anda yang dapat digunakan untuk memproses data dengan menggunakan paralelisasi.

Untuk informasi selengkapnya tentang jenis file input yang didukung dan detail tentang cara kerja model MLflow, lihat Pertimbangan untuk menyebarkan ke inferensi batch.

Prasyarat

  • Langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai. Coba versi gratis atau berbayar Azure Machine Learning.

  • Ruang kerja Azure Machine Learning. Untuk membuat ruang kerja, lihat Mengelola ruang kerja Azure Pembelajaran Mesin.

  • Pastikan Anda memiliki izin berikut di ruang kerja Pembelajaran Mesin:

    • Membuat atau mengelola titik akhir dan penyebaran batch: Gunakan peran Pemilik, Kontributor, atau Kustom yang memungkinkan Microsoft.MachineLearningServices/workspaces/batchEndpoints/*.
    • Membuat penyebaran Azure Resource Manager di grup sumber daya ruang kerja: Gunakan peran Pemilik, Kontributor, atau Kustom yang memungkinkan Microsoft.Resources/deployments/write dalam grup sumber daya tempat ruang kerja disebarkan.
  • Instal perangkat lunak berikut untuk bekerja dengan Pembelajaran Mesin:

    Jalankan perintah berikut untuk menginstal Azure CLI dan ml ekstensi untuk Azure Pembelajaran Mesin:

    az extension add -n ml
    

    Penyebaran komponen alur untuk Titik Akhir Batch diperkenalkan dalam versi 2.7 ml ekstensi untuk Azure CLI. az extension update --name ml Gunakan perintah untuk mendapatkan versi terbaru.


Menyambungkan ke ruang kerja Anda

Ruang kerja adalah sumber daya tingkat atas untuk Pembelajaran Mesin. Ini menyediakan tempat terpusat untuk bekerja dengan semua artefak yang Anda buat saat Anda menggunakan Pembelajaran Mesin. Di bagian ini, Anda menyambungkan ke ruang kerja tempat Anda melakukan tugas penyebaran.

Dalam perintah berikut, masukkan nilai untuk ID langganan, ruang kerja, lokasi, dan grup sumber daya Anda:

az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>

Jelajahi contoh

Contoh dalam artikel ini menunjukkan cara menyebarkan model MLflow ke titik akhir batch untuk melakukan prediksi batch. Model MLflow didasarkan pada Himpunan Data Penyakit Jantung UCI. Database berisi 76 atribut, tetapi contohnya hanya menggunakan subset 14. Model mencoba memprediksi adanya penyakit jantung pada pasien dengan nilai bilangan bulat dari 0 (tidak ada) hingga 1 (kehadiran).

Model ini dilatih dengan menggunakan pengklasifikasi XGBBoost . Semua pra-pemrosesan yang diperlukan dipaketkan sebagai scikit-learn alur, yang menjadikan model alur end-to-end yang beralih dari data mentah ke prediksi.

Contoh dalam artikel ini didasarkan pada sampel kode yang terkandung dalam repositori azureml-examples . Untuk menjalankan perintah secara lokal tanpa harus menyalin/menempelkan YAML dan file lainnya, pertama-tama kloning repositori lalu ubah direktori ke folder:

git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli

File untuk contoh ini terletak di folder berikut:

cd endpoints/batch/deploy-models/heart-classifier-mlflow

Ikuti di Jupyter Notebooks

Anda dapat mengikuti sampel ini dengan menggunakan Jupyter Notebook publik. Di repositori kloning, buka notebook mlflow-for-batch-tabular.ipynb .

Menyebarkan model MLflow

Di bagian ini, Anda menyebarkan model MLflow ke titik akhir batch sehingga Anda dapat menjalankan inferensi batch melalui data baru. Sebelum melanjutkan penyebaran, Anda perlu memastikan model Anda terdaftar dan ada kluster komputasi yang tersedia di ruang kerja.

Mendaftarkan model

Titik akhir batch hanya dapat menyebarkan model terdaftar. Dalam artikel ini, Anda menggunakan salinan lokal model di repositori. Akibatnya, Anda hanya perlu menerbitkan model ke registri di ruang kerja.

Catatan

Jika model yang Anda sebarkan sudah terdaftar, Anda dapat melanjutkan ke bagian Buat kluster komputasi .

Daftarkan model dengan menjalankan perintah berikut:

MODEL_NAME='heart-classifier-mlflow'
az ml model create --name $MODEL_NAME --type "mlflow_model" --path "model"

Membuat kluster komputasi

Anda perlu memastikan penyebaran batch dapat berjalan pada beberapa infrastruktur yang tersedia (komputasi). Penyebaran batch dapat berjalan pada komputasi Pembelajaran Mesin apa pun yang sudah ada di ruang kerja. Beberapa penyebaran batch dapat berbagi infrastruktur komputasi yang sama.

Dalam artikel ini, Anda mengerjakan kluster komputasi Pembelajaran Mesin bernama cpu-cluster. Contoh berikut memverifikasi komputasi ada di ruang kerja atau membuat komputasi baru.

Buat kluster komputasi:

az ml compute create -n batch-cluster --type amlcompute --min-instances 0 --max-instances 5

Buat titik akhir batch

Untuk membuat titik akhir, Anda memerlukan nama dan deskripsi. Nama titik akhir muncul di URI yang terkait dengan titik akhir Anda, sehingga harus unik dalam wilayah Azure. Misalnya, hanya ada satu titik akhir batch dengan nama mybatchendpoint di wilayah WestUS2.

  1. Tempatkan nama titik akhir dalam variabel untuk referensi mudah nanti:

    Jalankan perintah berikut:

    ENDPOINT_NAME="heart-classifier"
    
  2. Buat titik akhir:

    1. Untuk membuat titik akhir baru, buat YAML konfigurasi seperti kode berikut:

      endpoint.yml

      $schema: https://azuremlschemas.azureedge.net/latest/batchEndpoint.schema.json
      name: heart-classifier-batch
      description: A heart condition classifier for batch inference
      auth_mode: aad_token
      
    2. Buat titik akhir dengan perintah berikut:

      az ml batch-endpoint create -n $ENDPOINT_NAME -f endpoint.yml
      

Buat penyebaran batch

Model MLflow tidak mengharuskan Anda menunjukkan lingkungan atau skrip penilaian saat Anda membuat penyebaran. Lingkungan atau skrip penilaian dibuat untuk Anda secara otomatis. Namun, Anda dapat menentukan lingkungan atau skrip penilaian jika Anda ingin menyesuaikan bagaimana penyebaran melakukan inferensi.

  1. Untuk membuat penyebaran baru di bawah titik akhir yang dibuat, buat konfigurasi seperti yang YAML diperlihatkan dalam kode berikut. Anda dapat memeriksa skema YAML titik akhir batch lengkap untuk properti tambahan.

    deployment-simple/deployment.yml

    $schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
    endpoint_name: heart-classifier-batch
    name: classifier-xgboost-mlflow
    description: A heart condition classifier based on XGBoost
    type: model
    model: azureml:heart-classifier-mlflow@latest
    compute: azureml:batch-cluster
    resources:
      instance_count: 2
    settings:
      max_concurrency_per_instance: 2
      mini_batch_size: 2
      output_action: append_row
      output_file_name: predictions.csv
      retry_settings:
        max_retries: 3
        timeout: 300
      error_threshold: -1
      logging_level: info
    
  2. Buat penyebaran dengan perintah berikut:

    az ml batch-deployment create --file deployment-simple/deployment.yml --endpoint-name $ENDPOINT_NAME --set-default
    

Penting

Konfigurasikan timeout nilai dalam penyebaran Anda berdasarkan berapa lama waktu yang dibutuhkan model Anda untuk menjalankan inferensi pada satu batch. Semakin besar ukuran batch, semakin panjang nilainya timeout . Perlu diingat bahwa mini_batch_size nilai menunjukkan jumlah file dalam batch dan bukan jumlah sampel. Saat Anda bekerja dengan data tabular, setiap file dapat berisi beberapa baris, yang meningkatkan waktu yang diperlukan agar titik akhir batch memproses setiap file. Dalam kasus seperti itu, gunakan nilai tinggi timeout untuk menghindari kesalahan waktu habis.

Memanggil titik akhir

Meskipun Anda dapat memanggil penyebaran tertentu di dalam titik akhir, adalah umum untuk memanggil titik akhir itu sendiri dan membiarkan titik akhir memutuskan penyebaran mana yang akan digunakan. Jenis penyebaran ini diberi nama penyebaran "default". Pendekatan ini memungkinkan Anda mengubah penyebaran default, yang memungkinkan Anda mengubah model yang melayani penyebaran tanpa mengubah kontrak dengan pengguna yang memanggil titik akhir.

Gunakan instruksi berikut untuk memperbarui penyebaran default:

DEPLOYMENT_NAME="classifier-xgboost-mlflow"
az ml batch-endpoint update --name $ENDPOINT_NAME --set defaults.deployment_name=$DEPLOYMENT_NAME

Titik akhir batch sekarang siap digunakan.

Menguji penyebarannya

Untuk menguji titik akhir, Anda menggunakan sampel data tanpa label yang terletak di repositori ini yang dapat digunakan dengan model. Titik akhir batch hanya dapat memproses data yang terletak di cloud dan dapat diakses dari ruang kerja Pembelajaran Mesin. Dalam contoh ini, Anda mengunggah sampel ke penyimpanan data Pembelajaran Mesin. Anda membuat aset data yang dapat digunakan untuk memanggil titik akhir untuk penilaian. Perlu diingat bahwa titik akhir batch menerima data yang dapat ditempatkan di berbagai lokasi.

  1. Pertama, buat aset data. Aset data terdiri dari folder dengan beberapa file CSV yang ingin kita proses secara paralel menggunakan titik akhir batch. Anda dapat melewati langkah ini adalah data Anda sudah terdaftar sebagai aset data atau Anda ingin menggunakan jenis input yang berbeda.

    1. Buat definisi aset data di YAML:

      heart-dataset-unlabeled.yml

      $schema: https://azuremlschemas.azureedge.net/latest/data.schema.json
      name: heart-dataset-unlabeled
      description: An unlabeled dataset for heart classification.
      type: uri_folder
      path: data
      
    2. Buat aset data:

      az ml data create -f heart-dataset-unlabeled.yml
      
  2. Setelah Anda mengunggah data, panggil titik akhir.

    Tip

    Dalam perintah berikut, perhatikan bahwa nama penyebaran tidak ditunjukkan dalam invoke operasi. Titik akhir secara otomatis merutekan pekerjaan ke penyebaran default karena titik akhir hanya memiliki satu penyebaran. Anda dapat menargetkan penyebaran tertentu dengan menunjukkan argumen/parameter deployment_name.

    Jalankan perintah berikut:

    JOB_NAME = $(az ml batch-endpoint invoke --name $ENDPOINT_NAME --input azureml:heart-dataset-unlabeled@latest --query name -o tsv)
    

    Catatan

    Utilitas jq mungkin tidak diinstal pada setiap penginstalan. Untuk petunjuk penginstalan, lihat Mengunduh jq.

  3. Pekerjaan batch dimulai segera setelah perintah kembali. Anda dapat memantau status pekerjaan hingga selesai:

    Jalankan perintah berikut:

    az ml job show -n $JOB_NAME --web
    

Menganalisis output

Prediksi output dihasilkan dalam file predictions.csv , seperti yang ditunjukkan dalam konfigurasi penyebaran. Pekerjaan menghasilkan output bernama score, tempat file ini ditempatkan. Hanya satu file yang dihasilkan per pekerjaan batch.

File disusun sebagai berikut:

  • Satu baris per setiap titik data yang dikirim ke model. Untuk data tabular, file predictions.csv berisi satu baris untuk setiap baris yang ada di setiap file yang diproses. Untuk jenis data lainnya (gambar, audio, teks), ada satu baris per setiap file yang diproses.

  • Kolom berikut berada dalam file (dalam urutan yang ditentukan):

    • row (opsional): Indeks baris yang sesuai dalam file data input. Kolom ini hanya berlaku jika data input bersifat tabular. Prediksi dikembalikan dalam urutan yang sama dengan yang muncul dalam file input. Anda dapat mengandalkan nomor baris agar sesuai dengan prediksi yang sesuai.

    • prediction: Prediksi yang terkait dengan data input. Nilai ini dikembalikan "apa adanya", seperti yang disediakan oleh fungsi model predict(). .

    • file_name: Nama nama file tempat data dibaca. Dalam data tabular, gunakan bidang ini untuk menentukan prediksi mana yang termasuk dalam setiap data input.

Anda dapat mengunduh hasil pekerjaan dengan menggunakan nama pekerjaan.

Untuk mengunduh prediksi, gunakan perintah berikut:

az ml job download --name $JOB_NAME --output-name score --download-path ./

Setelah mengunduh file, Anda dapat membuka file dengan alat pengeditan pilihan Anda. Contoh berikut memuat prediksi dengan menggunakan dataframe Pandas .

import pandas as pd

score = pd.read_csv(
    "named-outputs/score/predictions.csv", names=["row", "prediction", "file"]
)

Output menampilkan tabel:

Baris Prediksi File
0 0 heart-unlabeled-0.csv
1 1 heart-unlabeled-0.csv
2 0 heart-unlabeled-0.csv
... ... ...
307 0 heart-unlabeled-3.csv

Tip

Perhatikan bahwa dalam contoh ini, data input berisi data tabular dalam format CSV. Ada empat file input yang berbeda: heart-unlabeled-0.csv, heart-unlabeled-1.csv, heart-unlabeled-2.csv, dan heart-unlabeled-3.csv.

Tinjau pertimbangan untuk inferensi batch

Pembelajaran Mesin mendukung penyebaran model MLflow ke titik akhir batch tanpa menunjukkan skrip penilaian. Pendekatan ini adalah cara mudah untuk menyebarkan model yang memerlukan pemrosesan data dalam jumlah besar yang mirip dengan pemrosesan batch. Pembelajaran Mesin menggunakan informasi dalam spesifikasi model MLflow untuk mengatur proses inferensi.

Menjelajahi distribusi pekerjaan pada pekerja

Titik Akhir Batch mendistribusikan pekerjaan di tingkat file, untuk data terstruktur dan tidak terstruktur. Sebagai konsekuensinya, hanya file URI dan folder URI yang didukung untuk fitur ini. Setiap pekerja memproses batch file Mini batch size pada satu waktu. Untuk data tabular, titik akhir batch tidak memperhitungkan jumlah baris di dalam setiap file saat mendistribusikan pekerjaan.

Peringatan

Struktur folder berlapis tidak dijelajahi selama inferensi. Jika Anda mempartisi data dengan menggunakan folder, pastikan untuk meratakan struktur sebelum melanjutkan.

Penyebaran batch memanggil predict fungsi model MLflow sekali per file. Untuk file CSV dengan beberapa baris, tindakan ini dapat memaksakan tekanan memori dalam komputasi yang mendasar. Perilaku dapat meningkatkan waktu yang diperlukan model untuk menilai satu file, terutama untuk model mahal seperti model bahasa besar. Jika Anda menemukan beberapa pengecualian di luar memori atau entri waktu habis dalam log, pertimbangkan untuk membagi data dalam file yang lebih kecil dengan lebih sedikit baris, atau menerapkan batching pada tingkat baris di dalam skrip penilaian model.

Meninjau dukungan untuk jenis file

Jenis data berikut didukung untuk inferensi batch saat menyebarkan model MLflow tanpa lingkungan atau skrip penilaian. Untuk memproses jenis file yang berbeda, atau menjalankan inferensi secara berbeda, Anda dapat membuat penyebaran dengan menyesuaikan penyebaran model MLflow dengan skrip penilaian.

Ekstensi {i>file Jenis dikembalikan sebagai input model Persyaratan tanda tangan
.csv, , .parquet.pqt pd.DataFrame ColSpec. Jika tidak disediakan, pengetikan kolom tidak diberlakukan.
.png, , .jpg.jpeg, .tiff, , .bmp,.gif np.ndarray TensorSpec. Input dibentuk ulang agar sesuai dengan bentuk tensor, jika tersedia. Jika tidak ada tanda tangan yang tersedia, tensor jenis np.uint8 disimpulkan. Untuk informasi selengkapnya, lihat Pertimbangan untuk model MLflow yang memproses gambar.

Peringatan

Setiap file yang tidak didukung yang mungkin ada dalam data input menyebabkan pekerjaan gagal. Dalam kasus seperti itu, Anda melihat kesalahan yang mirip dengan ERROR:azureml:Error processing input file: '/mnt/batch/tasks/.../a-given-file.avro'. Tipe file 'avro' tidak didukung.

Memahami penegakan tanda tangan untuk model MLflow

Pekerjaan penyebaran batch memberlakukan jenis data input saat membaca data dengan menggunakan tanda tangan model MLflow yang tersedia. Akibatnya, input data Anda mematuhi jenis yang ditunjukkan dalam tanda tangan model. Jika data tidak dapat diurai seperti yang diharapkan, pekerjaan gagal dengan kesalahan yang mirip dengan error:azureml:Error processing input file: '/mnt/batch/tasks/.../a-given-file.csv'. Pengecualian: literal tidak valid untuk int() dengan basis 10: 'value'.

Tip

Tanda tangan dalam model MLflow bersifat opsional, tetapi sangat dianjurkan. Mereka menyediakan cara mudah untuk deteksi dini masalah kompatibilitas data. Untuk informasi selengkapnya tentang cara mencatat model dengan tanda tangan, lihat Model pengelogan dengan tanda tangan, lingkungan, atau sampel kustom.

Anda dapat memeriksa tanda tangan model model Anda dengan membuka file yang MLmodel terkait dengan model MLflow Anda. Untuk informasi selengkapnya tentang cara kerja tanda tangan di MLflow, lihat Tanda Tangan di MLflow.

Periksa dukungan rasa

Penyebaran batch mendukung penyebaran model MLflow hanya dengan pyfunc rasa. Untuk menyebarkan rasa yang berbeda, lihat Menyesuaikan penyebaran model dengan skrip penilaian.

Menyesuaikan penyebaran model dengan skrip penilaian

Model MLflow dapat disebarkan ke titik akhir batch tanpa menunjukkan skrip penilaian dalam definisi penyebaran. Namun, Anda dapat memilih untuk menunjukkan file ini (biasanya disebut sebagai driver batch) untuk menyesuaikan eksekusi inferensi.

Anda biasanya memilih alur kerja ini untuk skenario berikut:

  • Jenis file proses tidak didukung oleh penyebaran batch penyebaran MLflow.
  • Sesuaikan cara model berjalan, seperti menggunakan rasa tertentu untuk memuatnya dengan mlflow.<flavor>.load() fungsi .
  • Selesaikan pra-atau pasca-pemrosesan dalam rutinitas penilaian Anda, ketika tidak diselesaikan oleh model itu sendiri.
  • Sesuaikan presentasi model yang tidak disajikan dengan baik dengan data tabular, seperti grafik tensor yang mewakili gambar.
  • Izinkan model membaca data dalam gugus karena tidak dapat memproses setiap file sekaligus karena kendala memori.

Penting

Untuk menunjukkan skrip penilaian untuk penyebaran model MLflow, Anda perlu menentukan lingkungan tempat penyebaran berjalan.

Menggunakan skrip penilaian

Gunakan langkah-langkah berikut untuk menyebarkan model MLflow dengan skrip penilaian kustom:

  1. Identifikasi folder tempat model MLflow Anda ditempatkan.

    1. Di portal Azure Pembelajaran Mesin, telusuri ke Model.

    2. Pilih model yang akan disebarkan, lalu pilih tab Artefak .

    3. Catat folder yang ditampilkan. Folder ini ditunjukkan ketika model terdaftar.

      Cuplikan layar yang memperlihatkan folder tempat artefak model ditempatkan.

  2. Buat skrip penilaian. Perhatikan bagaimana nama model folder sebelumnya disertakan init() dalam fungsi .

    deployment-custom/code/batch_driver.py

    # Copyright (c) Microsoft. All rights reserved.
    # Licensed under the MIT license.
    
    import os
    import glob
    import mlflow
    import pandas as pd
    import logging
    
    
    def init():
        global model
        global model_input_types
        global model_output_names
    
        # AZUREML_MODEL_DIR is an environment variable created during deployment
        # It is the path to the model folder
        # Please provide your model's folder name if there's one
        model_path = glob.glob(os.environ["AZUREML_MODEL_DIR"] + "/*/")[0]
    
        # Load the model, it's input types and output names
        model = mlflow.pyfunc.load(model_path)
        if model.metadata and model.metadata.signature:
            if model.metadata.signature.inputs:
                model_input_types = dict(
                    zip(
                        model.metadata.signature.inputs.input_names(),
                        model.metadata.signature.inputs.pandas_types(),
                    )
                )
            if model.metadata.signature.outputs:
                if model.metadata.signature.outputs.has_input_names():
                    model_output_names = model.metadata.signature.outputs.input_names()
                elif len(model.metadata.signature.outputs.input_names()) == 1:
                    model_output_names = ["prediction"]
        else:
            logging.warning(
                "Model doesn't contain a signature. Input data types won't be enforced."
            )
    
    
    def run(mini_batch):
        print(f"run method start: {__file__}, run({len(mini_batch)} files)")
    
        data = pd.concat(
            map(
                lambda fp: pd.read_csv(fp).assign(filename=os.path.basename(fp)), mini_batch
            )
        )
    
        if model_input_types:
            data = data.astype(model_input_types)
    
        # Predict over the input data, minus the column filename which is not part of the model.
        pred = model.predict(data.drop("filename", axis=1))
    
        if pred is not pd.DataFrame:
            if not model_output_names:
                model_output_names = ["pred_col" + str(i) for i in range(pred.shape[1])]
            pred = pd.DataFrame(pred, columns=model_output_names)
    
        return pd.concat([data, pred], axis=1)
    
  3. Buat lingkungan tempat skrip penilaian dapat dijalankan. Karena model dalam contoh ini adalah MLflow, persyaratan conda juga ditentukan dalam paket model. Untuk informasi selengkapnya tentang model MLflow dan file yang disertakan, lihat Format MLmodel.

    Dalam langkah ini, Anda membangun lingkungan dengan menggunakan dependensi conda dari file. Anda juga perlu menyertakan azureml-core paket, yang diperlukan untuk Penyebaran Batch.

    Tip

    Jika model Anda sudah terdaftar di registri model, Anda dapat mengunduh dan menyalin file yang conda.yml terkait dengan model Anda. File tersedia di studio Azure Pembelajaran Mesin di bawah Model>Pilih model Anda dari daftar>Artefak. Di folder akar, pilih conda.yml file, lalu pilih Unduh atau salin kontennya.

    Penting

    Contoh ini menggunakan lingkungan conda yang ditentukan di /heart-classifier-mlflow/environment/conda.yaml. File ini dibuat dengan menggabungkan file dependensi conda MLflow asli dan menambahkan azureml-core paket. Anda tidak dapat menggunakan conda.yml file langsung dari model.

    Definisi lingkungan disertakan dalam definisi penyebaran itu sendiri sebagai lingkungan anonim. Anda melihat baris berikut dalam penyebaran:

    environment:
      name: batch-mlflow-xgboost
      image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
      conda_file: environment/conda.yaml
    
  4. Konfigurasikan penyebaran:

    Untuk membuat penyebaran baru di bawah titik akhir yang dibuat, buat konfigurasi seperti yang YAML ditunjukkan dalam cuplikan kode berikut. Anda dapat memeriksa skema YAML titik akhir batch lengkap untuk properti tambahan.

    deployment-custom/deployment.yml

    $schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
    endpoint_name: heart-classifier-batch
    name: classifier-xgboost-custom
    description: A heart condition classifier based on XGBoost
    type: model
    model: azureml:heart-classifier-mlflow@latest
    environment:
      name: batch-mlflow-xgboost
      image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
      conda_file: environment/conda.yaml
    code_configuration:
      code: code
      scoring_script: batch_driver.py
    compute: azureml:batch-cluster
    resources:
      instance_count: 2
    settings:
      max_concurrency_per_instance: 2
      mini_batch_size: 2
      output_action: append_row
      output_file_name: predictions.csv
      retry_settings:
        max_retries: 3
        timeout: 300
      error_threshold: -1
      logging_level: info
    
  5. Buat penyebaran:

    Jalankan kode berikut:

    az ml batch-deployment create --file deployment-custom/deployment.yml --endpoint-name $ENDPOINT_NAME
    

Titik akhir batch sekarang siap digunakan.

Membersihkan sumber daya

Setelah Anda menyelesaikan latihan, hapus sumber daya yang tidak lagi diperlukan.

Jalankan kode berikut untuk menghapus titik akhir batch dan semua penyebaran yang mendasarinya:

az ml batch-endpoint delete --name $ENDPOINT_NAME --yes

Perintah ini tidak menghapus pekerjaan penilaian batch.