paged attention

HanJu Han·2024년 10월 29일

LLM 최적화

목록 보기
12/16

  • KV캐시의 방식은 max_length의 값을 미리 메모리로 잡아 놓는다.
    • 길이가 짧은 요청인 경우 빈값 즉, 공간 낭비가 발생한다.

  • 페이지 어텐션의 경우 블록테이블을 관리해서 실제로는 물리적으로 연속된 메모리를 사용하지 않으면서 논리적 메모리에서는 서로 연속적이도록 만들었다.
  • 블록 크기가 4인경우 배정 후에 생성이 종료되어 사용하지 않더라도 블록 크기 -1개의 메모리만 낭비된다.

  • 입력 프롬프트에 대한 메모리를 공유함으로써 메모리를 절약한다.
  • 만약 "밥을 먹다 큰"을 입력프롬프트 2개의 텍스트를 생성하고 싶다고 하면 같은 토큰은 참조카운트라는 개념으로 공유한다.
profile
시리즈를 기반으로 작성하였습니다.

0개의 댓글