Chunked Prefill
Parçalı ön doldurmanın (chunked prefill), eşzamanlı iş yükleri altında daha akıcı bir sunum için uzun istemleri token parçalarına bölerek LLM çıkarım gecikmesini ve verimliliğini nasıl iyileştirdiğini öğren.
Parçalı ön dolum (chunked prefill), tüm girdiyi kesintisiz tek bir işlemde işlemek yerine uzun bir girdi istemini daha küçük token gruplarına bölen bir çıkarım zamanlama tekniğidir. Bir çıkarım motoru, tek bir uzun istemin GPU'yu tekelinde tutmasını engellemek için bu parçaları diğer isteklere ait token üretimiyle araya sokabilir. Sonuç genellikle eşzamanlı iş yükleri altında daha akıcı gecikme süreleri, daha iyi donanım kullanımı ve etkileşimli büyük dil modeli uygulamaları için daha öngörülebilir bir hizmettir.
Parçalı Ön Dolum Nasıl Çalışır?#
Otoregresif Transformer çıkarımı iki ana aşamadan oluşur:
- Ön Dolum (Prefill): Model tüm girdi token'larını işler, bunların dikkat (attention) durumlarını hesaplar ve KV önbelleğini doldurur. Ön dolum, birçok token'ı paralel olarak değerlendirir ve genellikle hesaplama ağırlıklıdır.
- Kod Çözme (Decode): Model, önceden önbelleğe alınmış durumları okurken çıktıyı her seferinde bir token olmak üzere üretir. Kod çözme genellikle ham hesaplamadan ziyade bellek bant genişliği ile sınırlıdır.
Parçalama olmadan, 20.000 token'lık bir istek kısa bir isteğe göre bir çıkarım adımını çok daha uzun süre meşgul edebilir. Aktif üretimler bu durumda duraksamalar yaşayabilir ve kendi istemleri küçük olsa bile token'lar arası gecikmeyi artırabilir.
Parçalı ön dolum ile zamanlayıcı her yinelemeye bir token bütçesi atar. Önce aktif kod çözme işlemlerini zamanlar, ardından kalan bütçeyi bir veya daha fazla istem parçası için kullanır. Bir istem sığmazsa, kalan token'ları sonraki bir yineleme için bekler. Mevcut vLLM optimizasyon kılavuzu, bu yaklaşımı hesaplama ağırlıklı ön dolum çalışmasını bellek ağırlıklı kod çözme ile birleştirmenin bir yolu olarak tanımlar.
Parçalama, istem token'larının işlenme zamanını değiştirir; sırasını veya anlamını değil. Tamamlanan her parça, tüm istem hazır olana ve kod çözme başlayana kadar isteğin önbelleğe alınmış dikkat durumunu genişletir.
Parçalı Ön Dolum Neden Önemlidir?#
Parçalı ön dolum, üretim model sunumu ortamındaki birbirleriyle yarışan performans hedeflerini ele alır:
- Token'lar arası gecikme: Mevcut kod çözme isteklerine öncelik vermek, akış halindeki yanıtların uzun duraksamalar olmadan devam etmesine yardımcı olur.
- İlk token'a kadar geçen süre: Büyük parçalar yeni bir istemi daha çabuk tamamlarken, çok küçük parçalar ilk üretilen token'ını geciktirebilir.
- Verimlilik (Throughput): Ön dolum ve kod çözme çalışmalarını birleştirmek, GPU hesaplama ve bellek bant genişliğini daha etkili bir şekilde kullanabilir.
- Adalet: Uzun istemlerin çok sayıda kısa ve etkileşimli isteği bloke etme olasılığı daha düşüktür.
Bu nedenle parça veya token bütçesi ayarı bir ödünlemedir (tradeoff). vLLM zamanlayıcı yapılandırması, toplu token sınırları, kısmi ön dolumlar ve uzun istemler için eşikler sunar. Küçük bütçeler genellikle duyarlı kod çözmeyi desteklerken, büyük bütçeler daha hızlı istem alımını destekler.
Parçalama her darboğazı ortadan kaldırmaz. Uzun bağlamlar yine de önbellek belleğini tüketir ve aşırı agresif kabul, önbellek baskısına, istek önceliğine (preemption) veya yinelenen çalışmaya neden olabilir. Operatörler gerçekçi istem dağılımları altında ortalama ve kuyruk çıkarım gecikmesini, ilk token'a kadar geçen süreyi, token'lar arası gecikmeyi, verimliliği ve GPU bellek kullanımını ölçmelidir.
İlgili Çıkarım Kavramları#
Parçalı ön dolum, çeşitli optimizasyonlarla yakından bağlantılıdır ancak farklı bir amaca hizmet eder:
- Sürekli toplu işleme (Continuous batching): Üretim sırasında dinamik olarak istek ekler ve çıkarır. Parçalı ön dolum, uzun istem işlemeyi token düzeyinde sınırlarda zamanlanabilir hale getirerek bunu tamamlar.
- İstem önbellekleme (Prompt caching): Yinelenen bir istem öneki için önceden hesaplanmış durumları yeniden kullanır. Parçalı ön dolum yeni hesaplama zamanlar; bu hesaplamayı atlamaz.
- Sayfalı KV önbellek yönetimi: Önbelleğe alınmış dikkat durumlarını bellek blokları halinde düzenler. NVIDIA'nın TensorRT-LLM genel bakışı, istem işleme optimizasyonlarının yanı sıra sayfalı önbellekleme ve uçuş içi toplu işlemeyi (in-flight batching) içerir.
- Dinamik toplu işleme (Dynamic batching): NVIDIA Triton dinamik toplu işleme kılavuzunda açıklandığı gibi, ayrı istekleri toplu işler halinde birleştirir. Bireysel bir uzun istemi mutlaka kısmi ön dolumlara bölmez.
- Ayrıştırılmış ön dolum ve kod çözme: Aşamaları ayrı çalışanlar üzerinde çalıştırır. NVIDIA'nın ön dolum ve kod çözme dağıtım kılavuzu, aşamaların bunun yerine nasıl bağımsız olarak ölçeklendirilebileceğini gösterir.
Ultralytics YOLO26 Triton dağıtım iş akışı ölçeklenebilir bilgisayarlı görü çıkarımını ve otomatik toplu işlemeyi desteklese de, standart YOLO nesne tespiti otoregresif bir metin ön dolum aşamasına sahip değildir. Parçalı ön dolum öncelikle üretken dil ve çok modlu modellere uygulanır.
Gerçek Dünya Uygulamaları#
-
Belge asistanları: Erişime dayalı zenginleştirilmiş bir asistan (RAG), kısa soruları olan kullanıcılara aynı anda hizmet verirken uzun bir rapor alabilir. Raporun ön dolumunu parçalara ayırmak, tüm bağlam işlenene kadar donmak yerine devam eden sohbetlerin kod çözmeye devam etmesini sağlar.
-
Çok modlu video analizi: Bir görsel-dil modeli görüntü özellikleri, nesne açıklamaları ve uzun bir metin talimatı alabilir. Bir görü boru hattı (pipeline) önce Ultralytics YOLO tahmini kullanarak tespitler üretebilir, ardından yapılandırılmış görsel bağlamı üretken modele gönderebilir. Parçalı ön dolum, ortaya çıkan görsel ve metinsel token'ların diğer isteklerle birlikte zamanlanmasına yardımcı olur. NVIDIA'nın çok modlu kodla-ön_dolum-kod_çözme iş akışı, bu aşamaları bağımsız olarak yönetmenin ölçeklenebilirliği nasıl artırabileceğini gösterir.
Pratik Dağıtım Kılavuzu#
Parçalı ön dolumu yalnızca hedef mimariyi resmi olarak destekleyen bir sunum motoru aracılığıyla etkinleştirin. Örneğin, TensorRT-LLM arka uç yapılandırması, desteklenen dağıtımlar için parçalı bağlam kontrollerini belgelemektedir.
Tek bir isteğe güvenmek yerine gerçekçi eşzamanlılık, girdi uzunlukları ve çıktı uzunlukları ile kıyaslama (benchmark) yapın. Çalışma zamanının önerilen token bütçesiyle başlayın, ardından ilk token'a kadar geçen süreyi ve token'lar arası gecikmeyi izlerken bunu ayarlayın. Son olarak, hem çok uzun hem de çok kısa istemler içeren karışık iş yüklerini test edin; parçalı ön dolum en net operasyonel değerini burada sağlar.






