Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, LLaMA-Factory ve dağıtılmış Ray Train kullanarak Qwen2.5-7B-Instruct'ı viggo NLG veri kümesinde ince ayarlayan bir RayJob gönderirsiniz. İş, her biri bir GPU’ya sahip dört çalışan kullanır, eğitim verilerini Azure Blob Depolama’dan okur ve eğitilmiş LoRA bağdaştırıcısını sonraki çıkarım işlemleri için yükler.
Önemli
AKS dokümantasyonu ve örneklerinde açık kaynaklı yazılımdan bahsedilmektedir. Dağıttığınız yazılım, AKS hizmet düzeyi anlaşmalarından, sınırlı garanti ve Azure desteğinden hariç tutulur. AKS ile birlikte açık kaynak teknolojisini kullanırken, bir plan geliştirmek için ilgili topluluklar ve proje sorumlularından mevcut olan destek seçeneklerine danışın.
Microsoft, AKS üzerinde dağıttığımız açık kaynak paketlerinin oluşturulmasından sorumluluk alır. Bu sorumluluk, yapı, tarama, imzalama, doğrulama ve hızlı düzeltme sürecinin tam sahipliğini içermenin yanı sıra, konteyner görüntülerindeki ikili dosyaların kontrolünü de kapsar. Daha fazla bilgi için AKS için güvenlik açığı yönetimi ve AKS destek kapsamı başlıklarına bakın.
Önkoşullar
- AKS üzerinde Ray ve Kueue için altyapı dağıtma sonrasında dağıtılan altyapı.
- Kueue kuyrukları, AKS'de Ray iş yükleri için Kueue kuyruklarını yapılandırma yönergesine göre yapılandırılmıştır.
- Kümede en az dört A100 GPU kullanılabilir (bu örnekte her biri bir GPU'ya sahip dört çalışan kullanılır).
- Viggo veri kümesi,
llm-pipeline/data/adresindeki blob depolamaya yüklendi (altyapı Terraform modülü tarafından otomatik olarak gerçekleştirilir). -
envsubstyüklü (gettextLinux'ta,brew install gettextmacOS'ta paket).
Ortam değişkenlerini ayarlama
Kopyalanan depodaki LLM eğitim örneğine gidin ve gerekli ortam değişkenlerini yapılandırın:
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
Not
Ekip kuyruklarını yapılandırdıysanız (Seçenek B), source env.example öğesini çalıştırmadan önce export QUEUE_NAME=team-a veya export QUEUE_NAME=team-b ayarlayın. Varsayılan değer QUEUE_NAME=default yalnızca tek sıralı yapılandırmayla (Seçenek A) çalışır.
İş yükünü gönderme
Dağıtılmış eğitim RayJob’unu gönderin:
./submit.sh
Betik, eğitim betiğinden bir ConfigMap oluşturur, envsubst aracılığıyla dört GPU çalışanıyla bildirim şablonunu oluşturur ve uygular. Kueue, yapılandırılan kuyrukta dört GPU kullanılabilir olduğunda işi kabul eder.
Tip
İşlenen bildirimi kümeye uygulamadan doğrulamak için komutunu çalıştırın ./submit.sh --dry-run .
İlerlemeyi izleme
Yeni bir kabuktaysanız iş adını bulun ve dışarı aktarın:
export JOB_NAME=$(kubectl -n ray get rayjob --no-headers -o custom-columns=":metadata.name" | grep llm-training)
RayJob durumunu ve Kueue kabulünü izleyin:
kubectl -n ray get rayjob ${JOB_NAME} -w
kubectl -n ray get workload -w
İş tamamlandığında beklenen çıkış:
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
Baş pod günlüklerini takip edin:
kubectl -n ray logs -f -l ray.io/cluster=$(kubectl -n ray get rayjob ${JOB_NAME} -o jsonpath='{.status.rayClusterName}') -c ray-head
Sonuçları doğrulama
LoRA adaptörünün yüklemesini kontrol edin:
az storage blob list -c llm-pipeline --prefix lora/ \
--account-name ${AZURE_STORAGE_ACCOUNT_NAME} --auth-mode login -o table
Beklenen çıkış:
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
latest.txt işaretçisinin yazıldığını doğrulayın (otomatik bulma için toplu çıkarım örneğinde kullanılır):
az storage blob download -c llm-pipeline -n lora/latest.txt \
--account-name ${AZURE_STORAGE_ACCOUNT_NAME} --auth-mode login
Beklenen çıkış:
azure://llm-pipeline@<storage-account>.blob.core.windows.net/lora/<job-name>
Yapılandırma referansı
| Değişken | Varsayılan | Description |
|---|---|---|
AZURE_STORAGE_ACCOUNT_NAME |
(gerekli) | Modül 1'den depolama hesabı |
NUM_WORKERS |
4 |
GPU worker kopyaları (her biri 1 GPU olmak üzere 4 adet) |
QUEUE_NAME |
default |
Kueue LocalQueue adı |
LLM_DATA_CONTAINER |
llm-pipeline |
Giriş verileri için blob kapsayıcısı |
LLM_LORA_CONTAINER |
llm-pipeline |
LoRA yükleme için Blob kapsayıcısı |
CONFIGMAP_NAME |
llm-training-scripts |
Eğitim betiğini tutan ConfigMap'in adı |
Kaynakları temizle
RayJob'ı ve ConfigMap'ini silin:
kubectl -n ray delete rayjob ${JOB_NAME}
kubectl -n ray delete configmap ${CONFIGMAP_NAME}