01Üretim ardışıktır; ama doğrulama paralel olabilir#
Bir dil modeli yanıtı token token üretir: her token, bir öncekini bekler (tahmin ve örnekleme yazısı). Büyük bir model için her adım, çok sayıda ağırlığın bellekten okunması demektir; bu yüzden üretim hızını sınırlayan çoğu zaman çağrı sayısıdır.
Fikir şu: küçük ve hızlı bir taslak model, birkaç tokenı peşinen tahmin etsin. Büyük model bu önerilerin hepsini tek bir ileri geçişte, paralel olarak değerlendirsin. Öneriler büyük modelin kendi dağılımıyla uyumluysa kabul edilir; uyumsuzsa o noktadan sonrası atılır ve büyük modelin dağılımından düzeltilmiş bir token seçilir. Leviathan ve arkadaşlarının yöntemi, mevcut modellere ek eğitim ya da mimari değişikliği gerektirmeden uygulanabilir ve çıktı dağılımını değiştirmez; yazarlar T5-XXL’de standart T5X uygulamasına göre 2–3 kat hızlanma bildirdi. Leviathan ve diğerleri, ICML 2023 ↗ Aynı fikri Chen ve arkadaşları “spekülatif örnekleme” adıyla 70 milyar parametreli Chinchilla’da, dağıtık bir kurulumda 2–2,5 kat hızlanmayla bildirdi. Chen ve diğerleri, 2023 ↗
02Kabul kuralı: çıktıyı neden bozmaz?#
Taslak modelin bir token için olasılığı q, büyük modelinki p olsun. Taslağın önerdiği token min(1, p/q) olasılıkla kabul edilir. Reddedilirse yeni token, artık dağılımdan (p − q’nun pozitif kısmının normalize edilmişi) seçilir. Bu kural, her turda nihai çıkışın tam olarak büyük modelin p dağılımı olmasını sağlar: taslak ne kadar kötü olursa olsun doğruluk korunur; kötü taslak yalnızca hızı düşürür.
Aşağıdaki deneyde dört sözcüklü bir sözlük var. Taslak modelin hedefe ne kadar yakın olduğunu sen seç; kabul olasılığı, çıkış dağılımı ve beklenen token sayısı tarayıcıda gerçekten hesaplanır.
Önerilen token kabul edilir mi?
Küçük model bir token önerir; büyük model p/q oranıyla kabul eder ya da reddedip artığından yeniden seçer. Taslağın kalitesini değiştir: çıkış dağılımına ne oluyor?
Çıkış dağılımı, taslak ne kadar kötü olursa olsun hedefle birebir aynı. Taslak yalnızca hızı değiştirir: iyi taslak, daha yüksek kabul ve çalışma başına daha çok token demek.
Hesabı gör
x ~ q önerilir; U(0,1) < min(1, p(x)/q(x)) ise kabul edilir. Reddedilirse normalize edilmiş max(0, p − q) dağılımından yeniden seçilir. Toplam olasılık: q(x)·min(1, p/q) + (1 − α)·max(0, p − q)/Σmax(0, p − q) = p(x). Beklenen token sayısı (1 − α^(k+1)) / (1 − α), k öneri sayısı.
Kabul olasılığı α = Σ min(p, q). Taslak hedefe hiç benzemiyorsa (düzgün dağılım) α = 0,70; hedefe %60 yakınsa 0,88; hedefle aynıysa 1,00. Dört öneri yapıldığında, büyük modelin tek çalışmasında beklenen token sayısı sırasıyla yaklaşık 2,77, 3,94 ve 5,00. Her durumda çıkış dağılımı, hedefle birebir aynı (0,50 / 0,30 / 0,15 / 0,05); 20.000 turluk bir benzetim bunu da doğrular (yaklaşık 0,503 / 0,299 / 0,149 / 0,049).
Dikkat: “beklenen token sayısı” duvar saati hızlanması değildir. Taslak modelin çalışma maliyeti, doğrulamanın paralelliği ve donanım hızı sonucu etkiler; bu demo onları içermez.
03Hangi koşulda işe yarar?#
- Taslak model hedefe yakın olmalı. Yakınlık arttıkça kabul olasılığı ve hız artar. Makalelerdeki hızlanma, yazarların seçtiği model çiftlerine ve görevlere bağlıdır.
- Dağılımın keskinliği. Büyük modelin dağılımı keskinse (düşük sıcaklık) taslağın tutturması genellikle kolaylaşır; dağılım yayıldıkça kabul oranı düşebilir (sıcaklık). Bu, kuralın değil, kabul olasılığının bir özelliğidir.
- Belleğe bağlı üretim. Fayda, büyük modelin bir çağrıda birkaç tokenı doğrulamasının neredeyse bedava olduğu durumlarda ortaya çıkar; çok büyük gruplarla çalışan sunucularda kazanç farklı olabilir.
Aynı “sırayla adım atma” sorununa, üretimin kendi yapısını değiştirerek yaklaşan bir yöntem de var: görüntü üretiminde bir gürültü yığınını düz bir yolla veriye taşımak. Flow Matching
Bu yazıyı bitirdiğinde:
- Taslak model ile büyük modelin birlikte nasıl çalıştığını anlatabilirsin.
- Kabul kuralının çıktı dağılımını neden bozmadığını ve hızın neye bağlı olduğunu söyleyebilirsin.
Cümlelerden birini kendi sözlerinle anlatamıyorsan, ilgili bölüme dön ve demoyu yeniden dene.
Flow Matching: gürültüden veriye düz bir yol
İleri · 7 dk okuma