- 현재 GPT-4로는 파인튜닝이 불가능하므로 GPT-3로 파인튜닝을 하고 있음
- GPT-3 기반이 되는 학습모델은 대표적 총 4가지
- 1) davinci : GPT-3 시리즈 중 가장 성능이 좋은 모델, 요청당 최대 4,000개의 토근 처리 가능 (대화를 할수 있는 모델)
- 2) curie : 매우 유능하지만 davinci보다 빠르고 저렴 / 성능은 davinci가 우수
- 3) babbage : 간단한 작업이 가능하고 매우 빠르고 비용이 저렴
- 4) ada : 간단한 작업이 가능하므로 일반적으로 GPT-3 시리즈 중 가장 빠르고 가장 저렴
- 학습자료를 자세하고 다양한 형식의 prompt를 작성해야함
import time
import openai
# OpenAI API 키 설정
openai.api_key = "[openai_api_key]"
# Fine-tune 모델 생성 함수
def create_qa_model(training_file, suffix):
# Fine-tune 모델 생성 요청
response = openai.FineTune.create(
training_file=training_file,
suffix=suffix,
model="davinci",
n_epochs = 10
)
model_id = response['id']
print("Fine-tuning 모델 생성 중...",model_id)
# Fine-tuning 작업 완료 여부 확인
while True:
model_info = openai.FineTune.retrieve(id=model_id)
status = model_info['status']
print("모델정보>>",model_info)
if status == 'succeeded':
print("Fine-tuning 모델 생성 완료!")
return model_info['model']
elif status == 'failed':
print("Fine-tuning 모델 생성 실패")
return None
time.sleep(1)
# Fine-tune 모델 생성 예시
#file_path = "./SQuAD/data.json"
file_path = "./v_rater.jsonl"
suffix = "Raterteam QA_bot"
print(f"파일업로드준비|파일명:{file_path}")
#학습파일 업로드
def upload_file(file_path):
with open(file_path, "rb") as file:
response = openai.File.create(
file=file,
purpose='fine-tune'
)
file_id = response['id']
print(f"openai.File.create()호출결과\n{response}\n")
return file_id
doUploadfile = upload_file(file_path)
model_name = create_qa_model(doUploadfile, suffix)
if model_name:
print("Fine-tuned Model Name:", model_name)
else:
print("Fine-tuned 모델 생성에 실패했습니다.")
반응형