Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel implementeert u het nauwkeurig afgestemde Aurora-weermodel als een permanent HTTP-eindpunt met behulp van Ray Serve op Azure Kubernetes Service (AKS). Deze methode maakt gebruik van een RayService-resource voor langdurige bediening en wordt niet door Kueue beheerd.
Belangrijk
Opensource-software wordt vermeld in AKS-documentatie en -voorbeelden. Software die u implementeert, is uitgesloten van AKS-serviceovereenkomsten, beperkte garantie en Azure-ondersteuning. Wanneer u opensource-technologie naast AKS gebruikt, raadpleegt u de beschikbare ondersteuningsopties van de respectieve community's en projectonderhouders om een plan te ontwikkelen.
Microsoft neemt de verantwoordelijkheid voor het bouwen van de opensource-pakketten die we implementeren op AKS. Deze verantwoordelijkheid omvat het volledige eigendom van het bouw-, scan-, onderteken-, validatie- en hotfixproces, samen met controle over de binaire bestanden in container images. Zie Beveiligingsbeheer voor AKS - en AKS-ondersteuningsdekking voor meer informatie.
Vereisten
- Infrastructuur geïmplementeerd volgens Infrastructuur voor Ray en Kueue implementeren op AKS.
- Namespace en serviceaccount zijn gemaakt volgens de Kueue-wachtrijen voor Ray-workloads op AKS configureren.
- Aurora fine-tunen voltooid na het volgen van Het Aurora-weermodel fine-tunen met Ray op AKS - het LoRA-checkpoint moet aanwezig zijn op
aurora/checkpoints/<run-id>/last.safetensorsin blobopslag. -
envsubstgeïnstalleerd (gettextpakket in Linux,brew install gettextin macOS).
Omgevingsvariabelen instellen
Navigeer naar het voorbeeld van de onlineservice in de gekloonde opslagplaats en configureer de vereiste omgevingsvariabelen:
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
Notitie
AURORA_RUN_ID is de JOB_NAME van uw voltooide Aurora fine-tuning. U vindt deze met:
az storage blob list -c aurora --prefix checkpoints/ \
--account-name ${AZURE_STORAGE_ACCOUNT_NAME} --auth-mode login -o table
De service implementeren
De RayService implementeren:
./submit-service.sh
Met het script wordt een ConfigMap gemaakt op basis van de toepassingscode van de server, wordt het RayService-manifest weergegeven via envsubsten wordt het toegepast. De KubeRay-operator maakt het Ray-cluster en implementeert de Serve-toepassing.
Tip
Voer ./submit-service.sh --dry-run uit om het gerenderde manifest te valideren zonder dit toe te passen op het cluster.
Notitie
RayService valt niet onder de toelatingscontrole van Kueue. Het leveren van workloads duurt lang en heeft toegewezen resources nodig in plaats van semantiek voor batchwachtrijen.
De implementatie controleren
Wacht tot de RayService de status Running meldt:
kubectl -n ray get rayservice ${SERVICE_NAME} -w
Verwachte uitvoer:
NAME SERVICE STATUS NUM SERVE ENDPOINTS
aurora-serve Running 1
Het eindpunt testen
Stel poortdoorsturing in voor de service 'serve' en verzend testverzoeken:
kubectl -n ray port-forward svc/${SERVICE_NAME}-serve-svc 8000:8000
Statuscontrole:
curl http://localhost:8000${ROUTE_PREFIX}
Verwachte uitvoer:
{"status":"ok","gpu_name":"NVIDIA A100-SXM4-80GB","run_id":"<your-run-id>","adapter":"checkpoints/<your-run-id>/last.safetensors"}
Prognoseaanvraag:
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}'
Verwachte uitvoer:
{
"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",
...
}
Het antwoord bevat samenvattingsstatistieken per variabele (shape, gemiddelde, min, max) voor elke oppervlaktevariabele in de prognose.
Configuratiegids
| Variabele | Default | Description |
|---|---|---|
AZURE_STORAGE_ACCOUNT_NAME |
(vereist) | Opslagaccount van module 1 |
AURORA_RUN_ID |
(vereist) | JOB_NAME van een voltooide aurora-finetune-run |
AURORA_INPUT_CONTAINER |
aurora |
Container met init-gegevens |
AURORA_ADAPTER_CONTAINER |
aurora |
Container met het LoRA-controlepunt |
AURORA_INIT_FILE |
init-2021-01-01-00z.npz |
Standaard init-bestand voor aanvragen |
AURORA_LEAD_HOURS |
6 |
Standaard prognose-voorlooptijd (moet een veelvoud van 6 uur zijn) |
AURORA_LORA_RANK |
8 |
LoRA-rank (moet overeenkomen met de training) |
AURORA_REQUIRE_GPU_NAME |
A100 |
Controle van GPU-naam (leeg laten om over te slaan) |
SERVICE_NAME |
aurora-serve |
Naam voor de RayService-resource |
ROUTE_PREFIX |
/aurora |
HTTP-routevoorvoegsel voor het service-eindpunt |
CONFIGMAP_NAME |
aurora-serve-scripts |
Naam voor de ConfigMap met het serverscript |
De hulpbronnen opschonen
Verwijder de RayService en de bijbehorende ConfigMap:
kubectl -n ray delete rayservice ${SERVICE_NAME}
kubectl -n ray delete configmap ${CONFIGMAP_NAME}