Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- FastAPI
- #include
- 12기
- AWS
- 회고록
- ai캠프
- 컴파일
- one-shot
- sk네트웍스familyai캠프12기
- sk네트웍스family
- 중복인클루드
- 최종프로젝트
- Fine-tuning
- 어셈블
- Rag
- 주간회고
- sk네트웍스familyai캠프
- 배포
- Langchain
- 임베딩
- 헤더가드
- openai
- 21주차
- few-shot
- Docker
- 전처리
- 소스코드
- C++
- sk네트웍스ai캠프
- zero-shot
Archives
- Today
- Total
ansir 님의 블로그
[ SK 네트웍스 Family AI 캠프 수업 내용 복습 ] LLM 파인튜닝 2025-05-19 본문
SK 네트웍스 family AI 캠프/수업 내용 복습
[ SK 네트웍스 Family AI 캠프 수업 내용 복습 ] LLM 파인튜닝 2025-05-19
ansir 2025. 5. 20. 01:57파인 튜닝(Fine-tuning)
정의
파인 튜닝은 사전 학습(pretrained)된 언어 모델(LLM: Large Language Model)을 특정 작업(Task) 또는 도메인(Domain)에 맞게 추가 학습시키는 과정이다. 이미 대량의 일반 데이터로 사전 학습된 모델을 기반으로 하여, 소량의 고품질 데이터만으로도 특정 목적에 맞게 성능을 향상시킬 수 있다.
목적
- 일반적인 언어 능력을 갖춘 모델에 특정 업무에 특화된 지식이나 응답 스타일을 부여
- 예: 법률, 의료, 고객 응대, 교육 등 특정 분야에서의 응답 품질 향상
특징
- 사전 학습된 모델 사용
- 이미 대규모 말뭉치로 학습된 언어 모델(GPT, BERT 등)을 기반으로 함
- 소량의 도메인 특화 데이터
- 수천~수만 개 수준의 고품질 데이터로도 효과적
- 미세 조정(Minor adjustment)
- 모델의 전체 또는 일부 파라미터를 업데이트하여, 기존 능력을 유지하면서 특정 작업에 적합하게 조정
- 성능 향상
- 제로샷(zero-shot) 또는 몇샷(few-shot) 학습보다 더 높은 정확도 제공
파인 튜닝의 방식
- 전체 파인 튜닝 (Full fine-tuning): 모델 전체 파라미터 업데이트 (연산량 많음)
- 부분 파인 튜닝: 특정 레이어 또는 파라미터만 업데이트
- 대표적인 기법: LoRA (Low-Rank Adaptation), Adapter Tuning, Prefix Tuning
장점
- 기존 모델의 능력을 유지하면서, 추가 지식을 효과적으로 반영
- 비용 대비 성능 효율이 좋음 (소량의 데이터로도 성능 향상 가능)
- 데이터가 민감하거나 제한적인 경우에 특히 유용
단점
- 적절하지 않은 데이터나 과도한 튜닝 시 기존 능력 저하(Catastrophic Forgetting) 발생 가능
- 학습 비용이 전혀 없는 것은 아니며, GPU 자원이 필요
활용 예시
- 고객 서비스 챗봇: 고객 FAQ와 대화 로그로 파인 튜닝하여 더 정확하고 친절한 응답 생성
- 의학 분야 LLM: 논문, 임상 지침서를 학습시켜 전문적인 질의응답 제공
- 코드 생성 모델: 특정 언어/프레임워크에 특화된 코드 생성 모델 구축
파인튜닝 vs. 프롬프트 엔지니어링
항목 | 프롬프트 엔지니어링 | 파인튜닝 |
---|---|---|
정의 | 입력 프롬프트(prompt)를 조정하여 모델의 출력을 유도하는 기법 | 모델의 가중치를 특정 데이터셋으로 재학습하여 출력 방식을 변경 |
가중치 변경 | 변경하지 않음 (모델은 그대로) | 변경함 (모델 파라미터 일부 또는 전체 업데이트) |
데이터 사용 | 별도 학습 데이터 없이 즉시 사용 가능 | 도메인 특화 학습 데이터 필요 |
학습 비용 | 없음 (추론만 수행) | 있음 (추가 학습 필요, GPU 자원 요구) |
응답 제어력 | 제한적이며 프롬프트의 품질에 의존 | 강력하며 일관된 성능 제공 |
예시 기법 | Few-shot prompting, Chain of Thought(CoT), Zero-shot prompting 등 | Full Fine-Tuning, PEFT (LoRA, QLoRA, Adapter 등) |
적합한 상황 | 빠르게 다양한 작업을 실험하거나 제어할 때 | 특정 태스크나 도메인에 대해 장기적이고 정밀한 성능이 필요한 경우 |
프롬프트 엔지니어링 (Prompt Engineering)
- 설명:
모델의 구조나 가중치를 변경하지 않고, 단지 "입력 문장"만을 조작하여 원하는 결과를 유도하는 방식이다. - 장점:
- 비용이 들지 않음 (추론만 사용)
- 다양한 작업을 신속하게 시도 가능
- 데이터 없이도 성능 확보 가능
- 한계:
- 복잡한 태스크에서는 성능이 불안정할 수 있음
- 제어력이나 일관성이 낮을 수 있음
파인튜닝 (Fine-Tuning)
- 설명:
사전학습된 모델의 일부 또는 전체 가중치를 새로운 데이터셋에 맞게 재학습하여 특정 작업에 최적화된 출력을 내도록 조정한다. - 종류:
- Full Fine-Tuning
- 모델 전체 가중치를 업데이트
- 연산량과 메모리 사용량이 큼
- PEFT (Parameter-Efficient Fine-Tuning)
- 일부 파라미터만 조정하여 효율성을 높임
- 대표 기법:
- LoRA (Low-Rank Adaptation): 선형 계층의 저랭크 행렬만 학습
- QLoRA: 양자화된 모델에 LoRA를 적용하여 메모리 효율 극대화
- Full Fine-Tuning
- 장점:
- 특정 업무나 도메인에 대해 매우 높은 성능
- 일관되고 제어된 응답 가능
- 단점:
- GPU 자원, 시간, 고품질 데이터가 필요
- 데이터 부족 시 과적합 위험 존재
LoRA (Low-Rank Adaptation) & QLoRA (Quantized LoRA)
1. LoRA (Low-Rank Adaptation)
정의
LoRA는 대형 언어 모델(LLM)의 가중치 행렬을 직접 수정하지 않고, 대신 저랭크(Low-Rank) 행렬을 삽입하여 학습하는 파인튜닝 기법이다.
핵심 아이디어
- 모델의 가중치 행렬 $W$은 고정
- 학습 시 $W$에 추가로 곱해지는 두 개의 저랭크 행렬 $A∈{R}^{d \times r}, B∈{R}^{r \times k}$을 도입하여,
모델 전체 대신 $A$와 $B$만 학습
(여기서 $r$은 매우 작은 차원 수)
수식 표현
기존 가중치:
$y=Wx$
LoRA 적용 후:
$y= Wx + BAx$
이때 $W$는 고정되고, $A,B$만 업데이트됨
장점
- 파라미터 수를 대폭 줄여 학습 비용 절감
- 원본 모델의 성능을 유지하면서 도메인 지식만 주입
- 파인튜닝된 어댑터 파라미터만 저장 및 배포 가능 (효율적 재사용)
활용 예시
- LLaMA, GPT, BERT 등 다양한 사전학습 모델에 적용 가능
- 예: LLaMA-3를 한국어 데이터로 파인튜닝할 때 LoRA 사용 → 고성능 한국어 응답 가능
2. QLoRA (Quantized LoRA)
정의
QLoRA는 LoRA 기법에 모델의 양자화(Quantization)를 적용하여 메모리 효율을 극대화한 방식이다. 모델을 4비트 또는 8비트로 양자화하여 GPU 사용량을 크게 줄인다.
핵심 구조
- 기존 사전학습 모델: 4비트 또는 8비트 정밀도로 로드 (정적, 학습되지 않음)
- LoRA 어댑터: FP16 또는 BF16으로 학습 (정확도 유지)
- 전체 학습: 저비용 GPU 환경에서도 가능
장점
- 저사양 GPU에서도 대형 모델 파인튜닝 가능
- 기존 LoRA보다 RAM/VRAM 사용량 절감
- 퍼포먼스 저하 없이 효율성 극대화
예시 환경
- RTX 3090 또는 A100 한 장으로 LLaMA 7B, 13B, 심지어 65B 모델도 QLoRA로 파인튜닝 가능
LoRA vs. QLoRA 요약 비교
항목 | LoRA | QLoRA |
---|---|---|
기본 아이디어 | 저랭크 행렬을 추가 학습 | 저랭크 행렬 + 모델 양자화 |
메모리 효율성 | 중간 | 매우 높음 |
성능 | 원본 모델 수준 유지 | 거의 동일 (정밀도 보존) |
하드웨어 요구 | 중급 이상 GPU | 상대적으로 저사양 GPU도 가능 |
저장 용량 | 어댑터 파라미터만 저장 | 어댑터만 저장 (기본 모델은 양자화) |
반응형