customGPT모델은 openAPI로 호출이 안되는 현상이 있네요.
그래서 자체훈련을 시키려면 fine-tuning모델이 맞고,
아래와 같이 생성하면 됩니다.
✅ OpenAI Fine-Tuning 모델 생성 방법 (처음부터 끝까지)
OpenAI에서 Fine-Tuning 모델을 생성하는 과정을 처음부터 끝까지 단계별로 설명하겠습니다. 🚀
Fine-Tuning을 통해 GPT-3.5 Turbo 또는 GPT-4를 특정한 스타일, 문체, 데이터에 맞게 최적화할 수 있습니다.
📌 1. Fine-Tuning 개요
Fine-Tuning이란?
Fine-Tuning이란 기존 OpenAI 모델(GPT-3.5-Turbo, GPT-4)을 사용자의 특정 데이터에 맞춰 재훈련하는 과정입니다.
✅ 사용 사례:
- 특정 고객 응대 방식을 학습 (예: 콜센터 대응, 법률 상담)
- 특정 전문 용어를 반영한 챗봇 생성 (예: 의학, 법률, 금융)
- 기존 데이터 기반으로 맞춤형 답변 생성 (예: 기업 내부 문서 요약)
📌 2. Fine-Tuning에 필요한 사전 준비
✅ OpenAI API 키 발급
Fine-Tuning을 하려면 OpenAI API 키가 필요합니다.
- OpenAI API 대시보드에 접속
- "Create API Key"를 클릭하여 새로운 API 키 생성
- API 키를 복사하여 보관 (한 번만 표시됨)
📌 3. Fine-Tuning 데이터 준비
Fine-Tuning을 하려면 **훈련 데이터(training data)**를 만들어야 합니다.
OpenAI는 JSONL(JSON Lines) 형식의 데이터를 요구합니다.
✅ Fine-Tuning 데이터 형식
Fine-Tuning 데이터는 "messages" 형식으로 작성됩니다.
(json형식 예제)
{"messages": [
{"role": "system", "content": "너는 친절한 금융 상담사야."},
{"role": "user", "content": "대출 금리가 어떻게 되나요?"},
{"role": "assistant", "content": "현재 대출 금리는 연 3.5%입니다."}
]}
jsonl형식.필요
{"messages": [{"role": "system", "content": "너는 친절한 채권 전문가야."}, {"role": "user", "content": "채권 회수 절차가 어떻게 되나요?"}, {"role": "assistant", "content": "채권 회수 절차는 1) 채무자 연락 2) 독촉장 발송 3) 법적 조치 순으로 진행됩니다."}]}
{"messages": [{"role": "system", "content": "너는 친절한 채권 전문가야."}, {"role": "user", "content": "부실채권을 매각할 수 있나요?"}, {"role": "assistant", "content": "네, 부실채권은 채권 매입 기관을 통해 매각할 수 있습니다."}]}
📌 JSONL 파일을 만들고, .jsonl 확장자로 저장해야 합니다.
📌 4. Fine-Tuning 데이터 업로드
OpenAI API를 사용하여 준비한 JSONL 파일을 업로드합니다.
✅ JSONL 파일 업로드 (파일 ID 얻기)
curl -X POST "https://api.openai.com/v1/files" \
-H "Authorization: Bearer YOUR_OPENAI_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F "file=@training_data.jsonl" \
-F "purpose=fine-tune"
응답예시:
{
"id": "file-abc123",
"object": "file",
"bytes": 12345,
"created_at": 1700000000,
"filename": "training_data.jsonl",
"purpose": "fine-tune"
}
✅ "id" 값을 저장 (file-abc123) → Fine-Tuning을 수행할 때 사용됩니다.
📌 5. Fine-Tuning 실행
이제 Fine-Tuning을 실행하여 맞춤형 모델을 학습시킵니다.
✅ Fine-Tuning 모델 생성 요청
curl -X POST "https://api.openai.com/v1/fine_tuning/jobs" \
-H "Authorization: Bearer YOUR_OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-3.5-turbo",
"training_file": "file-abc123",
"hyperparameters": {
"n_epochs": 3
}
}'
응답 예시:
{
"id": "ftjob-xyz789",
"object": "fine_tuning.job",
"model": "gpt-3.5-turbo",
"training_file": "file-abc123",
"status": "running",
"created_at": 1700000000
}
✅ "id" (ftjob-xyz789)가 Fine-Tuning 작업의 ID입니다.
✅ 훈련이 완료되면 새로운 모델 ID가 생성됩니다.
📌 6. Fine-Tuning 진행 상태 확인
Fine-Tuning이 얼마나 진행되었는지 확인하려면 아래 명령어를 실행합니다.
curl -X GET "https://api.openai.com/v1/fine_tuning/jobs/ftjob-xyz789" \
-H "Authorization: Bearer YOUR_OPENAI_API_KEY"
응답 예시:
{
"id": "ftjob-xyz789",
"status": "succeeded",
"fine_tuned_model": "ft:gpt-3.5-turbo:your-org:custom-model"
}
✅ Fine-Tuning이 완료되면 "fine_tuned_model" 값이 생성됩니다.
✅ "ft:gpt-3.5-turbo:your-org:custom-model"이 새로운 모델 ID입니다.
📌 7. Fine-Tuned 모델 사용 (API 호출)
Fine-Tuning이 완료되면 새로운 모델 ID를 사용하여 API 호출이 가능합니다.
✅ Fine-Tuning 모델 호출 예제
curl https://api.openai.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "ft:gpt-3.5-turbo:your-org:custom-model",
"messages": [{"role": "user", "content": "채권 회수 절차가 어떻게 되나요?"}],
"temperature": 0.7
}'
📌 Fine-Tuned 모델이 기존 GPT-3.5보다 더 정확하게 원하는 답변을 생성합니다.
📌 8. Fine-Tuned 모델 삭제 (필요할 경우)
Fine-Tuning 모델을 더 이상 사용하지 않으려면 삭제할 수 있습니다.
✅ 모델 삭제 요청
📌 이 작업은 영구적이므로 주의해야 합니다.
🚀 결론 (Fine-Tuning 요약)
✅ 1) JSONL 형식으로 Fine-Tuning 데이터 준비
✅ 2) API를 사용하여 JSONL 파일 업로드 (/v1/files)
✅ 3) Fine-Tuning 실행 (/v1/fine_tuning/jobs)
✅ 4) 모델 학습이 완료되면 Fine-Tuning 모델 ID 확인
✅ 5) Fine-Tuned 모델을 API에서 호출하여 사용
✅ 6) 필요할 경우 Fine-Tuned 모델 삭제 가능