RAGの連結方式および自動評価指標の定量評価

近年，大規模言語モデル(LLMs,LargeLanguageModels)の急速な発展に伴い，自然言語処理分野におけるさまざまなタスクがZero-shot/Few-shotで解けるようになった[1]．LLMsはアプリケーションへの応用が期待される一方で，まだ多くの課題を含む．その一例として，LLMsが事実とは異なる文を生成してしまう「幻覚」(hallucination)という現象が挙げられる．また，学習データに含まれていない事柄に関してはLLMsが知識を有さないことも実用上の障壁となる．そのような課題への対策として，RetrievalAugmentedGeneration(RAG)が有望視されている[2,3]．RAGは，入力文に関連した文書を外部データソースから取得し，LLMsにその関連文書をもとに回答文を生成させるシステムである．本研究では，関連文書を取得する部分をRetriever，回答文を生成する部分をGeneratorと呼ぶ．RAGによってLLMsの真実性(factuality)や忠実性(faithfulness)などの改(1)直列⽅式LLM(pReﬁne)LLM(pReﬁne)回答⽂a⼊⼒⽂qLLM(pQA)aaaa…関連⽂書…d1d2dk(2)並列⽅式d1関連⽂書a1LLM(pQA)d2⼊⼒⽂qLLM(pQA)回答⽂aLLM(pAggregate)a2a………dkakLLM(pQA)善が期待できる一方で，LLMsのコンテキスト長は有限であり，すべての関連文書を1つのプロンプトに収めることは困難である．また，長いコンテキスト長を有すLLMsであっても，入力文の中間部分の情報は見落としてしまっている，という「Lost-in-the-middle」が報告されている[4]．複数の関連文書を活用する方法として，実装上1）ではヒューリスティック的にLLMsを多段に連結する方式が用いられている．本研究では，GeneratorでのLLMsの連結方式に着目し，それらの方式における正答率および遅延を定量的に評価する．本研究で扱う連結方式を図1に示す．連結方式として2つ扱い，本研究ではそれぞれ「直列方式」と「並列方式」と呼ぶ．入力文を𝑞，Retrieverによって取得された𝑘個の関連文書のうち𝑖番目の関連文書を𝑑𝑖,𝑖∈{1,...,𝑘}，Generatorで用いるLLMsをLLM(·)とする．プロンプトのテンプレートを𝑝QA(𝑞,𝑑𝑖)，𝑝Reﬁne(𝑞,𝑎𝑖,𝑑𝑖)，𝑝Aggregate(𝑞,𝑎1,...,𝑎𝑘)とし，表1にそれらの例を示した．上記の関数はいずれもテキストを受け取り，テキストを返す．図1の処理をアルゴリズム1,2に示す．並列方式のWhile句内は並列処理との併用が可能である点に注意され1）RAGの実装で広く用いられるLangChain[5]やLlamaIn-dex[6]など．.𝑝QA(𝑞,𝑑𝑖)𝑝Reﬁne(𝑞,𝑎𝑖,𝑑𝑖)𝑝Aggregate(𝑞,𝑎1,𝑎2,𝑎3)文脈をもとに質問に回答しなさい。###指示:{𝑞}###入力:{𝑑𝑖}###入力:{𝑑𝑖}###応答:###応答:たい．Algorithm1直列方式,初期値:𝑖=1while𝑖≤𝑘doif𝑖=1then⊲1つ目の関連文書𝑎=LLM(𝑝QA(𝑞,𝑑𝑖))else⊲2つ目以降の関連文書𝑎=LLM(𝑝Reﬁne(𝑞,𝑎,𝑑𝑖))𝑖←𝑖+1returnaAlgorithm2並列方式,初期値:𝑖=1while𝑖≤𝑘do⊲While句内は並列処理𝑎𝑖=LLM(𝑝QA(𝑞,𝑑𝑖))𝑖←𝑖+1𝑎=LLM(𝑝Aggregate(𝑞,𝑎1,𝑎2,...,𝑎𝑘))returna本研究では，RAGにおける連結方式の定量評価および自動評価指標のメタ評価をおこなう．また，適切なRAGの日本語評価用の公開データセットがないため，本研究では日本語評価用データセットを構築した．本研究での新規性は以下である．•RAGの日本語評価用データセットの構築•RAGの直列方式・並列方式の定量評価•RAGにおける自動評価指標のメタ評価