Přehled spouštění úloh Ray AI pomocí Kueue ve službě Azure Kubernetes Service (AKS)

V tomto článku se dozvíte, jak spouštět distribuované úlohy AI na Azure Kubernetes Service (AKS) pomocí Raye pro výpočetní modul runtime a Kueue pro řízení přístupu. Toto řešení pokrývá celý životní cyklus od zřizování infrastruktury prostřednictvím trénování, dávkového odvozování a online obsluhy.

Důležité

Opensourcový software je zmíněn v dokumentaci a ukázkách AKS. Software, který nasadíte, je vyloučený ze smluv o úrovni služeb AKS, omezené záruky a podpora Azure. Při používání opensourcových technologií společně s AKS se obraťte na možnosti podpory, které jsou k dispozici v příslušných komunitách a správci projektů, a vytvořte plán.

Microsoft zodpovídá za vytváření opensourcových balíčků, které nasazujeme v AKS. Tato odpovědnost zahrnuje úplné vlastnictví procesu sestavení, skenování, podepisování, ověřování a hotfixů spolu s kontrolou nad binárními soubory v kontejnerových imagích. Další informace najdete v tématu Správa ohrožení zabezpečení pro AKS a Pokrytí podpory pro AKS.

Co je Ray?

Ray je opensourcová architektura pro škálování AI a Python aplikací. Poskytuje jednotný modul runtime pro distribuované trénování, ladění hyperparametrů, dávkové odvozování a obsluhu modelů, takže můžete škálovat úlohy napříč několika uzly bez přepisování aplikační logiky.

Ray zjednodušuje distribuované výpočty tím, že zpracovává plánování, odolnost proti chybám a správu prostředků. Tato architektura podporuje knihovny strojového učení, jako jsou PyTorch, TensorFlow a Hugging Face prostřednictvím integrací, jako jsou Ray Train, Ray Data a Ray Serve. Další informace najdete v úložišti Ray GitHub.

Co je KubeRay?

KubeRay je operátor Kubernetes, který spravuje životní cyklus clusterů Ray. Poskytuje vlastní zdroje – RayJob pro dávkové úlohy a RayService pro trvalé koncové body pro obsluhu – které automatizují vytváření, škálování a rušení clusterů. Další informace najdete v úložišti KubeRay GitHub.

Co je Kueue?

Kueue je nativní řadič fronty úloh pro Kubernetes, který řídí přijímání úloh na základě kvót prostředků. Místo toho, aby každá odeslaná úloha okamžitě spotřebovávala prostředky, Kueue podmiňuje přijetí definovanými kvótami – úlohy, které se do nich vejdou, se spustí, a ty, které ne, čekají ve frontě. Podrobný přehled konceptů a konfigurace Kueue najdete v přehledu Kueue v AKS.

Architektura řešení

Toto řešení kombinuje Kueue pro řízení přístupu s KubeRay pro správu životního cyklu clusteru Ray v AKS. Terraform zřídí infrastrukturu, Helm nainstaluje operátory z Microsoft Container Registry (MCR) a identita úloh poskytuje zabezpečený přístup k Azure Blob Storage bez uložených přihlašovacích údajů.

Proces nasazení se skládá ze tří modulů:

  • Infrastruktura – Terraform zřídí cluster AKS s fondy uzlů GPU, nainstaluje operátory KubeRay a Kueue prostřednictvím Nástroje Helm, vytvoří Azure Blob Storage a nakonfiguruje identitu úloh.
  • Fronty Kueue – manifesty Kubernetes definují ResourceFlavors (typy uzlů CPU a GPU), ClusterQueues (kvóty a zásady přístupu) a LocalQueues (body odeslání v oboru názvů).
  • Úlohy — manifesty RayJob a RayService odesílají úlohy AI, které Kueue přijímá podle dostupné kvóty.

Zátěže Ray začínají na suspend: true. Kueue vyhodnocuje dostupnost kvót a obnoví přijaté úlohy, poté KubeRay vytvoří cluster Ray a spustí úlohu.

Příklady úloh

Example Typ GPUs Description
Vyladění modelu počasí Aurora RayJob 1×A100 Doladění základního meteorologického modelu Microsoft Aurora metodou LoRA
Trénovat LLM RayJob 4×A100 Distribuované jemné doladění Qwen2.5-7B pomocí LoRA v LLaMA-Factory
Spuštění dávkového odvození RayJob 1×A100 Offline odvození vLLM s natrénovaným adaptérem LoRA
Obsluha modelu online RayService 1×GPU Trvalý koncový bod HTTP se službou Ray Serve

Další krok