Transformers — Cache 클래스와 캐시 전략

Transformers — Cache 클래스와 캐시 전략

자기회귀 모델은 한 토큰씩 예측할 때마다 이전 KV를 매번 다시 계산하게 돼요. KV 캐시는 이 계산을 저장해 재사용하므로 성능 최적화(계산 시간 감소, 응답 속도 향상)의 핵심이에요. Transformers는 여러 Cache 클래스를 제공해요.

캐시 종류

  • DynamicCache(기본): 생성이 진행됨에 따라 캐시 크기가 동적으로 커져요.
  • StaticCache: 최대 크기를 미리 할당해 torch.compile 같은 JIT 최적화와 잘 맞아요(메모리 더 사용).
  • Quantized Cache: 낮은 정밀도로 메모리를 아껴요(저메모리, sliding/offload 미지원).

cache_implementation="static" 또는 "offloaded" 같은 값으로 generate()에서 캐시 전략을 고를 수 있어요.

캐시 오프로딩

메모리가 부족할 때 KV 캐시를 CPU로 옮겨 GPU 메모리를 아낄 수 있어요. cache_implementation="offloaded"로 켜요.

더 알아보기