Toolformer: Language Models Can Teach Themselves to Use Tools
岡田 領 / Ryo Okada
書誌情報
• Arxiv 2023/2
• LLMが必要に応じて必要なAPIを呼び出し利用する手法
• LLM自身の文脈理解能力を利用して,ツール(API)をいつ,どう使うのか,
自己教師づけし,データセットを作成し,finetuneする
大規模言語モデルの限界
• ChatGPTなどのLLMの弱点
• 最近の出来事などの最新情報にアクセスできな
い
• 事実を幻視(hallucinate)する傾向(身体的経験
がないので)
• 低情報の言語に弱くなる
• 正確な計算を行うための数学スキル欠如
• 時間経過の概念に無意識
Toolformerの概要
• 言語モデルが必要に応じて,必要な
外部APIをコールし,結果を利用す
る
• QA,Wikipedia検索,計算機,翻
訳...
• LLMの文脈理解能力を利用し,API
利用に特化したデータセットを作成
.そのデータセットでLLMを
finetuneする.
• 6.7Bの訓練済みGPT-Jを利用し,ゼ
ロショットの高精度を達成
全体の流れ(データセット作成)
• サンプルテキスト:Pittsburgh is also known as the Steel City
• Xを順番に入力:”Pittsburgh is also known as”でAPIコール位置と判断
• API callの候補を出力:”What other name is Pittsburgh know by?”
• API実行.結果をフィルタリング:”the Steel City”
• 最終的なAPI callと結果をデータセットに組み込み
Sampling API Calls
• 説明,例示つきプロンプト(右)と
xを順番にLLMに入力
• LLMは次トークンがAPI call開始位置
<API>かどうかの予測確率を出力
• Joe Biden was born in <API>
• 予測確率が閾値以上のtop k個の位置
をAPI位置として採用.
• k個の位置全てにおいて,LLMからそ
れぞれm個のAPI call候補をサンプリ
ング,API実行
Inputにx,Ouput: 以降にx1~iのトー
クンを順番に足していく
Filtering the Model
• API実行結果のフィルタリング
• API call位置iから後続の単語の予測確率
の重みつきcross entropy lossを計算
• 重みはAPI call位置から遠くなるほど小
(5つ先で0の値)
• API callなしと比べて, API call ciと結果
riをLLMに入力することで lossが小さく
なることを期待.
Fine-tuning the Model
• 全てのAPIに対して前述の作業が終わった
後,結果(APIコールと実行結果)をデー
タセットC*に組み込み,マージする.
• C*でLLMをfinetuning.
• C*にはモデルが将来のトークンを予測す
る上で役に立つ位置に適切なAPIが挿入さ
れている.結果,モデルは自身のフィー
ドバックからいつ,どのようなAPIを呼ぶ
かを学習する.
Inference
• モデルがAPI callに対する応答を期待
することを示す「→」を生成したら,
デコード中断
• API callを実行し,レスポンスを
</API>を挿入して,後続のデコード
を継続
使用したAPI
• 使用したAPIの選定基準
• 入出力がテキスト形式
• 意図した使い方のデモが得られるもの
実験
• Finetuneに用いたデータセット
• CCNet(webクロール)
• モデル
• GPT-J:通常のGPT-J
• GPT-J + CC:CのデータセットでfinetuningしたGPT-J
• Toolformer:API call用に拡張したデータセットC*でfinetuneしたGPT-J
• Toolformer (disabled):API callのデコードを無効にしたToolformer
• いずれのタスクもゼロショット
LAMA(Language Model Analysis)
• 日付や場所などが欠落している文章を埋めるタスク
計算
• 電卓APIを利用しているToolformerが圧倒的
Question Answering
Temporal Datasets
• “Cristiano Ronaldo plays for ___”(時間変化する事実)
• “What day of the week was it 30 days ago?”:(今日の日付がわかる必要)
• ただし,カレンダーAPIで今日の日付を取得し,その日付でQA APIをコールするのが理想
だが,1例に対して1APIコールしか許可していない(無限ループを避けるため
Scaling Law
• GPT-2(124M, 355M, 775M, 1.6B)でも検証
• 大きいモデルほど有用(APIコールの使い方を学習している)
Limitations
• 連鎖的なAPIの呼び出しはできない
• あるAPIの結果を利用して,別のAPIをコールする,など
• APIをインタラクティブには使えない
• 検索エンジンの大量の結果をブラウズして,その結果から検索クエリを絞
り込むなど.
• API callの判定が文章によってはセンシティブ
• Toolformer自体はAPI call先のコストは全く気にしないやり方
• Call先でLLMが動いていたり
Toolformer zero
• React app implementing OpenAI and Google APIs to re-create behavior
of the toolformer paper.
まとめ
• LLMの能力でアノテーションして,API callを実現する
• 6.7BパラメータのGPT-Jモデルのゼロショット性能を大幅に向上(検証したタ
スクではより大きなGPT-3モデルをも凌駕する性能
• プロンプトエンジニアリングが巧み
• API連携は単に能力拡張だけでなく,特定のデータ基盤から情報とってくるシ
ナリオなど実用面でかなり有用に感じる

【DL輪読会】Toolformer: Language Models Can Teach Themselves to Use Tools