tag vLLM

Continuous Batching (Sürekli Toplu İşlem)

Bu sayfada vLLM (Continuous Batching (Sürekli Toplu İşlem)) etiketi ile işaretlenmiş 3 yapay zeka kavramını bulabilirsiniz.

Continuous Batching (Sürekli Toplu İşlem), LLM çıkarım sunucularında gelen istekleri statik batch'ler yerine sürekli, iterasyon bazlı dinamik gruplar hâlinde işleyen bir zamanlama tekniğidir. Geleneksel statik batching'de tüm istekler aynı uzunluğa tamamlanana kadar GPU boşta bekler; bu durum GPU kullanım oranını ciddi biçimde düşürür. Continuous batching ise her decoding adımında yeni isteklerin batch'e eklenmesine ve tamamlananların batch'ten çıkarılmasına olanak tanır. Tekniğin akademik temeli, Yu ve arkadaşlarının 2022'de yayımladığı "Orca: A Distributed Serving System for Transformer-Based Generative Models" çalışmasına dayanır. Bu makalede "iteration-level scheduling" adıyla tanımlanan yöntem, statik batch'e kıyasla 2-23× throughput artışı sağladığını kanıtladı. Pratik uygulamada ise 2023'te vLLM'nin PagedAttention ile birleştirdiği bu teknik, LLM servis altyapısında kalıcı bir standart hâline geldi. Teknik açıdan continuous batching; ön-doldurma (prefill) ve kod-çözme (decode) aşamalarının ayrılması, iterasyon düzeyinde zamanlama, verimli KV cache yönetimi ve öncelik kuyrukları bileşenlerine dayanır. Prefill aşamasında tüm prompt tokenleri bir kez işlenir; decode aşamasında her adımda tek token üretilir. Farklı isteklerin decode adımları eşzamanlı yürütüldüğünde GPU boşta kalmadan çalışmayı sürdürür; bu da KV cache alanının verimli kullanılmasını zorunlu kılar. Bellek yönetimi bu tekniğin kritik bir bileşenidir. PagedAttention, KV cache belleğini sanal sayfa tablosu modeline göre yönetir ve farklı uzunluktaki isteklerin yarattığı parçalanmayı önler. Çeşitli isteklerin KV state'leri aynı fiziksel GPU belleğinde örtüşmeden barındırılabilir; bu da sistemin eş zamanlı istek kapasitesini doğrudan artırır. Üretim ortamlarında continuous batching'i destekleyen başlıca framework'ler şunlardır: vLLM (PagedAttention ile), NVIDIA TensorRT-LLM, Hugging Face TGI (Text Generation Inference), SGLang (yapısal üretim için optimize) ve DeepSpeed-MII. GPU kapasitesi sabitken bu teknik, değişken uzunluktaki çok kullanıcılı API trafiğinde gecikme kararlılığını koruyarak saniyede işlenen token sayısını 10-20× artırabilmektedir. RAG pipeline'ları, ajansal AI sistemleri ve bulut LLM API'leri için temel bir altyapı bileşeni konumuna gelmiştir.

dynamic_feed

Continuous Batching (Sürekli Toplu İşlem)

Continuous Batching (Sürekli Toplu İşlem), LLM çıkarım sunucularında gelen istekleri statik batch'ler yerine sürekli, iterasyon bazlı dinamik gruplar hâlinde işleyen bir zamanlama tekniğidir. Geleneksel statik batching'de tüm istekler aynı uzunluğa tamamlanana kadar GPU boşta bekler; bu durum GPU kullanım oranını ciddi biçimde düşürür. Continuous batching ise her decoding adımında yeni isteklerin batch'e eklenmesine ve tamamlananların batch'ten çıkarılmasına olanak tanır. Tekniğin akademik temeli, Yu ve arkadaşlarının 2022'de yayımladığı "Orca: A Distributed Serving System for Transformer-Based Generative Models" çalışmasına dayanır. Bu makalede "iteration-level scheduling" adıyla tanımlanan yöntem, statik batch'e kıyasla 2-23× throughput artışı sağladığını kanıtladı. Pratik uygulamada ise 2023'te vLLM'nin PagedAttention ile birleştirdiği bu teknik, LLM servis altyapısında kalıcı bir standart hâline geldi. Teknik açıdan continuous batching; ön-doldurma (prefill) ve kod-çözme (decode) aşamalarının ayrılması, iterasyon düzeyinde zamanlama, verimli KV cache yönetimi ve öncelik kuyrukları bileşenlerine dayanır. Prefill aşamasında tüm prompt tokenleri bir kez işlenir; decode aşamasında her adımda tek token üretilir. Farklı isteklerin decode adımları eşzamanlı yürütüldüğünde GPU boşta kalmadan çalışmayı sürdürür; bu da KV cache alanının verimli kullanılmasını zorunlu kılar. Bellek yönetimi bu tekniğin kritik bir bileşenidir. PagedAttention, KV cache belleğini sanal sayfa tablosu modeline göre yönetir ve farklı uzunluktaki isteklerin yarattığı parçalanmayı önler. Çeşitli isteklerin KV state'leri aynı fiziksel GPU belleğinde örtüşmeden barındırılabilir; bu da sistemin eş zamanlı istek kapasitesini doğrudan artırır. Üretim ortamlarında continuous batching'i destekleyen başlıca framework'ler şunlardır: vLLM (PagedAttention ile), NVIDIA TensorRT-LLM, Hugging Face TGI (Text Generation Inference), SGLang (yapısal üretim için optimize) ve DeepSpeed-MII. GPU kapasitesi sabitken bu teknik, değişken uzunluktaki çok kullanıcılı API trafiğinde gecikme kararlılığını koruyarak saniyede işlenen token sayısını 10-20× artırabilmektedir. RAG pipeline'ları, ajansal AI sistemleri ve bulut LLM API'leri için temel bir altyapı bileşeni konumuna gelmiştir.

arrow_forward
play_arrow

Inference (Çıkarım (Model Çıkarımı))

Çıkarım (Inference), eğitilmiş bir yapay zeka modelinin yeni girdilere yanıt üretmek için kullanıldığı süreçtir. Eğitim aşamasının aksine, çıkarım sırasında model ağırlıkları güncellenmez; model yalnızca ileri besleme (forward pass) yapar. Büyük dil modellerinde çıkarım, prefill ve decode olmak üzere iki aşamadan oluşur. Prefill aşamasında giriş tokenlerinin tamamı paralel olarak işlenir ve KV önbelleği (KV cache) doldurulur; bu aşama GPU paralelizminden yüksek oranda yararlanır. Decode aşamasında ise model her seferinde bir token üretir ve KV önbelleğini günceller; bu aşama bellek bant genişliğiyle sınırlıdır (memory-bound). Çıkarım optimizasyonu, üretim sistemlerinde kritik öneme sahiptir. Temel metrikler: gecikme (latency — ilk token süresi ve token başına süre), verim (throughput — saniyede üretilen token sayısı), bellek kullanımı. Başlıca optimizasyon teknikleri şunlardır: Niceleme (Quantization): FP16/BF16, INT8, INT4 ile model boyutunu küçültme. KV Cache Yönetimi: PagedAttention ve prefix caching ile bellek verimliliği. Batch Processing: Birden fazla isteği birleştiren continuous batching. Flash Attention: Bellek verimli dikkat hesaplama. Spekülatif Kod Çözme: Küçük taslak modelle büyük modeli hızlandırma. Çıkarım altyapısı için vLLM, TGI (Text Generation Inference), TensorRT-LLM ve Ollama gibi özelleşmiş araçlar geliştirilmiştir. Bulut sağlayıcılar (OpenAI API, Anthropic API, AWS Bedrock) çıkarım altyapısını hizmet olarak sunar.

arrow_forward
fast_forward

Speculative Decoding (Spekülatif Kod Çözme)

Speculative Decoding (Spekülatif Kod Çözme), büyük dil modellerinin (LLM) otoregresif çıkarım hızını artırmak için tasarlanmış lossless bir optimizasyon tekniğidir. Klasik otoregresif çıkarımda her token, hedef modelin (target model) tek bir ileri geçişini (forward pass) gerektirir; bu süreç GPU'nun hesap kapasitesini tam verimde kullanmaz ve bellek bant genişliği darboğazına yol açar. Speculative decoding bu sorunu iki model mimarisiyle çözer: küçük, hızlı bir taslak model (draft model) ve büyük, kaliteli bir hedef model. Her adımda taslak model γ token önerir (genellikle γ = 4–8). Hedef model bu γ tokeni tek bir toplu ileri geçişte paralel olarak doğrular; yani γ+1 token için gereken hesaplama maliyeti, tek token üretme maliyetiyle yaklaşık eşittir. Spekülatif örnekleme (speculative sampling) kuralı, her tokenin hedef modelin olasılık dağılımıyla uyumluluk olasılığına göre kabul veya reddedilmesini belirler. İlk ret noktasından itibaren hedef modelin kendi tahminleri devreye girer. Bu prosedür, hedef modelin doğrudan örneklemesiyle istatistiksel olarak özdeş bir çıktı dağılımı üretir; dolayısıyla lossless bir hızlanmadır. Gerçek uygulamalarda hız kazanımı, taslak modelin kabul oranına (acceptance rate) bağlıdır. Kod tamamlama ve formüllü metinler gibi düşük entropili çıktılarda kabul oranı %80–90'a ulaşabilir ve 2×–4× duvar saati hızlanması gözlemlenir. Buna karşın yüksek entropi gerektiren yaratıcı metinlerde kazanım azalır. Tekniğin çeşitli biçimleri geliştirilmiştir. Medusa, hedef modele ek taslak başları (heads) ekleyerek ayrı bir draft modeline olan ihtiyacı ortadan kaldırır. EAGLE ve EAGLE-2, gizli katman aktivasyonlarından beslenen tek katmanlı ağ yapısıyla çok yüksek kabul oranları elde eder. Self-speculative yöntemler ise hedef modelin erken çıkış katmanlarını taslak olarak kullanır; bu sayede ikinci bir modele gerek kalmaz. Üretim ortamında Google Gemini, Anthropic Claude, vLLM ve SGLang speculative decoding'i aktif biçimde kullanmaktadır. Gerçek zamanlı sohbet asistanları ve anlık kod tamamlama araçları, düşük gecikme gereksinimi nedeniyle bu teknikten en fazla kazanım elde eden uygulama alanlarıdır.

arrow_forward