LoRA 이론 및 실습
- LoRA(Low-Rank Adaption): 적은 수의 파라미터만을 조정해 모델을 효과적으로 튜닝하는 기법
- 사전 학습된 모델의 구조를 그대로 유지하면서 필요한 만큼만 파라미터를 효율적으로 수정한다
- 여기서 +메모리를 양자화한 것 → QLora
- Lora의 이유
- 모든 가중치를 튜닝하는 파인튜닝 작업은 계산적으로 복잡하고, 비효율적
- W: 사전 학습된 가중치. LoRA 튜닝 과정에서 수정되지 않고 고정된 상태를 유지함
- A, B: 작은 행렬. A는 무작위로 초기화, B는 0으로 설정됨
- x: 처리할 데이터 입력
- h: 일반적으로는 x가 W을 거쳐 h가 나온다
- 즉 h = Wx
- r: LoRA에서는 이 r값이 더해진다. 이때 r = A(x)B
- 최종적으로 r이 더해져 LoRA에서는 h+r 이라는 결과가 나온다
- 즉 W를 건드리지 않고도, 훨씬 작은 A, B 행렬만을 조정해서 튜닝할 수 있다!
실습
QLoRA 이론 및 실습
- 다양한 파라미터를 가진 모델들이 있다
- 예를들어 70B Llama 3를 16비트로 추론하면 140GB vram이 필요하다
- 더 적은 VRAM을 이용해 로드하기 위한 방법이 양자화
- 딥러닝 모델에서는 부동소수점을 이용해 숫자를 표현한다
- 더 많은 비트를 사용할수록 정교해진다
- 양자화를 사용하면 숫자 표현 범위를 조정해 메모리 사용량을 줄이고 연산속도를 높일 수 있다
- 대칭 양자화
- 비대칭 양자화
- .
- 양자화 오류