KV 캐시가 대규모 언어 모델(LLM)과 같은 트랜스포머 모델을 어떻게 최적화하는지 알아보세요. 이 기술이 Ultralytics 추론 지연 시간을 줄이고 효율성을 높이는 방법을 확인하세요.
KV 캐시(키-값 캐시)는 주로 대규모 언어 모델(LLM)에서 사용되는 핵심 최적화 기법입니다. 대규모 언어 모델(LLM) 및 기타 트랜스포머 기반 아키텍처에서 추론 지연 시간을 단축하고 및 계산 비용을 줄이기 위해 사용됩니다. 핵심적으로, KV 캐시는 이전 토큰에 대한 어텐션 메커니즘 에 의해 생성된 키-값 행렬을 저장합니다. 이러한 중간 계산을 저장함으로써, 모델은 새로운 토큰을 생성할 때마다 대화의 전체 기록에 대한 어텐션 상태를 재계산하는 것을 피합니다. 이 과정은 텍스트 생성 워크플로를 2차 복잡도 작업에서 선형 작업으로 전환하여, 챗봇 및 AI 에이전트와의 가능하게 합니다.
표준 트랜스포머 모델에서 다음 단어를 생성하려면 문맥을 이해하기 위해 이전 모든 단어에 주의를 기울여야 합니다. 캐싱이 없다면 모델은 매 단계마다 전체 시퀀스에 대한 수학적 관계를 재계산해야 할 것입니다. KV 캐시는 메모리 뱅크 역할을 하여 이 문제를 해결합니다.
KV 캐시는 현대 생성형 AI 배포의 핵심 구성 요소이지만, 그 원리는 컴퓨터 비전(CV) 분야로도 확장됩니다. 컴퓨터 비전(CV) 분야로도 확장됩니다..
모델이 커짐에 따라 KV 캐시의 크기가 병목 현상이 될 수 있으며, 기가바이트 단위의 GPU 소모합니다. 최근 발전은 이 저장 공간을 최적화하는 데 초점을 맞추고 있습니다.
KV 캐시를 다른 캐싱 및 최적화 용어와 구분하는 것이 도움이 됩니다:
KV 캐싱은 자연어 처리(NLP) 분야에서 가장 유명하지만, 상태 유지 개념은 고급 비전 모델에도 적용됩니다. 아래 예시에서는 비디오 추적 시나리오에서 상태(컨텍스트) 전달 개념을 Ultralytics 을 활용합니다를 사용하여 상태(컨텍스트) 전달 개념을 시뮬레이션합니다. 여기서 트래커는 프레임 간 객체 식별자를 유지하며, 이는 캐시가 토큰 간 컨텍스트를 유지하는 방식과 개념적으로 유사합니다.
from ultralytics import YOLO
# Load the Ultralytics YOLO26 model
model = YOLO("yolo26n.pt")
# Track objects in a video, maintaining identity state across frames
# The 'track' mode effectively caches object features to link detections
results = model.track(source="https://ultralytics.com/images/bus.jpg", show=False)
# Print the ID of the tracked objects
if results[0].boxes.id is not None:
print(f"Tracked IDs: {results[0].boxes.id.numpy()}")
데이터셋을 관리하고 최적화된 모델을 배포하려는 개발자는 Ultralytics 을 활용할 수 있습니다. 이 플랫폼은 데이터 주석 작업부터 효율적인 모델 배포까지의 파이프라인을 간소화합니다. 어텐션의 심층적인 메커니즘에 관심이 있는 분들을 위해 PyTorch 과 같은 라이브러리는 이러한 캐싱 메커니즘이 구현되는 기초적인 구성 요소를 제공합니다.