Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Chunked Prefill

Parçalı ön doldurma, uzun istemleri diğer isteklerin kod çözme işlemleriyle dönüşümlü olarak işlenen belirteç parçalarına böler; böylece tek bir uzun istem kuyruğun geri kalanını engellemez.

Parçalı ön doldurma, uzun bir girdi istemini daha küçük belirteç gruplarına bölüp birkaç adımda işleyen ve bu adımları diğer isteklerin belirteç üretimi ile harmanlayan bir model sunma tekniğidir. Bu özellik olmadan, uzun bir istemi kabul eden bir çıkarım motoru bir adımın tamamını bu isteme ayırır ve diğer kullanıcılara aktarılmakta olan tüm yanıtlar işlem bitene kadar duraklar. 2023'te yayımlanan SARATHI makalesi parçalı ön doldurmayı tanıttı; devamındaki Sarathi-Serve çalışması bunun üzerine "duraksamasız" zamanlama kurdu. DeepSpeed-FastGen'in Dynamic SplitFuse özelliği de aynı fikri kullanır. Parçalı ön doldurma artık vLLM'de varsayılan olarak açıktır ve birçok açık ağırlıklı büyük dil modeline (LLM) hizmet veren motorlar olan SGLang ve TensorRT-LLM'de kullanılabilir.

Ön Doldurma, Çözümleme ve Üretim Duraklamaları#

Otokendil modeli Transformer çıkarımının iki aşaması vardır:

  • Ön doldurma: Model, istemdeki her belirteci paralel olarak işler, anahtarlarını ve değerlerini hesaplar ve bunları KV önbelleğinde saklar. Ön doldurma, okunan ağırlık baytı başına çok sayıda işlem yapar; bu nedenle genellikle işlem gücüyle sınırlıdır.
  • Çözümleme: Model her istek için her adımda bir belirteç üretir ve her seferinde önbelleğin tamamını okur. Çözümleme, okunan bayt başına az hesaplama yapar; bu nedenle genellikle bellek bant genişliğiyle sınırlıdır.

20.000 belirteçlik ön doldurma içeren bir GPU adımı, çözümleme adımından çok daha uzun sürer; bu yüzden toplu işteki her istek bekler. Sarathi-Serve bu duraklamaları üretim duraklamaları olarak adlandırır. Bu duraklamalar, kendi istemleri kısa olan kullanıcıların belirteçler arası gecikmesinde ani artışlar olarak görülür.

Parçalı Ön Doldurma Nasıl Çalışır#

Zamanlayıcı her adım için bir belirteç bütçesi belirler; vLLM'de bu bütçe max_num_batched_tokens ile ayarlanır. Önce sürmekte olan her çözümleme işlemine bir belirteç ekler, ardından kalan bütçeyi bekleyen istemlerin parçalarıyla doldurur. Sığmayan bir istem sonraki adımda devam eder; tüm istem işlenip çözümleme başlayana kadar KV önbelleği parça parça genişler. İki aşamanın tek adımda harmanlanması GPU'nun kullanımını da iyileştirir; çünkü çözümleme işlemlerinin boş bıraktığı hesaplama kapasitesini ön doldurma parçaları doldurabilir:

Parçalara ayırma yalnızca istem belirteçlerinin ne zaman işlendiğini değiştirir. Her parça, nedensel bir maske altında, kendisinden önceki tüm parçaların ve kendi belirteçlerinin önbelleğe alınmış anahtar ve değerlerine dikkat eder; bu nedenle sonuç tek geçişli ön doldurmayla aynıdır. PyTorch içindeki bir dikkat katmanı bunu gösterir:

import torch
import torch.nn.functional as F

torch.manual_seed(0)
prompt_len, chunk = 1000, 256
q, k, v = torch.randn(3, 1, 8, prompt_len, 64).unbind(0)  # one layer: 8 heads, 64 dims each

# One-shot prefill: all prompt tokens attend causally in a single pass
full = F.scaled_dot_product_attention(q, k, v, is_causal=True)

