Speculative Decoding Nedir? Büyük Dil Modelleri Nasıl Daha Hızlı Cevap Veriyor?
Bu çalışma biçimi, özellikle uzun yanıtlar üretilirken önemli bir darboğaz oluşturabilir. Büyük modelin her üretim adımında yeniden çalışması gerekir. Üstelik düşük eşzamanlılıkla yürütülen çıkarımda, işlemcinin hesaplama kapasitesinden çok model ağırlıklarını bellekten taşıma maliyeti belirleyici olabilir.
Speculative Decoding, bu süreci hızlandırmak için önce ucuz tahminler üretir, ardından büyük modele bu tahminleri topluca denetletir. Temel fikir basittir: Büyük modelin her tokenı ayrı bir adımda üretmesi yerine, uygun bulunan birkaç tokenı tek doğrulama turunda ilerletebilmek.
Ancak yöntemin başarısı yalnızca küçük bir model kullanmaya bağlı değildir. Tahminlerin kabul oranı, doğrulama maliyeti ve donanımın çalışma biçimi birlikte değerlendirilmelidir.
Speculative Decoding Nedir?
Speculative Decoding, bir dil modelinin üretim sürecini, önceden önerilen token dizilerini doğrulayarak hızlandıran bir çıkarım tekniğidir.
Klasik düzenekte iki model bulunur:
- Draft model: Birkaç tokenlık aday devamı hızlı şekilde üretir.
- Target model: Adayları değerlendirir ve hangi tokenların kabul edileceğini belirler.
Draft modelin görevi, nihai cevabın doğruluğuna karar vermek değildir. Büyük modelin kabul edebileceği devamları düşük maliyetle önermektir.
Buradaki token kavramı da kelimeyle birebir aynı değildir. Bir token; kelimenin tamamı, kelime parçası, noktalama işareti veya başka bir metin birimi olabilir. Bu nedenle yöntemi “gelecekteki kelimeleri tahmin etmek” yerine gelecek tokenlar için adaylar üretmek şeklinde tanımlamak daha doğrudur.
Büyük Model Neden Tokenları Tek Tek Üretiyor?
Otoregresif üretimde model, mevcut metne bakarak sıradaki token için olasılıklar hesaplar. Seçilen token metne eklenir ve bir sonraki adım başlar.
Örneğin model şu cümleyi oluşturuyor olsun:
“Bu işlemi gerçekleştirmek için…”
Sonraki tokenın seçimi, bu başlangıca bağlıdır. Ondan sonra üretilecek token da yeni oluşan metne bağlı olacaktır.
KV Cache, önceki tokenlara ilişkin bazı hesaplamaların tekrar yapılmasını önler. Buna rağmen yeni tokenın hesaplanması için büyük modelin katmanlarından geçmek gerekir. Speculative Decoding, bu ardışık büyük model çağrılarının sayısını azaltmayı hedefler.
Speculative Decoding Nasıl Çalışır?
İlk olarak draft model, mevcut bağlamdan hareketle birkaç token önerir. Ardından target model, önerilen diziyi uygun bir dikkat maskesiyle topluca değerlendirir.
Bu işlem, büyük modelin geleceği bağımsız biçimde bildiği anlamına gelmez. Önerilen tokenlar zaten mevcut olduğu için model, her konumdaki sonraki token olasılıklarını aynı ileri geçiş içinde hesaplayabilir.
Süreç genel olarak şöyledir:
- Draft model birkaç tokenlık aday devam oluşturur.
- Target model bu aday diziyi değerlendirir.
- Kabul koşulunu sağlayan başlangıç tokenları korunur.
- İlk reddedilen konumda uygun bir düzeltme tokenı seçilir.
- Yeni bağlam üzerinden bir sonraki tahmin ve doğrulama turu başlar.
Bir token reddedildiğinde, onun arkasındaki adaylar doğrudan kabul edilmez. Çünkü bu adaylar artık geçerli olmayan bir devam üzerinden üretilmiştir.
Draft modelin önerdiği tokenların tamamı kabul edilirse, doğrulama turunda target modelden ek bir token da üretilebilir.
“Aynı Çıktı Korunur” Ne Anlama Geliyor?
Bu konuda iki farklı durumu ayırmak gerekir.
Greedy decoding kullanıldığında, her adımda en yüksek olasılıklı token seçilir. Uygun doğrulama mekanizmasıyla, doğrudan target model kullanılarak oluşturulacak token dizisi korunabilir.
Olasılıksal örneklemede ise model, olasılık dağılımından token seçer. Klasik, dağılımı koruyan speculative sampling algoritmaları; kabul, ret ve düzeltme işlemlerini target modelin örnekleme dağılımını koruyacak şekilde düzenler.
Bu, iki ayrı çalıştırmada ekranda mutlaka aynı cümlenin görüneceği anlamına gelmez. Rastgele örnekleme zaten farklı yanıtlar üretebilir.
Dolayısıyla daha doğru ifade şudur: Uygun algoritma ve örnekleme koşullarında, target modelin çıktı dağılımı korunarak üretim hızlandırılabilir. Her spekülatif üretim varyantının aynı güvenceyi sunduğu varsayılmamalıdır.
Hız Kazancını Ne Belirliyor?
En önemli etkenlerden biri kabul oranıdır. Draft modelin önerileri target model tarafından sık kabul ediliyorsa, tek doğrulama turunda daha fazla token ilerletilebilir.
Ancak yüksek kabul oranı tek başına yeterli değildir. Draft modelin çalıştırılması da zaman alır.
| Etken | Hız üzerindeki etkisi |
|---|---|
| Draft modelin hızı | Tahmin üretmenin ek maliyetini belirler. |
| Token kabul oranı | Bir doğrulama turunda ne kadar ilerlenebileceğini etkiler. |
| Önerilen token sayısı | Daha uzun ilerleme fırsatı sunarken doğrulama maliyetini artırabilir. |
| Donanım ve bellek bant genişliği | Toplu doğrulamanın avantajını etkiler. |
| Eşzamanlı istek sayısı | Tek istek gecikmesi ile toplam servis kapasitesi arasındaki dengeyi değiştirir. |
Çok küçük bir draft model hızlı olabilir, fakat target modelle yeterince uyumlu tahminler üretemeyebilir. Daha büyük bir draft modelin kabul oranı yüksek olsa bile kendi hesaplama maliyeti hız kazancını azaltabilir.
Bu nedenle amaç, en küçük modeli seçmekten ziyade tahmin kalitesi ile tahmin maliyeti arasında uygun dengeyi bulmaktır.
İlk Token mı, Uzun Cevaplar mı Hızlanıyor?
Speculative Decoding esas olarak cevabın üretim aşamasını, yani decoding sürecini hedefler.
Uzun bir girişin modele işlenmesi, prefill adı verilen ayrı bir aşamadır. Kullanıcı çok uzun bir belge gönderdiğinde ilk tokena kadar geçen sürenin önemli bölümü bu işlemden kaynaklanabilir.
Bu nedenle Speculative Decoding:
- Uzun cevapların tamamlanma süresini azaltabilir.
- Üretim sırasında tokenların daha hızlı gelmesini sağlayabilir.
- İlk token gecikmesini her durumda azaltmaz.
Kısa bir cevapta draft modelin ek maliyeti belirgin olabilir. Uzun üretimlerde ise kabul edilen tokenların sağladığı kazanç daha fazla birikebilir.
Ayrı Bir Küçük Model Kullanmak Zorunlu mu?
Hayır. Ayrı bir draft model, yöntemin yaygın açıklanan biçimidir; ancak tek seçenek değildir.
Bazı yaklaşımlar aday tokenları ek tahmin başlıklarıyla üretir. Bazıları modelin ara temsillerinden yararlanır. Başka düzeneklerde ise mevcut bağlamdaki tekrarlar kullanılarak aday devamlar oluşturulabilir.
Medusa ve EAGLE gibi yaklaşımlar, aday üretimini farklı şekillerde tasarlayan çalışmalara örnektir. Bunların model değişikliği, eğitim gereksinimi, doğrulama yapısı ve örnekleme güvenceleri ayrı ayrı değerlendirilmelidir.
Ortak amaç, büyük modelin pahalı üretim adımlarını daha verimli kullanmaktır.
Nerelerde Fayda Sağlayabilir?
Kod tamamlama, tekrarlayan yapılar ve öngörülebilir devamlar içerdiğinden uygun bir kullanım alanı olabilir. Ancak farklı programlama dilleri ve görevler için kabul oranı değişebilir.
Sohbet sistemlerinde, özellikle uzun açıklamalar üretildiğinde kullanıcı daha akıcı bir yanıt deneyimi yaşayabilir.
Yapay zekâ ajanlarında, birden fazla model çağrısının toplam süresini azaltmaya katkı sağlayabilir. Bununla birlikte araç çağrıları, ağ beklemeleri veya veri tabanı sorguları baskınsa yalnızca metin üretimini hızlandırmak bütün iş akışını aynı ölçüde hızlandırmaz.
Kurumsal çıkarım servislerinde ise kazanç, gerçek trafik altında ölçülmelidir. Tek bir istekte elde edilen hız artışı, yoğun eşzamanlı kullanımda aynı oranda servis kapasitesi artışı sağlamayabilir.
Diğer Hızlandırma Tekniklerinden Farkı
Bu yöntem, çıkarımın farklı maliyetlerini azaltan tekniklerle birlikte kullanılabilir.
| Teknik | Temel hedef |
|---|---|
| KV Cache | Önceki tokenların anahtar ve değer temsillerini yeniden kullanmak |
| Prefix Caching | Ortak giriş bölümlerinin hesaplamalarını istekler arasında yeniden kullanmak |
| Quantization | Ağırlıkların veya bazı hesaplamaların bit genişliğini azaltmak |
| Speculative Decoding | Aday tokenları topluca doğrulayarak büyük modelin üretim adımlarını azaltmak |
Birlikte kullanılabilmeleri, hız kazanımlarının doğrudan toplanacağı anlamına gelmez. Her teknik sistemdeki darboğazı değiştirebilir.
Sık Sorulan Sorular
Küçük model yanlış tahmin yaparsa cevap da yanlış olur mu?
Aday tokenlar doğrudan kullanıcıya sunulmaz. Target modelin doğrulama mekanizmasından geçer. Bununla birlikte target modelin kendisi yanlış bilgi üretebilir; Speculative Decoding bir bilgi doğrulama yöntemi değildir.
Her zaman daha hızlı çalışır mı?
Hayır. Düşük kabul oranı, pahalı aday üretimi veya uygun olmayan iş yükü nedeniyle kazanç sınırlı kalabilir. Bazı koşullarda toplam süre artabilir.
İki model kullanmak daha fazla bellek gerektirir mi?
Ayrı draft model kullanılan düzeneklerde ek ağırlıklar ve önbellek için bellek gerekir. Alternatif aday üretim yöntemlerinin bellek gereksinimleri farklı olabilir.
Daha hızlı üretim, daha düşük maliyet anlamına mı gelir?
Her zaman değil. Donanım kullanımı ve toplam hesaplama maliyeti birlikte ölçülmelidir. Bir API hizmetinin kullanıcıya uyguladığı fiyatlandırma da altyapıdaki hız kazancını doğrudan yansıtmayabilir.
Kaynaklar: Yaniv Leviathan, Matan Kalman ve Yossi Matias — Fast Inference from Transformers via Speculative Decoding; Charlie Chen ve diğerleri — Accelerating Large Language Model Decoding with Speculative Sampling; Tianle Cai ve diğerleri — Medusa: Simple LLM Inference Acceleration Framework with Multiple Decoding Heads; Yuhui Li ve diğerleri — EAGLE: Speculative Sampling Requires Rethinking Feature Uncertainty.
Editör Notu
Bu içerik, büyük dil modellerinde spekülatif üretimin çalışma mantığını ve performans koşullarını ele alan bir araştırma ve değerlendirme yazısıdır. İçerikte yer alan değerlendirmeler editoryal yorum niteliğindedir. Hız kazancı ve bellek gereksinimi; aday üretim yöntemine, token kabul oranına, örnekleme ayarlarına, donanıma ve eşzamanlı istek sayısına göre değişebilir. Çıktı dağılımının korunmasına ilişkin güvenceler, kullanılan algoritmanın doğrulama ve düzeltme mekanizmasına bağlıdır.