GPT-3.5 Turboのファインチューニング提供開始とAPIアップデート
(openai.com)- 開発者は独自データを使って GPT‑3.5 Turbo をユースケースに合わせて調整できるようになり、GPT‑4 のファインチューニングは今秋提供予定
- 初期テストでは、ファインチューニングした GPT‑3.5 Turbo が一部の 限定的なタスク でベースの GPT‑4 と同等、またはそれ以上の性能を示し、API の入出力データは顧客所有のまま維持される
- private beta の顧客は、指示追従性、出力形式の安定性、ブランドトーンへの適合で改善を確認しており、GPT‑3.5 Turbo のファインチューニングは 4k トークンを処理する
- 一部の early tester は指示文をモデルに学習させることで、プロンプトサイズを最大 90% 削減しており、呼び出し速度とコスト削減につながる可能性がある
- 既存の GPT‑3 base モデルの終了にあわせて
babbage-002とdavinci-002が代替モデルとして提供され、新しい/v1/fine_tuning/jobsが従来の/v1/fine-tunesを置き換える
GPT‑3.5 Turboのファインチューニング提供開始
- 開発者は今後、独自データを持ち込んで GPT‑3.5 Turbo をユースケースに合わせてカスタマイズできる
- GPT‑3.5 Turbo のファインチューニングは現在利用可能で、GPT‑4 のファインチューニング は今秋提供予定
- 初期テストでは、ファインチューニングした GPT‑3.5 Turbo は一部の限定的なタスクで、ベースの GPT‑4 と同等またはそれ以上の結果を示した
- ファインチューニング API で送受信されるデータは顧客所有であり、OpenAI や他の組織が他モデルの学習に使用することはない
- 関連ポリシー: API data privacy
性能が向上したユースケース
- private beta の顧客は、教師ありファインチューニング(supervised fine-tuning)によって複数の一般的なユースケースで性能を改善した
- 指示追従性の改善: 出力を短くしたり、常に特定の言語で応答させたりするなど、指示により忠実に従わせることができる
- 安定した出力形式: コード補完や API 呼び出し作成のように、特定の応答形式が必要なアプリで一貫したフォーマットをより維持しやすい
- カスタムトーン: 企業ブランドのボイスに合わせて、モデル出力のトーンをより一貫して調整できる
- ファインチューニングは性能改善だけでなく、類似の性能を保ちながらプロンプトを短くする用途にも活用される
- GPT‑3.5 Turbo のファインチューニングは 4k トークン を処理でき、OpenAI の従来のファインチューニングモデルの2倍水準である
- early tester は指示文をモデル自体に学習させることで、プロンプトサイズを最大 90% 削減し、API 呼び出しの高速化とコスト削減に役立てている
- ファインチューニングは、プロンプトエンジニアリング、情報検索、関数呼び出し のような他の手法と組み合わせたときに最も強力である
- 利用方法は fine-tuning guide で確認できる
- 関数呼び出しと
gpt-3.5-turbo-16kに対するファインチューニング対応は今秋後半に提供予定
安全性対策と価格
- OpenAI はベースモデルの安全機能を維持するため、学習データを Moderation API と GPT‑4 ベースの moderation system に通している
- この moderation プロセスは、安全基準と衝突する危険な学習データを検出するための手順である
- GPT‑3.5 Turbo のファインチューニング費用は、学習費用と利用費用に分かれる
- 学習: 1K トークンあたり $0.008
- 利用入力: 1K トークンあたり $0.012
- 利用出力: 1K トークンあたり $0.016
- たとえば、100,000 トークンの学習ファイルを 3 epochs で学習する
gpt-3.5-turboのファインチューニングジョブの想定費用は $2.40
GPT‑3モデルの置き換えとAPI変更
- OpenAI は 2023年7月、既存の GPT‑3 base モデル
ada,babbage,curie,davinciを 2024年1月4日 に終了すると発表した babbage-002とdavinci-002はこれらのモデルの代替であり、base モデルまたはファインチューニングモデルとして利用できる- 顧客は Completions API を呼び出して
babbage-002とdavinci-002にアクセスできる - これらのモデルは、新しい API エンドポイント
/v1/fine_tuning/jobsでファインチューニングできる - 新しいエンドポイントは ページネーション とより高い拡張性を提供し、fine-tuning API の今後の進化を支える
- 既存の
/v1/fine-tunesから新エンドポイントへ移行する方法は fine-tuning guide にまとめられている - 既存の
/v1/fine-tunesエンドポイントは deprecated となり、2024年1月4日 に終了予定
1件のコメント
Hacker News の意見
ファインチューニングは具体的に何をするものなのか、簡単に説明してもらえますか?
モデルに質問への答え方を見せるものなのか、新しい情報を与えるものなのか、その両方なのかが気になります。
たとえば大きな非公開ナレッジベースへの質問に LLM を使いたい場合、そのナレッジベースでモデルをファインチューニングするのが正しいのか、そうだとしたらハルシネーションをどう減らすのか、毎回プロンプトに関連文書を入れる方法より優れているのかも気になります。
新しいプロンプトで「似ている」とは正確に何を意味するのかは、汎化の黒魔術に近いものです。
スタイル、情報、またはその両方を教えるのに使えますが、ファインチューニングデータだけに基づいて答えさせる完全な方法はありません。
X と無関係な話題は拒否する例をたくさん入れれば、ある程度の性能は期待できます。
大きな非公開ナレッジベースには通常ファインチューニングは勧めず、検索ベースのアプローチを勧めます。
入力に情報を入れれば出典を確認でき、モデルがハルシネーションなしで答えやすくなります。
ただし検索は参照型の質問に強い一方、複数の出典を比較したり組み合わせたりする必要がある質問では弱いことがあり、その場合ファインチューニングに一定の利点があるかもしれません。
このブログ記事も同じ方向に見えます。
OpenAI がファインチューニングをどう行っているのかも気になりますが、LoRA ではなさそうです。
言語モデルは、ハルシネーションに見られるように、データを保存したりアクセスしたりするための道具ではありません。
データを保存してアクセスするなら、埋め込み + ベクトルデータベースを使うのが適切です。
ファインチューニングは、モデルがどの種類の言語を生成するかを変えるためのものです。
記者のように書く AI が欲しければ新聞記事で、レビューを書く AI が欲しければレビューでファインチューニングする、という具合です。
https://huyenchip.com/2023/05/02/rlhf.html を参照。
これは基盤モデル自体をファインチューニングしたり RLHF を行ったりすることとはかなり異なります。
一般的なチャットボットではなく、特定の方法で振る舞ったり別のタスクを行ったりするように目標を調整するにはうまく合うかもしれません。
一方で、ボットに知識を追加することは grounded generation または検索拡張生成(GG/RAG)に近く、基盤モデルに新しいデータ、たとえば機密データを補強しようとするアプローチです。
大きな非公開ナレッジベースの Q&A には適切ではなく、GG/RAG の方が合っていると思います。
関連して最近書いた記事もあります: https://vectara.com/fine-tuning-vs-grounded-generation/
高いレベルで見ると、プロンプトに入らないより多くのデータをモデル内に入れられるようにするものです。
大きな非公開ナレッジベースはその講義で挙げられた代表例の一つで、ドメイン特化やプライバシーが重要なシナリオでは、プロンプティングよりファインチューニングの方が理にかなう場合があります。
「ファインチューニング用の学習データは Moderation API と GPT-4 ベースの検査システムを通過する」という文言は、かなりコストがかかりそうです。
API の価格を見ると、モデル学習よりGPT-4 推論を回す方が高いので、安全性判断が曖昧なときだけ GPT-4 を使うのだと思います。
望む言語の種類をすでに分かっているなら、なぜ OpenAI に自分のパラメータ調整データセットを検査させなければならないのか分かりません。
Llama2 13B や 70B をファインチューニングするときは通常クラウド GPU を借りる必要がありますが、OpenAI のファインチューニングと比べるとどうなのか気になります。
OpenAI はインフラを自分で借りる必要はなく、利用料金に含まれる構造ですが、Llama2 モデルのファインチューニング経験者の視点での比較を聞きたいです。
GPT の「ファインチューニング」は、Llama2 のようなモデルをファインチューニングすることとは違うと思います。
ネットワークの全重みを調整するのではなく、ごく小さな一部だけを調整している可能性が高く、OpenAI が正確にどうやっているかは独自技術です。
トレードオフは、OpenAI のファインチューニングはより安いものの、「本物の」ファインチューニングより力は弱いということです。
特に 13B で十分ならなおさらで、modal.com ではファインチューニング済みの llama2 13B モデルの推論を、おおよそ 1K トークンあたり $0.003 程度で使えます。
もっと安い選択肢も間違いなくあります。
データが非常に多くなければ、llama2 の学習費用も通常は数ドル程度です。
davinci-002 が補完モデルとして提供されていたので、また「安全でない」モデルも提供するのかと思いましたが、davinci-002 と babbage-002 はどちらも「安全でない」補完リクエストでは無限ループに陥ります。
text-davinci-003 と text-curie-001 は問題なかったのですが、OpenAI は本当に検閲されていないモデルを利用用に提供したくないようです。
ファインチューニング済みの GPT-3.5 Turbo の生成コストは基本モデル比で 8倍なので、費用対効果を上げるには OpenAI が言う「プロンプトサイズを90%削減」の領域に入る必要がある
むしろ毎回のプロンプトにいくつか例を入れる few-shot prompting で出力を誘導するほうがよいかもしれない
もちろんすべてのユースケースに合うわけではないが、試す価値はある
しかも関数呼び出しも今年の秋以降までは使えない
今の自分の利用の大半が関数呼び出しなので、ひとまず見送りになりそうだ
OAI のファインチューニングについての結論が気になるし、以前このスレッドでは必須ではないという雰囲気だった: https://news.ycombinator.com/item?id=37174850
その 90% が、まさに上の計算から出てきた数値なのか気になる
GPT-3.5-turbo とファインチューニング済み GPT-3.5-turbo だけを比較するならその通りだが、Llama-2 モデルのファインチューニングに近いものなら、SQL クエリ生成のような多くの実用的ユースケースで GPT-4 レベルの性能を出せるはずだ
ただし数学やコーディングは、相当なデータでファインチューニングしない限り難しい可能性が高い
実際に 7B Llama-2 モデルもファインチューニング後に GPT-4 レベルの性能を示したことがある: https://www.anyscale.com/blog/fine-tuning-llama-2-a-comprehe...
GPT-3.5 は自分にはあまりに出来が悪く、役に立たない
文章作成では同じような専門用語を繰り返し、コーディングではあまりにも頻繁に間違え、自然言語処理でももっと明示的に言わないといけないので、単に平均的なチャットボットのように感じる
GPT-4 月額20ドルはあらゆる面ではるかに良く、Angular の作業にも使っている
AI がすべての理由を説明してくれると、この過剰設計されたフレームワークも実際に理解できるようになり始める
翻訳者、教師、問題解決の補助として置いておくのに良く、これがさらに良くなれば、問題の答えを Google で検索することを想像しにくくなる
欲しい機能は組み込みのプロンプト分割だ
以前の GPT バージョンや偽の倫理論争は脇に置き、この技術の最高のバージョンに集中して月額20ドルで売れば、何十億ドルも稼ぎ、オンライン上の多くのものを揺るがせると思う
回答が反復的で味気なくなる
それを製品化するのでなければ、手間に見合う価値はあまりない
ただし価値ある LLM 製品や機能の多くは範囲がもっと狭く、ファインチューニングで大きな改善が見込める
たとえば SQL クエリ生成では、7B Llama-2 モデルをファインチューニングするだけでも GPT-4 を上回った実験があった: https://www.anyscale.com/blog/fine-tuning-llama-2-a-comprehe...
Google に適した質問を投げるのが難しいときに LLM は輝く
「以前、Google が新入社員と GPA について行った研究を聞いたことがあり、GPA が3.0を超えると差はなかったと言っていた。その研究へのリンクをくれるか? 追跡研究はあったか?」のような質問は Google では見つけにくく、最低 GPA と就職関連のリンクに埋もれやすい
Bard は Laszlo Bock と彼の本の情報を出してくれたので、「Laszlo Bock Google GPA」のように、より絞り込んだ検索が可能になった
複数の LLM に同じ文を入れてみたところ、ChatGPT は知識制限の回答をし、Bard はすぐに見つけ、Hugging Face Chat は Bock と Project Oxygen、Project Aristotle まで出してくれて最も良かった
Claude は研究を見つけられなかったが別の候補を提案し、LLaMa も見つけられなかったものの Google の研究といくつかの名前を提示した
正確性のためのファインチューニングが結果を悪化させるという話には同意する
アラインメントは同時に 非アラインメントでもあり、確率分布を移動させるものなので、必ずトレードオフが生じる
残念ながらこの領域の研究は人気がなく、必要な方法も、論争の多いネットワークや確率・分布に関する深い議論を要求するため、現時点ではトップカンファレンスで却下されやすそうに見える
人間の好みに合わせたチューニングは、実際には知識に合わせたチューニングではなく、人が好む結果に合わせるものだ
評価指標である人間をハックするバイアスをモデルに入れるようなもので、平均的な事実正確性が上がっても、誤情報をより説得力を持って出すようにして LLM を悪化させる可能性がある
データ集計の方法によって評価が壊れる Simpson のパラドックスと Berkson のパラドックスには非常に注意が必要で、実質的には Goodhart の法則を通じてチューニングしている最中なのだ
これほど大きなモデルをファインチューニングしたことがある人がいるなら、普通、効果を出すにはどれくらいのデータが必要なのか気になる
ドキュメントに出ている100kトークンが本当に基盤モデルの挙動に大きな影響を与えられるのか、それともおもちゃの例なのか知りたい
正確な数はユースケースによって大きく異なる
まずはよく作られた50個のデモから始め、改善の兆しがあるかを見ることを推奨している
十分でなくても改善が見えるなら、データを増やすほど引き続き良くなる可能性があり、改善がなければ例を増やす前にタスク設定やデータ構造を考え直すべき
数千個の例だけでも、モデルの挙動や出力内容・出力の仕方をかなり大きく変えられる
LoRAのようなメカニズムは精度低下がある代わりに非常に効率的なファインチューニング手法で、上位の数層だけを変えてもモデルをかなり大きく変化させる
例としては https://huggingface.co/datasets/b-mc2/sql-create-context と https://huggingface.co/datasets/GEM/viggo がある
一方で、小学校レベルの数学問題の解き方を学ぶには8K例でも十分ではなかったので、問題依存性が非常に大きい
参考: https://www.anyscale.com/blog/fine-tuning-llama-2-a-comprehe..., https://huggingface.co/datasets/gsm8k
1000トークンから改善が見え始める
もともと公開すると言っていたものを無料ベータとして出してバグを直し、その後さらに強力な兄弟モデルをサブスクリプションサービスとして出し、両方を大きく弱体化させ、ファインチューニングを出して弱体化したGPT-3.5をリリース当時の水準に近づけられるようにするが、きちんとファインチューニングしないとできず、弱体化していないバージョンはMicrosoft内部向けに保管して利益を出す、という流れに見える
むしろGoogleのほうが正直だ
最高の製品はあるが内部ツールとしての価値のほうが大きいので公開しない、という方向で、GPTのリリース後に株価防衛用としてBardを発表したがいまいちで、おそらくまともにリリースすることもないと思う
それでもMetaは弱体化したバージョンではあってもオープンソースで出した
数か月前のGPT-4では本当に生産性がものすごかったが、今はまた一人開発者に戻ったような感じだ
今使うと、エラーを直すのに、得られる時間より捨てる時間のほうが多く、普通に自分でやったほうがいいことが多い
だから他人に渡したくない理由は理解できる
「弱体化していない」みたいな明らかに間違った返答をするつもりなら、時間を無駄にしないでほしい
プライバシーが気になる
OpenAIはAPI呼び出しをモデル学習に使わないと言っているが、OpenAIやMicrosoftがそれでもテキストを保存しているのか、保存しているならどれくらいの期間なのか知りたい
全体としては素晴らしく、16kファインチューニングに期待している
この要件の免除を望む場合は申請フォームがある
https://learn.microsoft.com/en-us/legal/cognitive-services/o...
保存されたデータで怪しいことをしているわけではなく、文字どおり発生後の短期間に、あり得る信頼・安全上の違反を調査する目的だけ
そうだとすると、OpenAIが後でGPT-5の拡張に活用しないというプライバシー保証は何なのか気になる
かなり興味深い
OpenAIの「Chat」モデルがファインチューニング可能になったのは今回が初めて
現在のAI検出器をファインチューニング済みモデルで回避してみた人がいるのか気になる
可能だというのは分かるが、データセットをどう構成すべきか感覚をつかみたい
お金を払って使っている人は詐欺に遭っているようなもので、実際の意思決定に使っている人は重大なミスをしている
一部の学校が、学生がChatGPTでエッセイを書いたかを見つけようとしてAI検出器を使っているのは本当に残念だ
明らかに人間が書いたエッセイをAI生成と判定した事例が多い
ChatGPTにエッセイを書かせて30分ほど遊んでみるだけでも、ChatGPTの文体は理解できる
プロンプトをうまく与えれば別のスタイルでも書かせられるが、正直、宿題をChatGPTでやる人は普通、ChatGPTっぽく見えないようにする努力まではしない
機能しておらず、すでにGPT生成テキストは検出できない
テキストが人間またはChatGPTによって生成されたものかを、信頼できる確実性で検出することは不可能
そういう検出器は完全に壊れていて、単純な思考過程の誘導だけでもChatGPTのように「聞こえない」結果を得られる
その後は、人間が書いた文章と同じくらいAIとして検出される可能性が同程度になる