본문 바로가기
개발 관련 공부/기타

FineTuning Chat GPT 연동 Chatbot 개발 프로세스 정리

by swlotto 2025. 1. 5.

[오늘의 공부]

오늘은 Chat GPT를 연동하여 FineTuning을 통해 Chatbot을 개발하는 연습을 해보고자 한다.

 

▶ 개발 과정

1. OpenAI API 발급

  • https://openai.com/blog/openai-api 해당 URL로 접속하여 우측 상단 본인 계정 클릭 후 View API Keys 선택
  • Create new secret key를 통해 API 키 발급

 

  • 해당 API는 무료 5$ 정도만 사용 가능하며, 이 금액이 넘어가면 유료로 전환하여 사용해야 함.
  • 사용량을 확인하고 싶으면 좌측의 Usage를 클릭하면 확인 가능함.

 

2. github 다운로드

 

3. 환경설정

○ 우선 본인의 경우 가상환경을 설정하여 진행함.

  Python은 따로 지정하지 않았으며, 추가로 설치해야할 것은 다음과 같음.

  • pip install flask
  • pip install openai==0.27.0
  • pip install jupyter

4. 학습 데이터 준비

  테스트용 데이터는 github에 저장되어 있음.

 

먼저 Finetune Process ipynb 파일을 가상환경 내 jupyter를 통해 open.

맨 위의 openai.api_key 부분에 처음에 받은 본인의 API key 값으로 변경함.

그리고 마지막 줄을 제외한 나머지를 실행하면 jsonl 파일이 생성됨.

 

5. 재학습 및 모델 생성

○ jupyter 상단에 jupyterlab을 클릭하여 터미널에 접속함.

그리고 아래의 코드를 입력하여 fine tuning 진행함.

  • 모델의 경우, davinci, curie, babbage 가 있는데 파라미터 많고 복잡한 davinci를 적용함.

 

openai —api-key APIkey api fine_tunes.create --training_file prepared_data_prepared.jsonl --model davinci --suffix "SuperHero"
  • suffix는 모델 이름 세팅임.

정상적으로 돌아가면 아래와 같은 화면이 나옴.

 

에러가 나는 경우는 2가지가 있음.

 

  • 좌측은 서버 불안정으로 인한 에러로 한국시간으로 오전 중에 하는 것이 좋다고 함.
  • 우측의 경우 기다리라는 뜻으로 1~3시간 정도 대기해야 함.

잘 적용되었는지 확인하기 위해 아까 확인했던 Usage 페이지 하단에 날짜와 아이디를 적용하면 Fine-tune training 정보가 나옴.

 

모델이 잘 학습되고 있는지는 구글링 검색하면 확인할 수 있다고 함.

추가적으로 학습 적용시 3~4$정도 비용이 발생됨.

 

6. 테스트 진행

학습이 끝나면 파일 중 Execute 파일을 열어 openai.api_key에 나의 API key로 변경함.

모델 부분도 변경해야 하는데 모델명 확인 하는 방법은 다음과 같음.

  1. https://platform.openai.com/playground 
  2. 접속
  3. 우측 Model 부분에 내가 학습한 모델 선택
  4. 상단의 view code 클릭하여 모델 명 복사 후 파이썬 파일에 적용

 

○ 또한 app.py 파일도 동일하게 API keymodel 명을 변경함.

 

마지막으로 터미널에서 python app.py를 통해 실행하면 아래와 같은 페이지와 학습에 관련된 답변을 확인 가능함.

 

7. 기타(모델)

fine tuning 하는 모델은 7가지가 있음.

 

8. 결론

이번에 사용했던 데이터의 한계가 있어 원하는 성능의 결과를 얻어내지 못했지만, 튜닝을 통해 어느정도 학습한 데이터의 결과를 확인할 수 있었음.

추가적으로 Chat GPT API를 활용하여 튜닝할 때의 모델에 대해 공부할 수 있는 기회가 되었음.

사용하고자 하는 데이터의 신뢰성, 데이터의 전처리가 Fine Tuning 시 성능을 좌우한다고 느꼈음.

다음번에는 우리나라 공공데이터를 활용하여 튜닝해볼 수 있으면 좋을 것 같으며, 다음에는 AI HUB 데이터를 적용한 LLM 챗봇을 해보고자 함.

'개발 관련 공부 > 기타' 카테고리의 다른 글

Docker 이해하기  (0) 2024.12.03