Toolformer — ツールフォーマー

From Systems analysis wiki
Jump to navigation Jump to search

Toolformerは、大規模言語モデルLLM)がAPI呼び出しを通じて外部ツールを自律的に使用できるようにするためのアプローチである[1]。この手法は、2023年にMeta AI Researchとポンペウ・ファブラ大学(スペイン)の研究者グループによって提案された。論文『Toolformer: Language Models Can Teach Themselves to Use Tools』(Timo Schick et al., 2023)の中で、著者らはあるパラドックスを指摘している。現代のLLMは、テキストの例から複雑な新しい課題を解決する驚くべき能力を示す一方で、計算や事実検索といった基本的な操作を確実に行うことができない場合が多い[1]。これらの制約を克服するため、研究チームはToolformerモデルを開発した。このモデルは、多様なタスクの実行品質を向上させるために、外部ツール(検索エンジン、電卓、翻訳サービスなど)を選択し、呼び出すことを自己学習する[1]。2023年2月、このモデルはarXivでプレプリントとして公開され、その後、NeurIPS 2023カンファレンスで採択され、高く評価された[2]

モデルの主なアイデアと機能

Toolformerは、どのツールを、いつ、どのようなパラメータで呼び出し、得られた結果を生成テキストにどのように組み込むかを決定できる、ファインチューニングされた言語モデルである[3]。学習は自己教師ありself-supervised)方式で行われる。モデルはAPIの使用例を自ら生成・評価し、各ツールについて少数のデモンストレーション(文字通り数例)を必要とするだけである[3]。従来のアプローチとは異なり、ツールの統合に広範なアノテーションや人間中心のテンプレートを必要としない。モデルは、いつ、どのように特定のAPIを適用するかを自ら学習し、一般的な言語能力を維持しつつ、狭く定義されたタスクに限定されることはない[1]

著者らは、単純なAPI呼び出しを介して利用可能な幅広いツールをToolformerに統合した。実験版では、以下のユーティリティが使用された[3]

  • 電卓 – 算術計算を実行するため。
  • 質疑応答(Q&A)システム – 知識ベースから事実に関する質問への回答を検索するため。
  • 検索エンジン(2種類) – インターネットで最新情報を検索するため。
  • 機械翻訳システム – 言語間でテキストを翻訳するため。
  • カレンダー – 日付や時刻に関する情報を取得するため。

各ツールはテキストフラグメント(特殊なテキストラベル)の形式で表現され、モデルは生成中のテキストに直接API呼び出しを埋め込むことができる[4]。例えば、モデルは `[Calculator(...)]` や `[Search("クエリ")]` といった形式の構文を現在の文脈に挿入し、外部へのアクセスが必要であることを示す。応答を出力する際、Toolformerは特殊な記号(矢印→)を生成し、これを合図にシステムは生成を一時停止して対応するAPI呼び出しを実行する。得られた結果はテキストに挿入され、その後、次のフラグメントの生成が続けられる[4]。このようなメカニズムにより、モデルはアーキテクチャを変更することなく、単一の言語モジュールであり続けながら、外部サービスの機能を動的に活用することができる。

モデルの学習(方法論)

開発者らは、Toolformerの学習プロセスをいくつかの段階に分けて説明しており[4]、合成データを生成するためにインコンテキスト学習(in-context learning)の技術を用いている[1]

  1. API呼び出し候補の生成。まず、大規模なコーパス(記事やウェブページなど)からテキストを取得し、そのテキストの続きや補完に役立つ可能性のあるツールの呼び出しを人工的に挿入する。これらの挿入は、各APIの少数の手動サンプルを基に、モデルがfew-shotプロンプティングを用いて自ら生成する[1]。例えば、モデルは「2024年、この都市の人口は[QA("この都市の人口は?") → ...]人だった」というフラグメントを受け取ることがある。ここでQA()は、不足しているデータを返すための質疑応答システムの呼び出しである。各ツールについて適切な文脈が選択される。例えば、電卓の場合、モデルは複数の数値と「合計」や「等しい」といった単語を含む文、つまり算術的な結果が実際に必要とされる箇所を選択する[4]
  2. API呼び出しの実行とデータの補完。次に、モデルによって生成されたすべての呼び出しが実際に実行される。例えば、検索エンジンにクエリが送信されたり、電卓で式が計算されたりする。得られた回答はテキストに挿入され、`{回答}`のような挿入を含む完成した文のバリエーションが形成される[4][4]。同時に、後の比較のために、(回答が挿入されていない)「空の」バリエーションや、呼び出しが一切ない元のテキストも保存される。
  3. フィルタリングと有用性の自己評価。この段階で、Toolformerは生成されたAPI挿入のうち、どれがテキストの続きを予測する上で本当に有用かを自己評価する[4]。言語モデルがテキストを続ける確率を3つのシナリオで比較する。(a)呼び出しなし、(b)結果が挿入されていないツール呼び出しあり、(c)呼び出しと挿入された結果あり[4]。特定のAPIの回答を追加することが、モデルが文の正しい続きを予測する確率を高める(つまり、後続の単語を予測するのに実際に役立つ)場合、その例は有用と見なされる。確率的な利益をもたらす挿入のみがサンプルに残される。これにより、ツールの呼び出しが冗長であったり、新しい情報をもたらさなかったりするケースが除外される。最終的に、モデルは、最適に挿入されたAPI呼び出しを含む実際のテキスト例が含まれる、フィルタリングされたデータセットでファインチューニング(fine-tuning)される[1]。学習は、ツールの呼び出し結果を示すトークンを含む、シーケンスの次のトークンを予測するという標準的な言語モデリングの目的で行われる。

