왜 로컬 파인튜닝인가요?
ChatGPT가 좋긴 한데 한계가 있어요.
우리 회사 내부 용어를 모르고요.
우리 고객이 쓰는 말투도 학습 안 되어 있어요.
그래서 파인튜닝이 필요한 거예요.
내 데이터로 AI를 가르치는 거죠.
"근데 그거 어렵지 않아요?"
2026년 기준으로는 정말 쉬워졌어요.
Unsloth라는 도구 덕분에 코드 10줄이면 파인튜닝이 돼요. 파인튜닝 없이 프롬프트만으로 해결하고 싶다면 AI 프롬프트 엔지니어링 실전 팁 7가지를 먼저 시도해보세요.
오늘은 완전 초보도 따라할 수 있게 정리해볼게요.
파인튜닝 전에 알아야 할 기본 개념
파인튜닝이 뭔가요?
쉽게 말하면 "이미 학습된 AI에 추가 수업을 시키는 것"이에요.
ChatGPT 같은 모델은 인터넷 전체를 학습했어요.
근데 우리 회사 매뉴얼은 학습한 적 없잖아요.
파인튜닝은 이 모델에게 우리 데이터를 추가로 가르치는 과정이에요.
전체를 다시 학습하는 게 아니라 미세 조정만 하니까 빠르고 저렴해요.
LoRA와 QLoRA 이해하기
파인튜닝에서 가장 많이 쓰는 기법이에요.
- LoRA: 모델 전체가 아니라 일부 파라미터만 학습
- QLoRA: LoRA에 양자화를 더해서 VRAM 사용량을 절반으로 줄임
RTX 3060 12GB로도 7B 모델을 파인튜닝할 수 있는 이유가
QLoRA 덕분이에요.

어떤 모델을 파인튜닝할까?
2026년 기준 추천 모델이에요.
- Llama 3.1 8B: 범용 성능 좋음, 한국어도 괜찮음
- Qwen 2.5 7B: 아시아 언어에 강함
- Gemma 2 9B: 구글 오픈소스, 코딩에 강점
한국어 작업이면 Qwen을 추천해요.
영어 위주면 Llama가 나아요.
환경 세팅하기
하드웨어 요구 사항
| 모델 크기 | 최소 VRAM | 추천 GPU | 학습 시간(1000개) |
|---|
| 3B | 4GB | RTX 3060 | 15분 |
| 7B | 8GB | RTX 3060 12GB | 30분 |
| 13B | 16GB | RTX 4070 Ti | 1시간 |
3B 모델로 시작하는 걸 추천해요.
빠르게 결과를 확인할 수 있거든요.
Unsloth 설치하기
Unsloth가 2026년 현재 가장 쉬운 파인튜닝 도구예요.
설치는 이래요.
pip install unsloth로 한 줄이면 끝나요.
CUDA 12.x 버전이 필요하니까 NVIDIA 드라이버 업데이트는 미리 해두세요.
설치 후 python -c "import unsloth" 돌려서 에러 없으면 성공이에요.
데이터 준비하기
파인튜닝 데이터 형식은 간단해요.
질문-답변 쌍으로 만들면 돼요.
JSON 파일로 준비하는 게 일반적이에요.
예시 형식은 이래요.
instruction: "이 제품의 반품 절차를 알려줘"
output: "반품은 구매일로부터 7일 이내에 가능하며..."
이런 쌍을 최소 100개 이상 만들어요.
회사 FAQ나 고객 상담 로그에서 뽑으면 빨라요.
실전 파인튜닝 따라하기
Unsloth로 학습 시작하기
코드가 정말 짧아요.
모델을 로드하고, LoRA 설정하고, 데이터 넣고, train() 호출하면 끝이에요.
핵심 설정값은 이래요.
- rank: 16 (기본값, 높이면 성능 좋지만 느려짐)
- learning_rate: 2e-4
- epochs: 3 (데이터 적으면 5까지)
7B 모델 기준 데이터 500개면 20분 정도 걸려요.
학습 중 모니터링하기
학습하면서 loss 값을 확인해야 해요.
- loss가 꾸준히 줄어들면 정상
- 갑자기 올라가면 learning rate를 낮춰야 해요
- 0에 가까워지면 과적합 주의
터미널에 실시간으로 출력되니까 지켜보면 돼요.

