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 menyebarkan model cuaca Aurora yang disempurnakan sebagai titik akhir HTTP persisten dengan menggunakan Ray Serve pada Azure Kubernetes Service (AKS). Metode ini menggunakan sumber daya RayService untuk layanan jangka panjang dan tidak melalui kontrol admisi oleh Kueue.
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.
- Namespace dan akun layanan dibuat dengan mengikuti Mengonfigurasi antrean Kueue untuk beban kerja Ray di AKS.
- Penyempurnaan Aurora selesai setelah Menyempurnakan model cuaca Aurora dengan Ray di AKS - titik pemeriksaan LoRA harus ada di
aurora/checkpoints/<run-id>/last.safetensorspenyimpanan blob. -
envsubstdiinstal (gettextpaket di Linux,brew install gettextdi macOS).
Mengatur variabel lingkungan
Navigasikan ke contoh penyajian online di repositori kloning dan konfigurasikan variabel lingkungan yang diperlukan:
cd <path-to-cloned-repo>/AKS/examples/kueue-and-ray-on-aks/3-workloads/online-serving
export AZURE_STORAGE_ACCOUNT_NAME=$(terraform -chdir=../../1-infrastructure/terraform output -raw storage_account_name)
export AURORA_RUN_ID=<your-aurora-finetune-job-name>
source env.example
Catatan
AURORA_RUN_ID adalah JOB_NAME dari proses fine-tune Aurora yang telah Anda selesaikan. Anda dapat menemukannya dengan:
az storage blob list -c aurora --prefix checkpoints/ \
--account-name ${AZURE_STORAGE_ACCOUNT_NAME} --auth-mode login -o table
Menyebarkan layanan
Sebarkan RayService:
./submit-service.sh
Skrip tersebut membuat ConfigMap dari kode aplikasi serving, merender manifes RayService melalui envsubst, dan menerapkannya. Operator KubeRay membuat kluster Ray dan menyebarkan aplikasi Serve.
Tip
Jalankan ./submit-service.sh --dry-run untuk memvalidasi manifes yang dirender tanpa menerapkannya ke kluster.
Catatan
RayService tidak dikendalikan oleh Kueue. Beban kerja penyajian berumur panjang dan membutuhkan sumber daya khusus daripada semantik antrean batch.
Verifikasi proses penyebaran
Perhatikan hingga RayService melaporkan status Running:
kubectl -n ray get rayservice ${SERVICE_NAME} -w
Output yang diharapkan:
NAME SERVICE STATUS NUM SERVE ENDPOINTS
aurora-serve Running 1
Menguji titik akhir
Lakukan penerusan port untuk layanan serve dan kirim permintaan uji:
kubectl -n ray port-forward svc/${SERVICE_NAME}-serve-svc 8000:8000
Pemeriksaan kesehatan:
curl http://localhost:8000${ROUTE_PREFIX}
Output yang diharapkan:
{"status":"ok","gpu_name":"NVIDIA A100-SXM4-80GB","run_id":"<your-run-id>","adapter":"checkpoints/<your-run-id>/last.safetensors"}
Permintaan prakiraan:
curl -X POST http://localhost:8000${ROUTE_PREFIX} \
-H 'Content-Type: application/json' \
-d '{"init_file": "init-2021-01-01-00z.npz", "lead_hours": 6}'
Output yang diharapkan:
{
"init_file": "init-2021-01-01-00z.npz",
"lead_hours": 6,
"surface_variables": {
"2t": {"shape": [1,1,52,100], "mean": 298.76, "min": 272.0, "max": 302.0},
"10u": {"shape": [1,1,52,100], "mean": -2.21, "min": -18.0, "max": 15.38},
"10v": {"shape": [1,1,52,100], "mean": 0.92, "min": -13.88,"max": 18.88},
"msl": {"shape": [1,1,52,100], "mean": 101320.07, "min": 100352.0, "max": 101888.0}
},
"gpu_name": "NVIDIA A100-SXM4-80GB",
...
}
Respons mencakup statistik ringkasan per variabel (bentuk, rata-rata, min, maks) untuk setiap variabel permukaan dalam prakiraan.
Referensi konfigurasi
| Variabel | Default | Description |
|---|---|---|
AZURE_STORAGE_ACCOUNT_NAME |
(diperlukan) | Akun penyimpanan dari Modul 1 |
AURORA_RUN_ID |
(diperlukan) | JOB_NAME dari proses aurora-finetune yang telah selesai |
AURORA_INPUT_CONTAINER |
aurora |
Kontainer dengan data init |
AURORA_ADAPTER_CONTAINER |
aurora |
Kontainer dengan titik pemeriksaan LoRA |
AURORA_INIT_FILE |
init-2021-01-01-00z.npz |
File init default untuk permintaan |
AURORA_LEAD_HOURS |
6 |
Waktu prospek prakiraan default (harus kelipatan 6 jam) |
AURORA_LORA_RANK |
8 |
Rank LoRA (harus sesuai dengan pelatihan) |
AURORA_REQUIRE_GPU_NAME |
A100 |
Pemeriksaan nama GPU (kosong untuk dilewati) |
SERVICE_NAME |
aurora-serve |
Nama untuk sumber daya RayService |
ROUTE_PREFIX |
/aurora |
Awalan rute HTTP untuk titik akhir layanan |
CONFIGMAP_NAME |
aurora-serve-scripts |
Nama untuk ConfigMap yang menyimpan skrip penyajian |
Membersihkan sumber daya
Hapus RayService dan ConfigMap-nya:
kubectl -n ray delete rayservice ${SERVICE_NAME}
kubectl -n ray delete configmap ${CONFIGMAP_NAME}