[오늘의 공부]
오늘은 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 다운로드
- 해당 URL(https://github.com/hyokwan/chatgpt/tree/main)을 접속하여 다운로드 진행함.
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를 적용함.
- 모델의 자세한 내용은 https://platform.openai.com/docs/models/gpt-3 에 있음.
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로 변경함.
○ 모델 부분도 변경해야 하는데 모델명 확인 하는 방법은 다음과 같음.
- https://platform.openai.com/playground
- 접속
- 우측 Model 부분에 내가 학습한 모델 선택
- 상단의 view code 클릭하여 모델 명 복사 후 파이썬 파일에 적용
○ 또한 app.py 파일도 동일하게 API key와 model 명을 변경함.
○ 마지막으로 터미널에서 python app.py를 통해 실행하면 아래와 같은 페이지와 학습에 관련된 답변을 확인 가능함.
7. 기타(모델)
○ fine tuning 하는 모델은 7가지가 있음.
8. 결론
○ 이번에 사용했던 데이터의 한계가 있어 원하는 성능의 결과를 얻어내지 못했지만, 튜닝을 통해 어느정도 학습한 데이터의 결과를 확인할 수 있었음.
○ 추가적으로 Chat GPT API를 활용하여 튜닝할 때의 모델에 대해 공부할 수 있는 기회가 되었음.
○ 사용하고자 하는 데이터의 신뢰성, 데이터의 전처리가 Fine Tuning 시 성능을 좌우한다고 느꼈음.
○ 다음번에는 우리나라 공공데이터를 활용하여 튜닝해볼 수 있으면 좋을 것 같으며, 다음에는 AI HUB 데이터를 적용한 LLM 챗봇을 해보고자 함.
'개발 관련 공부 > 기타' 카테고리의 다른 글
Docker 이해하기 (0) | 2024.12.03 |
---|