Fine tuning GPT3 Model
1. OpenAI API 키 발급
OpenAI API 수행을 위해서는 먼저 API Key 발급이 필요합니다. OpenAI 계정이 필요하며 계정이 없다면 계정 생성이 필요합니다. 간단히 Google이나 Microsoft 계정을 연동 할 수 있습니다. 이미 계정이 있다면 로그인 후 진행하시면 됩니다.
로그인이 되었다면 우측 상단 Personal -> [ View API Keys ] 를 클릭합니다.
[ + Create new secret key ] 를 클릭하여 API Key를 생성합니다. API key generated 창이 활성화되면 Key 를 반드시 복사하여 두시기 바랍니다. 창을 닫으면 다시 확인할 수 없습니다. (만약 복사하지 못했다면 다시 Create new secret key 버튼을 눌러 생성하면 되니 걱정하지 않으셔도 됩니다.)
2. Installation
pip install --upgrade openai
설치 후 command 창에서 openai 명령어를 입력하면 아래와 같이 출력되어야 정상적으로 설치가 된 것 입니다.
설치 후 위에서 발급한 api key를 환경변수에 설정합니다. (.bashrc, zshrc 등)에 아래 줄을 추가하거나 command 창에서 아래 명령줄을 수행하여 환경 변수를 설정합니다 .
export OPENAI_API_KEY="<OPENAI_API_KEY>"
3. Prepare training data
training data는 아래와 같이 prompt와 completion이 한쌍으로 형식으로 작성되어야 하며 JSONL 문서로 저장되어야 합니다.
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
{"prompt": "<prompt text>", "completion": "<ideal generated text>"}
...
training data를 준비하기 위한 tool도 제공합니다. 만약 CSV, TSV, XLSX, JSON, JSONL파일형식으로 데이터가 준비되어 있다면 데이터를 검증하고 training data 형식에 맞게 변환하여 jsonl 파일로 저장이 됩니다.
openai tools fine_tunes.prepare_data -f <LOCAL_FILE>
4. Create a fine-tuned model
위에서 준비한 training data file을 <TRAIN_FILE_ID_OR_PATH> 에 입력하고 <BASE_MODEL> 기본 모델을 선택하면 됩니다. 기본 모델은 ada, babbage, curie, davinci 가 있습니다.
openai api fine_tunes.create -t <TRAIN_FILE_ID_OR_PATH> -m <BASE_MODEL>
위 명령어를 수행하면 training data file을 업로드하고 Fine-tuning을 수행합니다. 작업이 완료될 때까지 일정 시간이 소요됩니다. (대략 몇 분 정도 걸리겠지만 만약 대기열에 작업이 많거나 dataset이 큰 경우 몇 시간이 걸릴 수 있습니다.)
완료가 되면 Fine tuning 된 모델명을 확인할 수 있습니다.
5. Use a fine-tuned model
상단에 Playground 를 선택하여 Fine tuning 된 모델을 선택하여 Test해볼 수 있습니다.
Python 코드를 이용하여 확인 할 수도 있습니다.
import openai
openai.api_key = "sk-..."
FINE_TUNED_MODEL = "davinci:ft-personal-....."
YOUR_PROMPT = "hello "
openai.Completion.create(model=FINE_TUNED_MODEL, prompt=YOUR_PROMPT)
print(completion.choices[0].text)
6. Delete a fine-tuned model
openai api models.delete -i <FINE_TUNED_MODEL>
또는 Python을 이용할 수 있습니다.
import openai
openai.Model.delete(FINE_TUNED_MODEL)
'Tech & Development > AI' 카테고리의 다른 글
[ Pynecone ] DALL·E 모델로 이미지를 생성 App 만들기 (Python) (0) | 2023.03.28 |
---|---|
[ Python ] 미디어파이프(Mediapipe)를 이용한 가상 마우스 (4) | 2023.01.31 |
Object Detection 정리 (History) (0) | 2022.12.14 |
[ Python ] Object Detection using MobileNet SSD (D/L) (0) | 2022.11.29 |
[ Python ] Color Detection using XGBoost (M/L) (0) | 2022.11.28 |
댓글
이 글 공유하기
다른 글
-
[ Pynecone ] DALL·E 모델로 이미지를 생성 App 만들기 (Python)
[ Pynecone ] DALL·E 모델로 이미지를 생성 App 만들기 (Python)
2023.03.28 -
[ Python ] 미디어파이프(Mediapipe)를 이용한 가상 마우스
[ Python ] 미디어파이프(Mediapipe)를 이용한 가상 마우스
2023.01.31 -
Object Detection 정리 (History)
Object Detection 정리 (History)
2022.12.14 -
[ Python ] Object Detection using MobileNet SSD (D/L)
[ Python ] Object Detection using MobileNet SSD (D/L)
2022.11.29