İçeriğe geç

SGLang RadixAttention: Tree-Based Cache Management

SGLang LMSYS'den çıkan vLLM alternatifi. RadixAttention ile prefix sharing'i tree yapısı üzerinde yönetiyor. Bazı senaryolarda vLLM'den hızlı.

Şükrü Yusuf KAYA
12 dakikalık okuma
İleri

SGLang: vLLM'in Hızlı Alternatifi

SGLang (github.com/sgl-project/sglang), Stanford/Berkeley'den çıkan açık inference engine. vLLM ile aynı kategoride ama farklı tasarım.
Ana yenilik: RadixAttention — prefix tree (trie) ile cache management.

RadixAttention Mantığı#

vLLM'de cache: hash-based block lookup. Aynı block hash'i → reuse.
SGLang'de cache: prefix tree (radix tree). Tokenları bir tree'de organize eder.
Tree'de her node bir prefix. Branching ile farklı prompt varyasyonları paylaşılan parent'ı reuse eder. vLLM'de bu kadar fine-grained değil.

SGLang vs vLLM Karşılaştırma#

vLLM#

  • Block-based hash matching
  • Mature, production-tested
  • En geniş model desteği
  • Block size 16 (configurable)
  • Cache eviction: LRU
  • Multi-tenant native

SGLang#

  • Tree-based prefix matching
  • Daha agresif prefix sharing
  • Yeni (2024), hızlı evrim
  • Variable block size
  • Cache eviction: tree-aware
  • Multi-tenant + branching scenarios çok iyi

SGLang Setup#

bash
# Kurulum
pip install "sglang[all]"
 
# Server başlat
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--enable-flashinfer \
--port 30000
SGLang başlatma

Branching Senaryolarda Üstünlük#

SGLang'in en parladığı use case: paralel branch'ler.
Örnek: bir sorudan birden çok cevap variantı üret (chain-of-thought, self-consistency):
python
# Self-consistency: aynı soru 5 kez, farklı reasoning paths
import sglang as sgl
 
@sgl.function
def consistency(s, question):
s += sgl.system("Matematik sorularını çöz.")
s += sgl.user(question)
# Branching: 5 paralel cevap, hepsi aynı system+user prefix'i paylaşır
forks = s.fork(5)
for f in forks:
f += sgl.assistant(sgl.gen("answer"))
# SGLang prefix sharing: 5 fork aynı prefix'i sadece 1× hesaplar
SGLang branching ile self-consistency
vLLM'de 5 ayrı request gönderirsin — system+user 5× compute (cache yardımıyla 1 write + 4 read). SGLang'de tek tree, hepsi otomatik shared.
Real-world impact: Self-consistency, beam search, multi-sample generation use case'lerinde SGLang ~2-3× daha hızlı vLLM'den.
Pratik Karar
SGLang vLLM'i tamamen değiştirmez. Standart inference için ikisi de eşit. Branching/paralel senaryolarda SGLang öne çıkıyor.

✓ Pekiştir#

Bir Sonraki Derste#

TensorRT-LLM — NVIDIA'nın enterprise inference solution'ı.

Yorumlar & Soru-Cevap

(0)
Yorum yazmak için giriş yap.
Yorumlar yükleniyor...

İlgili İçerikler