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, LLM eğitim örneği tarafından oluşturulan LoRA bağdaştırıcısını kullanarak vLLM ile çevrimdışı toplu çıkarım çalıştıran bir RayJob gönderirsiniz. İş, Azure Blob Depolama'dan viggo test bölümünü ve LoRA bağdaştırıcısını okur, tek bir GPU'da tahminler oluşturur ve sonuçları 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 adımının ardından 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 bir A100 GPU kullanılabilir.
-
AKS üzerinde Ray ile LLM Eğitme adımlarının ardından LLM eğitimi tamamlandı; LoRA bağdaştırıcısı blob depolamada
llm-pipeline/lora/konumunda bulunmalıdır. -
envsubstyüklü (gettextLinux'ta,brew install gettextmacOS'ta paket).
Ortam değişkenlerini ayarlama
Kopyalanan depodaki toplu çıkarım ö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/batch-inference
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
Toplu çıkarım RayJob'unu gönderin:
./submit.sh
Betik, çıkarım betiğinden bir ConfigMap oluşturur, bildirim şablonunu envsubst aracılığıyla işler ve uygular. Kueue, yapılandırılan kuyrukta 1 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 batch-inference)
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
batch-inference-xxxxxxxxxx SUCCEEDED Complete 2026-01-01T00:00:00Z 2026-01-01T00:09:00Z 9m
NAME QUEUE RESERVED IN ADMITTED FINISHED AGE
rayjob-batch-inference-xxxxxxxxxx-xxxxx default cluster-queue True True 9m
Çalışan günlüklerini takip edin:
kubectl -n ray logs -l ray.io/cluster=$(kubectl -n ray get rayjob ${JOB_NAME} -o jsonpath='{.status.rayClusterName}') -f --tail=100
Sonuçları doğrulama
Blob depolamada tahmin dosyalarını listeleme:
az storage blob list -c llm-pipeline --prefix "inference/${JOB_NAME}/" \
--account-name ${AZURE_STORAGE_ACCOUNT_NAME} --auth-mode login -o table
Beklenen çıkış:
Name Blob Type Blob Tier Length Content Type
--------------------------------------------------- ----------- ----------- -------- ------------------------
inference/<job-name>/metrics.json BlockBlob Hot 128 application/octet-stream
inference/<job-name>/predictions.jsonl BlockBlob Hot 411777 application/octet-stream
Tahminleri indirin ve inceleyin:
az storage blob download -c llm-pipeline \
-n "inference/${JOB_NAME}/predictions.jsonl" \
--account-name ${AZURE_STORAGE_ACCOUNT_NAME} --auth-mode login \
--file /tmp/predictions.jsonl
head -1 /tmp/predictions.jsonl | python3 -m json.tool
Beklenen çıkış:
{
"input": "I'm wondering, have you played any games you found genuinely shocking?",
"expected": "request(specifier[shocking])",
"generated": "request_explanation"
}
Yapılandırma referansı
| Değişken | Varsayılan | Description |
|---|---|---|
AZURE_STORAGE_ACCOUNT_NAME |
(gerekli) | Modül 1'den depolama hesabı |
JOB_NAME |
batch-inference-<timestamp> |
Benzersiz RayJob adı |
QUEUE_NAME |
default |
Kueue LocalQueue adı |
LLM_DATA_CONTAINER |
llm-pipeline |
Viggo test verileri içeren blob kapsayıcısı |
LLM_LORA_CONTAINER |
llm-pipeline |
LoRA bağdaştırıcıları olan blob kapsayıcısı |
CONFIGMAP_NAME |
batch-inference-scripts |
Çıkarım 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}
Tüm altyapıyı yıkmak için bkz. Altyapı dağıtma — Kaynakları temizleme.