ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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에는 그 말에 대하여 챗지피티의 예시 답변을 적는다. 

     

    * 이외에도 대답의 형식을 지정하는 다양한 방법이 있는데, 아래 레퍼런스를 참고하길 바란다. 

    https://wikidocs.net/200140

     

    02) 데이터셋 준비하기 상세

    > 아래 문서는OpenAPI에서 제공하는 문서를 기반으로 작성되었습니다. > [https://platform.openai.com/docs/guides/fine-tuning…

    wikidocs.net

     

     

    Fine-tuning 결과

    아래 사이트에서 Fine-tuning의 결과를 확인할 수 있다. 그리고 Fine tuning이 성공하면 친절하게 메일도 보내준다. 

    https://platform.openai.com/finetune

    Fine-tuning 진행중

     

    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 페이지에서 얼마나 사용했는지를 볼 수 있고, 활동 기록을 확인할 수 있다. 

    반응형

    댓글

Designed by Tistory.