見出し画像

GPT-3.5 Turboのファインチューニング

以下の記事が面白かったので、かるくまとめました。

GPT-3.5 Turbo fine-tuning and API updates


1. はじめに

「GPT-3.5 Turbo」のファインチューニングが利用可能になりました。「GPT-4」のファインチューニングもこの秋に提供される予定です。

初期のテストでは、ファインチューニングした「GPT-3.5 Turbo」が、特定の狭いタスクに関して「GPT-4」と同等、またはそれ以上のパフォーマンスを発揮できることが示されています。

他のAPIと同様、ファインチューニングAPIで送受信されるデータは、OpenAIやその他の組織が、他のモデルを学習するために使用することはありません。

2. ファインチューニングのユースケース

今回のリリースにより、開発者は教師ありファインチューニングで、ユースケースに合わせてこのモデルのパフォーマンスを向上できるようになりました。
主なユースケースは、次のとおりです。

(1) 指示に従う能力の向上
ファインチューニングにより、出力を簡潔にしたり、常に特定の言語で応答したりするなど、モデルが指示に従う能力が向上します。
日本語での応答を求めた時、確実に日本語で応答するようにできます。

(2) 特定の応答フォーマットで出力する能力の向上
ファインチューニングにより、特定の応答フォーマットで出力する能力が向上します。これは、コード補完API 呼び出しの作成など、特定の応答フォーマットを要求するアプリケーションにとって重要です。
JSON書式での応答を求めた時、確実にJSON書式で応答するようにできます。

(3) 口調のカスタマイズ
ファインチューニングにより、口調をカスタマイズすることができます。認識可能な口調を持つキャラクターは、ファインチューニングしてキャラクターの口調と一貫性を持たせることができます。

(4) プロンプトの短縮
ファインチューニングにより、パフォーマンスを確保しながらプロンプトを短縮することもできます。GPT-3.5-Turboのファインチューニングでは、以前のファインチューニングモデルの2倍である 4,000 トークンも処理できます。初期のテスターは、モデル自体に命令をファインチューニングすることでプロンプトのサイズを最大90%削減し、各API 呼び出しを高速化してコストを削減しました。


ファインチューニングは、プロンプトエンジニアリング、RAG、Function Callingなどの他の手法と組み合わせるとさらに効果的です。詳細については、「ファインチューニングガイド」を参照してください。「Function Calling」と「gpt-3.5-turbo-16k」によるファインチューニングのサポートは、今秋後半に提供される予定です。

3. ファインチューニングの手順

ファインチューニングの手順は、次のとおりです。

(1) データの準備。

{
  "messages": [
    { "role": "system", "content": "You are an assistant that occasionally misspells words" },
    { "role": "user", "content": "Tell me a story." },
    { "role": "assistant", "content": "One day a student went to schoool." }
  ]
}

(2) ファイルのアップロード。

curl -https://api.openai.com/v1/files \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F "purpose=fine-tune" \
  -F "file=@path_to_your_file"

(3) ファインチューニングの実行。

curl https://api.openai.com/v1/fine_tuning/jobs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
  "training_file": "TRAINING_FILE_ID",
  "model": "gpt-3.5-turbo-0613",
}'

モデルのファインチューニングが完了すると、すぐに使用できるようになり、ベースとなるモデルと同じ共有レート制限が適用されます。

(4) ファインチューニングしたモデルの利用。

curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
  "model": "ft:gpt-3.5-turbo:org_id",
  "messages": [
    {
      "role": "system",
      "content": "You are an assistant that occasionally misspells words"
    },
    {
      "role": "user",
      "content": "Hello! What is fine-tuning?"
    }
  ]
}'

近い将来、ファインチューニングUIも提供する予定です。これにより、進行中のファインチューニングのジョブやファインチューニングしたモデルのスナップショットなどに関する情報に、簡単にアクセスできるようになります。

4. 安全性

ファインチューニングを通じてデフォルトモデルの安全機能を維持するために、ファインチューニングの学習データは「モデレーションAPI」と「GPT-4を利用したモデレーションシステム」を介して渡され、安全基準と矛盾する安全でない学習データを検出します。

5. 使用料金

ファインチューニングの使用料金は、初期学習コストと使用コストの2つのバケットに分類されます。

・学習 : $0.008 / 1K Tokens
・入力テキスト : $0.012 / 1K Tokens
・出力テキスト : $0.016 / 1K Tokens

たとえば、3 エポックで学習される 100,000 トークンの学習ファイルを含む gpt-3.5-turbo のファインチューニングのジョブの予想コストは 2.40 ドルになります。

6. GPT-3モデルの更新

7月に、オリジナルのGPT-3ベースモデル (ada、babbage、curie、davinci) が 2024年1月4日に終了すると発表しました。本日、これらの代替として「babbage-002」と「davinci-002」を利用できるようにしました。ベースモデルまたはファインチューニングモデルとしてのモデルです。Completions APIからアクセスできます。

これらのモデルは、新しい API エンドポイント /v1/fine_tuning/jobs を使用してファインチューニングすることもできます。この新しいエンドポイントは、ファインチューニングAPI の将来の進化をサポートするために、ページネーションとさらなる拡張性を提供します。/v1/fine-tunes から更新されたエンドポイントへの移行は簡単で、詳細については新しい「ファインチューニングガイド」を参照してください。 これにより、古い /v1/fine-tunes エンドポイントは非推奨となり、2024年1月4日に廃止されます。

GPT-3のベースモデルとファインチューニングされたGPT-3モデルの使用料金は次のとおりです。

次回



この記事が気に入ったらサポートをしてみませんか?