[論文紹介#16] Toolformer: 言語モデルは自分で道具の使い方を学ぶことができるか

本日の論文

Toolformer: Language Models Can Teach Themselves to Use Tools

この論文は、言語モデルが外部ツール(検索エンジン、電卓、翻訳システムなど)の使い方を自己教師あり学習で習得し、様々なタスクで性能を向上させる手法「Toolformer」を提案しています。

以下は、LLMを活用して論文の内容を要約したものになります。

概要

Toolformerは、言語モデルが外部ツールの使用法を自己教師あり学習で習得できるようにする新しいアプローチです。電卓、Q&Aシステム、検索エンジン、翻訳システム、カレンダーなどのツールを統合し、モデルは各APIの使用方法を少数のデモンストレーションから学習します。この手法により、言語モデルは基本的な機能と高度なタスク解決能力の両方を獲得し、様々な下流タスクでゼロショット性能を大幅に向上させます。Toolformerは、コア言語モデリング能力を維持しながら、しばしばより大規模なモデルと競合する性能を達成し、言語モデルの能力を拡張する効果的な方法を提示しています。

1. はじめに

言語モデル(LM)は規模が大きくなるにつれて、少数の例示や指示だけで新しいタスクを解決する能力を示すようになりました。しかし、算術や事実検索などの基本的なタスクでは、より小さく単純なモデルの方が優れています。この論文では、LMが外部ツールを使用する方法を自己教師あり学習で習得できることを示します。これにより、基本的なタスクと高度なタスクの両方で高い性能を発揮できるようになります。我々は、このアプローチをToolformerと呼び、様々なツールを統合して下流タスクでの性能向上を実現しました。

2. アプローチ

Toolformerは、言語モデルに外部ツールの使用法を自己教師あり方式で学習させる手法です。このプロセスは、APIコールのサンプリング、実行、フィルタリング、そしてモデルの微調整という段階を経て行われます。各ツールについて少数のデモンストレーションを用意し、モデルが自動的にAPIコールを生成し、それらの有用性を評価して学習データを作成します。この方法により、モデルは様々なツールを適切に使用する能力を獲得し、下流タスクでの性能を向上させることができます。

2.1 APIコールのサンプリング

モデルは与えられたテキストに対して、適切な位置でAPIコールを生成します。各APIに対して用意された少数のデモンストレーションを基に、モデルはAPIコールの候補を生成します。このプロセスでは、APIコールを開始する確率が一定のしきい値を超える位置を特定し、そこで複数のAPIコール候補を生成します。

2.2 APIコールの実行

生成されたAPIコール候補に対して、実際にAPIを呼び出して結果を取得します。これは各APIの特性に応じて行われ、別のニューラルネットワークの呼び出し、Pythonスクリプトの実行、大規模コーパスに対する検索など、様々な方法で実装されます。

2.3 APIコールのフィルタリング

APIコールの有用性を評価するため、モデルの将来のトークン予測に対する影響を測定します。APIコールとその結果を含めることで、モデルの予測損失が一定以上減少する場合、そのAPIコールは有用と判断され、保持されます。この方法により、モデルにとって本当に役立つAPIコールのみが選択されます。

2.4 モデルの微調整

フィルタリングされたAPIコールを元のテキストに挿入し、新しいデータセットを作成します。このデータセットを使用してモデルを微調整することで、モデルはAPIの使用方法を学習します。重要なのは、APIコール以外のテキストは元のデータセットと同じであるため、モデルの基本的な言語モデリング能力が維持されることです。

2.5 推論

微調整されたモデルは、テキスト生成中に適切なタイミングでAPIを呼び出す能力を獲得します。モデルがAPIコールを示す特殊トークンを生成した場合、実際にAPIを呼び出し、その結果をモデルに提供して生成を続行します。これにより、モデルは外部ツールの能力を活用しながらテキストを生成できます。

3. ツール

Toolformerは、様々な外部ツールを統合して言語モデルの能力を拡張します。これらのツールは、テキスト入出力が可能であり、使用方法のデモンストレーションが少数あれば十分です。本研究では、質問応答システム、電卓、Wikipedia検索エンジン、機械翻訳システム、カレンダーの5つのツールを実装しました。各ツールは特定の機能を提供し、言語モデルの弱点を補完することで、全体的な性能向上を実現します。

3.1 質問応答システム

質問応答システムは、別の言語モデルをベースにした簡単な事実関連の質問に答えるツールです。具体的には、Natural QuestionsデータセットでファインチューニングされたAtlasモデルを使用しています。このツールにより、モデルは事実に基づく情報を迅速に取得できるようになります。

3.2 電卓

電卓ツールは、基本的な数値計算を行うことができます。加減乗除の四則演算のみをサポートし、結果は小数点以下2桁に丸められます。このツールにより、モデルは正確な数値計算を必要とするタスクでの性能を向上させることができます。

3.3 Wikipedia検索

Wikipedia検索エンジンは、与えられた検索語に基づいてWikipediaの短いテキスト断片を返すツールです。質問応答システムと比較して、このツールはより包括的な情報を提供しますが、モデルは関連情報を自身で抽出する必要があります。KILTのWikipediaダンプを使用したBM25検索器を実装しています。

3.4 機械翻訳システム

機械翻訳システムは、任意の言語からの文章を英語に翻訳するツールです。600Mパラメータのニューラル機械翻訳モデルNLLBを使用し、200言語(低リソース言語を含む)に対応しています。ソース言語は自動検出され、ターゲット言語は常に英語に設定されています。

3.5 カレンダー

カレンダーAPIは、クエリに対して現在の日付を返すシンプルなツールです。入力を必要とせず、時間的な文脈が必要な予測に時間的な情報を提供します。これにより、モデルは時間に関連するタスクでより正確な応答を生成できるようになります。

4. 実験

Toolformerの有効性を検証するため、様々な下流タスクでの性能評価を行いました。これらのタスクは、実装されたツールの少なくとも1つが有用だと想定される課題を選択しています。評価はゼロショット設定で行われ、モデルは自然言語での指示のみを与えられます。また、Toolformerがモデルの基本的な言語モデリング能力を損なわないことも確認しました。さらに、モデルサイズがツール使用能力に与える影響も調査しています。

4.1 実験設定

実験では、CCNetの一部をデータセットとして使用し、GPT-Jを基本モデルとしています。APIコールの生成とフィルタリングには、各ツールに適したヒューリスティックを用いて効率化を図っています。モデルの微調整は、生成されたAPIコールを含む拡張データセットを用いて行われました。ベースラインとして、通常のGPT-J、CCNetでファインチューニングしたGPT-J、OPT(66B)、GPT-3(175B)を使用しています。

4.2 下流タスク

4.2.1 LAMA

LAMAベンチマークのSQuAD、Google-RE、T-RExサブセットで評価を行いました。Toolformerは質問応答ツールを効果的に活用し、ベースラインモデルだけでなく、より大規模なOPTやGPT-3も上回る性能を示しました。

4.2.2 数学データセット

ASDiv、SVAMP、MAWPSベンチマークを用いて数学的推論能力を評価しました。Toolformerは電卓ツールを活用し、全てのタスクで大幅な性能向上を達成し、より大規模なモデルも上回る結果を示しました。

4.2.3 質問応答

Web Questions、Natural Questions、TriviaQAデータセットで評価を行いました。Toolformerは主にWikipedia検索APIを利用し、同じサイズのモデルを明確に上回りましたが、GPT-3(175B)には及びませんでした。

4.2.4 多言語質問応答

MLQAベンチマークを用いて多言語質問応答能力を評価しました。Toolformerは機械翻訳ツールを活用し、全ての言語で性能向上を示しましたが、一部の言語ではCCNetでの微調整が性能を低下させる結果となりました。

4.2.5 時間関連データセット

TEMPLAMAとDATESET(新たに作成したデータセット)を用いて時間関連タスクの性能を評価しました。Toolformerはカレンダーツールを効果的に活用し、両データセットでベースラインを上回る性能を示しました。

4.3 言語モデリング

WikiTextとCCNetの一部を用いて、Toolformerの基本的な言語モデリング能力を評価しました。結果は、APIコールを含む学習がモデルの基本的な言語モデリング能力を損なわないことを示しています。

4.4 スケーリング則

モデルサイズがツール使用能力に与える影響を調査しました。GPT-2ファミリーの小規模モデルからGPT-Jまで、異なるサイズのモデルでToolformerアプローチを適用しました。結果は、約775Mパラメータ以上のモデルでツール活用能力が顕著に現れ始めることを示しています。モデルサイズが大きくなるにつれて、APIコールの有無による性能差が維持されることも確認されました。

5. 分析

Toolformerの挙動と性能をより深く理解するため、デコーディング戦略の影響とデータの質について分析を行いました。デコーディング戦略の分析では、APIコールの生成確率に関する閾値の影響を調査し、モデルのAPIコール頻度と性能の関係を明らかにしました。データ品質の分析では、生成されたAPIコールの有用性とフィルタリング基準の関係を調べ、高スコアのAPIコールが一般的に有用であることを確認しました。これらの分析により、Toolformerの動作メカニズムと改善の余地が明らかになりました。

デコーディング戦略

LAMAのT-RExサブセットとWebQSデータセットを用いて、APIコールトークンの生成確率に関する閾値kの影響を分析しました。kの増加に伴い、モデルがAPIコールを行う頻度が上昇し、特定のタスクでの性能も向上することが観察されました。また、k=1の場合、モデルは自身が特に苦手とする例でAPIコールを行う傾向にあることが示されました。

データ品質

CCNetから生成されたAPIコールの例を質的に分析し、フィルタリングに使用される損失減少スコア(L_i^- – L_i^+)と、APIコールの直感的な有用性の関係を調査しました。高スコアのAPIコールは一般的に有用であり、低スコアのものは将来のトークン予測に役立たない傾向が確認されました。ただし、一部の例外も観察され、これらのノイズが存在することで、モデルがAPIの結果を盲目的に信頼しないよう学習する効果があることが示唆されました。

6. 関連研究

Toolformerは、言語モデルの能力拡張と外部ツールの利用に関する様々な研究分野と関連しています。この章では、言語モデルの事前学習、ツール使用、ブートストラッピングの3つの主要な関連分野について概説しています。これらの既存研究との比較により、Toolformerの新規性と位置づけが明確になります。Toolformerは、これらの分野の知見を統合し、自己教師あり学習によってツール使用を学習する新しいアプローチを提案しています。

言語モデル事前学習

言語モデルの事前学習段階で追加のテキスト情報を組み込む様々なアプローチが紹介されています。これには、メタデータ、HTMLタグ、Wikipedia markup、情報検索システムから得られた関連テキストなどが含まれます。しかし、これらのアプローチでは、追加情報が常に提供されるのに対し、Toolformerは必要な情報を自ら要求する点で異なります。

ツール使用

外部ツールを言語モデルに統合する既存のアプローチについて説明しています。これらは主に、大量の人間の教師データを必要とするものと、特定のタスクに特化したフューショット設定を使用するものに分類されます。対照的に、Toolformerは自己教師あり学習を用いて、特定のタスクに依存せずにツールの使用方法を学習します。

ブートストラッピング

自己学習やブートストラッピング技術を用いてモデルを改善する様々なアプローチが紹介されています。これらの技術は、単語の意味の曖昧性解消、関係抽出、構文解析、シーケンス生成、少数ショットテキスト分類、検索、推論など、幅広い分野で応用されています。Toolformerも、モデル自身の予測を用いて学習データを生成するという点で、これらのアプローチと類似した精神を持っています。

7. 制限事項

Toolformerは言語モデルに外部ツールの使用法を自己教師あり方式で学習させる革新的なアプローチですが、いくつかの制限があります。主な制限として、ツールの連鎖的使用やインタラクティブな使用ができないこと、入力の表現に敏感であること、サンプル効率が低いこと、APIコールのコストを考慮していないことが挙げられます。これらの制限は、現在のアプローチの設計に起因するものであり、将来の研究でこれらの課題に取り組むことで、Toolformerの能力をさらに向上させる可能性があります。

ツールの連鎖的使用の制限

現在のToolformerは、複数のツールを順次使用する能力を持っていません。これは、各ツールのAPIコールが独立して生成されるため、ファインチューニングデータセットに連鎖的なツール使用の例が含まれないことが原因です。この制限により、より複雑な推論や問題解決が必要なタスクでの性能が制限される可能性があります。

インタラクティブな使用の制限

特に検索エンジンのような潜在的に多数の結果を返すツールに対して、モデルが結果を閲覧したり検索クエリを洗練したりする能力がありません。これにより、特定の応用分野での柔軟性と効果が制限される可能性があります。

入力表現への敏感性

Toolformerは、APIコールを行うかどうかの決定において、入力の正確な表現に敏感である傾向があります。これは、言語モデルがゼロショットや少数ショット設定でプロンプトに敏感であることと関連しています。この特性により、モデルの一貫性や堅牢性が影響を受ける可能性があります。

サンプル効率の低さ

一部のツール、特に電卓APIでは、大量のドキュメントを処理しても有用なAPIコールの例が少数しか得られません。これは、学習プロセスの効率を低下させ、より多くのデータや計算リソースを必要とする原因となっています。

APIコールのコスト考慮の欠如

現在のToolformerは、APIコールを行う際のツール依存の計算コストを考慮していません。これにより、実際の応用時に不必要に高コストなAPIコールが行われる可能性があります。将来的には、コストと有用性のバランスを取る方法を開発する必要があります。

8. 結論

Toolformerは、言語モデルが自己教師あり方式で外部ツールの使用法を学習できる新しいアプローチを提示しました。検索エンジン、電卓、翻訳システムなど、様々なツールを単純なAPIコールを通じて利用する能力を獲得します。この手法は、大量のAPIコールをサンプリングし、将来のトークン予測に基づいてフィルタリングすることで実現されます。6.7Bパラメータのベースモデルを用いたToolformerは、様々な下流タスクでゼロショット性能を大幅に向上させ、より大規模なGPT-3モデルを上回る性能を示しました。この研究成果は、言語モデルの能力を拡張する新たな方向性を示すものです。

付録

A API詳細

この付録では、Toolformerで使用される各APIの実装詳細と、APIコールのサンプリングとフィルタリングに使用されるパラメータについて説明しています。デフォルトでは、τ_s = 0.05、τ_f = 1.0、k = 5、m = 5の値が使用されます。ただし、電卓と機械翻訳システムに対しては、より多くのAPIコールを生成するために一部のパラメータが調整されています。

A.1 実装

各APIの具体的な実装方法について詳細が記載されています。質問応答システムにはAtlasモデル、電卓にはPythonスクリプト、Wikipedia検索にはKILTのWikipediaダンプを用いたBM25検索器、機械翻訳にはNLLBモデル、カレンダーにはURLから日付を抽出する方法が使用されています。

A.2 プロンプト

各ツールのAPIコールをサンプリングするために使用されるプロンプトの詳細が記載されています。これらのプロンプトは、モデルがどのようにAPIコールを生成すべきかを例示しています。

B Toolformerトレーニング

Toolformerのトレーニング設定について詳細が記載されています。APIごとに最大25,000例を使用し、最大シーケンス長は1,024、効果的なバッチサイズは128です。トレーニングにはDeepSpeedのZeRO-3が使用され、8台のNVIDIA A100 40GB GPUでBF16精度で実行されています。

C ゼロショットプロンプト

各タスクで使用されたゼロショットプロンプトの詳細が記載されています。これらのプロンプトは、モデルに対してタスクの指示を与えるために使用されます。

D DATESET

DATESETの作成方法について詳細が説明されています。500の「現在の日付」をランダムに選択し、それぞれに対して過去または未来の日付を生成し、これらの日付を用いて様々なクエリテンプレートを作成しています。このデータセットは、カレンダーツールの有効性を評価するために設計されています。