Overzicht van het uitvoeren van Ray AI-workloads met Kueue op Azure Kubernetes Service (AKS)

In dit artikel leert u hoe u gedistribueerde AI-workloads uitvoert op Azure Kubernetes Service (AKS) met behulp van Ray voor de rekenruntime en Kueue voor toegangsbeheer. Deze oplossing omvat de volledige levenscyclus, van infrastructuurprovisioning tot en met trainen, batchinferentie en online bediening.

Belangrijk

Opensource-software wordt vermeld in AKS-documentatie en -voorbeelden. Software die u implementeert, is uitgesloten van AKS-serviceovereenkomsten, beperkte garantie en ondersteuning voor Azure. 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 build-, scan-, teken-, validatie- en hotfixproces, samen met controle over de binaire bestanden in container-images. Zie Beveiligingsbeheer voor AKS- en AKS-ondersteuningsdekking voor meer informatie.

Wat is Ray?

Ray is een opensource-framework voor het schalen van AI en Python toepassingen. Het biedt een uniforme runtime voor gedistribueerde training, hyperparameterafstemming, batchdeductie en modelverwerking, zodat u workloads op meerdere knooppunten kunt schalen zonder toepassingslogica te herschrijven.

Ray vereenvoudigt gedistribueerde computing door planning, fouttolerantie en resourcebeheer te verwerken. Het framework ondersteunt machine learning-bibliotheken zoals PyTorch, TensorFlow en Hugging Face via integraties zoals Ray Train, Ray Data en Ray Serve. Zie de Ray GitHub-opslagplaats voor meer informatie.

Wat is KubeRay?

KubeRay is een Kubernetes-operator die de levenscyclus van Ray-clusters beheert. Het biedt aangepaste resources, RayJob voor batchworkloads en RayService voor permanente service-eindpunten, waarmee het maken, schalen en afbreken van clusters wordt geautomatiseerd. Zie de KubeRay GitHub-opslagplaats voor meer informatie.

Wat is Kueue?

Kueue is een controller voor taakwachtrijen in Kubernetes die de toelating van workloads beheert op basis van resourcequota's. In plaats van elke ingediende taak onmiddellijk resources te laten verbruiken, laat Kueue taken alleen toe binnen gedefinieerde quota: taken die passen, worden uitgevoerd; taken die niet passen, wachten in de rij. Zie het Kueue-overzicht op AKS voor een gedetailleerd overzicht van Kueue-concepten en -configuratie.

Oplossingsarchitectuur

Deze oplossing combineert Kueue voor toegangsbeheer met KubeRay voor Ray-clusterlevenscyclusbeheer op AKS. Terraform richt de infrastructuur in, Helm installeert de operators vanuit Microsoft Container Registry (MCR) en workloadidentiteit biedt veilige toegang tot Azure Blob Storage zonder opgeslagen aanmeldingsgegevens.

Het implementatieproces bestaat uit drie modules:

  • Infrastructuur: Terraform richt het AKS-cluster in met GPU-knooppuntgroepen, installeert KubeRay- en Kueue-operators via Helm, maakt Azure Blob Storage en configureert de workloadidentiteit.
  • Kueue-wachtrijen : Kubernetes-manifesten definiëren ResourceFlavors (CPU- en GPU-knooppunttypen), ClusterQueues (quota en toegangsbeleid) en LocalQueues (inzendpunten met naamruimtebereik).
  • Workloads : RayJob- en RayService-manifesten verzenden AI-workloads die Kueue op basis van het beschikbare quotum toegeeft.

Ray-workloads beginnen met suspend: true. Kueue beoordeelt de beschikbaarheid van quota en heft de onderbreking van toegelaten werkbelastingen op, waarna KubeRay het Ray-cluster aanmaakt en de taak uitvoert.

Voorbeelden van werkbelasting

Example Typologie GPUs Description
Het weermodel van Aurora verfijnen RayJob 1×A100 LoRA-fijntuning van het Microsoft Aurora-weerbasismodel
Een LLM trainen RayJob 4×A100 Gedistribueerde Qwen2.5-7B LoRA nauwkeurig afstemmen met LLaMA-Factory
Batchinferentie uitvoeren RayJob 1×A100 offline inferentie met vLLM met een getrainde LoRA-adapter
Een model online aanbieden RayService 1×GPU Permanent HTTP-eindpunt met Ray Serve

Volgende stap