重要なのは、新しいツールを導入するために必要なのは、その使用法に関する少数の手動の例だけであり、その後は学習データの生成が自動的に行われた点である[3]。このおかげで、Toolformerのアプローチは、専門的なアノテーション付きコーパスの存在にほとんど依存せず、データのアノテーションにかかる労力を最小限に抑えることができる。モデルはAPI呼び出しの形式と妥当性を自ら学習し、同時にその汎用性を維持する。つまり、与えられた課題を解決するために本当に必要な場合にのみツールを利用する[1]

実験結果

この手法を実験的に検証するため、研究者らは既存の言語モデルであるGPT-J(67億パラメータ)を用いた。これは、The Pileコーパスで学習されたオープンなLLMである[4]。このモデルを上記の手順でファインチューニングし、GPT-JベースのToolformerを構築した。この新しいアプローチの性能は、数学の文章問題、事実検索、質疑応答(QA)、翻訳、テキストの穴埋めなど、いくつかの標準的なタスクにおいてゼロショット(例なし)モードで評価された。テストデータとしては、例えば、Natural Questions、TriviaQA(事実知識の評価用)、ASDiv、MAWPS、SVAMP(算数の文章問題)、さらに多言語QAベンチマークであるMLQA、LAMAなどの公開データセットが使用された[5]

結果は、Toolformerが多くのタスクにおいて、同規模の元のモデルを大幅に上回ることを示した[1]。さらに、ツールを接続したことで、比較的小規模なモデル(67億パラメータ)が、いくつかの指標においてはるかに大規模なモデルであるGPT-3(1750億パラメータ)を上回ることができた[1][6]。例えば、正確な計算が求められる数学の文章問題では、Toolformerは通常のLLMと比較して特に顕著な進歩を見せ、電卓によってこれらの問題を正確に解決したのに対し、GPT-3でさえも誤りを犯した[1]。事実に関する質問(QA)のテストでも、GPT-JベースのToolformerは、最新の情報を得るためにインターネット検索を実行できるため、GPT-3と同等またはそれ以上の回答品質を示した[1]。同時に重要なのは、この新しいアプローチが、通常のデータで一貫したテキストを続けるといった、言語モデルの一般的な能力を低下させなかったことである。Toolformerは、ツールなしでの自然言語生成レベルを元のGPT-Jと同等に維持した[3]。言い換えれば、API呼び出し機能の追加は、モデルの基本的なスキルを「奪う」ことなく、追加の能力でそれらを拡張したのである。

研究の意義と今後の展望

Toolformerの開発は、合成データの生成と有用性の自己評価を通じて、手動のアノテーションをほとんど行わずに、外部ツールを使用するようモデルを学習させるという基本的な可能性を実証した。この成果は、より効率的で信頼性の高い大規模言語モデルへの道を開くものである。事実や数学的ルールを記憶するために数十億のパラメータを増やす代わりに、比較的小さなモデルが、自身の知識のギャップを埋めるために外部リソース(知識データベース、電卓、サービス)を動的に活用することができる[1]。このようなアプローチは、「幻覚」(モデルが存在しない情報を捏造する現象)の数を減らし、モデル全体を全面的に再構築することなく、回答の正確性と知識の最新性を向上させることを可能にする。本質的に、Toolformerは、大規模モデルの言語スキルと特定のツールの正確性を組み合わせることで、「両方の世界の長所」を実現している[3]

