-
Error code: 400 The model gpt-3.5-turbo requires data in the chat-completion format 해결하기 / chat GPT 파인튜닝(fine-tuning) jsonl 데이터 구축인공지능/chat GPT 2024. 1. 24. 09:11반응형
에러 해결하기
챗지피티(chat GPT) 파인튜닝을 할 때 다음과 같은 에러가 뜬다면, 데이터 형태의 문제일 수 있다.
Error code: 400 - {'error': {'message': "File 'file-(파일 코드)' is in prompt-completion format. The model gpt-3.5-turbo-0613 requires data in the chat-completion format.", 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_file_format'}}
데이터는 다음과 같은 형태로 설정해주고, 10개 이상의 데이터를 만족해야한다.
{"messages": [{"role": "system", "content": "시스템 요구 사항"}, {"role": "user", "content": "유저가 치는 채팅"}, {"role": "assistant", "content": "챗지피티 답변 예시"}]} {"messages": [{"role": "system", "content": "시스템 요구 사항"}, {"role": "user", "content": "유저가 치는 채팅"}, {"role": "assistant", "content": "챗지피티 답변 예시"}]} {"messages": [{"role": "system", "content": "시스템 요구 사항"}, {"role": "user", "content": "유저가 치는 채팅"}, {"role": "assistant", "content": "챗지피티 답변 예시"}]}
위의 양식에 맞추어 10개 이상의 데이터를 jsonl 파일에 적어준다. (이 오류는 다음과 같은 양식이 지켜지지 않았을 때 발생했을 가능성이 높다.)
나의 경우 위와 같이 파일을 생성하고, 아래 코드로 jsonl 파일을 불러왔다.
file = client.files.create( file=open("data_example.jsonl", "rb"), purpose="fine-tune" ) client.fine_tuning.jobs.create( training_file=file.id, model="gpt-3.5-turbo" )
데이터 구성
하나의 데이터는 message : 안에 role과 content 쌍을 []로 묶은 형태이다. role은 system, user, assistant가 될 수 있다.
system은 시스템 요구 사항이다.
"당신은 철자를 틀릴 수 있습니다"
"당신은 돌려말하기를 할 수 있습니다"
"너의 이름은 초코찜빵이며, 코딩을 해주는 로봇이야"
와 같이, 챗지피티의 정체성을 세뇌시킬 수 있다.
user은 유저의 예시 input, assistant는 챗지피티의 예시 답변이다.
user의 content에는 챗지피티를 사용하는 사람이 입력할 말을 적는다.
assistant의 content에는 그 말에 대하여 챗지피티의 예시 답변을 적는다.
* 이외에도 대답의 형식을 지정하는 다양한 방법이 있는데, 아래 레퍼런스를 참고하길 바란다.
Fine-tuning 결과
아래 사이트에서 Fine-tuning의 결과를 확인할 수 있다. 그리고 Fine tuning이 성공하면 친절하게 메일도 보내준다.
https://platform.openai.com/finetune
Fine-tuning에 실패하여도 메일이 오며, 결과 창에 실패가 뜬다.
챗지피티의 파인튜닝에 성공할 시 메일 내용은 다음과 같다. fine-tuning job과 model 코드를 받을 수 있다.
fine-tuning 결과를 확인할 수 있는 사이트( https://platform.openai.com/finetune)에서도 아래와 같이 파인 튜닝 결과를 확인할 수 있다.
trained token과 epoch 수에 대한 정보도 함께 뜬다. 위는 간단한 예제로 10개 학습했을 때이다.
사용
client.fine_tuning.jobs.retrieve("ftjob-코드")
결과 창에서 확인할 수 있는 ftjob으로 시작하는 코드를 retrieve 메소드 내에 입력하면 FineTuningJob에 대한 여러 정보들을 확인할 수 있다.
가격에 관하여
챗지피티 파인 튜닝 모델은 파인튜닝의 기반이 되는 GPT-3.5 Turbo보다 훨씬 비싸니 주의하길 바란다.
https://platform.openai.com/usage
usage 페이지에서 얼마나 사용했는지를 볼 수 있고, 활동 기록을 확인할 수 있다.
반응형'인공지능 > chat GPT' 카테고리의 다른 글
파이썬(주피터)으로 챗지피티 파인튜닝 하기 / 콘다 가상환경 세팅, Chat GPT fine-tuning for python with jupyter, conda (0) 2024.01.24