카테고리 없음

GPT/ Model Finetuning _ PEFT Techniqques 1:LoRA

Move-first 2024. 11. 20. 12:50


PEFT (Parameter-Efficient Fine-Tuning)는 대규모 사전 학습된 모델을 효율적으로 미세 조정하기 위한 기법으로, 전체 파라미터를 업데이트하지 않고 일부만 조정하여 성능을 유지하거나 향상시키는 방법입니다. 이 기법을 통하여 메모리 사용량과 계산 비용을 줄이면서도 효과적인 성능 개선을 할 수 있습니다.
그럼 PEFT의 대표적인 방법 중 두 가지 중 (LoRA와 QLoRA) LoRA로라에 대해서 알아보겠습니다.

LoRA (Low-Rank Adaptation)
LoRA는 PEFT의 한 형태로, 사전 학습된 모델의 큰 가중치 행렬을 직접 수정하지 않고, 대신 저차원(low-rank) 행렬을 추가하여 일부 파라미터만 학습하는 방식입니다. 이를 통해 모델의 성능을 유지하면서도 미세 조정에 필요한 자원을 크게 줄일 수 있습니다.
작동 방식: LoRA는 사전 학습된 모델의 가중치 행렬을 고정하고, 추가적인 작은 저차원 행렬 A와 B를 학습합니다.
이때, 원래 가중치 W는 고정된 상태로 유지되며, 학습된 A와 B의 곱으로 가중치 변화가 근사됩니다. 즉, LoRA는 다음과 같은 수식으로 표현됩니다.

Wnew=W0+ΔW=W0+BA  

여기서 W0는 고정된 원래 가중치이고, BA는 LoRA에서 학습된 저차원 행렬입니다.

장점:
- 전체 모델을 다시 학습할 필요 없이, 적은 수의 파라미터만 조정하여 메모리와 계산에 필요한 에너지/자원을 절약합니다.
- Full Fine-Tuning과 유사한 성능을 제공하면서도 훨씬 적은 리소스를 사용합니다.
- 여러 작업(Task)에 대해 동일한 사전 학습된 모델을 사용하면서, 각 작업에 맞춘 LoRA 가중치만 교체하면 됩니다.

단점:
- 추가적인 작은 행렬이 도입되므로 약간의 메모리와 연산 오버헤드가 발생할 수 있지만, 이는 매우 미미한 수준입니다.

QLoRA (Quantized LoRA)
QLoRA는 LoRA의 확장된 버전으로, **양자화(Quantization)**를 추가하여 더 효율적인 메모리 사용과 계산량 감소를 목표로 합니다. QLoRA는 LoRA와 동일하게 저차원 행렬을 사용하지만, 여기에 양자화를 적용하여 모델의 가중치를 더 작은 비트로 표현하고 처리합니다.

작동 방식: QLoRA는 LoRA처럼 저차원 행렬을 사용하되, 양자화를 통해 가중치를 더 낮은 정밀도로 표현합니다. 예를 들어, 일반적으로 32비트 부동소수점(FP32)으로 저장되는 가중치를 8비트 정수(INT8)로 변환하여 메모리 요구량과 계산 복잡도를 줄입니다45.

장점:
- LoRA보다 더 적은 메모리와 계산 자원을 사용하면서도 성능 손실이 거의 없습니다.
- 특히 GPU 메모리가 부족한 환경에서 유용하며, 대규모 모델에서도 효율적으로 작동할 수 있습니다.

단점:
- 양자화로 인해 미세한 성능 저하가 발생할 수 있지만, 대부분의 경우 이는 무시할 수 있을 정도로 작습니다7.