파인튜닝 입문: SFT, LoRA, QLoRA의 관계를 쉽게 설명
요약
본 문서는 LLM을 특정 태스크에 맞게 조정하는 파인튜닝(Fine-tuning) 개념과 주요 기법들을 설명합니다. SFT, LoRA, QLoRA 등 다양한 용어들의 관계를 '무엇을 학습시킬지'(학습 방법)와 '어디를 업데이트할지'(업데이트 방식)라는 두 축으로 나누어 명확히 정리했습니다.
핵심 포인트
- SFT는 '무엇을' 학습시킬지(데이터/방법론) 결정하는 것이고, LoRA는 '어디를' 업데이트할지(파라미터 효율성) 결정합니다.
- SFT는 모범 답안 쌍으로 기본적인 행동을 익히게 하는 데 적합하며, RLHF는 인간의 선호도 학습에 강점이 있습니다.
- LoRA/QLoRA는 전체 모델 파라미터를 모두 업데이트하지 않고 일부만 업데이트하여 자원 효율성을 높이는 기법입니다.
1. 서론
LLM을 자신의 태스크에 맞게 조정하려고 알아보기 시작하면, SFT, LoRA, QLoRA, 풀 파인튜닝(full fine-tuning), RLHF, DPO 등 많은 용어들이 나옵니다.
특히 이해하기 어려운 것이 SFT와 LoRA의 관계입니다.
- 둘 다 '파인튜닝 기법'으로 같은 순서로 소개되는 경우가 많습니다.
- 'LoRA 파인튜닝', 'LoRA로 SFT 하기'와 같은 표현을 보게 되지만, 어느 한쪽이 다른 쪽에 포함되는 것인지, 아니면 별개의 선택지인지 알기 어렵습니다.
실제로는 이 2가지를 비교하는 축 자체가 다릅니다. SFT는 '무엇을 학습시킬지'를 결정하는 것이고, LoRA는 '어디를 업데이트할지'를 결정하는 것입니다.
본 기사에서는 이 두 가지 축에 따라 SFT, LoRA, QLoRA의 관계를 정리합니다. 수식이나 세부 구현에는 깊이 들어가지 않고, 전체적인 그림을 파악하는 것을 목표로 합니다.
2. 목차
- 파인튜닝이란 무엇인가
- 무엇을 학습시킬지: 학습 방법의 종류
- 어디를 업데이트할지: 업데이트 방법의 종류
- SFT와 LoRA의 관계
- 요약
3. 파인튜닝이란 무엇인가
파인튜닝(Fine-tuning)이란, 사전 학습된 모델에 추가로 학습시켜 특정 용도에 맞게 조정하는 것입니다.
모델을 교과서에 비유하자면, 파인튜닝은 교과서에 새로운 내용을 덧붙이는 작업입니다. 이때 다음 2가지를 결정해야 합니다.
| 결정할 것 | 교과서 예시 | 선택지 예시 |
|---|---|---|
| 무엇을 학습시킬지 | 어떤 교재로 공부할지 | SFT, RLHF, DPO, 증류(Distillation) 등 |
| 어디를 업데이트할지 | 배운 것을 어디에 기록할지 | 풀 파인튜닝(Full fine-tuning), LoRA, QLoRA 등 |
SFT는 위의 항목에 속하고, LoRA/QLoRA는 아래 항목에 속합니다. 이후 4장에서는 위 항목을, 5장에서는 아래 항목을 각각 살펴보겠습니다.
4. 무엇을 학습시킬지: 학습 방법의 종류
'무엇을 학습시킬지'를 결정하는 학습 방법에는 주로 SFT, RLHF, DPO가 있습니다. 차이점은 어떤 데이터를 사용하고 어떻게 채점하느냐에 있습니다.
4.1 SFT (Supervised Fine-Tuning)
SFT(Supervised Fine-Tuning)는 '입력'과 '모범 답안' 쌍을 사용하여, 모범 답안처럼 답변할 수 있도록 학습시키는 방법입니다. 교과서의 비유로 말하자면, 모범 답안이 있는 문제집으로 공부하는 것과 같습니다.
입력: 일본의 수도는 어디인가요?
모범 답안: 일본의 수도는 도쿄입니다.
가장 간단하고 다루기 쉬우며, 질문에 답변하거나 지시를 따르는 같은 기본적인 행동을 익히게 하는 데 사용됩니다. 반면, '정중함'이나 '안전성'처럼 하나의 모범 답안으로 쓰기 어려운 취향을 가르치는 것은 서툽니다.
4.2 RLHF (Human Feedback 기반 강화학습)
RLHF(Reinforcement Learning from Human Feedback)는 인간의 선호도를 학습한 '채점관' 모델을 만들고, 그 채점관으로부터 높은 점수를 받을 수 있도록 학습시키는 방법입니다. 교과서의 비유로 말하자면, 채점관에게 점수를 받으면서 연습하는 것과 같습니다.
- 같은 질문에 대한 모델의 여러 답변을 인간이 비교하여 어느 것이 좋은지 순위를 매깁니다.
- 그 결과로부터 답변에 점수를 부여합니다.
**보상 모델(채점관)**을 학습합니다. - 모델에게 답변을 생성하게 하고, 보상 모델의 점수가 높아지도록
**강화학습(Reinforcement Learning)**으로 업데이트합니다.
모범 답안이 없어도 '어느 것이 좋은가'만 판단할 수 있다면 학습할 수 있기 때문에, SFT로는 가르치기 어려운 인간의 선호도에 맞출 수 있습니다. ChatGPT의 원형이 된 InstructGPT에서도 사용된 기법입니다. 다만, 보상 모델 학습과 강화학습의 2단계가 필요하고, 절차가 복잡하며 학습 또한 불안정해지기 쉽다는 단점이 있습니다.
4.3 DPO (Direct Preference Optimization)
DPO(Direct Preference Optimization)는 '선호되는 답변'과 '선호되지 않는 답변' 쌍으로부터 직접 학습하는 방법입니다. 교과서의 비유로 말하자면, 좋은 예시 답안과 나쁜 예시 답안을 비교하며 배우는 것과 같습니다.
입력: 비밀번호를 잊었습니다.
선호되는 답변: '비밀번호를 잊었을 경우' 링크에서 재설정할 수 있습니다. 절차는…
선호되지 않는 답변: 모릅니다.
RLHF와 마찬가지로 인간의 선호도에 맞추기 위한 방법이지만, 보상 모델(채점관)이나 강화학습을 사용하지 않습니다. 그만큼 간단하고 학습이 안정적이어서 최근에는 RLHF를 대신하여 널리 사용되고 있습니다.
4.4 세 가지 비교
| 방법 | 사용하는 데이터 | 채점하는 방식 | 강점 |
|---|---|---|---|
| SFT | 입력과 모범 답안 | 모범 답안대로 답변했는지 여부 | 기본적인 행동을 가르침 |
| RLHF | 인간이 매긴 답변 순위 | 보상 모델(채점관)의 점수가 높은지 여부 | 인간의 선호도에 맞춤 |
| DPO | 선호하는 답변과 선호하지 않는 답변 쌍 | 선호하는 답변을 내기 쉬워졌는지 여부 | 인간의 선호도에 맞추기 (간단하게) |
이것들은 어느 하나를 선택하기보다는, SFT로 기본적인 답변 방식을 가르친 후에, RLHF나 DPO로 선호도에 맞추는 순서로 조합하는 것이 일반적입니다.
5. 어디를 업데이트할 것인가: 업데이트 방법의 종류
배운 내용을 모델의 어느 부분에 기록할지(어떤 가중치를 업데이트할지) 결정하는 방법에는 주로 풀 파인튜닝, LoRA, QLoRA가 있습니다. 차이점은 얼마나 많은 가중치를 업데이트하느냐와 그에 따른 필요한 GPU 메모리 양입니다.
5.1 풀 파인튜닝
가장 직관적인 방법은 모델의 모든 가중치를 업데이트하는 풀 파인튜닝입니다. 교과서 본문을 직접 고치는 이미지와 같습니다.
효과는 높지만, 업데이트해야 할 가중치가 수십억 개에 달하기 때문에, 대량의 GPU 메모리가 필요합니다.
5.2 LoRA
LoRA (Low-Rank Adaptation)는 원래 가중치는 고정한 채로, 옆에 작은 행렬을 추가하여 그 부분만 학습하는 방법입니다. 교과서 본문은 건드리지 않고, 포스트잇에 적어 붙이는 이미지와 같습니다.
예를 들어 4096×4096의 가중치 행렬(약 1,680만 개)에 대해, LoRA로 추가하는 행렬은 4096×8과 8×4096(총 약 6.5만 개)입니다. 학습하는 파라미터가 약 0.4%로 충분하기 때문에 다음과 같은 장점이 있습니다.
- GPU 메모리를 대폭 절약할 수 있다.
- 학습 결과는 작은 파일(어댑터)로 저장되어 태스크별로 교체 가능하다.
- 대부분의 경우, 풀 파인튜닝에 가까운 성능을 낼 수 있다.
5.3 QLoRA
QLoRA는 원래 모델을 4bit로 양자화(압축)한 후에 LoRA를 수행하는 방법입니다. 고정된 원래 가중치 자체를 작게 함으로써, 메모리를 더욱 절약합니다. 원 논문에서는 65B 모델을 48GB의 GPU 1개로 파인튜닝할 수 있음을 보여주었습니다.
| 방법 | 업데이트하는 가중치 | 원래 가중치 | 필요한 GPU 메모리 |
|---|---|---|---|
| 풀 파인튜닝 | 모두 | 업데이트하는 | 대 |
| ... |
6. SFT와 LoRA의 관계
지금까지의 내용을 교과서 비유로 정리하면, SFT와 LoRA는 정하고 있는 것이 완전히 다르다는 것을 알 수 있습니다.
SFT는 ① '어떤 교재로 공부할지'를, LoRA는 ③ '배운 것을 어디에 기록할지'를 결정합니다. 담당하는 장소가 다르기 때문에, 둘 중 하나가 다른 하나에 포함되는 관계가 아니라 자유롭게 조합할 수 있습니다.
| 풀 파인튜닝 | LoRA | QLoRA | |
|---|---|---|---|
| SFT | ✅ | ✅ | ✅ |
| RLHF・DPO | ✅ | ✅ | ✅ |
'LoRA로 SFT 하기'란, '모범 답안이 있는 문제집으로 공부하고(SFT), 배운 것을 포스트잇에 기록하는(LoRA)' 이라는 의미입니다. 세상에서 'LoRA 파인튜닝'이라고 불리는 것의 대부분은 이 SFT × LoRA 조합을 가리킵니다.
실제 코드에서도 이 관계는 명확하게 나타납니다. Hugging Face의 TRL 라이브러리에서는 다음과 같이 작성합니다.
from peft import LoraConfig
from trl import SFTTrainer
trainer = SFTTrainer( # 무엇을 가르칠지 → SFT
...
peft_config 줄을 지우면, 같은 SFT를 사용하더라도 풀 파인튜닝이 됩니다. LoRA는 학습 방식에 덧붙이는 '옵션'과 같다고 이해할 수 있습니다.
7. 요약
- 파인튜닝(Fine-tuning)에서는 '무엇을 학습시킬지'와 '어디를 업데이트할지'의 두 가지를 결정합니다.
SFT는 '무엇을 학습시킬지' 중 하나로, 모범 답안과 같이 답변할 수 있도록 학습시키는 방법입니다. 만약 인간의 선호도에 맞추고 싶다면, 그 후에 RLHF나 DPO를 결합합니다.
LoRA는 '어디를 업데이트할지' 중 하나로, 원래 가중치(weight)는 고정하고 추가한 작은 행렬만 업데이트하는 방법입니다. 모든 가중치를 업데이트하는 **풀 파인튜닝(Full Fine-tuning)**보다 메모리를 크게 절약할 수 있습니다.
QLoRA는 원래 가중치를 4bit로 압축하여 더욱 메모리를 절약한 LoRA입니다. SFT와 LoRA는 별개의 축이므로, 'LoRA로 SFT하기'처럼 조합해서 사용할 수 있습니다.
참고 문헌
- Hu, E. J. et al. (2021). LoRA: Low-Rank Adaptation of Large Language Models
- Dettmers, T. et al. (2023). QLoRA: Efficient Finetuning of Quantized LLMs
- Ouyang, L. et al. (2022). Training language models to follow instructions with human feedback
- Rafailov, R. et al. (2023). Direct Preference Optimization: Your Language Model is Secretly a Reward Model
- Hugging Face. TRL - Transformer Reinforcement Learning
토론(Discussion)

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기