# Chunked prefill: each chunk attends to the cached keys and values of earlier chunks plus itself
outputs = []
for start in range(0, prompt_len, chunk):
    end = min(start + chunk, prompt_len)
    mask = torch.ones(end - start, end, dtype=torch.bool).tril(diagonal=start)  # causal over absolute positions
    q_chunk, k_cached, v_cached = q[..., start:end, :], k[..., :end, :], v[..., :end, :]
    outputs.append(F.scaled_dot_product_attention(q_chunk, k_cached, v_cached, attn_mask=mask))
chunked = torch.cat(outputs, dim=2)

print(f"{len(outputs)} chunks, same result as one pass: {torch.allclose(full, chunked, atol=1e-5)}")

4 chunks, same result as one pass: True çıktısını verir: 1.000 belirteçlik istem 256, 256, 256 ve 232 belirteçlik parçalara bölünerek işlenir ve çıktılar tek geçişli işlemle eşleşir.

  • Sürekli toplu işleme: Tüm toplu işin tamamlanmasını beklemek yerine her adımda istek ekler ve çıkarır. Parçalı ön doldurma, bu döngü içinde uzun istemlerin zamanlanmasını sağlar.
  • PagedAttention: KV önbelleğini sabit boyutlu sayfalarda saklar; böylece birkaç adıma yayılan ön doldurma sırasında istemin önbelleği, baştan tam uzunluğu için bellek ayırmadan büyüyebilir.
  • İstem önbelleğe alma: Tekrarlanan bir istem önekinin önbelleğe alınmış anahtar ve değerlerini yeniden kullanır; böylece o bölüm için ön doldurma tamamen ortadan kalkar.
  • Ayrıştırılmış ön doldurma ve çözümleme: İki aşamayı ayrı GPU havuzlarında çalıştırır ve KV önbelleğini aralarında aktarır; böylece her havuz kendi darboğazına göre ölçeklenip ayarlanabilir.
  • Spekülatif çözümleme: Birden fazla belirteğin taslağını oluşturup bunları tek geçişte doğrulayarak çözümleme aşamasını hızlandırır.

Uygulamalar#

Parçalı ön doldurma, uzun ve kısa istemlerin aynı sunucuyu paylaştığı ortamlarda en çok fayda sağlar. Bağlam penceresini 50 sayfalık bir raporla dolduran bir geri getirimle zenginleştirilmiş üretim (RAG) asistanı, diğer kullanıcıların sohbetleri akmaya devam ederken raporu parçalar hâlinde önceden işleyebilir. Görüntü-dil modelleri (VLM) her isteme yüzlerce veya binlerce görüntü belirteci ekler; dolayısıyla açıklama için kare gönderen kamera işlem hatları tam da bu karışımı üretir. Ultralytics LLM arayüzü, kendi sunucunda barındırılan vLLM sunucusu da dâhil olmak üzere OpenAI ile uyumlu tüm uç noktalara metin ve görüntü gönderir. Burada karelerde insan algılayan bir YOLO26 işlem hattının bu kareleri açıklatma istekleri, diğer kullanıcıların trafiğiyle birlikte parçalar hâlinde önceden işlenir.

Belirteç Bütçesini Ayarlama#

Bütçe, iki gecikme ölçütü arasında ödünleşim yaratır. Küçük bütçe, her adımda ön doldurmaya az yer bırakır; bu, akış kullananların belirteçler arası gecikmesini düşük tutarken yeni istemlerin ilk belirtece ulaşma süresini uzatır. Büyük bütçe bunun tersini yapar. Uzun bir istemin sonraki her parçası, önceki parçaların büyüyen KV önbelleğini de yeniden okur; dolayısıyla çok küçük parçalar bellek trafiğini artırır. Operatörler bütçeyi gerçekçi istem uzunluklarında medyan ve kuyruk çıkarım gecikmesi, ilk belirtece ulaşma süresi ve iş hacmine göre ayarlar. vLLM optimizasyon kılavuzu, belirteçler arası gecikmeye öncelik veren bir bütçe olarak 2.048 belirteci belirtir ve büyük GPU'larda küçük modellerle en yüksek iş hacmi için 8.192'den fazla belirteç önerir.

Explore solutions

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla