大規模言語モデルはコンテキストのどの部分を利用しているのか?
3つの要点
✔️ 大規模言語モデルが長いコンテキストをどのように利用しているかを2つの実験を用いて検証
✔️ 実験の結果、関連する情報が入力コンテキストの先頭または末尾にある場合に最も性能が高くなることを発見
✔️ さらに、関連する情報が入力コンテキストの中間にある場合に性能が著しく低下する事が分かった
Lost in the Middle: How Language Models Use Long Contexts
written by Nelson F. Liu, Kevin Lin, John Hewitt, Ashwin Paranjape, Michele Bevilacqua, Fabio Petroni, Percy Liang
(Submitted on 6 Jul 2023)
Comments: 15 pages, 17 figures
Subjects: Computation and Language (cs.CL)
code:
本記事で使用している画像は論文中のもの、紹介スライドのもの、またはそれを参考に作成したものを使用しております。
はじめに
近年、大規模言語モデルは会話インターフェースや検索・要約・共同執筆など、様々なタスクで用いられており、人間の生活の一部となりつつあります。
こうした言語モデルはこれまでのモデルに比べて、非常に長いコンテキストを入力に使用する事ができるようになりましたが、一方で、こうした長いコンテキストをどの程度利用できるかについては調査されてきませんでした。
本稿では、こうした背景から言語モデルが長いコンテキストをどのように利用しているかを2つの実験(multi-document question answering&key-value retrieval)を用いて検証し、言語モデルがどのように入力コンテキストを使用するかについての調査を行った論文について解説します。
Multi-Document Question Answering
本実験の目的は、言語モデルが入力コンテキストをどのように利用しているのかを調査することであり、そのために本論文では入力コンテキストの中から関連する情報を見つけ、それらを使って質問に答えるタスクであるmulti-document question answeringを採用しました。
加えて、入力コンテキストの長さと文章上の関連情報の位置を調整しながら変化させ、モデルのパフォーマンスの変化を測定しました。
Experimental Setup
本実験において、モデルの入力は答えるべき質問とk個の文章(Wikipediaの文章など)であり、タスクを実行する際はモデルが入力コンテキスト内の答えを含む文章にアクセスし、それを使って質問に答えることになります。
下図はその例になります。(質問に正しく答えるための関連文章が太字で表示されています)
本実験ではこのタスクをNaturalQuestions benchmark(Google検索エンジンに発行された過去のクエリとWikipediaから抽出された人間による注釈付きの回答が含まれるデータセット)でインスタンス化しています。
また、本実験ではこのタスクにおいて、
- 答えを含まない文章の数を増減させることで、入力コンテキストの長さを調節する
- 入力コンテキスト内の文章の順序を入れ替えることで、関連情報の位置を調節する
という2つの工夫を行うことで、様々な条件での検証を可能にしました。
Models
本論文では、以下の6つの大規模言語モデルを用いて実験を行いました。
- MPT-30B-Instruct: 2048個のトークンシーケンスを用いて1兆個のトークンで事前学習したモデルで、最大8192トークンのコンテキストに対応可能
- LongChat-13B-16K: LLaMA13Bをベースに、context windowを拡張したモデル
- GPT-3.5-Turbo-0613: 最大4Kトークンのコンテキストに対応可能なGPTモデル
- GPT-3.5-Turbo-16K-0613: 最大16Kトークンのコンテキストに対応可能なGPTモデル
- Claude-1.3: 最大8Kトークンのコンテキストに対応可能なモデル
- Claude-1.3-100K: 最大100Kトークンのコンテキストに対応可能なモデル
各モデルには標準的なプロンプトを使用し、10個・20個・30個の文章を含む入力コンテキストでそれぞれ実験を行いました。
Results
関連情報の位置を変化させた際の、マルチドキュメントの質問に対する回答のパフォーマンスの変化を検証した結果が下図になります。(縦軸が正解率で、横軸の1stが文章の先頭を表しています)
図より、関連情報がコンテキストの先頭または末尾に配置されている場合にパフォーマンスが最も高くなり、モデルが入力コンテキストの途中にある情報を利用する必要がある場合ほどパフォーマンスが急速に低下していることが分かります。
加えて、入力コンテキストの長さを変化させた際の、マルチドキュメントの質問に対する回答のパフォーマンスの変化を検証した結果が下図になります。(縦軸が正解率で、横軸が入力コンテキストの長さを表しています)
図より、本タスクにおける言語モデルのパフォーマンスは、入力コンテキストが長くなるにつれて低下していることが確認できます。
Key-value Retrieval
上述したmulti-document question answeringタスクにおいて、言語モデルが入力コンテキストの途中にある情報を利用すること際にパフォーマンスが低下したことを考えると、言語モデルはどの程度まで文章の先頭から情報を検索することができるのかという疑問が生まれます。
本論文ではこの疑問を解決するために、key-value retrievalというタスクを採用し実験を行いました。
Experimental Setup
key-value retrievalにおいて、入力はk個のkey&valueのペアを持つ文字列でシリアライズされたJSONオブジェクトであり、指定されたkeyに関連付けられたvalueを返すことがタスクのゴールになります。
したがって、各JSONオブジェクトには1個の関連するkey&valueのペアと、k-1個の無関係なkey&valueのペアが含まれています。
これを図で示すと下のようになり、出力に正しいvalueが現れるかどうかを評価します。(関連付けられたkey&valueのペアが太字で表示されています)
本実験ではこのタスクにおいて、
- ランダムなkeyを追加または排除することによって、入力のkey&valueのペアの数を変更し、入力コンテキストの長さを調節する
- シリアライズされたJSONオブジェクト内で検索するkeyの位置を変化させることで、関連情報の位置を調節する
という2つの工夫を行うことで、様々な条件での検証を可能にしました。
また、実験に用いる言語モデルはmulti-document question answeringと同様になります。
Results
入力コンテキストの長さと関連情報の位置を変化させた際の、key-value retrievalタスクにおけるパフォーマンスの変化を検証した結果が下図になります。(縦軸が正解率で、横軸の1stが文章の先頭を表しています)
本タスクより、非常に高精度なモデル(Claude-1.3など)を除くと、関連する情報がコンテキストの先頭または松尾に配置されている場合にパフォーマンスが最も高くなり、入力コンテキストの途中にある場合に急速に性能が低下していることが改めて確認できました。
まとめ
いかがだったでしょうか。今回は、言語モデルが長いコンテキストをどのように利用しているかを2つの実験(multi-document question answering&key-value retrieval)を用いて検証し、言語モデルがどのように入力コンテキストを使用するかについての調査を行った論文について解説しました。
本論文にて行われた2つの実験により、言語モデルのパフォーマンスが最も高くなるのは関連情報がコンテキストの先頭または末尾に配置されている場合であり、関連情報が入力コンテキストの途中にある場合、性能が急速に低下する事が実証されました。
本実験結果は言語モデルがどのように入力コンテキストを使用するのかという疑問に対しての重要な発見であり、かつ言語モデルをより良く使用するためのヒントになるものです。
こうした言語モデルにおいてブラックボックスになっている部分の研究が行われることが、我々が言語モデルへの理解を深めることにつながるため、今後の動向にも注目が集まります。
今回紹介した言語モデルや実験結果の詳細は本論文に載っていますので、興味がある方は参照してみてください。
この記事に関するカテゴリー