mi141 GPT/ChatGPTをベースに、複数の外部API(他の基盤モデルなども)をうまく使いこなして様々なタスクを解く手法に興味があったので ・ToolformerVisual ChatGPTHuggingGPTTaskMatrix.AI(下図はこれ) あたりを読みました。主に知りたかったのは、APIの使い方をどのように学ぶかです image

mi141 ToolformerはAPIの使い方をfine-tuningで学習しています。API用の特殊なトークンを用意し、それを含むデータセットをうまく自動的に作成して学習。APIを利用して数値計算や知識が必要なタスクが解けるようになっています。 ただ、fine-tuneが必要なので、APIの新規追加や削除のコストが高いです。 image

mi141 Visual ChatGPTは、APIの種類や使い方などをプロンプトに書いておくというまさにプロンプトエンジニアリング的なアプローチ。当然、追加や削除も容易で、画像生成や編集も含む様々なAPIをうまく使ってユーザの指示に従った処理が可能。 ただし今度は、使えるAPIの数がプロンプトの長さで制限されます。 image image

  • ChatGPT Pluginsも同じような仕組みかな
  • 自分が作ったばっかりのプラグインが早速使われるわけなのでプロンプトに積むしかないように思う

mi141 HuggingGPTも似たアプローチです。ただ、こちらはHuggingFaceにあるモデルを使いこなすというコンセプト上、とてもたくさんのAPIを扱える必要があります。そこで、(図のModel Selectionの部分で)事前に候補となるAPIをフィルタリングしておき、その結果だけをプロンプトに入れているようです。 image image

mi141 最後がTaskMatrix.AIで、こちらはAPIを登録したデータベースから必要に応じて検索を行うことで、適切なAPIを利用しているようです(詳細な記述がない…) プロンプトに書き込む方法ではないので、とてもたくさんのAPIを扱うことが可能です(タイトルにはMillions of APIsとある) image

mi141 まあ結果的に3/4はMicrosoftの研究(しかも全部2023/03公開)だったんですけど、変遷が動機と共に辿れて面白かったです。複数の基盤モデルのハブとしてのChatGPTというのは魅力的ですね。 https://arxiv.org/abs/2302.04761 https://arxiv.org/abs/2303.04671 https://arxiv.org/abs/2303.17580 https://arxiv.org/abs/2303.16434