Yolo 비전 선전
선전
지금 참여하기
용어집

KV 캐시

KV 캐시가 대규모 언어 모델(LLM)과 같은 트랜스포머 모델을 어떻게 최적화하는지 알아보세요. 이 기술이 Ultralytics 추론 지연 시간을 줄이고 효율성을 높이는 방법을 확인하세요.

KV 캐시(키-값 캐시)는 주로 대규모 언어 모델(LLM)에서 사용되는 핵심 최적화 기법입니다. 대규모 언어 모델(LLM) 및 기타 트랜스포머 기반 아키텍처에서 추론 지연 시간을 단축하고 및 계산 비용을 줄이기 위해 사용됩니다. 핵심적으로, KV 캐시는 이전 토큰에 대한 어텐션 메커니즘 에 의해 생성된 키-값 행렬을 저장합니다. 이러한 중간 계산을 저장함으로써, 모델은 새로운 토큰을 생성할 때마다 대화의 전체 기록에 대한 어텐션 상태를 재계산하는 것을 피합니다. 이 과정은 텍스트 생성 워크플로를 2차 복잡도 작업에서 선형 작업으로 전환하여, 챗봇 및 AI 에이전트와의 가능하게 합니다.

기작과 이점

표준 트랜스포머 모델에서 다음 단어를 생성하려면 문맥을 이해하기 위해 이전 모든 단어에 주의를 기울여야 합니다. 캐싱이 없다면 모델은 매 단계마다 전체 시퀀스에 대한 수학적 관계를 재계산해야 할 것입니다. KV 캐시는 메모리 뱅크 역할을 하여 이 문제를 해결합니다.

  • 속도 향상: 메모리에서 미리 계산된 키와 값을 검색함으로써 시스템은 추론 엔진의 속도를 획기적으로 높입니다. 추론 엔진의. 이는 실시간 추론과 같이 낮은 지연 시간이 필요한 애플리케이션에 필수적이다. 실시간 추론 고객 서비스 봇의 실시간 추론
  • 자원 효율성: 메모리 사용량(VRAM)은 증가하지만, 토큰당 필요한 연산량(FLOPs)을 크게 줄입니다. 이러한 상충 관계는 모델 양자화 같은 기법을 통해 관리됩니다. 모델 양자화 이나 페이징과 같은 기법을 통해 관리되며, 이는 운영체제가 RAM을 관리하는 방식과 유사합니다.
  • 확장된 컨텍스트: 키-값 캐시의 효율적인 관리를 통해 모델은 더 큰 컨텍스트 창을 처리할 수 있게 하여 긴 문서를 처리하거나 장기간에 걸쳐 일관된 대화를 유지할 수 있게 합니다.

실제 애플리케이션

KV 캐시는 현대 생성형 AI 배포의 핵심 구성 요소이지만, 그 원리는 컴퓨터 비전(CV) 분야로도 확장됩니다. 컴퓨터 비전(CV) 분야로도 확장됩니다..

  1. 생성형 챗봇: ChatGPT 또는 Claude KV 캐싱에 크게 의존합니다. 사용자가 후속 질문을 할 때 모델은 채팅 기록 전체를 처음부터 다시 읽지 않습니다. 대신 이전 대화의 캐시된 상태에 새로운 입력을 추가하여 거의 즉각적인 응답을 가능하게 합니다.
  2. 영상 이해: 비디오 이해 작업에서 모델은 프레임을 순차적으로 처리합니다. 텍스트 토큰과 유사하게, 과거 프레임의 시각적 특징을 캐싱하여 모델이 전체 영상 기록을 재처리하지 않고도 track 동작을 인식할 track 있도록 지원할 수 있습니다. 이는 특히 동작 인식에 동작 인식 시간적 맥락이 중요한 경우에 특히 중요합니다.

효율적인 메모리 관리

모델이 커짐에 따라 KV 캐시의 크기가 병목 현상이 될 수 있으며, 기가바이트 단위의 GPU 소모합니다. 최근 발전은 이 저장 공간을 최적화하는 데 초점을 맞추고 있습니다.

  • PagedAttention: 운영체제의 가상 메모리에서 영감을 받아, PagedAttention (vLLM에서 도입)은 KV 캐시를 비연속 메모리 블록에 저장할 수 있게 합니다. 이는 조각화를 줄이고 모델 서비스 중 더 큰 배치 크기를 허용합니다. 모델 서빙.
  • KV 캐시 양자화: 공간을 절약하기 위해 개발자들은 종종 혼합 정밀도 또는 int8 양자화를 적용합니다. 이는 메모리 사용량을 줄여 에지 AI 장치가 고성능 모델을 실행할 수 있게 합니다.
  • 프롬프트 캐싱: 정적 시스템 프롬프트(예: "당신은 유용한 코딩 보조입니다")의 키-값 상태를 한 번 계산하여 다양한 사용자 세션에 걸쳐 재사용하는 관련 기법입니다. 이는 프롬프트 엔지니어링 최적화를 위한 핵심 기능입니다. 프롬프트 엔지니어링 워크플로우를 대규모로 최적화하는 핵심 기능입니다.

관련 개념 구분하기

KV 캐시를 다른 캐싱 및 최적화 용어와 구분하는 것이 도움이 됩니다:

  • KV 캐시 대 프롬프트 캐싱: KV 캐시는 일반적으로 단일 생성 스트림 동안 사용되는 동적, 토큰별 메모리를 의미합니다. 프롬프트 캐싱은 특히 고정된 입력 명령어의 처리된 상태를 저장하여 여러 독립적인 추론 호출 간에 재사용하는 것을 의미합니다.
  • KV 캐시 vs. 임베딩: 임베딩은 입력 데이터(텍스트 또는 이미지)의 의미적 의미를 포착하는 벡터 표현입니다. KV 캐시는 이러한 임베딩으로부터 추출된 활성화 값 (키와 값)을 어텐션 레이어 내에 저장하며, 특히 시퀀스 생성을 목적으로 합니다.
  • KV 캐시 vs. 모델 가중치: 모델 가중치는 신경망의 정적 학습 매개변수입니다. 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 과 같은 라이브러리는 이러한 캐싱 메커니즘이 구현되는 기초적인 구성 요소를 제공합니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기