🌊

OpenAIの公式サイト上でGPTモデルのFine-tuningを行う方法

2023/10/14に公開

はじめに

OpenAIの公式サイト上でFine-tuningが行えるようになりました。以前までは、Pythonの動く環境でしかFine-tuningができず苦労しました。ですが、今回OpenAIの公式サイト上でFine-tuningができるようになったので、はじめてFine-tuningする人にも分かりやすいように、Fine-tuningの仕方を紹介します。

注意

Fine-tuningにはお金がかかります。下記のURLにFine-tuningにかかる予算が書いてあります。少ないデータセットでは、数百円程度でFine-tuningしますが、事前に注意してから実施してください。
https://openai.com/pricing

Fine-tuningを行う手順

Fine-tuningを行う手順は、図1のように行います。
手順としては、

  1. 事前学習済みモデルの選定
  2. データセットの用意
  3. データセットを元にFine-tuning

以上の順序で実施します。
各手順について細かく紹介します。
図1 Fine-tuningの流れ
Fine-tuningの流れ図

事前学習済みモデルの選定

Fine-tuningには事前学習済みのGPT Modelが必要です。対話モデルであるgpt-3.5-turbo-0613がFine-tuningに対応したので、基本的にgpt-3.5-turbo-0613を使用する形になります。また、gpt-3.5-turbo-0613Fine-tuningしたモデルも事前学習済みモデルとして利用可能な点も注目です。

データセットの用意

次にjsonl形式のファイルをデータセットとして利用します。データセットは最低10件から受け付けますが、通常50件から100件のデータセットで明らかな変化が見られます。50件からFine-tuningを行なって様子を見てデータセットを増やすのが良いです。
こういったテクニックに関しては、OpenAIの公式ドキュメントが充実しています。
https://platform.openai.com/docs/guides/fine-tuning/preparing-your-dataset

データセットが用意できたらFine-tuningを行い。成功するとFine-TunedされたModelが作成されます。

Fine-tuningのやり方

まず、GPTモデルのFine-tuningが行う為に下記のOpenAIの公式ページに移動します。
https://platform.openai.com/finetune

ページにアクセスすると図2のような画面に移動すると思います。
図2 Fine-tuningページの様子
Fine-tuningページの様子

先ほどのFine-tuningを行う手順でも紹介した通り、Fine-tuningするにはデータセットが必要になります。データセットは画面右上のFileを押すことで、Fileのアップロード画面に移行します。次にUploadを押すことで、図3のような画面が表示されるので、データセットとして使用したいjsonlファイルをアップロードします。

図3 データセットのアップロードの様子
データセットのアップロードの様子

今回は試しに以下のjsonlファイルをアップロードしてみます。
このデータはGPTに犬語で会話させるデータセットです。

{"messages":[{"role":"system","content":"犬の会話モードです。"},{"role":"user","content":"お散歩行くよ!"},{"role":"assistant","content":"わんわん!"}]}
{"messages":[{"role":"system","content":"犬の会話モードです。"},{"role":"user","content":"どうしたの?泣いてるみたいだね。"},{"role":"assistant","content":"きゅんきゅん..."}]}
{"messages":[{"role":"system","content":"犬の会話モードです。"},{"role":"user","content":"ご飯の時間だよ!"},{"role":"assistant","content":"わん!わん!"}]}
{"messages":[{"role":"system","content":"犬の会話モードです。"},{"role":"user","content":"他の犬が来るよ!大丈夫?"},{"role":"assistant","content":"うー、うー..."}]}
{"messages":[{"role":"system","content":"犬の会話モードです。"},{"role":"user","content":"薬を飲まないといけないんだよ。"},{"role":"assistant","content":"あうあう..."}]}
{"messages":[{"role":"system","content":"犬の会話モードです。"},{"role":"user","content":"どうしたの?一人で遊んでるの?"},{"role":"assistant","content":"わん、わん..."}]}
{"messages":[{"role":"system","content":"犬の会話モードです。"},{"role":"user","content":"おやつをあげるからお座り!"},{"role":"assistant","content":"わん!"}]}
{"messages":[{"role":"system","content":"犬の会話モードです。"},{"role":"user","content":"今から出かけるからね、待ってて。"},{"role":"assistant","content":"きゅん..."}]}
{"messages":[{"role":"system","content":"犬の会話モードです。"},{"role":"user","content":"よし、一緒にテレビを見よう!"},{"role":"assistant","content":"わんわん!"}]}
{"messages":[{"role":"system","content":"犬の会話モードです。"},{"role":"user","content":"こっち来て、抱っこするよ!"},{"role":"assistant","content":"わん!"}]}
{"messages":[{"role":"system","content":"犬の会話モードです。"},{"role":"user","content":"おはよう!"},{"role":"assistant","content":"わんわん!"}]}

データセットをアップロードすると図3のように追加されます。
図3 データセットのアップロードの様子
データセットのアップロードの様子
正しくデータセットがアップロードされると図4のようになります。
ここで作成されたFile-IDはFine-tuningのタイミングで利用するので、メモ帳などにコピーしましょう。
図4 データセットのアップロード成功
データセットのアップロード成功
正常にデータセットがアップロードされたら1番最初に表示されていたFine-tuningの画面に移動します。画面上部のFine-tuningタブをクリックして移動します。

図5 Fine-tuning画面への移動
Fine-tuning画面への移動

移動が完了したら画面右上のUploadを押して、Fine-tuningします。Uploadを押すと図6のポップアップが表示されると思います。Fine-tuningしたいモデルを作成して、先ほどメモしたファイルIDを設定します。Validation dataを設定することも可能ですが、今回はFine-tuningのやり方に絞るためここでは省略します。設定が完了したらCreateボタンを押してFine-tuningします。
図6 Fine-tuningポップアップ
Fine-tuningポップアップ

Fine-tuningが開始されるとFine-tuningの経過を確認できます。Fine-tuningの完了までには数分時間が必要です。

無事Fine-tuningに成功すると図7のような画面が表示されます。
以上で無事Web上でGPTモデルのFine-tuningを行うことに成功します。
図7 Fine-tuning成功画面
Fine-tuning成功画面

おわりに

はじめてFine-tuningを行う人にも簡単にFine-tuningできるようになりました。今までpythonコードを組んでFine-tuningした人にとっても直感的で簡単にFine-tuningできるようになりました。以上でよりよいFine-tuningライフをお過ごしください。
良い記事だと思った人はいいね👍やフォローで応援をお願いします🙇

Discussion