Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto článku odešlete úlohu RayJob, která pomocí LLaMA-Factory a distribuovaného Ray Train jemně doladí model Qwen2.5-7B-Instruct na datové sadě viggo NLG. Úloha používá čtyři pracovní procesy, z nichž každý má jedno GPU, čte trénovací data z Azure Blob Storage a nahrává natrénovaný adaptér LoRA pro následnou inferenci.
Important
Opensourcový software je zmíněn v dokumentaci a ukázkách AKS. Software, které nasadíte, je vyloučeno z dohod o úrovni služeb AKS, omezené záruky a podpory Azure. Při používání open-source technologií spolu s AKS konzultujte dostupné možnosti podpory od příslušných komunit a správců projektů, abyste vytvořili plán.
Microsoft přebírá odpovědnost za vytváření balíčků s otevřeným zdrojovým kódem, které nasazujeme na AKS. Tato odpovědnost zahrnuje plnou správu procesu sestavení, skenování, podepisování, validace a hotfixů, spolu s kontrolou nad binárními soubory v kontejnerových obrazech. Další informace najdete v tématu Řízení zranitelností pro AKS a Podpora pro AKS a rozsah pokrytí.
Prerequisites
- Infrastruktura nasazená po nasazení infrastruktury pro Ray a Kueue v AKS
- Fronty Kueue nakonfigurované podle Konfigurace front Kueue pro úlohy Ray v AKS.
- V clusteru musí být k dispozici alespoň čtyři GPU A100 (v tomto příkladu se používají čtyři workery, každý s jedním GPU).
- Datová sada Viggo byla nahrána do úložiště objektů blob v umístění
llm-pipeline/data/(automaticky modulem Terraform pro infrastrukturu). -
envsubstnainstalováno (gettextbalíček v Linuxu,brew install gettextv macOS).
Nastavení proměnných prostředí
Přejděte do příkladu trénování LLM v naklonovaném úložišti a nakonfigurujte požadované proměnné prostředí:
cd <path-to-cloned-repo>/AKS/examples/kueue-and-ray-on-aks/3-workloads/llm-training
export AZURE_STORAGE_ACCOUNT_NAME=$(terraform -chdir=../../1-infrastructure/terraform output -raw storage_account_name)
source env.example
Note
Pokud jste nakonfigurovali týmové fronty (možnost B), nastavte export QUEUE_NAME=team-a nebo export QUEUE_NAME=team-b před spuštěním source env.example. Výchozí QUEUE_NAME=default funguje pouze s jednofrontovou konfigurací (možnost A).
Odeslání úlohy
Odešlete distribuovanou trénovací úlohu RayJob:
./submit.sh
Skript vytvoří objekt ConfigMap z trénovacího skriptu, vykreslí šablonu manifestu se čtyřmi pracovními procesy GPU prostřednictvím envsubsta použije ji. Kueue připouští úlohu, když jsou v nakonfigurované frontě k dispozici čtyři GPU.
Tip
Spusťte ./submit.sh --dry-run, chcete-li ověřit vykreslený manifest bez jeho použití v clusteru.
Monitorování postupu
Pokud jste v novém prostředí, vyhledejte a exportujte název úlohy:
export JOB_NAME=$(kubectl -n ray get rayjob --no-headers -o custom-columns=":metadata.name" | grep llm-training)
Podívejte se na stav RayJob a přijetí Kueue:
kubectl -n ray get rayjob ${JOB_NAME} -w
kubectl -n ray get workload -w
Očekávaný výstup po dokončení úlohy:
NAME JOB STATUS DEPLOYMENT STATUS START TIME END TIME AGE
llm-training-xxxxxxxxxx SUCCEEDED Complete 2026-01-01T00:00:00Z 2026-01-01T00:19:00Z 19m
NAME QUEUE RESERVED IN ADMITTED FINISHED AGE
rayjob-llm-training-xxxxxxxxxx-xxxxx default cluster-queue True True 19m
Sledujte logy hlavního podu:
kubectl -n ray logs -f -l ray.io/cluster=$(kubectl -n ray get rayjob ${JOB_NAME} -o jsonpath='{.status.rayClusterName}') -c ray-head
Ověření výsledků
Zkontrolujte nahraný adaptér LoRA:
az storage blob list -c llm-pipeline --prefix lora/ \
--account-name ${AZURE_STORAGE_ACCOUNT_NAME} --auth-mode login -o table
Očekávaný výstup:
Name Blob Type Blob Tier Length Content Type
----------------------------------------- ----------- ----------- -------- ------------------------
lora/latest.txt BlockBlob Hot 86 application/octet-stream
lora/<job-name>/rng_state_3.pth BlockBlob Hot 14725 application/octet-stream
Ověřte, že byl zapsán ukazatel latest.txt (používá ho například dávkové vyhodnocování pro automatické zjišťování):
az storage blob download -c llm-pipeline -n lora/latest.txt \
--account-name ${AZURE_STORAGE_ACCOUNT_NAME} --auth-mode login
Očekávaný výstup:
azure://llm-pipeline@<storage-account>.blob.core.windows.net/lora/<job-name>
Referenční informace ke konfiguraci
| Proměnné | Výchozí | Description |
|---|---|---|
AZURE_STORAGE_ACCOUNT_NAME |
(povinné) | Účet úložiště z modulu 1 |
NUM_WORKERS |
4 |
Repliky GPU workerů (4x, každá s 1 GPU) |
QUEUE_NAME |
default |
Název Kueue LocalQueue |
LLM_DATA_CONTAINER |
llm-pipeline |
Kontejner objektů blob pro vstupní data |
LLM_LORA_CONTAINER |
llm-pipeline |
Kontejner objektů blob pro nahrání modelu LoRA |
CONFIGMAP_NAME |
llm-training-scripts |
Název objektu ConfigMap s trénovacím skriptem |
Vyčistěte zdroje
Odstraňte RayJob a jeho objekt ConfigMap:
kubectl -n ray delete rayjob ${JOB_NAME}
kubectl -n ray delete configmap ${CONFIGMAP_NAME}