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.
- Membuat atau mengelola titik akhir dan penyebaran batch: Gunakan peran Pemilik, Kontributor, atau Kustom yang memungkinkan
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.
Tempatkan nama titik akhir dalam variabel untuk referensi mudah nanti:
Buat titik akhir:
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
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.
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
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.
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.
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
Buat aset data:
az ml data create -f heart-dataset-unlabeled.yml
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/parameterdeployment_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.Pekerjaan batch dimulai segera setelah perintah kembali. Anda dapat memantau status pekerjaan hingga selesai:
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 modelpredict().
.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:
Identifikasi folder tempat model MLflow Anda ditempatkan.
Di portal Azure Pembelajaran Mesin, telusuri ke Model.
Pilih model yang akan disebarkan, lalu pilih tab Artefak .
Catat folder yang ditampilkan. Folder ini ditunjukkan ketika model terdaftar.
Buat skrip penilaian. Perhatikan bagaimana nama
model
folder sebelumnya disertakaninit()
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)
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, pilihconda.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 menambahkanazureml-core
paket. Anda tidak dapat menggunakanconda.yml
file langsung dari model.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
Buat penyebaran:
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.