SON DAKİKA

Nvdia

NVIDIA Run:ai ve NVIDIA Dynamo ile Hızlı ve Verimli LLM Çıkışı için Akıllı Çok Düğümlü Planlama

Büyüyen büyük dil modelleri karmaşıklığı, bazı zorlukları beraberinde getiriyor. Özellikle tek bir GPU için çok büyük hale gelen modeller, yüksek işlem gücü ve düşük gecikme süreleri gerektiren iş yükleri ve binlerce birbiriyle bağlantılı bileşeni sorunsuz bir şekilde koordine etmesi gereken bir altyapı dikkat çekiyor. NVIDIA Run:ai v2.23 sürümü, bu zorlukları aşmak için NVIDIA Dynamo ile bir entegrasyon sunuyor; bu entegrasyon, dağıtık ortamlarda üretken AI modelleri için yüksek verimli ve düşük gecikmeli bir çıkarım çerçevesi sağlıyor.

Bu blogda ele alacağımız konular şunlardır:

  • Günümüz iş yüklerinin çoklu düğüm çıkarımını gerektiren ölçeklendirme sorunları ve bunun getirdiği koordinasyon zorlukları.
  • Dynamo’nun çıkarımı nasıl hızlandırdığı, neden planlamanın önemli olduğu ve iş yüklerini verimli bir şekilde yönetmekte orkestra yönetiminin rolü.
  • NVIDIA Run:ai v2.23 Dynamo entegrasyonunun tahsisleme ve topoloji farkındalığı ile nasıl öngörülebilir, düşük gecikmeli dağıtımlara katkı sağladığı.
  • Dynamo ile NVIDIA Run:ai’da nasıl başlayabileceğiniz ile ilgili adım adım bir kılavuz.

Ölçeklendirme Sorunları

Model parametreleri ve dağıtılmış bileşenlerin (örneğin, prefill ve decode işçileri, yönlendirici vb.) sayısı arttıkça, bu unsurların bellek gereksinimleri ve hesaplama talepleri de önemli ölçüde artıyor. Bu durum, model katmanlarını ve KV önbelleğini birden fazla GPU ve giderek daha fazla düğüm arasında dağıtmaya zorunlu kılıyor. Tensor paralelliği gibi teknikler, kapasite sorununu çözerken, koordinasyon sorunlarını da beraberinde getiriyor: birçok dağıtılmış bileşeni tek bir işlemci gibi sorunsuz bir şekilde nasıl çalıştıracağız? Cevap, bu karmaşıklığı şeffaf bir şekilde yönetebilen gelişmiş inferans çerçevelerinde yatıyor.

Dynamo’nın Çıkarımı Hızlandırması

NVIDIA Dynamo, dağıtılmış çıkarım zorlukları ile başa çıkmak üzere tasarlanmış bazı özellikler sunuyor:

  • GPU verimliliğini artıran ve gecikme ile verimlilik arasında tercih yapma olanağı sunan dağınık prefill ve decode çıkarımı.
  • Talebe göre daha iyi GPU zamanlaması.
  • Gereksiz KV önbellek yeniden hesaplamalarını önlemek için LLM farkındalığına sahip talep yönlendirme.
  • Kendi içinde NVIDIA İnferans Xfer Kütüphanesi kullanarak çıkarım yanıt sürelerini azaltan hızlandırılmış veri aktarımı.
  • Daha yüksek verimlilik için birden fazla bellek hiyerarşisini kullanan KV önbellek dışlama.

Bu özellikler, en büyük modellerin bile dağıtılmış GPU kümeleri üzerinde verimli bir şekilde çalışmasını sağlıyor, ancak altında yatan orkestra yönetiminin işlevselliğinin engellerle karşılaşmaması koşuluyla.

Neden Planlama Önemlidir?

Çoklu düğüm çıkarımını küme ortamlarında çalıştırmak bazı zorluklar içeriyor. Dynamo iş yükleri, yönlendirici, prefill ve decode gibi sıkı bir şekilde ilişkili bileşenler içeriyor. Bunları bağımsız şekilde planlamak, decode bileşenlerinin çalışırken, prefill bileşenlerinin beklemesi gibi kısmi dağıtımlar ortaya çıkarıyor; bu da GPU’ların boş kalmasına yol açıyor.

Tüm bileşenler aktif olsa bile, kötü yerleştirme performansı olumsuz etkiliyor. Uzak düğümler arasında dağıtılan liderler ve işçiler, gecikmelere ve bant genişliği dar boğazlarına sebep olarak verimliliği azaltıyor. Bu orkestra yönetimi sorunlarını ele almak, Dynamo’nun çalışma verimliliğini desteklemek için hayati öneme sahip.

