Aigest.

Cache promptów

Zaktualizowano:

Cache promptów to mechanizm przechowywania i ponownego wykorzystywania wyników przetwarzania początkowej części promptu (kontekstu) przez model językowy. Pozwala to na uniknięcie redundantnych obliczeń, gdy ten sam kontekst jest używany wielokrotnie z różnymi uzupełnieniami.

Cache promptów, znany również jako KV cache (Key-Value cache), jest techniką optymalizacyjną stosowaną w dużych modelach językowych, zwłaszcza tych opartych na architekturze Transformer. Gdy model przetwarza długi prompt, dzieli go na mniejsze tokeny. Dla każdego tokenu obliczane są wektory kluczy (Key) i wartości (Value), które są następnie wykorzystywane w mechanizmie uwagi (attention mechanism).

Zamiast przeliczać te wektory od nowa przy każdym kolejnym zapytaniu, jeśli początkowa część promptu (np. instrukcje systemowe, kontekst rozmowy) pozostaje niezmieniona, cache promptów przechowuje już obliczone wektory Key i Value dla tej stałej części. Gdy użytkownik dodaje nowe tokeny do promptu, model musi przetworzyć tylko te nowe tokeny i połączyć ich wektory z tymi już zapisanymi w cache'u.

Korzyści z użycia cache promptów są znaczące:

  • Redukcja latencji: Model generuje odpowiedź szybciej, ponieważ unika powtarzania kosztownych obliczeń dla niezmienionego kontekstu.
  • Obniżenie kosztów: Mniejsza liczba operacji obliczeniowych przekłada się na niższe zużycie zasobów i, co za tym idzie, niższe koszty operacyjne, szczególnie w przypadku długich promptów lub scenariuszy, gdzie ten sam kontekst jest wielokrotnie rozszerzany (np. w chatbotach).

Mechanizm ten jest szczególnie efektywny w interaktywnych zastosowaniach, takich jak chaty, gdzie historia rozmowy stanowi stały kontekst, do którego dodawane są nowe wypowiedzi użytkownika. Cache promptów różni się od ogólnego cache'owania odpowiedzi, ponieważ dotyczy wewnętrznych reprezentacji modelu, a nie finalnych wygenerowanych tekstów.