OpenAI, DPO 파인튜닝 정식 GA — 라벨 없이 선호 데이터로 모델 정렬
OpenAI가 Direct Preference Optimization(DPO) 방식의 파인튜닝을 Fine-tuning API에서 정식 지원한다. 기존 SFT(지도 학습) 방식과 달리 '좋은 응답 vs 나쁜 응답' 쌍만 있으면 별도 라벨링 없이 모델 행동을 교정할 수 있어, 한국어 특화 응답 품질 개선이나 도메인 톤앤매너 조정 비용이 크게 줄어든다.
DPO 파인튜닝이란 무엇이고 기존 SFT와 무엇이 다른가
SFT(Supervised Fine-Tuning)는 '정답 응답'을 명시적으로 작성해 학습시키는 방식이다. 반면 **DPO(Direct Preference Optimization)**는 동일한 프롬프트에 대해 '선호 응답(chosen)'과 '비선호 응답(rejected)' 쌍을 제공하면, 모델이 스스로 선호 분포를 학습한다.
- 라벨러가 정답을 쓸 필요 없이 상대 비교만으로 데이터 구성 가능
- 기존 고객 상담 로그·사용자 피드백(좋아요/싫어요)을 그대로 학습 데이터로 전환 가능
- OpenAI 내부 벤치마크 기준, 동일 데이터 수에서 SFT 대비 선호도 정렬 점수 +12~18% 개선
지원 모델 및 가격
정식 GA 시점에서 DPO 파인튜닝을 지원하는 모델은 다음과 같다.
| 모델 | DPO 지원 | 학습 토큰 단가 | |---|---|---| | gpt-4o-mini-2026-07 | ✅ | 공식 페이지 참조 | | gpt-4o-2026-08 | ✅ | 공식 페이지 참조 | | gpt-3.5-turbo | ❌ (SFT 전용) | — |
최소 학습 데이터 요건은 chosen/rejected 쌍 64개 이상이며, 권장은 500쌍 이상이다. 데이터 포맷은 기존 JSONL 파인튜닝 포맷에 "rejected" 필드만 추가하면 되므로 기존 SFT 파이프라인을 거의 그대로 재활용할 수 있다.
{"messages": [{"role": "user", "content": "안녕"}], "chosen": [{"role": "assistant", "content": "안녕하세요! 무엇을 도와드릴까요?"}], "rejected": [{"role": "assistant", "content": "ㅎㅎ 안녕"}]}
한국 개발자·크리에이터 활용 시나리오
1. 한국어 톤앤매너 교정
챗봇 응답에서 지나치게 딱딱하거나 반말 섞인 출력을 rejected로, 브랜드 가이드에 맞는 응답을 chosen으로 구성하면 별도 프롬프트 엔지니어링 없이 일관된 말투를 만들 수 있다.
2. 코드 리뷰 품질 개선
코드 설명이 너무 장황한 응답을 rejected, 핵심만 담은 응답을 chosen으로 설정해 코드 어시스턴트 모델을 팀 컨벤션에 맞게 정렬 가능하다.
3. 콘텐츠 크리에이터 글쓰기 스타일 이식 유튜브 스크립트·블로그 포스트 등 기존 작성물에서 선호/비선호 쌍을 자동 생성해 자신의 문체를 모델에 학습시키는 파이프라인 구축이 현실적으로 가능해졌다.
시작하는 방법
- OpenAI 플랫폼(platform.openai.com) → Fine-tuning → 방식: DPO 선택
- JSONL 파일 업로드 (
chosen/rejected필드 포함) - 하이퍼파라미터:
beta(KL 발산 강도, 기본값 0.1) 조정 가능 - 학습 완료 후 일반 Chat Completions API로 동일하게 호출
자세한 파라미터 및 최신 단가는 OpenAI Fine-tuning 공식 문서를 참조한다.