AI Infrastructure

Heterojenliği Ustalaşmak: Dağıtık LLM Çıkarım Kümelemede Geciken Düğümleri Yönetmek

Hızla değişen Büyük Dil Modeli (LLM) dağıtım ortamında, "herkese uyan" GPU kümeleri geçmişte kaldı. Modern çıkarım ortamları giderek heterojen hale geliyor; yüksek performanslı H100'ler, maliyet etkin A100'ler veya hatta daha eski tüketici sınıfı kartlarla karıştırılarak bant genişliği ve birim ekonomisi dengeleniyor. Ancak bu çeşitlilik kritik bir zorluğu ortaya çıkarıyor: gecikenler (stragglers)—istekleri işlemede geri kalan ve tüm küme için sıra başı engelleme (head-of-line blocking) ile artan gecikmeye neden olan düğümler.

Gecikenlerin Maliyeti

Senkron dağıtık çıkarım mimarilerinde, özellikle tensör paralelliği (TP) kullanıldığında, kümenin ilerleyebilmesi için tüm işçilerin hesaplama adımını tamamlaması gerekir. Bir düğüm, termal boğulma, ağ gecikmesi veya daha az güçlü bir GPU nedeniyle yavaşsa, tüm istek rehin alınır. Bu durum iki ana soruna yol açar:

  • Kuyruk Gecikmesi Sıçramaları: 99. yüzdelik gecikme (P99), ortalama gecikmeye kıyasla genellikle önemli ölçüde kötüleşir.
  • Kaynak Alt Kullanımı: Daha hızlı düğümler, yavaş muadillerini beklerken boşta kalır ve pahalı donanım kaynakları israf edilir.

Strateji 1: Donanım Farkındalıklı Yük Dengeleme

İlk savunma hattı akıllı yönlendirmedir. Yuvarlak-robin (round-robin) dağıtım yerine, yük dengeleyiciniz her düğümün hesaplama kapasitesinin farkında olmalıdır. Bunun için yalnızca IP adreslerini değil, GPU modellerini, mevcut bellek kullanımını ve son bant genişliği oranlarını da takip eden bir meta veri katmanı gereklidir.

GPU yeteneğini hesaba katan ağırlıklı yuvarlak-robin algoritmasının kavramsal bir örneği aşağıda verilmiştir:


class HeterogeneousLoadBalancer:
    def __init__(self):
        self.nodes = {} # {node_id: { 'gpu': 'H100', 'weight': 1.0, 'current_load': 0 }}

    def register_node(self, node_id, gpu_model):
        # Göreli performans ağırlıklarını tanımla
        weights = {'H100': 1.0, 'A100': 0.8, 'T4': 0.2}
        self.nodes[node_id] = {
            'gpu': gpu_model,
            'weight': weights.get(gpu_model, 0.5),
            'current_load': 0
        }

    def get_next_node(self):
        # Etkili puanı hesapla: Ağırlık / Mevcut Yük
        best_node = None
        best_score = float('-inf')
        
        for node_id, node_data in self.nodes.items():
            # Sıfıra bölünmeyi önle
            effective_load = max(node_data['current_load'], 0.1)
            score = node_data['weight'] / effective_load
            if score > best_score:
                best_score = score
                best_node = node_id
                
        # Seçilen düğümün yükünü güncelle
        if best_node:
            self.nodes[best_node]['current_load'] += 1
        return best_node

Strateji 2: Dinamik Parti Ölçekleme ve Parçalama

Hat Paralelliği (Pipeline Parallelism - PP) kullanırken, asenkron iletişim uygulayarak veya hesaplamayı iletimle örtüştürerek gecikenleri azaltabilirsiniz. Ayrıca, dinamik partileme (batching) düğüm bazında ayarlanmalıdır. Daha zayıf bir GPU, kümenin SLA'sıyla eşleşen tutarlı bir token başına süre (TPOT) korumak için daha küçük bir parti boyutuyla çalışabilirken, daha güçlü GPU'lar bant genişliğini en üst düzeye çıkarmak için daha büyük partilerle çalışabilir.

İzleme ve Aykırı Değer Tespiti

Son olarak, aykırı değerleri tespit etmek için gerçek zamanlı izleme uygulayın. Bir düğüm, beklenen hesaplama penceresini sürekli kaçırıyorsa, geçici olarak karantinaya alınmalı veya ağırlığı otomatik olarak azaltılmalıdır. Prometheus ve Grafana gibi araçlar bu metrikleri görselleştirmenizi sağlar ve manuel müdahale olmadan sağlıksız işçileri yeniden başlatan veya değiştiren otomatik iyileştirme betiklerine olanak tanır.

Sonuç

Heterojen donanımı yönetmek, yalnızca en hızlı GPU'ları satın almakla ilgili değildir; donanım varyansını soyutlayan akıllı yazılım katmanları inşa etmektir. Donanım farkındalıklı yönlendirme, dinamik partileme ve sağlam aykırı değer tespiti uygulayarak, altta yatan donanım karışımından bağımsız olarak tutarlı performans sunan dayanıklı LLM çıkarım kümeleri oluşturabilirsiniz.

Share: