LLM

GPU 학습(5)

won-ian 2024. 8. 22. 15:52

※ 'LLM을 활용한 실전 AI 애플리케이션 개발' 책을 정리한 내용입니다.

 

QLoRA

16비트로 모델을 저장하고 있는 LoRA와 달리 4비트 형식으로 모델을 저장하는 형태로 세가지 핵심 요소로 이루어져있다.

  • 양자화 : 기존 데이터를 더 적은 메모리를 사용하는 데이터 형식으로 변환하는 방법
  • 저차원 적응 : 파라미터 효율성을 높이기 위해 모델의 전체 파라미터를 업데이트하는 대신, 작은 저차원 행렬을 학습하여 원래의 큰 행렬을 근사합니다.
  • 효율적인 메모리 사용 및 계산 최적화 

만약 기존 데이터의 분포를 알고 있다면 많은 연산이나 메모리 사용 없이도 빠르게 데이터의 순위를 정할 수 있다. 예를 들어, 입력 데이터가 정규 분포를 따른다는 것을 알고 있다면 데이터를 균등하게 분리하기위해 사용할 경계값을 쉽게 계산할 수 있다. 변환하려는 데이터 타입이 4비트만 사용해 16개의 수를 사용한다면, 면적을 16등분할 수 있는 경곗값을 찾고 입력 데이터가 경곗값을 기준으로 큰지 작은지에 따라 0~15까지 적절히 배정하면 된다.

 

대부분의 모델 파라미터가 정규 분포를 따르고 있기 때문에, 이를 사용하면 모델의 성능을 거의 유지하면서도 빠른 양자화가 가능해진다. NF4(Normal Float 4-bit)인 4비트 부동소수점 데이터 형식을 발전시켜서 2차 양자화(double quantization)를 수행하려고하는데, 이는 NF4 양자화 과정에서 생기는 32비트 상수도 효율적으로 저장하고자 하는 방법이다.

64개의 모델 파라미터를 하나의 블록으로 묶어 양자화를 수행한다. 따라서 64개의 모델 파라미터마다 1개의 상수(정규 분포의 표준편차)를 저장해야 한다. 이때 다시 256개의 양자화 상수를 하나의 블록으로 묶어 8비트 양자화를 수행하면 상수 저장에 필요한 메모리도 절약할 수 있다. 2차 양자화를 수행하면 상수 저장에 필요한 메모리도 절약할 수 있다. 2차 양자화를 수행하면 이전에는 양자화 상수를 저장하기 위해 32비트 데이터 256개를 저장했지만 이후에는 8비트 데이터 256개와 양자화 상수 c를 저장하기 위한 32비트 데이터 1개만 저장하면 된다.

 

페이지 옵티마이저(page optimizer)

엔비디아의 통합 메모리를 통해 GPU가 CPU 메모리(RAM)를 공유하는 것을 말한다. 엔비디아의 통합 메모리는 컴퓨터의 가상 메모리 시스템과 유사한 개념을 GPU 메모리 관리에 적용한 기술이다. 가상 메모리는 램과 디스크를 사용해 컴퓨터가 더 많은 메모리를 가진 것처럼 작동하게 해준다.

 

페이징(paging)

가상 메모리에서 운영체제는 램이 가득 차면 일부 데이터를 디스크로 옮기고 필요할 때 다시 램으로 데이터를 불러오는 기술

'LLM' 카테고리의 다른 글

GPU 학습(4)  (0) 2024.08.21
GPU 학습(3)  (0) 2024.08.20
GPU 학습(2)  (0) 2024.08.19
GPU 학습(1)  (0) 2024.08.18
LLM 모델 만들기(3)  (0) 2024.08.17