Agile育成ブログ
未来を変える喜びを
未分類

OpenAIでファインチューニングしたモデルを作成する方法

OpenAIでファインチューニングを行い、カスタムモデルを作成する方法を以下に説明します。このプロセスは、特定のデータに基づいてOpenAIのGPTモデル(例えば、GPT-3やGPT-4)を微調整する手順です。

1. OpenAI APIにアクセスする準備

まず、ファインチューニングを行うには、OpenAIのAPIにアクセスするためにいくつかの準備が必要です。

a. OpenAIのAPIキーを取得する

  • OpenAIの公式サイトにサインインし、APIページにアクセスして、APIキーを取得します。
  • サインイン後、ダッシュボードでAPIキーを確認・コピーすることができます。

b. Python環境の準備

ファインチューニングはAPIを通じて行います。Pythonを使ってファインチューニングを行うのが一般的です。まずは、Python環境を準備します。

bashコードをコピーするpip install openai

2. ファインチューニング用のデータセットの準備

ファインチューニングには、特定のタスクに関するデータが必要です。データはJSONL(JSON Lines)形式で準備します。この形式では、各行が1つのJSONオブジェクトとして、プロンプトとレスポンスをペアで提供します。

例:データセット(fine_tune_data.jsonl

jsonコードをコピーする{"prompt": "ユーザーが入力した質問: 物件情報は?", "completion": "物件に関する情報を提供いたします。"}
{"prompt": "ユーザーが入力した質問: 家の価格は?", "completion": "価格についてお答えします。"}
  • prompt: ユーザーの入力に対応するプロンプト(質問など)
  • completion: 期待するモデルの応答

データセットは十分な量を準備することが重要です。モデルが学習する内容に多様性があれば、より良い結果が得られます。

3. ファインチューニング用データセットのアップロード

次に、データセットをOpenAIにアップロードします。以下のPythonコードを使用して、アップロードを行います。

import openai

openai.api_key = 'your-api-key'

# ファインチューニング用データをアップロード
openai.File.create(
  file=open("fine_tune_data.jsonl"),
  purpose='fine-tune'
)
これでデータセットがアップロードされます。

4. ファインチューニングの開始

アップロードしたデータセットを使って、ファインチューニングを開始します。以下のPythonコードでファインチューニングを実行します。

pythonコードをコピーするopenai.FineTune.create(
  training_file="file-XXXXXXXXXXXXXX",  # 先程アップロードしたファイルのID
  model="curie",  # 使用する基盤モデル(例: "davinci", "curie", "babbage", "ada")
)

training_fileの値には、アップロードしたファイルのIDを指定します。このIDはアップロード時に取得できます。

5. ファインチューニングの進行状況を確認する

ファインチューニングが始まると、進行状況を確認できます。以下のPythonコードを使って確認できます。

pythonコードをコピーするopenai.FineTune.list()

これにより、現在進行中のファインチューニングジョブのリストが表示されます。

6. ファインチューニング後のカスタムモデルの使用

ファインチューニングが完了したら、カスタムモデルを使って推論を行います。ファインチューニング後のモデルIDを使用して、通常通りAPIを呼び出すことができます。

pythonコードをコピーするresponse = openai.Completion.create(
  model="ft-XXXXXXXXXXXXXX",  # ファインチューニング後のモデルID
  prompt="物件情報を教えて",
  max_tokens=50
)

print(response.choices[0].text)

modelには、ファインチューニング後に生成されたカスタムモデルのIDを指定します。

7. ファインチューニングの停止や削除

もしファインチューニングの結果が期待通りでない場合、ファインチューニングを停止したり、削除したりすることができます。

停止:

pythonコードをコピーするopenai.FineTune.cancel("ft-XXXXXXXXXXXXXX")

削除:

pythonコードをコピーするopenai.FineTune.delete("ft-XXXXXXXXXXXXXX")

注意点

コスト: ファインチューニングにはコストがかかります。事前に料金体系を確認し、予算に合わせて行うようにしましょう。

データの質: ファインチューニングは提供するデータに依存します。正確で多様なデータを使うことが、良いモデルを作成するために重要です。