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.
Dalam artikel ini, Anda mengajukan RayJob yang menjalankan inferensi batch offline vLLM menggunakan adaptor LoRA yang dihasilkan oleh contoh pelatihan LLM. Tugas tersebut membaca split data uji Viggo dan adaptor LoRA dari Azure Blob Storage, menghasilkan prediksi menggunakan satu GPU, dan mengunggah hasilnya.
Penting
Perangkat lunak sumber terbuka disebutkan di seluruh dokumentasi dan sampel AKS. Perangkat lunak yang Anda sebarkan dikecualikan dari perjanjian tingkat layanan AKS, garansi terbatas, dan dukungan Azure. Saat Anda menggunakan teknologi sumber terbuka bersama AKS, konsultasikan opsi dukungan yang tersedia dari masing-masing komunitas dan pengelola proyek untuk mengembangkan rencana.
Microsoft bertanggung jawab untuk membangun paket sumber terbuka yang kami sebarkan di AKS. Tanggung jawab itu termasuk memiliki kepemilikan lengkap atas proses build, pemindaian, penandatanganan, validasi, dan perbaikan cepat, bersama dengan kontrol atas file biner dalam gambar kontainer. Untuk informasi selengkapnya, lihat Manajemen kerentanan untuk AKS dan Cakupan dukungan AKS.
Prasyarat
- Infrastruktur yang disebarkan setelah Menyebarkan infrastruktur untuk Ray dan Kueue di AKS.
- Antrean Kueue dikonfigurasi sesuai dengan Mengonfigurasi antrean Kueue untuk beban kerja Ray di AKS.
- Setidaknya satu GPU A100 tersedia di kluster.
- Pelatihan LLM selesai setelah mengikuti Melatih LLM dengan Ray di AKS — adapter LoRA harus ada di penyimpanan blob pada
llm-pipeline/lora/. -
envsubstdiinstal (gettextpaket di Linux,brew install gettextdi macOS).
Mengatur variabel lingkungan
Navigasikan ke contoh inferensi batch di repositori kloning dan konfigurasikan variabel lingkungan yang diperlukan:
cd <path-to-cloned-repo>/AKS/examples/kueue-and-ray-on-aks/3-workloads/batch-inference
export AZURE_STORAGE_ACCOUNT_NAME=$(terraform -chdir=../../1-infrastructure/terraform output -raw storage_account_name)
source env.example
Catatan
Jika Anda mengonfigurasi antrean tim (Opsi B), atur export QUEUE_NAME=team-a atau export QUEUE_NAME=team-b sebelum menjalankan source env.example. Default QUEUE_NAME=default hanya berfungsi dengan konfigurasi antrean tunggal (Opsi A).
Kirim beban kerja
Kirimkan inferensi batch RayJob:
./submit.sh
Skrip membuat ConfigMap dari skrip inferensi, merender templat manifes menggunakan envsubst, lalu menerapkannya. Kueue mengakui pekerjaan ketika 1 GPU tersedia dalam antrean yang dikonfigurasi.
Tip
Jalankan ./submit.sh --dry-run untuk memvalidasi manifes yang dirender tanpa menerapkannya ke kluster.
Memantau kemajuan
Temukan dan ekspor nama pekerjaan jika Anda berada di shell baru:
export JOB_NAME=$(kubectl -n ray get rayjob --no-headers -o custom-columns=":metadata.name" | grep batch-inference)
Pantau status RayJob dan status penerimaan Kueue:
kubectl -n ray get rayjob ${JOB_NAME} -w
kubectl -n ray get workload -w
Output yang diharapkan ketika pekerjaan selesai:
NAME JOB STATUS DEPLOYMENT STATUS START TIME END TIME AGE
batch-inference-xxxxxxxxxx SUCCEEDED Complete 2026-01-01T00:00:00Z 2026-01-01T00:09:00Z 9m
NAME QUEUE RESERVED IN ADMITTED FINISHED AGE
rayjob-batch-inference-xxxxxxxxxx-xxxxx default cluster-queue True True 9m
Pantau log pekerja:
kubectl -n ray logs -l ray.io/cluster=$(kubectl -n ray get rayjob ${JOB_NAME} -o jsonpath='{.status.rayClusterName}') -f --tail=100
Memverifikasi hasil
Mencantumkan file prediksi dalam penyimpanan blob:
az storage blob list -c llm-pipeline --prefix "inference/${JOB_NAME}/" \
--account-name ${AZURE_STORAGE_ACCOUNT_NAME} --auth-mode login -o table
Output yang diharapkan:
Name Blob Type Blob Tier Length Content Type
--------------------------------------------------- ----------- ----------- -------- ------------------------
inference/<job-name>/metrics.json BlockBlob Hot 128 application/octet-stream
inference/<job-name>/predictions.jsonl BlockBlob Hot 411777 application/octet-stream
Unduh dan periksa prediksi:
az storage blob download -c llm-pipeline \
-n "inference/${JOB_NAME}/predictions.jsonl" \
--account-name ${AZURE_STORAGE_ACCOUNT_NAME} --auth-mode login \
--file /tmp/predictions.jsonl
head -1 /tmp/predictions.jsonl | python3 -m json.tool
Output yang diharapkan:
{
"input": "I'm wondering, have you played any games you found genuinely shocking?",
"expected": "request(specifier[shocking])",
"generated": "request_explanation"
}
Referensi konfigurasi
| Variabel | Default | Description |
|---|---|---|
AZURE_STORAGE_ACCOUNT_NAME |
(diperlukan) | Akun penyimpanan dari Modul 1 |
JOB_NAME |
batch-inference-<timestamp> |
Nama RayJob unik |
QUEUE_NAME |
default |
Nama Antrean Lokal Kueue |
LLM_DATA_CONTAINER |
llm-pipeline |
Kontainer blob dengan data pengujian viggo |
LLM_LORA_CONTAINER |
llm-pipeline |
Wadah blob dengan adaptor LoRA |
CONFIGMAP_NAME |
batch-inference-scripts |
Nama untuk ConfigMap yang menyimpan skrip inferensi |
Membersihkan sumber daya
Hapus RayJob dan ConfigMap-nya:
kubectl -n ray delete rayjob ${JOB_NAME}
kubectl -n ray delete configmap ${CONFIGMAP_NAME}
Untuk meruntuhkan semua infrastruktur, lihat Menyebarkan infrastruktur — Membersihkan sumber daya.