PagedAttention Nedir? Büyük Dil Modelleri GPU Belleğini Nasıl Daha Verimli Kullanıyor?
PagedAttention, KV Cache’in bellekte daha esnek yerleştirilmesini sağlayan bir attention yaklaşımıdır. İşletim sistemlerindeki sayfalama fikrinden yararlanarak verileri küçük bloklar hâlinde yönetir.
2023’te tanıtılan yöntem, vLLM çıkarım ve sunum sisteminin temel tasarım fikirlerinden biridir. Amaç, bellek israfını azaltarak aynı donanımla daha fazla isteğin işlenebilmesini sağlamaktır.
PagedAttention Nedir?
PagedAttention, bir token dizisinin KV Cache verilerinin bellekte kesintisiz tek bir alan kaplamasını gerektirmeyen bir yöntemdir.
Önbellek, belirli sayıda tokenın Key ve Value tensörlerini içeren bloklara ayrılır. Bu bloklar belleğin farklı yerlerinde bulunabilir. Attention hesaplamasını gerçekleştiren yazılım, gerekli blokları bir eşleme tablosu üzerinden bulur.
Böylece tokenların mantıksal sırası korunurken fiziksel bellek yerleşimi daha esnek hâle gelir.
Önce KV Cache’i Anlamak Gerekir
Otoregresif Transformer modelleri metni adım adım üretir. Yeni token işlenirken önceki tokenların Key ve Value verileri yeniden kullanılabilir.
KV Cache, bu verileri saklar. Tamamlanmış attention sonuçlarının veya hazır yanıtların deposu değildir. Yeni tokenın geçmiş bağlamla ilişkisini hesaplamak için önbellekteki verilere yine erişilir.
Standart tam attention kullanan bir modelde, diğer koşullar sabitken saklanan token sayısı arttıkça KV Cache ihtiyacı da büyür. Model mimarisi, veri hassasiyeti ve aynı anda işlenen dizi sayısı toplam bellek tüketimini etkiler.
Bellek İsrafı Nasıl Oluşur?
Bir isteğin ne kadar uzun yanıt üreteceği baştan kesin bilinmeyebilir. Büyük, kesintisiz önbellek alanları ayıran tasarımlarda ihtiyaçtan fazla yer rezerve edilebilir.
İstekler farklı zamanlarda başlayıp tamamlandıkça kullanılabilir bellek parçalı hâle de gelebilir. Ayrıca ortak bir girişten üretilen farklı yanıtlar için aynı KV verilerinin tekrar saklanması ek maliyet oluşturabilir.
PagedAttention araştırması, bu sorunların birlikte işlenebilen istek sayısını sınırlayabildiğini göstermiştir. Ancak bütün çıkarım sistemlerinin aynı bellek ayırma yöntemini kullandığı varsayılmamalıdır.
PagedAttention Nasıl Çalışır?
Temel işleyiş şöyledir:
-
KV verileri bloklara ayrılır: Her blok belirli sayıda token için yer sağlar.
-
Bloklar ihtiyaç oldukça tahsis edilir: Dizi büyüdükçe yeni bloklar kullanıma alınır.
-
Blok tablosu eşlemeyi tutar: Mantıksal blokların bellekteki konumları izlenir.
-
Attention hesaplaması blokları okur: Uyumlu kernel, gerekli Key ve Value verilerini bu konumlardan alır.
-
Artık gerekmeyen bloklar yeniden kullanılabilir: Paylaşım veya önbellekte tutma politikalarına göre bellek yönetilir.
Örneğin blok kapasitesinin 16 token olduğunu varsayalım. 35 tokenlık bir dizi için üç blok gerekir. Son blokta 13 tokenlık kullanılmayan alan kalır; baştan çok daha uzun bir yanıt için büyük bir alan ayırmak gerekmez.
Bu örnekteki 16 token, açıklama amacıyla seçilmiştir; bütün uygulamalar için zorunlu blok boyutu değildir. Bloklama, bellek israfını azaltır ancak tamamen ortadan kaldırmaz.
KV Cache’i Sıkıştırıyor mu?
PagedAttention’ın temel işlevi sayısal sıkıştırma değildir. Aynı KV verilerinin bellekte nasıl yerleştirileceğini ve paylaşılacağını düzenler.
Farklı optimizasyonlar farklı sorunları ele alır:
| Teknik | Temel işlevi |
|---|---|
| PagedAttention | KV Cache’i bloklar üzerinden erişilebilir hâle getirir |
| KV Cache kuantizasyonu | Saklanan değerlerin sayısal hassasiyetini azaltır |
| Offloading | Önbelleğin bir bölümünü başka bellek katmanlarına taşır |
| Prefix caching | Ortak başlangıç için hesaplanan KV verilerini yeniden kullanır |
Dolayısıyla sayfalama kullanılması, önbelleğin otomatik olarak CPU belleğine veya diske taşındığı anlamına gelmez.
Prefix Sharing Nasıl Çalışır?
Farklı istekler aynı başlangıç tokenlarını içeriyorsa, uygun koşullarda bu bölüme ait KV verileri paylaşılabilir.
Örneğin aynı uzun belge üzerinden farklı sorular sorulan bir uygulamada, belgenin ortak başlangıç bölümü tekrar hesaplanmadan kullanılabilir. Ancak anlam benzerliği yeterli değildir. Token dizisinin ve önbelleği etkileyen model, adaptör veya diğer bağlam bilgilerinin uyumlu olması gerekir.
vLLM’in prefix caching tasarımı, blok içeriklerini ve önceki bağlamı dikkate alan anahtarlarla yeniden kullanılabilir verileri belirler.
Bu yeniden kullanım özellikle girişin işlendiği prefill aşamasında kazanç sağlar. Yeni tokenların üretildiği decode aşamasındaki hesaplamaları doğrudan ortadan kaldırmaz. Ayrıca ilgili blokların hâlâ önbellekte bulunması gerekir.
Her Yanıtı Daha Hızlı mı Üretir?
PagedAttention’ın önemli katkılarından biri throughput, yani sunucunun birim zamanda tamamlayabildiği toplam iş miktarıdır.
Belleğin daha verimli kullanılması, daha fazla dizinin birlikte işlenmesine olanak sağlayabilir. Bunun sonucunda toplam token üretimi veya istek kapasitesi artabilir.
Ancak daha yüksek throughput, tek bir kullanıcının yanıtının her koşulda daha hızlı tamamlanacağı anlamına gelmez. İstek yoğunluğu, zamanlama ve toplu işleme büyüklüğü gecikmeyi etkiler. Özgün araştırmada raporlanan kazanımlar, belirli sistemler ve deney koşulları kapsamındadır.
FlashAttention ile Aynı mı?
Hayır. FlashAttention, attention hesaplaması sırasında GPU’nun bellek katmanları arasındaki veri hareketini azaltmaya odaklanır. Büyük ara attention matrisini belleğe tamamen yazmadan hesaplama yapabilmesi, temel özelliklerinden biridir.
PagedAttention ise KV Cache’in dağınık bloklar üzerinden kullanılabilmesini sağlar. Uygun çıkarım altyapıları bu iki fikri birlikte değerlendirebilir; ancak bunun için kernel ve bellek düzeninin uyumlu olması gerekir.
vAttention Nasıl Farklılaşıyor?
vAttention, dinamik KV Cache yönetimine farklı bir yaklaşım getirir. Uygulamanın gördüğü sanal adres alanını kesintisiz tutarken fiziksel belleği ihtiyaç oldukça eşler.
Bu tasarım, attention kernel’larının uygulama düzeyindeki blok tablolarına göre yeniden yazılması ihtiyacını azaltmayı amaçlar. Araştırma, farklı bellek yönetimi tercihlerinin farklı iş yüklerinde avantaj sağlayabildiğini gösterir.
vAttention’ın sonuçları da bütün donanım ve modeller için genel üstünlük iddiası olarak yorumlanmamalıdır.
Kullanım Alanları ve Sınırlamaları
PagedAttention yaklaşımı; sohbet servisleri, RAG uygulamaları, ajan altyapıları ve toplu metin üretimi gibi değişken uzunlukta isteklerin işlendiği sistemlerde değerlendirilebilir.
Buna karşılık blok yönetimi, erişim tabloları ve uyumlu kernel’lar ek mühendislik gerektirir. Çok küçük bloklar yönetim yükünü artırabilir; büyük bloklar ise kullanılmayan alanı büyütebilir.
Ayrıca KV Cache’in daha iyi yönetilmesi, model ağırlıklarının veya diğer çalışma verilerinin bellek ihtiyacını ortadan kaldırmaz.
Sık Sorulan Sorular
PagedAttention modelin bağlam penceresini büyütür mü?
Tek başına büyütmez. Belleği daha verimli kullanabilir; modelin desteklediği bağlam sınırı ayrı bir özelliktir.
Modeli yeniden eğitmek gerekir mi?
Uygun model ve çıkarım altyapısında, bu bellek düzenini kullanmak için yeniden eğitim gerekmez.
Yanıtların doğruluğunu artırır mı?
Temel amacı doğruluğu artırmak değildir. Attention hesaplamasının bellek düzenini optimize eder; sayısal uygulama ayrıntıları küçük farklılıklar oluşturabilir.
GPU belleği yine de dolabilir mi?
Evet. Uzun bağlamlar, büyük modeller ve yoğun eş zamanlı kullanım mevcut belleği aşabilir.
PagedAttention’ın değeri, değişken büyüklükteki KV Cache verilerini daha esnek yönetebilmesidir. Gerçek kazanç; model, istek dağılımı, kernel uygulaması ve sunucunun zamanlama politikaları birlikte değerlendirilerek ölçülmelidir.
Kaynaklar: Kwon ve arkadaşları — Efficient Memory Management for Large Language Model Serving with PagedAttention; vLLM — Easy, Fast, and Cheap LLM Serving with PagedAttention ve Automatic Prefix Caching dokümantasyonu; Hugging Face Transformers — How Caching Works; vAttention: Dynamic Memory Management for Serving LLMs without PagedAttention; Dao ve arkadaşları — FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness.
Editör Notu
Bu içerik, kamuya açık büyük dil modeli sunum araştırmaları ve resmî teknik dokümantasyonlardan yararlanılarak hazırlanmış bir araştırma ve değerlendirme yazısıdır. İçerikte yer alan değerlendirmeler editoryal yorum niteliğindedir. PagedAttention’ın sağlayacağı bellek ve performans kazanımları; model mimarisine, donanıma, isteklerin uzunluğuna ve çıkarım altyapısına göre değişebilir.