Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel stellen Sie das fein abgestimmte Aurora-Wettermodell als beständigen HTTP-Endpunkt mithilfe von Ray Serve auf Azure Kubernetes Service (AKS) bereit. Diese Methode verwendet eine RayService-Ressource für langlebiges Serving und unterliegt keiner Zulassungskontrolle durch Kueue.
Wichtig
Open-Source-Software wird überall in AKS-Dokumenten und -Beispielen erwähnt. Software, die Sie bereitstellen, ist von AKS-Vereinbarungen zum Servicelevel, der eingeschränkten Garantie und dem Azure-Support ausgeschlossen. Wenn Sie Open-Source-Technologie zusammen mit AKS nutzen, nutzen Sie die Supportoptionen, die von den jeweiligen Communitys und Projektbetreuenden angeboten werden, um einen Plan zu entwickeln.
Microsoft übernimmt die Verantwortung für die Erstellung der Open-Source-Pakete, die wir auf AKS bereitstellen. Diese Verantwortung beinhaltet die vollständige Übernahme des Build-, Scan-, Signier-, Validierungs- und Hotfix-Prozesses sowie die Kontrolle über die Binärdateien in Container-Images. Weitere Informationen finden Sie unter Sicherheitsrisikomanagement für AKS und AKS-Supportabdeckung.
Voraussetzungen
- Infrastruktur, die gemäß Infrastruktur für Ray und Kueue auf AKS bereitstellen bereitgestellt wurde.
- Namespace- und Dienstkonto, das nach gemäß Konfiguration von Kueue-Warteschlangen für Ray-Workloads auf AKS erstellt wurde.
- Feinabstimmung von Aurora gemäß Feinabstimmung des Aurora-Wettermodells mit Ray auf AKS abgeschlossen - der LoRA-Prüfpunkt muss bei
aurora/checkpoints/<run-id>/last.safetensorsim Blob Storage vorhanden sein. -
envsubstinstalliert (gettextPaket unter Linux,brew install gettextunter macOS).
Festlegen von Umgebungsvariablen
Navigieren Sie zum Online-Bereitstellungsbeispiel im geklonten Repository, und konfigurieren Sie die erforderlichen Umgebungsvariablen:
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
Hinweis
AURORA_RUN_ID ist der JOB_NAME aus Ihrem abgeschlossenen Aurora-Feinabstimmungslauf. Sie finden es unter:
az storage blob list -c aurora --prefix checkpoints/ \
--account-name ${AZURE_STORAGE_ACCOUNT_NAME} --auth-mode login -o table
Bereitstellen des Diensts
Bereitstellen des RayService:
./submit-service.sh
Das Skript erstellt eine ConfigMap aus dem bereitgestellten Anwendungscode, rendert das RayService-Manifest über envsubstund wendet es an. Der KubeRay-Operator erstellt den Ray-Cluster und stellt die Serve-Anwendung bereit.
Tip
Führen Sie die Ausführung aus ./submit-service.sh --dry-run , um das gerenderte Manifest zu überprüfen, ohne es auf den Cluster anzuwenden.
Hinweis
RayService wird hinsichtlich der Zulassung nicht von Kueue kontrolliert. Serving-Workloads sind zeitintensiv und erfordern dedizierte Ressourcen statt der Semantik von Batch-Warteschlangen.
Überprüfen Sie die Bereitstellung
Warten Sie, bis der RayService den Status „Running“ meldet:
kubectl -n ray get rayservice ${SERVICE_NAME} -w
Erwartete Ausgabe:
NAME SERVICE STATUS NUM SERVE ENDPOINTS
aurora-serve Running 1
Testen des Endpunkts
Port-Weiterleitung des Serve-Diensts und Senden von Testanforderungen:
kubectl -n ray port-forward svc/${SERVICE_NAME}-serve-svc 8000:8000
Integritätsprüfung:
curl http://localhost:8000${ROUTE_PREFIX}
Erwartete Ausgabe:
{"status":"ok","gpu_name":"NVIDIA A100-SXM4-80GB","run_id":"<your-run-id>","adapter":"checkpoints/<your-run-id>/last.safetensors"}
Prognoseanforderung:
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}'
Erwartete Ausgabe:
{
"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",
...
}
Die Antwort enthält für jede Oberflächenvariable der Vorhersage zusammenfassende Statistiken je Variable (Form, Mittelwert, Minimum, Maximum).
Konfigurationsreferenz
| Variable | Vorgabe | Description |
|---|---|---|
AZURE_STORAGE_ACCOUNT_NAME |
(erforderlich) | Speicherkonto aus Modul 1 |
AURORA_RUN_ID |
(erforderlich) | JOB_NAME aus einem abgeschlossenen Aurora-Abstimmungslauf |
AURORA_INPUT_CONTAINER |
aurora |
Container mit Init-Daten |
AURORA_ADAPTER_CONTAINER |
aurora |
Container mit dem LoRA-Prüfpunkt |
AURORA_INIT_FILE |
init-2021-01-01-00z.npz |
Standard-Initialisierungsdatei für Anfragen |
AURORA_LEAD_HOURS |
6 |
Standardwert für die Prognosevorlaufzeit (muss ein Vielfaches von 6 Stunden sein) |
AURORA_LORA_RANK |
8 |
LoRA-Rang (muss mit dem beim Training verwendeten Wert übereinstimmen) |
AURORA_REQUIRE_GPU_NAME |
A100 |
Überprüfung des GPU-Namens (leer lassen, um zu überspringen) |
SERVICE_NAME |
aurora-serve |
Name für die RayService-Ressource |
ROUTE_PREFIX |
/aurora |
HTTP-Routenpräfix für den Serve-Endpunkt |
CONFIGMAP_NAME |
aurora-serve-scripts |
Name der ConfigMap, die das Serving-Skript enthält |
Bereinigen von Ressourcen
Löschen Sie den RayService und dessen ConfigMap:
kubectl -n ray delete rayservice ${SERVICE_NAME}
kubectl -n ray delete configmap ${CONFIGMAP_NAME}