全体の流れ(データセット作成)
• サンプルテキスト: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を呼ぶ
かを学習する.
Temporal Datasets
• “Cristiano Ronaldo plays for ___”(時間変化する事実)
• “What day of the week was it 30 days ago?”:(今日の日付がわかる必要)
• ただし,カレンダーAPIで今日の日付を取得し,その日付でQA APIをコールするのが理想
だが,1例に対して1APIコールしか許可していない(無限ループを避けるため