Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln distribuerar du den finjusterade Aurora-vädermodellen som en beständig HTTP-slutpunkt med hjälp av Ray Serve på Azure Kubernetes Service (AKS). Den här metoden använder en RayService resurs för långvarig drift och omfattas inte av Kueues antagningskontroll.
Important
Programvara med öppen källkod nämns i hela AKS-dokumentationen och exemplen. Programvaran som du distribuerar är undantagen från AKS-servicenivåavtal, begränsad garanti och Azure-support. När du använder open-source-teknik tillsammans med AKS, konsultera de supportalternativ som finns tillgängliga från respektive gemenskaper och projektunderhållare för att utveckla en plan.
Microsoft tar ansvar för att skapa de paket med öppen källkod som vi distribuerar på AKS. Det ansvaret omfattar att ha fullständigt ägarskap för bygg-, genomsöknings-, signerings-, validerings- och snabbkorrigeringsprocessen, tillsammans med kontroll över binärfilerna i containeravbildningar. Mer information finns i Sårbarhetshantering för AKS - och AKS-stödtäckning.
Prerequisites
- Infrastruktur som distribueras efter Distribuera infrastruktur för Ray och Kueue på AKS.
- Namnrymd och servicekonto skapades enligt Konfigurera Kueue-köer för Ray-arbetsbelastningar i AKS.
- Finjusteringen av Aurora har slutförts efter Finjustera Aurora-vädermodellen med Ray på AKS – LoRA-checkpunkten måste finnas på
aurora/checkpoints/<run-id>/last.safetensorsi Blob Storage. -
envsubstinstallerat (gettextpaket på Linux,brew install gettextpå macOS).
Ange miljövariabler
Gå till exemplet med onlineservern i den klonade lagringsplatsen och konfigurera de miljövariabler som krävs:
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
Anmärkning
AURORA_RUN_ID är JOB_NAME från din slutförda Aurora-finjusteringskörning. Du hittar den med:
az storage blob list -c aurora --prefix checkpoints/ \
--account-name ${AZURE_STORAGE_ACCOUNT_NAME} --auth-mode login -o table
Distribuera tjänsten
Driftsätt RayService:
./submit-service.sh
Skriptet skapar en ConfigMap från programkoden som betjänar, renderar RayService-manifestet via envsubstoch tillämpar det. KubeRay-operatorn skapar Ray-klustret och distribuerar Serve-programmet.
Tip
Kör ./submit-service.sh --dry-run för att verifiera det renderade manifestet utan att tillämpa det på klustret.
Anmärkning
RayService omfattas inte av antagningskontroll i Kueue. Produktionsarbetsbelastningar är långvariga och kräver dedikerade resurser snarare än semantik för batchköer.
Verifiera driftsättningen
Vänta tills RayService rapporterar statusen Running:
kubectl -n ray get rayservice ${SERVICE_NAME} -w
Förväntat resultat:
NAME SERVICE STATUS NUM SERVE ENDPOINTS
aurora-serve Running 1
Testa slutpunkten
Vidarebefordra tjänsttjänsten och skicka testbegäranden:
kubectl -n ray port-forward svc/${SERVICE_NAME}-serve-svc 8000:8000
Hälsokontroll:
curl http://localhost:8000${ROUTE_PREFIX}
Förväntat resultat:
{"status":"ok","gpu_name":"NVIDIA A100-SXM4-80GB","run_id":"<your-run-id>","adapter":"checkpoints/<your-run-id>/last.safetensors"}
Prognosförfrågan:
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}'
Förväntat resultat:
{
"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",
...
}
Svaret innehåller sammanfattningsstatistik per variabel (form, medelvärde, min, max) för varje ytvariabel i prognosen.
Konfigurationsreferens
| Variabel | Standardinställning | Description |
|---|---|---|
AZURE_STORAGE_ACCOUNT_NAME |
(krävs) | Lagringskonto från modul 1 |
AURORA_RUN_ID |
(krävs) | JOB_NAME från en slutförd aurora-finetune-körning |
AURORA_INPUT_CONTAINER |
aurora |
Container med initieringsdata |
AURORA_ADAPTER_CONTAINER |
aurora |
Container med LoRA-kontrollpunkten |
AURORA_INIT_FILE |
init-2021-01-01-00z.npz |
Standardinit-fil för begäranden |
AURORA_LEAD_HOURS |
6 |
Standardtid för prognostiserad ledtid (måste vara en 6h-multipel) |
AURORA_LORA_RANK |
8 |
LoRA-rangordning (måste matcha träning) |
AURORA_REQUIRE_GPU_NAME |
A100 |
GPU-namnkontroll (tom att hoppa över) |
SERVICE_NAME |
aurora-serve |
Namn på RayService-resursen |
ROUTE_PREFIX |
/aurora |
HTTP-ruttprefix för serve-slutpunkten |
CONFIGMAP_NAME |
aurora-serve-scripts |
Namn på ConfigMap som innehåller serverskriptet |
Rensa resurser
Ta bort RayService och dess ConfigMap:
kubectl -n ray delete rayservice ${SERVICE_NAME}
kubectl -n ray delete configmap ${CONFIGMAP_NAME}