NVIDIA Run:ai ve Dynamo Entegrasyonu

Orkestrasyon zorluklarını aşmak, yalnızca pod’ları başlatmaktan ibaret değil. Doğru pod’ları aynı anda başlatmak ve doğru yerlere yerleştirmek gerekiyor. NVIDIA Run:ai, bu gereksinimleri yerine getirmek için iki ana özellik sunuyor: grup planlaması ile bileşenlerin atomik olarak başlatılması ve topoloji farkındalığı ile düşük gecikmeli iletişim için bileşenlerin bir arada yerleştirilmesi.

Grup Planlaması: Her Şey ya da Hiçbir Şey Dağıtımı

Dynamo iş yükleri, NVIDIA Run:ai’nin grup planlama yeteneklerinden faydalanarak, birbirine bağımlı pod’ların farklı gruplarını tek bir dağıtım birimi olarak ele alıyor. Bu atomik planlama yöntemi sayesinde, gereken tüm bileşenler (prefill işçileri ve liderler, decode işçileri ve liderler) aynı anda yerleştirilebiliyor ya da yeterli kaynaklar mevcut olmadan dağıtım bekletiliyor.

Bu şekilde, kısmi dağıtım senaryoları ortadan kaldırıldığı için daha yüksek küme kullanım oranları ortaya çıkıyor. Kısmen dağıtılan iş yükleri, eksik bileşenlerin beklenmesi sırasında küme kaynaklarını tüketmiyor. Soğuk başlangıç gecikmesi de azalıyor; zira kaynaklar mevcut olduğunda, tüm iş yükleri atomik olarak başlatılıyor.

Topoloji Farkındalığı: Gecikmeyi Azaltma

Entegrasyonda yer alan topoloji farkındalığı, çoklu düğüm dağıtımları için son derece değerli. Yöneticiler, küme topolojisini tanımlayarak, planlayıcının stratejik bileşen yerleştirme kararları vermesini sağlıyor. Birbiriyle bağımlı bileşenler (örneğin, prefill ve decode roller) çapraz düğüm gecikmesini azaltmak ve yüksek hızlı bağlantıların verimliliğini artırmak için konumlandırılıyor.

Bu topoloji farkındalığı, çoklu düğüm dağıtımları için kritik bir öneme sahip; zira ağ iletişimi kolayca dar boğaz haline gelebilir. Sonuç olarak, bileşenler arasında geliştirilmiş iletişim verimliliği ve azaltılmış ağ yüküyle düşük gecikme süreleri ve geliştirilen performans sağlanıyor.

NVIDIA Run:ai v2.23 ile Dynamo’ya Nasıl Başlanır?

Devam etmeden önce aşağıdakilerin olduğundan emin olun:

  • Kubernetes kümesi ve içinde runai-project-a adında bir proje kurulumu tamamlanmış NVIDIA Run:ai v.2.23 sürümünün kurulu olması (belgelere göz atın).
  • Kubeconfig dosyasına erişim.
  • Helm kurulumu yapılmış olması.
  • Kişisel bir token ile modelleri çekebilmek için Hugging Face erişim token’i; bu token, Kubernetes’in gizli bilgileri arasında saklanmalıdır.
kubectl create secret generic hf-token-secret 
  --from-literal=HF_TOKEN='<huggingface_token>' 
  -n runai-project-a

Not:<huggingface_token> ifadesini gerçek Hugging Face token’ınız ile değiştirin. Bu token’ı güvende tutun ve kaynak kontrolüne işlemeyin.

Ağ Topolojisinin Kurulumu

Küme içindeki Dynamo bileşenlerini bir arada yerleştirip çapraz düğüm gecikmesini azaltmak için, NVIDIA Run:ai’da kümenizin fiziksel düzenini temsil eden bir ağ topolojisi yapılandırın. Öncelikle Kubernetes düğümlerinizin, topology.kubernetes.io/region: us-west, topology.kubernetes.io/zone: us-west-1a gibi komşuluk göstergeleriyle etiketlenmiş olduğundan emin olun.

Daha sonra NVIDIA Run:ai’da hangi etiket anahtarlarının komşuluk tanımladığını belirtin. NVIDIA Run:ai kullanıcı arayüzünde, kümenin ayarlarını açarak kullandığınız etiket anahtarlarını ekleyin (örneğin, topology.kubernetes.io/zone, topology.kubernetes.io/region).

