
GPT Fine-tuning 기록
키발급: https://platform.openai.com/api-keys
파인튜닝 과정을 시작하기 전에 필요한 라이브러리를 설치하고 기본 환경을 설정해야 합니다. Google Colab 노트북에서는 datasets 및 openai 라이브러리를 설치하여 OpenAI API와 상호작용할 수 있습니다.
!pip install datasets
!pip install openai
데이터셋을 정의하여 파인튜닝에 사용할 학습 데이터를 생성합니다. 예시로, 사용자 질문과 시스템 답변을 포함하는 간단한 데이터셋을 사용합니다.
import os
import json
dataset = {
"system": "You are a helpful assistant",
"train": [
{"instruction": "가장 가까운 커피숍이 어디에 있나요?", "output": "가장 가까운 커피숍은 5분 거리에 있는 메인 스트리트에 있습니다."},
# 나머지 데이터 항목...
]
}
학습 데이터는 대화 형식으로 구성되며, 시스템, 사용자, 보조자 간의 인터랙션을 나타냅니다.
list_message = []
num_data = len(dataset["train"])
for i in range(num_data):
instruction = dataset["train"][i]["instruction"]
output = dataset["train"][i]["output"]
message = [
{"role": "system", "content": dataset["system"]},
{"role": "user", "content": instruction},
{"role": "assistant", "content": output},
]
list_message.append(message)
with open("output1.jsonl", "w", encoding='utf-8') as file:
for messages in list_message:
json_line = json.dumps({"messages": messages}, ensure_ascii=False)
file.write(json_line + '\n')
파인튜닝 파일을 OpenAI에 업로드하고, 이를 사용하여 새 모델을 학습합니다.
from openai import OpenAI
client = OpenAI(api_key="API_KEY")
# 파일 업로드
client.files.create(
file=open("output1.jsonl", "rb"),
purpose="fine-tune"
)
# 모델 생성
client.fine_tuning.jobs.create(
training_file="FILE_ID",
model="gpt-3.5-turbo"
)

![]() | ![]() |
학습된 모델을 사용하여 입력 데이터에 대한 응답을 생성하고 결과를 확인합니다.
import pprint
results = []
for item in dataset["train"]:
completion = client.chat.completions.create(
model="MODEL-NAME",
messages=[
{"role": "user", "content": item['instruction']}
]
)
results.append({
"input": item["instruction"],
"output": completion.choices[0].message.content
})
# 결과를 구조화하여 출력
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(results)
colab code
https://colab.research.google.com/drive/1QXhRflNbFgNAWut8LbXzur6mMt062WcK?usp=sharing
| 학습 전 | 학습 후 |
|---|---|
![]() | ![]() |
https://platform.openai.com/docs/guides/fine-tuning/use-a-fine-tuned-model
https://cookbook.openai.com/examples/chat_finetuning_data_prep
https://platform.openai.com/docs/api-reference/fine-tuning
https://www.youtube.com/watch?v=WsMB0hOEosI&t=326s