Finetuning
OpenAI 기반 SFT + DPO 파인튜닝 서비스. 한국어 학습 데이터 그대로 지원하며, JSONL만 준비하시면 GPT-4.1 계열 모델 위에서 미세 조정해 드립니다.
FinetuningOpenAI SFT · DPO
OpenAI 기반 파인튜닝(Supervised + DPO)을 한국어 데이터 그대로 지원합니다. 엑셀만 준비해 주시면 학습용 JSONL 로 변환해 드리고, OpenAI 최신 모델 위에서 SFT 와 DPO 를 단계적으로 적용해 톤·문맥·선호 응답까지 맞춰 드립니다.
두 가지 학습 방식
OpenAI 는 SFT 와 DPO 를 모두 지원합니다. 단독으로도 가능하지만, 권장 워크플로우는 SFT 로 베이스라인을 잡은 뒤 DPO 로 선호도를 미세 조정하는 2단계 구성입니다.
- JSONL 의 messages 배열 (system/user/assistant)
- 선호 응답의 일부분만으로도 좋은 출발점이 됨
- DPO 직전에 베이스라인을 세우는 단계
지원 모델
gpt-4.1 familygpt-4.1-mini familygpt-4.1-nano family- 입력은 텍스트 only — 마지막 assistant 메시지가 비교 대상
- beta(0~2) 하이퍼파라미터로 보수성/공격성 조절
- SFT 결과 모델 위에서 적용했을 때 효과 극대화
지원 모델
gpt-4.1 familygpt-4.1-mini familygpt-4.1-nano family데이터 형식 — JSONL
각 줄이 하나의 학습 예제입니다. SFT 는 messages 배열, DPO 는 input/preferred_output/non_preferred_output 셋트입니다. 한국어 그대로 사용 가능.
SFT — 한국어 멀티턴 대화 예제
ko-finetuning-yunhomaeng.jsonl 에서 추출 · 일부 컨텐츠 축약{
"messages": [
{ "role": "system", "content": "대화는 맹윤호 박사와 김석사 사이에 최신 네이처에 게재된 LLM 연구 동향에 대해 논의하는 것이다." },
{ "role": "user", "content": "최근 네이처에 실린 LLM 연구 동향에 대해 알아봤어, 김석사?" },
{ "role": "assistant", "content": "네, 맹윤호 박사님, 최근 LLM에 관한 연구가 크게 주목받고 있어요…" },
{ "role": "user", "content": "어떤 발전이 있었는지 자세히 말해줄래?" },
{ "role": "assistant", "content": "예를 들어, 모델의 크기를 줄이면서도 성능을 유지하는 방법이 논의되었어요…" }
]
}
{
"messages": [
{ "role": "system", "content": "대화는 맹윤호 박사와 김석사 사이에 최신 네이처에 게재된 LLM 연구 동향에 대해 논의하는 것이다." },
{ "role": "user", "content": "최근 네이처에 실린 LLM 연구 동향에 대해 알아봤어, 김석사?" },
{ "role": "assistant", "content": "응, 특히 대규모 언어 모델의 에너지 효율성에 대한 연구가 많았어요…" },
{ "role": "user", "content": "에너지 효율성이라면 구체적으로 어떤 내용이야?" },
{ "role": "assistant", "content": "새로운 학습 알고리즘으로 에너지 소비를 줄이는 방법이 제안되었어요…" }
]
}DPO — 영어 선호 응답 예제
preference_dataset_filtered_10.jsonl 에서 추출 · 일부 축약
{
"input": {
"messages": [
{ "role": "user", "content": "story: Tina makes a schedule for herself every day. … selected sentence: She feels more comfortable with a to-do list and a time frame. Solution:" }
],
"tools": [],
"parallel_tool_calls": true
},
"preferred_output": [
{ "role": "assistant", "content": "She feels more comfortable with a to-do list and a time frame >Causes/Enables> She makes a schedule for herself every day. …" }
],
"non_preferred_output": [
{ "role": "assistant", "content": "What is the direct consequence or the outcome of this sentence on the story? …" }
]
}DPO — 한국어 선호 응답 예제
preference_dataset_filtered_10_kor.jsonl 에서 추출 · 일부 축약
{
"input": {
"messages": [
{ "role": "user", "content": "이야기: Tina는 매일 스스로 일정을 만듭니다. … 선정된 문장: 그녀는 할 일 목록과 시간 프레임에 더 편안하다고 느낍니다. 해결책:" }
],
"tools": [],
"parallel_tool_calls": true
},
"preferred_output": [
{ "role": "assistant", "content": "그녀는 할 일 목록과 시간 프레임에 더 편안하다고 느낍니다 >Causes/Enables> 매일 스스로 일정을 만듭니다. …" }
],
"non_preferred_output": [
{ "role": "assistant", "content": "이 문장의 직접적인 결과는 무엇입니까? 분명히 Tina가 매일 일정을 잡는 이유입니다. …" }
]
}DPO 잡 생성 (OpenAI SDK)
method.type = "dpo" 와 dpo.hyperparameters 만 지정하면 동일한 fine-tuning 잡 엔드포인트로 DPO 가 동작합니다.
import OpenAI from "openai";
const openai = new OpenAI();
const job = await openai.fineTuning.jobs.create({
training_file: "file-all-about-the-weather",
model: "gpt-4.1-2025-04-14",
method: {
type: "dpo",
dpo: {
hyperparameters: { beta: 0.1 },
},
},
});from openai import OpenAI
client = OpenAI()
job = client.fine_tuning.jobs.create(
training_file="file-all-about-the-weather",
model="gpt-4.1-2025-04-14",
method={
"type": "dpo",
"dpo": {
"hyperparameters": {"beta": 0.1},
},
},
)권장 2단계 워크플로우
안전성 검사 — 13개 카테고리
파인튜닝 잡 완료 시 OpenAI 가 13개 카테고리에서 모델 동작을 평가합니다. 임계치를 넘으면 배포가 차단되며, moderation_checks 이벤트로 실패 카테고리를 확인할 수 있습니다.
| 카테고리 | 설명 |
|---|---|
| advice | 정책에 위반되는 조언/가이드. |
| harassment/threatening | 폭력 또는 심각한 위해를 동반한 괴롭힘. |
| hate | 인종·성별·민족·종교·국적 등 보호 대상에 대한 혐오. |
| hate/threatening | 폭력을 동반한 보호 대상 혐오 콘텐츠. |
| highly-sensitive | 정책 위반 수준의 매우 민감한 데이터. |
| illicit | 불법 행위에 대한 조언/지시 (예: "shoplift 방법"). |
| propaganda | 정책 위반 이념에 대한 찬양/지원. |
| self-harm/instructions | 자해를 권하거나 방법을 알려주는 콘텐츠. |
| self-harm/intent | 발화자가 자해 의도를 표현하는 콘텐츠. |
| sensitive | 정책 위반 민감 데이터. |
| sexual/minors | 미성년자가 포함된 성적 콘텐츠. |
| sexual | 성적 흥분을 의도한 콘텐츠 (성교육 제외). |
| violence | 죽음·폭력·신체 상해 묘사. |
실패 시 OpenAI fine-tuning events 엔드포인트의 moderation_checks 이벤트를 조회해 어떤 카테고리가 컷되었는지 확인할 수 있습니다.
도입 문의
학습 데이터 정제부터 SFT/DPO 잡 운영, 안전성 평가 통과까지 한국어 워크플로우 그대로 지원합니다.