Komşulukları gösteren anahtarları en yakından en uzağa doğru sıralayarak bir topoloji oluşturun. Kullanılacak etiket değerlerinin, örneğin us-west-1a, düğümlerde uyguladığınız değerlerle tam olarak eşleştiğinden emin olun:

The Run:ai user interface setting up network topology.
Şekil 1. NVIDIA Run:ai’da ağ topolojisi ayarları

Daha sonra bu ağ topolojisini ilgili node pool‘lara ekleyin. Farklı havuzlar, donanım veya ağ yapıları farklı olduğunda farklı topolojiler taşıyabilir.

Bu aşamadan sonra, planlama otomatik olarak gerçekleşiyor. NVIDIA Run:ai, ilk seferde hemen yerleştirilmesi mümkün olmadığında geniş alanlara yalnızca başvuruyor; böylece, iş yüklerinizin en iyi mevcut düğümlerde yer almasını sağlıyor (örneğin, aynı raftaki düğümler) ya da bekletiyor, kısmi ve verimsiz dağıtımları ortadan kaldırıyor. Resmi belgeler için bu sayfaya göz atabilirsiniz.

The Run:ai user interface setting up network topology.
Şekil 2. NVIDIA Run:ai’da node pool’a ağ topolojisi ekleme

Dynamo Uygulamada

Ağ topolojisi NVIDIA Run:ai kullanıcı arayüzünde yapılandırıldığında, Dynamo iş yükleri otomatik olarak grup planlaması ve topoloji farkındalığından faydalanır. Bu durum, birbirine bağlı bileşenlerin (örneğin, decode, yönlendirici) aynı anda başlatılmasını ya da bir grup olarak bekletilmesini sağlar; ayrıca planlayıcı bunları en yakın katmanda yerleştirir (örneğin, aynı bölge veya rafta) böylece gecikmeyi azaltır. Kullanıcılar, iş yüklerini belirlerken tercih edilen veya zorunlu yerleştirme stratejilerini tanımlayabilirler.

Adım 1: Çevresel değişkenleri ayarlayın

# Gerekli çevresel değişkenleri tanımlayın

export DYNAMO_IMAGE=nvcr.io/nvidia/ai-dynamo/vllm-runtime:0.4.1
export NAMESPACE=dynamo-cloud
export RELEASE_VERSION=0.4.1

Adım 2: Kubernetes ismi alanı oluşturun

# Dağıtım için özel bir isim alanı oluşturun

kubectl create namespace $NAMESPACE

Adım 3: Özel kaynak tanımlamaları (CRD) ve platform bileşenlerini kurun

# CRDs

helm fetch https://helm.ngc.nvidia.com/nvidia/ai-dynamo/charts/dynamo-crds-$RELEASE_VERSION.tgz

helm install dynamo-crds dynamo-crds-${RELEASE_VERSION}.tgz --namespace dynamo-cloud

# Platform Bileşenleri

helm fetch https://helm.ngc.nvidia.com/nvidia/ai-dynamo/charts/dynamo-platform-$RELEASE_VERSION.tgz

helm install dynamo-platform dynamo-platform-${RELEASE_VERSION}.tgz --namespace ${NAMESPACE} --set dynamo-operator.namespaceRestriction.enabled=false

Adım 4: Pod durumunu doğrulayın

# Tüm bileşenlerin çalıştığından emin olun

kubectl -n $NAMESPACE get pods

Adım 5: vLLM toplayıcısını dağıtın
Dynamo deposundan örnek YAML dosyasını indirin; metadata.namespace: bilgisini runai-project-a olarak ayarlayın ve aşağıdaki eklemeleri yapın:

metadata:
  namespace: runai-project-a
  annotations:
    kai.scheduler/topology-preferred-placement: "topology.kubernetes.io/zone"
    kai.scheduler/topology: "topology-1"
    # kai.scheduler/topology-required-placement: "topology.kubernetes.io/zone" -> Pod'ların aynı bölgede olmasını istiyorsanız, bu anahtarı kullanabilirsiniz.
# YAML dosyasını uygulayın:

kubectl apply -f disagg.yaml

Pod’lar başlamaya başladığında, operatör, kontrol düzlemi ve tüm bileşenlerin çalıştığını göreceksiniz. Decode ve prefill pod’ları yukarıdaki topolojiye bağlı olarak aynı bölgede planlanacak.

