« Tüm yayınlar

Android'de llama.cpp KV Durumuyla TTFT 9,9x Azaldı

EdgeSync-LLM, llama.cpp KV API'leriyle tekrar prompt işlemeden Android'de TTFT'yi 9,9x düşürdü; sahte 8,8x hızlanmayı da tespit edip eledi.

EdgeSync-LLM adlı proje, aynı sistem promptu veya RAG bağlamı gibi tekrarlanan öneklerin llama.cpp içinde her seferinde yeniden hesaplanmasını önlemeyi hedefliyor. llama_state_seq_get_data ve llama_state_seq_set_data gibi resmi API'ler kullanılarak önekin KV önbellek durumu ilk istekte kaydediliyor, sonraki isteklerde ise sadece yeni son ek decode edilip önbellek geri yükleniyor. Gerçek bir Android ARM64 telefonda Qwen2.5-0.5B-Instruct modeliyle yapılan testlerde, 123 token'lık paylaşılan önekte ortalama TTFT 4828 ms'den 486 ms'ye inerek 9,9 kat iyileşme sağlandı; x86-64 üzerinde ise 7,5 kat kazanım ölçüldü. Projenin en kritik bulgusu ise ilk uygulamanın ham K/V tensörlerini doğrudan kopyalayarak sahte bir 8,8x hızlanma göstermesiydi; aslında dikkat mekanizması geri yüklenen öneki göremiyor ve context sessizce düşüyordu. Bu hatayı yakalamak için geliştirici, sıcak çıktının soğuk çıktıyla eşleştiğini VE sadece son ekten üretilen çıktıyla eşleşmediğini doğrulayan iki ayrı doğruluk testi ekledi; sadece gecikme ölçümü bu sorunu yakalayamazdı. Proje hâlâ birçok kısıtla birlikte yayınlandı: yaklaşık benzer öneklerin paylaşılması, motorlar arası önbellek taşınabilirliği ve katman bazlı bölme gibi konular henüz doğrulanmadı ya da çalışmıyor. Kod ve ölçüm metodolojisi GitHub'da açık; yazar, bulguyu çürütmeye çalışacak katkılara özellikle değer veriyor.