5
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ChatGPTをFine-tuningして独自情報を回答させる

Posted at

環境準備

% pip3 install --upgrade openai
% export OPENAI_API_KEY="sk-xxxxxxx"

// missing `pandas` のエラーが出たため
% pip3 install openai"[datalib]"

学習データの準備

CSV形式で理想の質問と答えのペアを作る。

sakai01.csv
prompt,completion
境町の自動運転バスARMAについて教えて。,境町では、ソフトバンク株式会社の子会社であるBOLDLY株式会社及び株式会社マクニカの協力のもと、自動運転バスを3台導入し、生活路線バスとして定時・定路線での運行を令和2年11月26日(木)から開始しました。なお、自治体が自動運転バスを公道で定常運行するのは、国内で初めてです。
運行時間は?,午前7時40分〜午後4時まで。土日祝日も運行。
乗車料金は?,無料です。
乗車定員は?,8名です。

openaiのコマンドツールで、csvからJSONLファイルに変換するツールが用意されていた。

% openai tools fine_tunes.prepare_data -f sakai01.csv
sakai01_prepared.jsonl
{"prompt":"境町の自動運転バスarmaについて教えて。 ->","completion":" 境町では、ソフトバンク株式会社の子会社であるBOLDLY株式会社及び株式会社マクニカの協力のもと、自動運転バスを3台導入し、生活路線バスとして定時・定路線での運行を令和2年11月26日(木)から開始しました。なお、自治体が自動運転バスを公道で定常運行するのは、国内で初めてです。 END"}
{"prompt":"運行時間は? ->","completion":" 午前7時40分〜午後4時まで。土日祝日も運行。 END"}
{"prompt":"乗車料金は? ->","completion":" 無料です。 END"}
{"prompt":"乗車定員は? ->","completion":" 8名です。 END"}

Fine-tuningの実行

% openai api fine_tunes.create -t sakai01_prepared.jsonl -m text-davinci-003
Error: Invalid base model: text-davinci-003 (model must be one of ada, babbage, curie, davinci) or a fine-tuned model created by your organization: org-xxxxx (HTTP status code: 400)

モデル指定が「GPT3.5」だとだめっぽい。davinciを指定してみる。
https://platform.openai.com/docs/models/overview

% openai api fine_tunes.create -t sakai01_prepared.jsonl -m davinci         
Upload progress: 100%|███████████████████████████████████████████████████████████| 5.14k/5.14k [00:00<00:00, 2.55Mit/s]
Uploaded file from sakai01_prepared.jsonl: file-xxxxxxxxxxxx
Created fine-tune: ft-xxxxxxxxxxxx
Streaming events until fine-tuning is complete...

(Ctrl-C will interrupt the stream, but not cancel the fine-tune)
[2023-08-04 22:19:24] Created fine-tune: ft-xxxxxxxxxxxx

Stream interrupted (client disconnected).
To resume the stream, run:

  openai api fine_tunes.follow -i ft-xxxxxxxxxxxx

中断したりするので、再開させる。

% openai api fine_tunes.follow -i ft-xxxxxxxxxxxx
[2023-08-04 22:19:24] Created fine-tune: ft-xxxxxxxxxxxx
[2023-08-05 00:29:34] Fine-tune costs $0.26
[2023-08-05 00:29:34] Fine-tune enqueued. Queue number: 1
[2023-08-05 00:40:42] Fine-tune started
[2023-08-05 00:43:52] Completed epoch 1/4
[2023-08-05 00:43:59] Completed epoch 2/4
[2023-08-05 00:44:07] Completed epoch 3/4
[2023-08-05 00:44:15] Completed epoch 4/4
[2023-08-05 00:44:48] Uploaded model: davinci:ft-boldly-2023-08-04-15-44-48
[2023-08-05 00:44:49] Uploaded result file: file-xxxxxxxxxxxx
[2023-08-05 00:44:50] Fine-tune succeeded

Job complete! Status: succeeded 🎉
Try out your fine-tuned model:

openai api completions.create -m davinci:ft-boldly-2023-08-04-15-44-48 -p <YOUR_PROMPT>

完了!

結果の確認

% openai api completions.create -m davinci:ft-boldly-2023-08-04-15-44-48 -p "自動運転バスの運行時間は?"
運行時間は? 通常運行は午前7%

データ量が少ないからか、こちらが想定しているような回答は返ってこない。。

参考

5
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?