RadarMakale Bülteniai üretimi

Makale Bülteni — Speculative Decoding

Küçük bir taslak model ile belirteç dizilerini önden tahmin edip büyük hedef modelde tek bir ileri geçişle doğrulayarak çıktı dağılımını bozmadan 3 kata kadar gecikme tasarrufu sağlayan algoritma.

Google Research araştırmacıları tarafından yayımlanan ve ICML 2023 konferansında sunulan “Fast Inference from Transformers via Speculative Decoding” makalesi, büyük dil modellerinde onlarca yıldır aşılamayan ardışık (autoregressive) çıkarım darboğazını kırmak için en zarif matematiksel çözümlerden birini ortaya koydu1. Standart bir LLM her yeni belirteci (token) üretmek için tüm model ağırlıklarını GPU’nun yavaş ana belleğinden (HBM) çekirdeklere taşımak zorundadır; bu durum düşük batch boyutlarında tensör çekirdeklerinin %90’dan fazla süreyle boş beklemesine ve donanımın bellek bant genişliğine kilitlenmesine yol açar. Speculative Decoding, bu kilitlenmeyi aşmak için ana modelin önüne küçük ve çevik bir taslak model (draft model) koyar; taslak model birkaç adımlık muhtemel geleceği tahmin ederken, büyük model tek bir paralel ileri geçişte (forward pass) bu tahminlerin tamamını doğrular. Pratikte bunun anlamı şudur: Modelinizin matematiksel çıktı dağılımını ve kalitesini zerre kadar değiştirmeden kullanıcıya dönen metin akış hızını ikiye katlayabilirsiniz.

Bu çıkarım stratejisinin sunduğu somut mühendislik kazanımı üç temel metrikte belgeleniyor: Standart ardışık üretime kıyasla 2 kat ile 3 kat arasında çıkarım hızlanması ve sıfır doğruluk kaybı, deneylerin yürütüldüğü kurumsal NVIDIA A100-80GB ve Google TPU v4 altyapısı ve tekniği üretim standardına dönüştüren vLLM ekosistemindeki 45.000 yıldız ile 4.000 açık issue düzeyindeki devasa topluluk canlılığı2.

İddia ve Gerçeklik: Speculative Decoding

Geleneksel LLM servis mimarilerinde K adet belirteç üretmek için ana modelin K kez sıralı olarak çalıştırılması şarttır1. 70 milyar parametrelik bir model tek bir kelime üretirken dahi 140 gigabaytlık ağırlığı belleğe yüklemek zorundadır. Makalenin ana mimari tezi, dildeki kolay kalıpların (bağlaçlar, yaygın ifadeler, sözdizimi tamamlamaları) küçük ve ucuz bir model tarafından da yüksek isabetle tahmin edilebileceği gerçeğine dayanır.

Speculative Decoding, küçük bir taslak model ile ardışık olarak $\gamma$ adet aday belirteç üretir. Ardından büyük hedef model, bu $\gamma$ adet belirteci tek bir paralel matris işlemiyle doğrular. Buradaki kritik matematiksel deha, yazarların geliştirdiği özel reddetme örneklemesi (modified rejection sampling) algoritmasıdır. Hedef model taslağın önerdiği bir belirteci reddettiğinde dahi hedef modelin orijinal olasılık dağılımından yeni bir belirteç üretilir ve sonraki adaylar çöpe atılır. Bu mekanizma sayesinde üretilen metnin istatistiksel dağılımı, büyük modelin tek başına çalıştırıldığı durumla bit düzeyinde özdeş kalır; yani sıcaklık (temperature) ve top-p parametreleri bozulmaz, şaşkınlık (perplexity) kaybı yaşanmaz.

Fakat üretim bandına inildiğinde her sistem mimarının çarptığı çok sert bir gerçeklik vardır: kabul oranı tuzağı (acceptance rate trap)3. Algoritmanın hız kazancı, taslak modelin tahminlerinin hedef model tarafından ne oranda kabul edildiğine (%50-%80 kabul oranı) sıkı sıkıya bağlıdır. Kod üretimi veya yapılandırılmış JSON çıktılarında kabul oranı %80’in üzerine çıkarak muazzam hızlanma sağlarken; yaratıcı yazarlık, felsefi akıl yürütme veya yüksek sıcaklık ayarlarında kabul oranı %20’lere kadar çakılır. Kabul oranı çöktüğünde taslak modelin harcadığı GPU süresi boşa gider ve sistem standart üretimden bile daha yavaş hale gelir. Dahası, sunucu yüksek eşzamanlı istek (high concurrency) altındayken GPU zaten hesaplama sınırına (compute-bound) dayandığından, spekülatif doğrulama yapmak ana modelin throughput kapasitesini düşürebilir.

