짜리몽땅 매거진
[LLM] 파인튜닝과 RAG 본문
1. 파인튜닝(Fine-tuning)이란?
파인튜닝은 사전 학습된 모델을 특정한 데이터셋에 맞춰 추가로 학습시키는 과정이다. 이미 대량의 데이터로 학습된 모델의 기본적인 표현학습 능력을 유지하면서, 특정 도메인 또는 특정 태스크에 맞게 미세 조정하는 방식이다.
💡 예시:
- GPT-4를 금융 문서 요약에 맞춰 파인튜닝
- ResNet을 의료 이미지 분석에 맞춰 파인튜닝
- BERT를 법률 문서 분류 태스크에 맞춰 파인튜닝
2. 파인튜닝의 주요 개념
사전 학습(Pre-training)
- 대규모 데이터셋으로 학습한 일반적인 특징을 학습하는 과정
- 예: GPT, BERT, ResNet, EfficientNet 등
전이 학습(Transfer Learning)
- 사전 학습된 모델을 특정한 작업에 맞게 재사용
- 기존의 가중치를 활용하여 학습량을 줄이고 성능을 향상
파인튜닝(Fine-tuning)
- 특정 도메인/태스크에 맞춰 모델의 가중치를 일부 또는 전체 조정
- 기존 지식을 유지하면서 새로운 태스크에 적합하게 조정하는 과정
3. 파인튜닝의 과정
- 사전 학습된 모델 로드
- Hugging Face, TensorFlow, PyTorch 등을 활용하여 사전 학습 모델 로드
- 예: transformers 라이브러리를 사용해 BERT, GPT 모델 로드
- 새로운 데이터셋 준비
- 특정 태스크(감성 분석, 텍스트 요약 등)에 맞춘 데이터셋 수집
- 일반적으로 .csv, .json, .txt 등의 형태로 저장된 데이터 활용
- 토크나이징(Tokenization)
- 자연어 모델의 경우, 텍스트 데이터를 토큰으로 변환
- 예: BERT의 WordPiece, GPT의 Byte Pair Encoding (BPE)
- 하이퍼파라미터 설정
- 학습률(Learning Rate), 배치 크기(Batch Size), 옵티마이저 설정
- 파인튜닝 실행
- 특정 태스크에 맞춰 모델을 학습
- Trainer API 또는 PyTorch/TensorFlow를 사용하여 모델 학습 진행
- 성능 평가 및 모델 저장
- Accuracy, F1-score, BLEU, ROUGE 등의 지표로 모델 성능 평가
- 모델을 저장하고 필요하면 추가적인 Hyperparameter Tuning 진행
4. 대표적인 파인튜닝 기법
- LoRA (Low-Rank Adaptation)
- 모델의 일부 가중치만 업데이트하여 학습 비용 절감
- 메모리 효율적이고 대규모 모델에 적합
- Hugging Face peft 라이브러리 지원
- Adapter Tuning
- 기존 모델을 고정하고, 새로운 중간 레이어(Adapter Layer)만 추가하여 학습
- BERT Adapter, T5 Adapter 등 활용 가능
- BitFit (Bias Term Fine-tuning)
- 가중치는 고정하고, 오직 Bias 값만 업데이트하는 방식
- 계산량이 적고, 리소스가 적은 환경에서 적합
- Prefix Tuning
- 모델의 가중치를 조정하지 않고, 입력 프롬프트(Token Embedding)를 학습
- 예: GPT-3에 특정 도메인 프롬프트 학습
- Parameter-efficient Fine-tuning (PEFT)
- 전체 모델을 업데이트하는 대신 일부만 학습하여 GPU 메모리 절감
- LoRA, Prefix Tuning, BitFit 등이 PEFT 기법에 포함됨
1. RAG란?
RAG(Retrieval-Augmented Generation)는 검색(Retrieval)과 생성(Generation)을 결합한 AI 모델이다. 기존의 생성 모델(GPT, T5 등)은 사전 학습된 데이터만 활용하지만, RAG는 외부 지식을 검색하여 최신 정보를 반영하는 방식으로 동작한다.
💡 쉽게 말하면?
👉 GPT 같은 생성 모델이 인터넷 검색을 활용해 답변하는 개념
👉 외부 데이터베이스를 참조해 더 정확하고 신뢰성 있는 답변을 생성하는 방식(기존 모델의 환각 현상 방지)
2. RAG의 주요 개념
- 검색(Retrieval)
- 사용자의 입력(쿼리)과 관련된 문서를 데이터베이스에서 검색
- BM25, Dense Retriever(DPR), FAISS 등 사용
- 생성(Generation)
- 검색된 문서를 바탕으로 자연어 생성(NLG, Natural Language Generation)
- GPT, T5, BERT 등의 Transformer 기반 모델 활용
- 혼합(Retrieval-Augmented)
- 검색된 외부 문서(컨텍스트)를 생성 모델에 입력으로 추가
- 생성 모델이 더 신뢰성 있는 응답을 출력
3. RAG의 동작 과정
1️⃣ 입력받기
- 사용자의 질문을 입력
- 예: "2024년 미국 대선 후보는 누구야?"
2️⃣ 검색 단계 (Retriever)
- 벡터 DB(FAISS), BM25, DPR 등을 활용해 관련 문서를 검색
- 예: "2024년 미국 대선 후보에 대한 최신 뉴스 기사" 검색
3️⃣ 생성 단계 (Generator)
- 검색된 문서를 기반으로 텍스트 생성
- 예: "2024년 미국 대선 후보는 조 바이든과 도널드 트럼프입니다."
4️⃣ 출력 반환
- 사용자에게 최종 답변 제공
4. RAG vs 기존 생성 모델 비교
항목 | 기존 생성 모델 | RAG 모델 |
학습 데이터 | 사전 학습된 데이터만 사용 | 외부 데이터베이스에서 검색 가능 |
최신 정보 반영 | 불가능 | 가능 (검색 기능 활용) |
출력 신뢰성 | 환각(Hallucination) 발생 가능 | 검색된 문서를 바탕으로 더 신뢰성 높은 응답 제공 |
설명 가능성 | 낮음 | 높음 (출처 제공 가능) |
--> 즉, RAG는 최신 정보를 반영하며, 검색된 문서 기반으로 신뢰성 있는 답변을 제공하여 기존 모델의 환각 현상을 방지한다
파인튜닝과 RAG는 모두 딥러닝 기반의 NLP 모델을 개선하는 방식이지만, 어떤 문제를 해결하는지, 활용 방식이 어떻게 다른지를 이해하는 것이 중요하다.
특정한 태스크에서 강한 성능이 필요하면 파인튜닝, 최신 정보 반영과 검색이 중요하면 RAG를 사용하는 것이 적합하다. 다만, 실시간 정보가 필요하면서도 도메인 최적화가 필요한 상황이 대다수이기 때문에 두 가지를 함께 사용하는 경우도 많다.(보통은 RAG로 모델 개선 후, 파인튜닝으로 최적화)
'Data > Deep Learning' 카테고리의 다른 글
[LLM] Hugging Face Transformers 라이브러리 실습 (0) | 2025.02.18 |
---|---|
[LLM] Transformer - Masked Multi-Head Attention, Residual Connection (0) | 2025.02.05 |
[LLM] Transformer - Attention, Self Attention (0) | 2025.02.04 |
[LLM] Transformer - Embedding, Positional Encoding (1) | 2025.01.30 |
[DL] GRU, LSTM 모델로 시계열 분석하기 (1) | 2024.12.27 |