Schickらの研究は、LLMによる外部APIの自律的な習得を実証した最初の研究の一つとなり、コミュニティで大きな関心を集めた。このアイデアを発展させるさらなる研究が登場している。例えば、2023年には、Toolformerの原則をグラフデータでの作業に適用したGraph-ToolFormerモデルが提案された。ChatGPTによって生成されたプロンプトに基づき、Graph-ToolFormerは言語モデルにグラフ分析のタスク(例:グラフの特性取得、知識ネットワークの操作など)を解決するための外部ツールを呼び出すよう学習させる[7]。もう一つの注目すべき開発は、Gorillaモデル(カリフォルニア大学バークレー校、2023年)であり、これは多数のサードパーティ製ソフトウェアAPIの正確な使用に焦点を当てている[8]。Gorillaは、文書化された関数の広範なセットでファインチューニングされたLLaMAモデルであり、タスクの説明から正しいAPI呼び出しを生成することができる。その性能は非常に高く、実験では、ライブラリやサービスの呼び出し生成の精度においてGPT-4をも上回った[8]。Gorillaにはドキュメンテーション検索メカニズムが統合されており、APIの変更に関する情報を更新し、ツール使用時のエラーや幻覚を大幅に削減することができる[8]。これらの研究は、Toolformerが開拓した方向性の重要性を裏付けている。LLMと外部ツールとの組み合わせは、より強力で信頼性の高いAIシステムを構築するための有望な道筋と見なされている。

ツールの言語モデルへの統合というアイデアは、研究分野だけでなく、産業界でも進展していることが指摘されている。例えば、2023年3月、OpenAI社はChatGPT用のプラグインシステムを発表した。これは、モデルを外部サービス(ウェブブラウザ、知識ベース、計算エンジンなど)に接続し、最新情報を取得したり計算を実行したりするための特別なインターフェースである[9]。ユーザーは以前からこのような機能を求めており、プラグインの登場は、Toolformerと同様のコンセプトを実践的に実現するものである。モデルは、多様なユーザーの要求を解決するために、その能力を拡張する「ツール」で補完される[9]。このように、Toolformerは、大規模言語モデルが、リクエストに応じて外部の知識や計算能力を活用できるプラットフォームとなる、というAI開発の全体的なトレンドに合致している。Meta AIとUPFのチームによって行われたこの研究は、LLMが手動の指導なしにツールと連携する方法を示し、それによってより汎用的で安全な知的アシスタントに近づくための重要な基盤を築いた[1][3]

リンク

参考文献

  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. NeurIPS 2023. OpenReview.
  • Li, M. et al. (2023). API-Bank: A Comprehensive Benchmark for Tool-Augmented LLMs. arXiv:2304.08244.
  • Zhang, T. et al. (2023). Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT. arXiv:2304.11116.
  • Patil, S. G. et al. (2023). Gorilla: Large Language Model Connected with Massive APIs. arXiv:2305.15334.
  • Qin, Y. et al. (2023). ToolLLM: Facilitating Large Language Models to Master 16 000+ Real-World APIs. arXiv:2307.16789.
  • Li, Y. et al. (2024). Tool Learning with Large Language Models: A Survey. arXiv:2405.17935.
  • OpenAI (2023). ChatGPT Plugins. OpenAI Blog.
  • Brown, T. B. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
  • Schick, T. et al. (2023). Meta AI & UPF’s Toolformer: Enabling Language Models to Teach Themselves to Use External Tools. Synced Review.


注釈

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 Schick, T. et al. «Meta AI & UPF's Toolformer: Enabling Language Models to Teach Themselves to Use External Tools». Synced. [1]
  2. Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». OpenReview. [2]
  3. 3.0 3.1 3.2 3.3 3.4 3.5 3.6 Schick, T. et al. «Toolformer: Language Models Can Teach Themselves to Use Tools». arXiv. [3]
  4. 4.0 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 OXEN AI. «Arxiv Dives Toolformer: Language models can teach themselves to use tools». Medium. [4]
  5. «Toolformer: Language Models Can Teach Themselves to Use Tools». Papers With Code. [5]
  6. Brown, Tom B. et al. «Language Models are Few-Shot Learners». arXiv. [6]
  7. Zhang, Tingkai et al. «Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT». arXiv. [7]
  8. 8.0 8.1 8.2 Patil, Shishir G. et al. «Gorilla: Large Language Model Connected with Massive APIs». arXiv. [8]
  9. 9.0 9.1 «ChatGPT plugins». OpenAI. [9]