tma15 / paper-reading-list

3 stars 0 forks source link

ToolkenGPT: Augmenting Frozen Language Models with Massive Tools via Tool Embeddings #181

Open tma15 opened 1 year ago

tma15 commented 1 year ago

https://arxiv.org/pdf/2305.11554.pdf

概要

既存LLMの最終層(語彙への分類)に、ツールを表すトークン (toolken) を追加。toolkenの埋め込みのみを更新してツール呼び出しを学習。 推論時にtoolkenを予測したら、トークン列の生成を一時停止してtool modeに入る。そのツールに対して引数を生成するためのプロンプトを利用して、文脈に基づいて実際に利用する引数を生成する。その後、通常のトークン列生成にも戻る。

問題設定

データの例

入力: the area is 256 square feet
出力: the area is [square] [N/A] square feet

[N/A]はツールの出力が埋めることを表すトークンで、損失を計算する際は無視される。

データの作成方法

質問に対してナレッジベース (KB) から答えを生成するタスクなどは、自然言語に対してツールの呼び出し事例が付与されている。 LLMがツールを呼び出したら、ツールに対して与えられたプロンプトを用いてIn context learningによって引数を予測することで出力を生成することで以下のような例が作成できる。

"The capital of U.S. is <capital> ("U.S.")="Washington D.C.".

KBを使った質問応答 (KAMEL)

このタスクでは、KB (2つのエンティティとそれを結ぶ関係の3つ組) の参照を、APIクエリとして扱う。APIは、関係でその引数が1つのエンティティとなる。

例えば2005-2006年のFA CUPの勝者 (P1346はKBの関係の識別子で勝者を表す) はリバプールであることは以下のようなトークン列になる。

P1346(2005-06 FA CUP) -> LIVERPOOL F.C.

KAMELには関係に対して質問文のテンプレートが用意されている。このテンプレートと3つ組を使ってデータセットを作成している。

P364 | What is the original language of [S]?