NAME                                       READY   STATUS    RESTARTS   AGE
vllm-disagg-frontend-79f459c95-57fm6             1/1     Running   0   30m
vllm-disagg-vllmdecodeworker-6c8d64f569-56phf    1/1     Running   0   30m
vllm-disagg-vllmprefillworker-755cb88fcf-pflb5   1/1     Running   0   30m

Adım 6: Dağıtılan modele istekte bulunun

Dağıtımı yerel olarak test etmek için, ön uca bağlantı noktası yönlendirmesi yapın:

kubectl -n runai-project-a port-forward pod/vllm-disagg-frontend-79f459c95-57fm6  
 8000:8000

Bir örnek isteği curl kullanarak gönderin:

curl localhost:8000/v1/chat/completions 
  -H "Content-Type: application/json" 
  -d '{
    "model": "Qwen/Qwen3-0.6B",
    "messages": [
    {
        "role": "user",
        "content": "Eldoria'nın kalbinde, sınırsız sihir ve gizemli yaratıklarla dolu antik topraklarda, uzun zamandır unutulmuş Aeloria şehri yatıyor. Bir zamanlar bilgi ve güç kaynağı olan Aeloria, zamanın kaygan kumları altında gömüldü, yüzyıllar boyunca dünyadan kayboldu. Sen, karşı konulmaz merakın ve cesaretinle tanınan bir keşifcisiniz; eski bir harita, Aeloria'nın aslında gerçekliği şekillendirme potansiyeli olan derin bir sırrı barındırdığını işaret ediyor. Yolculuğunuz, tehlikeli çöl, büyülü ormanlar ve sert dağlarda geçecek. Görev: Karakter Geçmişi: Karakteriniz için ayrıntılı bir geçmiş geliştirin. Aeloria'yı ararken motivasyonlarını, becerilerini ve zayıflıklarını, ayrıca antik şehir veya efsaneleriyle bağlantılarını tanımlayın. Bilgi arayışım mı, kaybolmuş bir aile mirası mı yoksa başka bir şey mi? Bir ipucu gizli."
    }
    ],
    "stream": false,
    "max_tokens": 30
  }'

Başarılı bir yanıt, oluşturulmuş bir tamamlama ile dönecektir:

{"id":"chatcmpl-559682f7-8845-4014-b670-47a5f32f07c6","choices":[{"index":0,"message":{"content":"nTamam, Eldoria'daki kaşif için detaylı bir karakter geçmişi geliştirmem gerekiyor. Kullanıcının sorgusunu anlamakla başlayalım.","role":"assistant","reasoning_content":null},"finish_reason":"stop"}],"created":1758043876,"model":"Qwen/Qwen3-0.6B","object":"chat.completion","usage":{"prompt_tokens":196,"completion_tokens":29,"total_tokens":225}}%

Dağıtım, NVIDIA Run:ai’nin grup planlaması ve topoloji farkındalığı ile pod’ları bir arada başlatıyor, gecikmeyi en aza indiriyor ve GPU kullanımını artırarak boş kaynakları önlüyor.

Sonuç

Büyük ölçekli LLM çıkarımı, yüksek performanslı bir çıkarım çerçevesinin ve onu yerleştirme yöntemleri konusunda bilgi sahibi bir planlayıcının bir araya gelmesiyle başarılı oluyor. NVIDIA Dynamo, ayrık prefill ve decode, LLM farkındalığına sahip yönlendirme ve efektif KV önbellek yönetimiyle bunun sağlıyor. NVIDIA Run:ai versiyon 2.23 ise grup planlaması ve topoloji farkındalığıyla bu sürece katkıda bulunuyor.

Bir araya geldiklerinde, çoklu düğüm çıkarımını önceden tahmin edilebilir ve performanslı hale getiriyor: pod’lar atomik olarak başlatılıyor, bileşenler hızlı bağlantılar üzerinde yer alıyor ve GPU’lar sürekli meşgul kalıyor. Elde edilen sonuç ise artan veri akışı, düşük gecikme süresi ve Kubernetes kümeleri genelinde daha iyi bir kullanım sağlıyor, güvenilir bir şekilde genişliyor ve altyapının geri dönüşünü maksimize ediyor.

AI iş yüklerini ölçeklendirme zorluklarını aşmanın etkili yollarını mı arıyorsunuz? Uzman içgörüler ve pratik çözümler için yaklaşan webinara katılın.

NVIDIA Run:ai ve Dynamo ile başlamanız için gerekli kaynaklar:

Kaynak

Nvdia Blog

Düşüncenizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgili Teknoloji Haberleri