İçeriğe geç
edumintsBlog
LLM3 dk okuma

KV Önbelleği GPU'dan Yavaş Olduğunda: Bağlam Paralel Prefill İçin Uzak KV Katmanlarını Ölçeklendirme

Kaynak: Hugging Face Papers

Paylaş
LLMEdumints Blog
İçindekiler 4 başlık

Problem Tanımı ve Üretim Ortamı Gözlemleri#

Uzun bağlamlı (long-context) büyük dil modeli (LLM) sunumlarında prefill (ön doldurma) maliyetini düşürmenin standart yolu, dikkat (attention) KV önbelleğini istekler arasında yeniden kullanmaktır. Üretim sistemleri, motor başına düşen yerel önbelleği tüm motorların paylaştığı uzak bir katmanla (remote tier) desteklemektedir. Bu çalışmada, çok başlı gizli dikkat (MLA) mimarisine sahip FP8 uzmanların karışımı (MoE) modeli olan GLM-5.3, bağlam paralelliği (PCP8) çalıştıran 8xB300 düğümleri üzerinde ayrıştırılmış (disaggregated) bir dağıtımda incelenmiştir.

Valkey tabanlı LMCache uzak katmanını etkinleştirmek medyan ilk token süresini (TTFT) değiştirmemiş, ancak 16 bin token'lık p99 gecikmesini 3.96 saniyeden 17.3 saniyeye çıkarmıştır. İzole bir motorda gerçek üretim akışı yeniden oynatıldığında, uzak önbellek isabetinin (hit) 0.88 saniye sürdüğü, istemi sıfırdan yeniden hesaplamanın (recompute) ise sadece 0.31 saniye aldığı görülmüştür. Senkron yükleme, yüksek isabet oranlı bir akışı kararsız bir kuyruğa dönüştürmüş; GPU'lar yalnızca %7 meşgulken p99 gecikmesi 83.32 saniyeye fırlamıştır.

İki Terimli Maliyet Modeli#

Geliştirilen iki terimli maliyet modeli bu darboğazı net biçimde açıklamaktadır:

  • Uzak önbellek isabeti yalnızca uzak katman B = sR* (bu model ve GPU için 2.53 GB/sn) değerinden daha yüksek bant genişliği sağladığında kazançlıdır.
  • İsabet başına sabit motor maliyeti (T0 ~ 0.33 sn), yaklaşık 17 bin token'dan daha kısa istemlerde hiçbir bant genişliği değerinde yeniden hesaplamayı geçemeyeceğini gösterir.

Mimari Çözümler ve Optimizasyon Adımları#

Maliyet modelinin rehberliğinde sistemde dört temel mühendislik iyileştirmesi uygulanmıştır:

  • (i) MLA KV Deposunun Parçalanması (Sharding): MLA KV deposu PCP rank'ları arasında parçalanmıştır. Mevcut rank'lar arası minimum aramasının en uzun önbelleklenmiş öneki döndürdüğü kanıtlanmış ve kolektif işlemleri asla senkronizasyondan çıkarmayan bir yükleme protokolü eklenmiştir.
  • (ii) Uzak Katmanın Rank Bazlı Bölünmesi: Uzak katman, koordinasyon olmaksızın her rank için bir sunucu örneği olacak şekilde bölünmüş ve GET bant genişliği 6.3 kat artırılarak 10.76 GB/sn seviyesine çıkarılmıştır.
  • (iii) Asenkron Yükleme: Parçalanmış depoya asenkron yükleme mekanizması eklenerek GPU'ların bloklanması önlenmiştir.
  • (iv) İstemci Hatalarının Giderilmesi: Sınırsız takılmalara (stalls) yol açan üç kritik istemci hatası düzeltilmiştir.

Sonuçlar ve Yazılım Geliştirme Çıkarımları#

İstem token'larının %98.5'inin uzak katmandan sunulduğu yoğun isabetli akışta p99 gecikmesi 83.32 saniyeden 0.67 saniyeye düşmüştür. Parçalanmış depo, prefill işlem hacmini (throughput) %14, ana depodaki (upstream) çekirdek düzeltmesiyle birlikte %34 artırmıştır. Tüm değişiklikler LMCache projesine aktarılmıştır.

Pratik Çıkarımlar:

  • Önbellek her zaman daha hızlı değildir: Modern GPU'ların hesaplama gücü ağ/bellek aktarımından hızlı olabilir; kısa bağlamlarda yeniden hesaplama yapmak uzak önbellekten okumaktan daha ucuzdur.
  • Senkron G/Ç darboğazı: Dağıtık çıkarım (inference) sistemlerinde ağ aramalarını senkron yapmak GPU kullanımını çökertir; asenkron yükleme ve sharding zorunludur.


Bu konuyu derinlemesine öğrenmek isterseniz: Ölçeklendirme ve Optimizasyon modülüne göz atın.

Kaynak ve atıf

Bu yazı, Hugging Face Papers üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:

  • huggingface.co/papers/2610.21500