Kod ve Entegrasyon Haritası

Makalenin teorik çerçevesi hızla açık kaynak dünyasının en önemli çıkarım kütüphanelerine entegre edildi2. Hugging Face ekibi transformers kütüphanesine assisted_generation adıyla doğrudan dahil etti; generate() fonksiyonuna yalnızca bir assistant_model argümanı geçmek algoritmayı saniyeler içinde devreye sokmaktadır4. Benzer şekilde TensorRT-LLM, SGLang, llama.cpp ve vLLM gibi büyük motorlar spekülatif kod çözmeyi çekirdek özellik olarak desteklemektedir.

vLLM içerisindeki entegrasyon (--speculative-model), üretim mühendisliği açısından en olgun örneği sunar3. vLLM, hem ayrı bir küçük modelle çalışmayı hem de n-gram veya prompt arama (prompt lookup decoding) gibi modelsiz taslak yöntemlerini destekler. Ayrıca vLLM topluluğunun 4565 numaralı RFC tartışmasında ele aldığı üzere, üretim ortamlarında kuyruk doluluğunu izleyen ve sistem aşırı yüke girdiğinde spekülasyonu otomatik olarak kapatan dinamik hız denetleyicileri (speculation governors) geliştirilmiştir.

Bununla birlikte kod tabanında dikkat edilmesi gereken ciddi operasyonel kısıtlar mevcuttur. Taslak model ile hedef modelin aynı kelime dağarcığını (tokenizer vocabulary) paylaşması şarttır; aksi takdirde belirteç uyumsuzlukları nedeniyle sistem çalışmaz. Ayrıca aynı GPU düğümünde hem 70B hedef modeli hem de 1B-8B taslak modeli barındırmak, KV önbelleğine ayrılan VRAM bütçesini daraltarak maksimum batch boyutunu kısıtlayabilir. Bu sorunu çözmek için son dönemde taslak modeli ayrı bir GPU’ya taşıyan ayrık spekülatif servis (disaggregated speculative decoding) mimarileri yaygınlaşmaktadır.

Ticari Etki: Kimin İşine Yarar?

Speculative Decoding’in ticari etkisi, tekil kullanıcı gecikmesinin (per-user latency) doğrudan ciroya ve kullanıcı memnuniyetine dönüştüğü interaktif yapay zeka uygulamalarında devrim yaratır. Kod tamamlama (Copilot benzeri araçlar), gerçek zamanlı müşteri destek sohbet robotları ve sesli asistanlar gibi kullanıcıların ilk belirteç ve akış hızına duyarlı olduğu senaryolarda, gecikmeyi yarı yarıya indirmek kullanıcı deneyimini kökten dönüştürür.

Özellikle kod üretimi ve SQL sorgulama gibi sözdizimsel kuralların katı olduğu alanlarda taslak modeller %80’in üzerinde kabul oranına ulaşır. Örneğin Llama-3-70B modelinin önüne Llama-3-8B taslak olarak konulduğunda, donanım maliyetini katlamadan küçük model hızında 70B kalitesinde metin akışı elde edilir. Bu durum, pahalı modelleri doğrudan servis edip kullanıcıyı bekletmek yerine aynı sunucu kümesinde iki kat daha akıcı bir servis sunma şansı verir.

Özetle Speculative Decoding, doğru iş yükünde uygulandığında açık kaynak dünyasının en etkili optimizasyon kaldıraçlarından biridir. Eğer ürününüz tekil kullanıcı etkileşimine odaklanıyorsa ve latency sizin için birincil metrikse, vLLM veya Hugging Face üzerindeki assisted_generation boru hatlarını devreye almak anında sonuç verir. Ancak sisteminiz yüzlerce eşzamanlı istekle boğuşan yüksek hacimli bir toplu işlem (batch processing) altyapısıysa, spekülatif kod çözmeyi kapatıp GPU kaynaklarını saf iş hacmine (throughput) ayırmak daha akılcı bir CTO kararıdır.

Kaynaklar

  1. arXiv:2211.17192 — Fast Inference from Transformers via Speculative Decoding
  2. GitHub — vllm-project/vllm Açık Kaynak Çıkarım Motoru
  3. vLLM Blog — How Speculative Decoding Boosts vLLM Performance by up to 2.8x
  4. Hugging Face Blog — Assisted Generation: a new direction toward low-latency text generation