결과 테스트하기
학습이 끝나면 바로 테스트해보세요.
Ollama에 모델을 올리면 채팅 형태로 테스트할 수 있어요.
체크할 포인트는 이래요.
- 기존에 못 답하던 도메인 질문에 답하는지
- 말투가 원하는 대로 나오는지
- 환각(hallucination)이 줄었는지
기대만큼 안 나오면 데이터를 보강하고 다시 학습하면 돼요.
보통 2~3번 반복하면 만족스러운 결과가 나와요.
파인튜닝 팁 5가지
- 데이터 품질이 전부예요. 100개 좋은 데이터가 1000개 나쁜 데이터보다 나아요.
- 작은 모델로 먼저 테스트하세요. 3B로 빠르게 확인하고 7B로 올려요.
- 한국어 데이터는 영어 번역본도 같이 넣으면 성능이 올라요.
- 평가 데이터는 별도로 10~20% 빼놓으세요.
- 학습 후 GGUF로 변환하면 Ollama에서 바로 쓸 수 있어요.
지금 바로 시작하기
오늘 해볼 건 딱 하나예요.
Unsloth 설치하고 샘플 데이터 10개로 파인튜닝 돌려보기.
10개만으로도 "아, 이렇게 돌아가는구나" 감이 와요.
그다음에 진짜 데이터를 넣으면 돼요.
로컬에서 내 데이터로 학습한 AI.
클라우드 비용 0원에 데이터 유출 걱정도 없어요.
한번 해보면 왜 다들 파인튜닝에 빠지는지 알게 될 거예요. Ollama를 활용해 로컬 LLM을 설치하는 방법은 로컬 LLM 설치 가이드 - Ollama + Open WebUI에서 자세히 다뤘어요.
2026년 5월 기준 모델 선택 가이드
2026년 5월 현재 한국어 파인튜닝에 가장 효율적인 베이스 모델을 정리해 봤어요.
| 모델 | 크기 | VRAM 요구 | 한국어 품질 | 추천 용도 |
|---|
| Qwen 2.5 7B | 7B | 8GB (QLoRA) | 우수 | 한국어 일반 |
| Llama 3.1 8B | 8B | 8GB (QLoRA) | 보통 | 영어 중심 |
| Gemma 2 9B | 9B | 12GB (QLoRA) | 보통 | 코드 작업 |
| Phi 3.5 Mini 3.8B | 3.8B | 6GB | 보통 | 빠른 프로토타입 |
| Qwen 2.5 14B | 14B | 16GB | 매우 우수 | 고품질 한국어 |
저는 한국어 작업이 많아서 Qwen 2.5 7B를 메인으로 쓰고 있어요. RTX 5060 Ti 16GB면 Qwen 14B까지도 QLoRA로 학습 가능해요.
데이터셋 준비 — 양보다 질 5가지 원칙
100개 좋은 데이터가 1000개 나쁜 데이터를 이긴다는 게 파인튜닝의 핵심 진리예요. 좋은 데이터의 5가지 조건이에요.
- 답변 형식 일관성: 모든 답변이 같은 구조여야 모델이 패턴을 학습해요. 어떤 건 짧고 어떤 건 길면 출력이 불안정해져요.
- 다양한 표현 커버: 같은 의도라도 다른 표현 5~10개를 instruction에 넣으세요. "환불 절차 알려줘" "어떻게 환불해?" 같은 변형이요.
- 부정 예시 포함: "이건 답변 못 함" 같은 거절 케이스도 5~10% 섞으세요. 환각 방지에 결정적이에요.
- 실제 사용자 문장 사용: 만들어낸 데이터보다 실제 고객 상담 로그가 압도적으로 효과적이에요.
- 중복 제거: 거의 같은 데이터가 여러 개면 그쪽으로 편향 학습돼요. 코사인 유사도 0.9 이상은 제거.
Unsloth 학습 실전 — 단계별 시간과 비용
Qwen 2.5 7B + 데이터 500개 기준 실측 데이터예요.
| 단계 | 시간 | 디스크 사용 | 메모 |
|---|
| 모델 다운로드 | 8분 | 14GB | 첫 1회만 |
| 데이터 전처리 | 2분 | 50MB | JSON 정제 |
| LoRA 설정 | 1분 | - | rank 16 권장 |
| 학습 (3 에폭) | 22분 | - | RTX 5060 Ti 기준 |
| GGUF 변환 | 5분 | 4GB | Ollama 호환 |
| 테스트 | 10분 | - | 평가 데이터 50개 |
총 약 50분에 첫 파인튜닝 모델이 완성돼요. 전기료 외 비용 0원이에요.
자주 발생하는 6가지 에러와 해결
1. CUDA Out of Memory
학습 중 가장 흔한 에러예요. 해결책 3가지:
- 배치 사이즈를 2 → 1로 낮추기
- 시퀀스 길이를 2048 → 1024로 줄이기
- gradient_checkpointing=True 옵션 켜기
저는 위 3개를 동시에 적용해서 VRAM 16GB에서 14B 모델도 학습시켰어요.
2. Loss가 줄지 않음
learning_rate가 너무 낮거나, 데이터 품질이 낮을 때 발생해요. learning_rate를 2e-4 → 5e-4로 올려보거나, 데이터를 50개씩 무작위 샘플링해서 확인하세요.
3. Loss가 NaN으로 폭주
learning_rate가 너무 높거나, 학습 데이터에 이상한 토큰이 섞였을 때예요. learning_rate를 1e-4로 낮추고 데이터를 다시 검증하세요.
4. GGUF 변환 시 토크나이저 에러
llama.cpp 버전이 안 맞을 때 발생해요. pip install --upgrade llama-cpp-python 한 줄로 대부분 해결돼요.
5. Ollama에서 모델이 안 보임
Modelfile에 FROM ./your-model.gguf 한 줄을 작성하고 ollama create my-model -f Modelfile로 등록해야 보여요.
6. 학습 후 답변이 이상해짐
과적합 신호예요. epochs를 3 → 2로 줄이거나, 데이터를 더 늘리세요. 500개 미만 데이터로 5 에폭 이상 돌리면 거의 항상 과적합이에요.
클라우드 vs 로컬 파인튜닝 비용 비교
같은 작업을 두 환경에서 했을 때 1년 비용 차이예요.
| 항목 | 로컬 (RTX 5060 Ti 16GB) | 클라우드 (RunPod A100) |
|---|
| 초기 투자 | 약 90만원 | 0원 |
| 시간당 비용 | 약 200원 (전기료) | 약 2,500원 |
| 월 50시간 학습 시 | 약 1만원 | 약 12.5만원 |
| 1년 운영 비용 | 약 102만원 (장비 포함) | 약 150만원 |
| 데이터 보안 | 100% 로컬 | 클라우드 업로드 필요 |
월 30시간 이상 학습하면 로컬이 1년 안에 본전을 회수해요. 데이터 보안까지 고려하면 거의 항상 로컬이 답이에요.
자주 묻는 7가지 함정 질문
Q. 파인튜닝과 RAG 중 뭐가 좋나요?
A. 빈도 높은 일관된 답변은 파인튜닝, 자주 바뀌는 정보는 RAG. 둘을 같이 쓰는 게 최강이에요. 베이스 톤은 파인튜닝, 최신 정보는 RAG.
Q. 파인튜닝한 모델이 원래 능력을 잃지는 않나요?
A. LoRA는 일부 파라미터만 건드리니까 원본 능력 손실이 거의 없어요. 풀 파인튜닝은 손실 위험이 있지만 LoRA는 안전해요.
Q. 한국어 데이터 어디서 모으나요?
A. 본인 회사 FAQ, 고객 상담 로그가 1순위. 공개 데이터는 KorQuAD, AI Hub 한국어 데이터셋이 깨끗해요.
Q. 파인튜닝 후 모델 크기가 커지나요?
A. LoRA 어댑터만 별도 저장하면 50~200MB 추가. 베이스 모델 + 어댑터 구조라서 가벼워요.
Q. 학습 도중 멈췄다 재개 가능한가요?
A. checkpoint 저장 옵션을 켜두면 가능해요. Unsloth는 기본으로 매 100스텝마다 저장해요.
Q. 여러 LoRA를 동시에 사용할 수 있나요?
A. 가능해요. 톤은 LoRA A, 도메인 지식은 LoRA B 식으로 분리 학습 후 합쳐서 쓰는 방식이에요.
Q. 파인튜닝한 모델을 상업적으로 배포해도 되나요?
A. 베이스 모델 라이선스에 따라 달라요. Qwen 2.5는 Apache 2.0, Llama 3.1은 별도 라이선스 확인 필요. Gemma는 사용 약관 동의 필수.
90일 파인튜닝 학습 로드맵
- 1~7일차: Unsloth 설치 + 샘플 데이터 100개로 첫 학습 (감 잡기)
- 8~21일차: 본인 도메인 데이터 500개 수집 + 정제
- 22~35일차: 첫 본격 학습 + 평가 (정확도 측정)
- 36~60일차: 데이터 1000개로 증강 + 재학습
- 61~90일차: Ollama 배포 + 실서비스 적용 + 모니터링
90일이면 본인 도메인에 특화된 로컬 AI 1개가 완성돼요. 그다음부터는 같은 흐름을 반복해서 모델 라인업을 늘리는 거예요.
파인튜닝 학습 시 자주 쓰는 명령 5가지
Unsloth 환경에서 가장 자주 사용하는 명령 5가지예요.
- 모델 로드:
model, tokenizer = FastLanguageModel.from_pretrained(model_name="unsloth/Qwen2.5-7B")
- LoRA 설정:
model = FastLanguageModel.get_peft_model(model, r=16, target_modules=[...])
- 데이터 로드:
dataset = load_dataset("json", data_files="my_data.json")
- 학습 시작:
trainer.train()
- GGUF 변환:
model.save_pretrained_gguf("my-model", tokenizer)
이 5개 명령만 익혀도 첫 파인튜닝이 가능해요.
파인튜닝 vs 컨텍스트 학습 — 어떤 게 답인가
파인튜닝이 필수인지 항상 고민이에요. 둘의 차이를 표로 정리했어요.
| 항목 | 파인튜닝 | 컨텍스트 학습 (Few-shot) |
|---|
| 초기 비용 | 학습 시간 | 0 |
| 운영 비용 | 추가 X | 매 호출마다 토큰 비용 |
| 응답 속도 | 빠름 | 느림 (긴 프롬프트) |
| 일관성 | 매우 높음 | 보통 |
| 수정 용이성 | 재학습 필요 | 프롬프트 수정 |
| 추천 상황 | 안정적 패턴 | 빠른 실험 |
장기 운영은 파인튜닝, 단기 실험은 컨텍스트 학습이 답이에요. 둘을 동시에 활용하는 하이브리드 전략이 가장 강력해요. 베이스 톤은 파인튜닝으로 고정하고 최신 정보는 컨텍스트로 주입하는 식이에요.
마무리 — 핵심 한 줄
파인튜닝의 본질은 "범용 AI를 내 데이터의 전문가로 만드는 것"이에요. 100개의 정제된 데이터와 1시간의 학습으로 ChatGPT보다 내 업무에 더 정확한 모델을 만들 수 있어요. 시작이 어려울 뿐, 한 번 해보면 새로운 세계가 열려요. 오늘 저녁 Unsloth부터 설치해 보세요.