티스토리 뷰
파인튜닝이란?
-미리 학습된 GPT 모델을 특정한 분야에 대해서 추가적인 학습을 시키는것을 말합니다. 기본적인 GPT모델에 특정분야의 데이터를 추가학습시켜 강화시키는것을 파인튜닝이라고 합니다.
파인튜닝을 해야하는 이유
-본격적으로 GPT 모델은 텍스트 데이터를 기반으로 사전학습된 모델인데, 이건 기본적인 단어와 문장의 의미를 파악하며 이를이용해 일정한 패턴을 학습할 수 있습니다. 기본적인 데이터는 학습이 되어있으니 특정 분야에 대해 정확하게 답변을 생성하기 위해서는 그 분야의 추가적인 학습이 필요합니다. 따라서 그 분야에맞는 추가적인 데이터를 학습시켜 모델을 강화시켜 특정분야에서 더욱 정확한 예측 결과를 얻을 수 있습니다.
파인튜닝 과정
먼저 파인튜닝을 진행되기위해선 OPENAI라이브러리가 최신버전이어야합니다.
다음 명령어를 이용해 OPENAI를 최신버전으로 업데이트합니다.
pip install --upgrade openai
다음은 파인튜닝을 하기전에 본인의 API KEY를 환경변수로 설정을 해야합니다. 환경변수로 설정을 안할 시 파인튜닝과정에서 API_KEY오류가 방생하면서 진행이 안됩니다. 명령어는 다음과 같습니다.
$env:OPENAI_API_KEY="<OPENAI_API_KEY>"
그다음은이제 파인튜닝을 진행할 파인튜닝 데이터를 준비해야합니다. 이 데이터의 구조는 다음과같습니다.
- JSONL 형태의 데이터 파일이여야함. (먼저 txt 파일로 만든후 라이브러리를 이용해 JSONL로 만듦)
- 파일안에 한 데이터에는 prompt와 completion만 있어야함.
- prompt = 질문
- completion = 대답
대충 이런식으로 구성을 하시면됩니다. prompt에는 현재 빈칸인데 원하는 질문을 넣으시면되고 completion에는 질문에 대한 원하는 정답을 적으시면됩니다. gpt는 이방식으로 어떤 대답에 어떤 답이와야하는지 스스로 학습을 하기시작합니다.
이파일은 .txt파일로 만들겁니다. txt로 만든후 gpt라이브러리를 이용해 JSONL로 변환을 합니다.
이렇게 파일을 만들었으면 gpt 라이브러리를 이용해 이 .TXT데이터 파일을 JSONL로 변환을 합니다. 변환을 하는 명령은 다음과 같습니다.
openai tools fine_tunes.prepare_data -f <LOCAL_FILE>
LOCAL_FILE에는 방금 만든.txt 파일의 경로,이름을 적으시면됩니다. 명령어를 입력하시면 다음과같은 상태가되면서 파일이 변환이 됩니다.
이렇게 파일이 만들어 졌으면 파인튜닝 모델에 학습 시켜야합니다. 파인튜닝이 가능한 모델엔 ada,babage, curie , davinci모델만 가능합니다. ada는 가장 싼모델이고 davinci는 가장비싸지만 성능이 더 좋은 모델입니다. 목적에 맞게 선택을 하시면됩니다. 학습을 시키기위한 명령어는 다음과 같습니다.
openai api fine_tunes.create -t <TRAIN_FILE_ID_OR_PATH> -m <BASE_MODEL>
TRAIN_FILE_ID_OR_PATH에는 방금 만든 JSONL 파일을 넣고, BASE_MODEL엔 학습시킬 모델을 선택하면됩니다.
다음은 실제로 적용한 명령어 입니다.
위의 예시를 보면 제가 이미 학습을 시켜놔서 저렇게 뜨는데 처음하시면 완료라는 글이 뜰겁니다..!
만약 학습 중간에 다음과같이 다음과 같이 중간에 끊기는 경우가 있을겁니다. 아래에 보시는거와 같이, 명령어를 입력해서 다시 실행을 시키시면됩니다.
openai api fine_tunes.follow -i <YOUR_FINE_TUNE_JOB_ID> //다시 이어서 학습시키는 명령어.
다음은 학습시킨 gpt 모델들의 리스트를 볼수 있는 명령어입니다. 다음 명령어로 지금까지 학습시킨 gpt 모델들의 정보와 데이터들을 볼 수 있습니다.
openai api fine_tunes.list
이제 학습을 다 시켰으면 학습되어진 gpt 모델을 실행시켜볼 차례입니다.해당 모델의 id를 입력하고 뒤에 실행시켜볼 질문을 입력하시면됩니다.
openai api completions.create -m <FINE_TUNED_MODEL> -p <YOUR_PROMPT>
만약 학습되어진 gpt 모델이 맘에들지않으시다면 삭제를 하실수 있습니다. 삭제를 하시면 복구를 할 수 없으니 주의해서 사용하시길 바랍니다.
openai api models.delete -i <FINE_TUNED_MODEL>
위와 같이 입력하시면 해당모델이 삭제가 되었는다는 메세지와함께 삭제된 모델의 정보가 뜹니다.
'기타' 카테고리의 다른 글
자바 코딩테스트 문법 (0) | 2023.10.10 |
---|---|
간호사 듀티표 작성해드립니다! (0) | 2023.08.17 |
GPT-3 davinci모델 파인튜닝 시키기 (0) | 2023.05.11 |
Chat GPT API 사용법 (0) | 2023.05.04 |
Libp2p 라이브러리 빌드 (0) | 2023.04.30 |
- Total
- Today
- Yesterday
- 인공지능
- 웹소켓
- 클라우드
- 깃
- 데이터베이스
- 서버
- 보안
- 도커
- 포트포워딩
- 소프트웨어공학
- nat
- 컨테이너
- IP주소
- 프로토콜
- 문법
- 컴퓨터구조
- sql
- 파인튜닝
- 쿼리
- JPA
- 메세지큐
- 배포
- 자바
- 깃허브
- 네트워크
- 테이블
- 데이터
- DB
- 자동화
- 스프링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |