chatGpt fine-tuning모델

기타 2025. 2. 4. 13:48

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 키가 필요합니다.

  1. OpenAI API 대시보드에 접속
  2. "Create API Key"를 클릭하여 새로운 API 키 생성
  3. 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 모델을 더 이상 사용하지 않으려면 삭제할 수 있습니다.

✅ 모델 삭제 요청

bash
복사편집
curl -X DELETE "https://api.openai.com/v1/models/ft:gpt-3.5-turbo:your-org:custom-model" \ -H "Authorization: Bearer YOUR_OPENAI_API_KEY"

📌 이 작업은 영구적이므로 주의해야 합니다.


🚀 결론 (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 모델 삭제 가능

Posted by yongary
,