← Back to Blog
Technical

ai'da memory anatomisi

ai'da memory anatomisi

KV-cache, Flash Attention ve Agent Memory ile alakalı bir blog yazısı. Teknik yöntemler olan KV-cache ve attention mekanizması ile hafızayı anlatırken, bir de agent memory teknikleriyle bu hafıza kısmını biraz daha arayüz tarafında nasıl yönetebileceğimizi anlatıyor.

KV Cache Mantığı: Her decode aşamasında bir önceki inputların hepsini girmek yerine, cache'den geçmişi okur ve sadece son query'yi hesaplamaya dahil eder.

  • Zaman (Time Complexity): O(N^2)'den O(N)'e düşer. Çünkü her adımda sadece tek bir yeni token'ı işleriz. Bu muazzam bir hız kazandırır.
  • Hafıza (Space Complexity): İşte burası kritik. Hafıza maliyeti düşmez, aksine O(N) olarak doğrusal şekilde büyümeye devam eder. Çünkü her yeni üretilen kelimenin KV değerlerini RAM'e eklemeye devam ediyoruz. Bağlam (context) uzadıkça GPU'nun VRAM'i şişmeye başlar (buna KV Cache OOM - Out of Memory hatası denir).

Aslında bu durum, işletim sistemlerindeki optimizasyonlara benziyor. Kısaca önce direkt olarak bir compute verimliliği hesaplanıyor ama herhangi bir şekilde memory optimizasyonu yapılmıyor.

Bunun için de Flash Attention ve tiling (ayırma) işlemleri sayesinde veriyi donanımsal bir HBM yerine SRAM'e (daha içteki, GPU'ya en yakın hızlı RAM'e) yazıyor. Böylece bu hafıza kısmının yavaşlığını da azaltıyor. Ama bunun verimli kullanılabilmesi için PagedAttention ve Continuous Batching kullanılıyor, bu da bize aslında "pagination" (sayfalama) ile birlikte verimlilik sağlamış oluyor.