TriAttention: Efficient Long Reasoning with Trigonometric KV Compression
KV Cache가 뭔지부터Transformer는 토큰을 하나씩 생성할 때마다 이전 모든 토큰의 K, V를 다시 계산해야 한다. 이걸 피하려고 이전에 계산한 K, V를 메모리에 저장해두는 게 KV Cache다. 매 step마다 새 토큰의 K, V만 추가하면 되니까 중복 계산을 없앨 수 있다.문제는 메모리다.메모리 = 2 × L × H × d_head × T × bytes_per_element 각 항의 의미는 이렇다. 2는 K와 V를 각각 저장하기 때문이고, L은 레이어 수, H는 레이어당 헤드 수, d_head는 헤드 하나의 차원, T는 시퀀스 길이, bytes_per_element는 dtype에 따른 바이트 수(FP16이면 2, BF16이면 2, FP32이면 4)다. d_model = H × d_head..
더보기