**파인튜닝(Fine-Tuning)**은 기존에 학습된 대규모 AI 모델(GPT-4o, Claude 등)을 특정 작업이나 도메인에 맞게 추가 학습시키는 과정입니다. 마치 이미 영어를 할 줄 아는 사람에게 의학 용어를 가르치는 것과 비슷합니다.
| 구분 | 일반 모델 (GPT-4o) | 파인튜닝 모델 |
|---|---|---|
| 범용성 | 모든 주제에 대해 평균적 성능 | 특정 도메인에서 뛰어난 성능 |
| 답변 스타일 | 일반적인 톤 | 사용자가 원하는 톤/형식 |
| 전문 지식 | 표면적 이해 | 깊이 있는 도메인 지식 |
| 예시 | "고객 불만 처리 방법" → 일반적 답변 | "고객 불만 처리 방법" → 회사 정책에 맞는 구체적 답변 |
예시:
2026년 현재 OpenAI는 GPT-4o, GPT-4o-mini, GPT-3.5-turbo 파인튜닝을 지원합니다.
pip install openai
export OPENAI_API_KEY="sk-proj-..."
파인튜닝 데이터는 JSONL 형식 (한 줄당 하나의 JSON 객체)으로 작성합니다.
최소 요구사항:
messages 배열 포함예시: 고객 지원 챗봇 파인튜닝
{"messages": [{"role": "system", "content": "당신은 친절한 고객 지원 AI입니다. 항상 존댓말을 사용하세요."}, {"role": "user", "content": "배송이 늦어지고 있어요"}, {"role": "assistant", "content": "불편을 드려 죄송합니다. 주문번호를 알려주시면 배송 상태를 확인해드리겠습니다."}]}
{"messages": [{"role": "system", "content": "당신은 친절한 고객 지원 AI입니다. 항상 존댓말을 사용하세요."}, {"role": "user", "content": "환불 받고 싶어요"}, {"role": "assistant", "content": "환불 처리를 도와드리겠습니다. 주문번호와 환불 사유를 말씀해주시겠어요?"}]}
파일 저장: training_data.jsonl
from openai import OpenAI
client = OpenAI()
file = client.files.create(
file=open("training_data.jsonl", "rb"),
purpose="fine-tune"
)
print(f"파일 ID: {file.id}")
job = client.fine_tuning.jobs.create(
training_file=file.id,
model="gpt-4o-2024-08-06" # 또는 "gpt-4o-mini"
)
print(f"작업 ID: {job.id}")
# 작업 상태 조회
status = client.fine_tuning.jobs.retrieve(job.id)
print(f"상태: {status.status}")
# 완료되면 fine_tuned_model에 모델 ID 표시
if status.status == "succeeded":
print(f"파인튜닝 완료! 모델 ID: {status.fine_tuned_model}")
response = client.chat.completions.create(
model="ft:gpt-4o-2024-08-06:my-org:custom-suffix:AbCdEfGh", # 파인튜닝 모델 ID
messages=[
{"role": "system", "content": "당신은 친절한 고객 지원 AI입니다."},
{"role": "user", "content": "주문 취소하고 싶어요"}
]
)
print(response.choices[0].message.content)
# Slack, Discord, 고객센터 대화 로그에서 추출
conversation_log = """
[User] 배송 추적 어떻게 하나요?
[Agent] 주문 확인 이메일에 있는 추적 번호를 입력하시면 됩니다.
"""
# JSONL로 변환
jsonl_line = {
"messages": [
{"role": "system", "content": "고객 지원 전문가"},
{"role": "user", "content": "배송 추적 어떻게 하나요?"},
{"role": "assistant", "content": "주문 확인 이메일에 있는 추적 번호를 입력하시면 됩니다."}
]
}
# GPT-4o에게 50개의 훈련 데이터 생성 요청
prompt = """
고객 지원 챗봇 파인튜닝용 데이터 50개를 JSONL 형식으로 생성해줘.
주제: 배송, 환불, 제품 문의
톤: 친절하고 전문적
형식:
{"messages": [{"role": "system", "content": "..."}, {"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]}
"""
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)
훈련 데이터와 별도로 검증용 데이터를 준비하면 과적합(overfitting) 방지에 도움이 됩니다.
job = client.fine_tuning.jobs.create(
training_file=training_file_id,
validation_file=validation_file_id, # 옵션: 검증 데이터
model="gpt-4o-2024-08-06",
hyperparameters={
"n_epochs": 3 # 학습 반복 횟수 (기본값: 자동)
}
)
파인튜닝 완료 후 OpenAI 대시보드에서 확인 가능:
# 일반 모델 vs 파인튜닝 모델 비교
test_prompts = [
"배송이 3일 지났는데 아직 안 왔어요",
"환불 받고 싶어요",
"제품 사용법 알려주세요"
]
for prompt in test_prompts:
# 일반 모델
base_response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
).choices[0].message.content
# 파인튜닝 모델
ft_response = client.chat.completions.create(
model="ft:gpt-4o:...",
messages=[{"role": "user", "content": prompt}]
).choices[0].message.content
print(f"질문: {prompt}")
print(f"일반: {base_response}")
print(f"파인튜닝: {ft_response}
")
| 모델 | 훈련 비용 | 추론 비용 (Input/Output) |
|---|---|---|
| GPT-4o | $25/1M tokens | $3.75 / $15.00 per 1M tokens |
| GPT-4o-mini | $3/1M tokens | $0.30 / $1.20 per 1M tokens |
| GPT-3.5-turbo | $0.80/1M tokens | $0.30 / $0.60 per 1M tokens |
예시 계산:
# Claude에서 "의사 파인튜닝" 효과 내기
system_prompt = """
당신은 우리 회사의 고객 지원 전문가입니다.
다음 가이드라인을 따르세요:
1. 항상 존댓말
2. 배송 문의 → "주문번호 확인 후 3영업일 이내 답변"
3. 환불 요청 → "구매일로부터 30일 이내만 가능"
... (100줄의 상세한 가이드라인)
"""
prompt = """
아래 예시처럼 답변해줘:
Q: 배송 언제 오나요?
A: 주문번호를 알려주시면 정확한 배송일을 확인해드리겠습니다.
Q: 환불 받고 싶어요
A: 환불 신청은 마이페이지 > 주문내역에서 가능합니다.
---
Q: 색상 변경 가능한가요?
A:
"""
문제: 일반 GPT-4o는 계약서 리스크를 일반적으로만 분석
해결: 500개의 실제 계약서 + 변호사 검토 의견으로 파인튜닝
결과: 특정 조항의 위험도를 90% 정확도로 판단
문제: 환자 질문에 대한 일반적 의학 정보만 제공
해결: 병원 FAQ 1,000개로 파인튜닝
결과: 병원 고유 정책(진료 시간, 보험 적용 등)을 정확히 안내
문제: 수천 개 제품마다 수동으로 설명 작성
해결: 100개 베스트셀러 제품 설명으로 파인튜닝
결과: 신제품 설명을 브랜드 톤에 맞게 자동 생성, 작업 시간 80% 단축
2026년, AI 파인튜닝은 더 이상 대기업만의 전유물이 아닙니다. OpenAI, Anthropic, Google이 제공하는 도구를 활용하면 누구나 자신만의 전문 AI를 만들 수 있습니다. 첫 걸음을 떼어보세요!
참고 자료: