Slide 1

Slide 1 text

Retrieval-based LM (RAG system) ざっくり理解する Shumpei Miyawaki Algomatic inc. / Tohoku Univ. @catshun_

Slide 2

Slide 2 text

おことわり • 勉強会⽤に突貫的に作成しており、内容に誤りがある可能性が⼤いにあります... • 内容の誤りや引⽤漏れ等がありましたらお伝えください • 本資料の読者は LLM 応⽤・RAG システム構築等に関⼼のある⽅を想定しています • RAG システム構築においては使⽤する⽂書等の秘匿性やステークスを必ず考慮しましょう • OpenAI – Terms and policies https://openai.com/policies • Microsoft - Data, privacy, and security for Azure OpenAI Service https://learn.microsoft.com/ja-jp/legal/cognitive-services/openai/data-privacy?context=%2Fazure%2Fcognitive-services%2Fopenai%2Fcontext%2Fcontext • RAG による著作権法等については必ず法律を遵守してください(以下参考) • 柿沼 (STORIA法律事務所) +’23 - LLMを利⽤したRAG(Retrieval Augmented Generation)と著作権侵害 https://storialaw.jp/blog/9885 • 杉浦 (STORIA法律事務所) +’23 - LLMを利⽤したRAGと個⼈データの第三者提供 https://storialaw.jp/blog/9916

Slide 3

Slide 3 text

RAG

Slide 4

Slide 4 text

モデル名称を指す場合 Retrieval-Augmented Generation Retrieval-based LM を指す場合 Lewis+’20 - Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (NeurIPS) https://arxiv.org/abs/2005.11401 Sewon+’23 – Retrieval-based Language Models and Applications / ACL 2023 Tutorial / Section.2 Definition & Preliminaries https://acl2023-retrieval-lm.github.io/ RAG といった場合は以下の2つを指す場合が多い ∈

Slide 5

Slide 5 text

Retrieval-Augmented Generation モデル名称を指す場合 Retrieval-based LM を指す場合 Lewis+’20 - Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (NeurIPS) https://arxiv.org/abs/2005.11401 Sewon+’23 – Retrieval-based Language Models and Applications / ACL 2023 Tutorial / Section.2 Definition & Preliminaries https://acl2023-retrieval-lm.github.io/ 本スライドではこちらを対象 RAG といった場合は以下の2つを指す場合が多い ∈

Slide 6

Slide 6 text

なぜ RAG が必要か︖ 弊社の 社内⽂書管理規定 について教えて 申し訳ございませんが、私の知識ベース には御社に関する具体的な情報は含まれ ておらず、社内⽂書管理規定についての 詳細な情報を提供することはできません。 御社の社内⽂書管理規定についての情報 を⼊⼿するには… 直接 API を叩いても正しい回答が得られない RAG によりニッチな情報の応答を実現 弊社の 社内⽂書管理規定 について教えて 以下は 〇〇 社の⽂書管理規定に関する情報です: 1. ⽂書の取り扱い⽅法:〇〇 社では、⽂書は電⼦フォーマットま たは紙フォーマットのいずれかで管理されます。⽂書は適切な カテゴリに割り当てられ、適切なフォルダーやデータベースに 保存されます。 2. ⽂書の保存期間:⽂書の保存期間は⽂書の重要性や法的要件に 基づいて決定されます。重要な⽂書は⼀定期間保存され、その 後、適切な⽅法で廃棄されます 第1章 総則(⽬的) 第1条 この規程は、公⽂書等の管理に関する 法律 第 13 条第1項の規定に基づき、年⾦積⽴ ⾦管理運⽤独⽴⾏政法⼈ ... ⽂書管理規定.pdf 検索 引⽤ 社内ドキュメント等に対する QA を想定する場合 ※ 秘匿性等は⼗分考慮する必要がある

Slide 7

Slide 7 text

Knowledge-Intensive Task での利⽤ オープンドメイン質問応答タスク (第 2,3 回 AI 王) でのベースライン https://github.com/cl-tohoku/AIO2_DPR_baseline/tree/master 外部知識源として Wikipedia から 質問に関連する情報を検索して 応答を⽣成する

Slide 8

Slide 8 text

Retrieval の対象となる情報源は何か︖ (1/2) Zhang+’23 - Retrieve Anything To Augment Large Language Models https://arxiv.org/abs/2310.07554 Xie+’23 - OlaGPT: Empowering LLMs with Human-like Problem-Solving Abilities https://arxiv.org/abs/2305.16334 失敗ログ ツール仕様 思考テンプレ 常識・知識 知識 ツール ICL デモ 対話・履歴

Slide 9

Slide 9 text

Example Retriever Memory Retriever Ram+’23 - In-Context Retrieval-Augmented Language Models (TACL) ( https://arxiv.org/abs/2302.00083 Park+’23 - Generative Agents: Interactive Simulacra of Human Behavior https://arxiv.org/abs/2304.03442 in-context に使⽤するタスク例のドメインは 意味的に類似(・多様)なものが望ましい Retrieval の対象となる情報源は何か︖ (2/2)

Slide 10

Slide 10 text

外部知識源の利⽤ はどのような場⾯で有効か︖ Asai (Washington Univ.)+’23 – Retrieval-based Language Models and Applications / ACL 2023 Tutorial https://acl2023-retrieval-lm.github.io/slides/5-application.pdf

Slide 11

Slide 11 text

long-tail な知識に対する LLM 推論の限界 Kandpal+’23 – Large Language Models Struggle to Learn Long-Tail Knowledge (ICML) https://openreview.net/forum?id=sfdKdeczaw 質問に対して事前学習データに含まれる関連⽂書数 ある質問において その質問に関連する⽂書が 学習データに含まれない場合 不正解となる可能性が⾼い TriviaQA における正解率 ⼀般的でない事実型知識に関して 外部知識の活⽤が有効 Mallen+’23 – When Not to Trust Language Models: Investigating Effectiveness of Parametric and Non-Parametric Memories (ACL) https://aclanthology.org/2023.acl-long.546 オープンドメイン質問応答における GPT-3 の正解率 Wikipedia の⽉間ページビューから算出される entity popularity GPT-3 GPT-3 w/ BM25

Slide 12

Slide 12 text

Azure Search OpenAI Demo https://github.com/Azure-Samples/azure-search-openai-demo クラウド検索サービス Azure Cognitive Search 情報源 File, SQL, Database ③ 関連知識 ② クエリ ④ プロンプト + クエリ + 関連知識 ⑤ 応答⽂ 応答⽣成器 Azure OpenAI Service ⓪ indexing ① クエリ ⑥ 応答表⽰ 4つのアーキテクチャを提供 • RetrieveThenRead ⼊⼒に対して ①関連⽂書検索 ②回答 の2段階で応答⽂を⽣成する • ChatReadRetrieveRead 対話履歴を考慮、対話履歴から LLM がクエリを⽣成する • ReadRetrieveRead ReAct のようなツール利⽤可能なエージェントを⽤いて応答⽂を⽣成する • ReadDecomposeAsk 質問を分解するプロンプトを利⽤して応答⽂を⽣成する 参考︓⼭本+’23 - Retrieval Augmented Generationを改良する2つの⽅法 / DeveloppersIO https://dev.classmethod.jp/articles/revise-retrieval-augmented-generation/

Slide 13

Slide 13 text

GPTs 経済産業省資料を引⽤ • ALPS処理⽔資料集 https://www.meti.go.jp/earthquake/nucle ar/hairo_osensui/pdf/alps_02.pdf • ALPS処理⽔に関する質問と回答 https://www.meti.go.jp/earthquake/nucle ar/hairo_osensui/alpsqa.html 使⽤する⽂書等の秘匿性やステークスを考慮し著作権法等は必ず法律を遵守してください • OpenAI – Terms and policies https://openai.com/policies • Microsoft - Data, privacy, and security for Azure OpenAI Service https://learn.microsoft.com/ja-jp/legal/cognitive-services/openai/data-privacy?context=%2Fazure%2Fcognitive-services%2Fopenai%2Fcontext%2Fcontext • 柿沼 (STORIA法律事務所) +’23 - LLMを利⽤したRAG(Retrieval Augmented Generation)と著作権侵害 https://storialaw.jp/blog/9885 • 杉浦 (STORIA法律事務所) +’23 - LLMを利⽤したRAGと個⼈データの第三者提供 https://storialaw.jp/blog/9916

Slide 14

Slide 14 text

Retrieval-based LM の推論フレーム クエリ拡張 検索 知識⽂⽣成 再帰・反復検索 解答抽出 応答⽣成 ⽂書フィルタ 分解・抽象化 根拠提⽰ クエリ 応答⽂ 計画 関連知識取得 回答 内省 検索対象選定 思考・⾏動 リランキング

Slide 15

Slide 15 text

計画

Slide 16

Slide 16 text

Retrieval-based LM の推論フレーム クエリ拡張 検索 知識⽂⽣成 再帰・反復検索 解答抽出 応答⽣成 ⽂書フィルタ 分解・抽象化 根拠提⽰ クエリ 応答⽂ 計画 関連知識取得 回答 内省 検索対象選定 思考・⾏動 リランキング

Slide 17

Slide 17 text

クエリ拡張 のモチベーション (1/2) 第 13 条 重要 ⽂書 の 取り扱い 株式 会社 〇〇 では 以下 に 該当 する ⽂書 を 重要 ⽂書 と する 1. 資⾦ や 物 の 流れ に 直結 連動 する 書類 2. 部外者 に 漏えい した 場合 に 組織 企業 不 利益 や 被害 を 受 ける ような 、事業 活動 に おいて 重要 度 の ⾼い ⽂書 これら の ⽂書 の 廃棄 ⽅法 を 以下 に … 関連⽂書 (正解を含む検索対象) 🙅 単純検索ではマッチしない ・情報量(単語数)の差 ・意味表現の差 重要 ⽂書 廃棄 ユーザの質問 ユーザの⽣質問に対するベクトル と ⽂書ベクトル の類似度を計算してもうまくいかない • 単語数の差が⼤きく保有する情報量が異なる • 重複する単語数が少ない [Ram+’22] • 単語羅列に対して、⽂から⽣成されるベクトル表現には⽂脈が考慮される

Slide 18

Slide 18 text

クエリ拡張 のモチベーション (2/2) 第 13 条 重要 ⽂書 の 取り扱い 株式 会社 〇〇 では 以下 に 該当 する ⽂書 を 重要 ⽂書 と する 1. 資⾦ や 物 の 流れ に 直結 連動 する 書類 2. 部外者 に 漏えい した 場合 に 組織 企業 不 利益 や 被害 を 受 ける ような 、事業 活動 に おいて 重要 度 の ⾼い ⽂書 これら の ⽂書 の 廃棄 ⽅法 を 以下 に … 関連⽂書 (正解を含む検索対象) 🙅 単純検索ではマッチしない ・情報量(単語数)の差 ・意味表現の差 重要 ⽂書 廃棄 ユーザの質問 拡張されたクエリ 重要⽂書に該当する⽂書の例を教 えてください。また重要⽂書の取 り扱い上の注意、および廃棄⽅法 についてまとめてください。 🙆 上記の問題を解消 🙅 ユーザが意図しない拡張 正解となる関連⽂書に近いクエリに拡張すれば類似度が⾼くなる → ユーザによる指⽰ (質問) は曖昧であると仮定し、指⽰を再定義する 関連研究 • 関連⽂章を直接⽣成する [Yu+’23] • 仮となる解答を直接⽣成する [Gao+’23] ユーザの⽣質問に対するベクトル と ⽂書ベクトル の類似度を計算してもうまくいかない • 単語数の差が⼤きく保有する情報量が異なる • 重複する単語数が少ない [Ram+’22] • 単語羅列に対して、⽂から⽣成されるベクトル表現には⽂脈が考慮される

Slide 19

Slide 19 text

クエリ拡張 は検索精度を向上させる可能性がある Mao+’21 - Generation-Augmented Retrieval for Open-Domain Question Answering (ACL) https://aclanthology.org/2021.acl-long.316 Gao+’23 - Precise Zero-Shot Dense Retrieval without Relevance Labels (ACL) https://aclanthology.org/2023.acl-long.99/ ⼊⼒⽂から seq2seq で以下を⽣成、⼊⼒⽂との 連結⽂を検索クエリとして BM25 等を適⽤ • 解答⽂字列 • 解答⽂字列を含む⽂ • 解答⽂字列を含む Wikipedia タイトル GPT による⽣成⽂書 実⽂書 クエリ 指⽰ WEB 検索タスク (DL19) において、 教師あり学習モデルと同等以上の性能を⽰した write a passage to answer the question write a scientific paper passage to answer the question write a passage in Korean to answer the question in detail 仮⽂書⽣成器 ⽂書検索器 教師なし 教師あり

Slide 20

Slide 20 text

クエリ拡張時に タイポ修正 を⾏うことで検索精度向上を図る Zhuang+'21 - Dealing with Typos for BERT-based Passage Retrieval and Ranking (EMNLP) https://aclanthology.org/2021.emnlp-main.225/ オリジナル search typo 無作為に⽂字を 挿⼊ search tyapo 無作為に⽂字を 削除 search tpo 無作為に⽂字を 置換 search type 無作為に⽂字を ⼊れ換え search tyop キーボード配列に基づいて 無作為に⽂字を ⼊れ換え search typi タイポによる精度低下

Slide 21

Slide 21 text

クエリの 書き換え⽅ によって検索精度が異なる 表2. クエリタイプ別の nDCG@3 (データセットの明記はなし? 恐らく顧客データから構築されたもの) Berntson+’23 - Azure Cognitive Search: Outperforming vector search with hybrid retrieval and ranking capabilities https://techcommunity.microsoft.com/t5/azure-ai-services-blog/azure-cognitive-search-outperforming-vector-search-with-hybrid/ba-p/3929167 クエリタイプ 解説 クエリ例 Keyword Vector Hybrid Hybrid + Semantic Ranker Concept seeking queries 回答に複数の⽂章を必要とする抽 象的な質問 Why should I use semantic search to rank results? 39.0 45.8 46.3 59.6 Exact snippet search 元の段落の正確な部分⽂字列であ る⻑いクエリ enables you to maximize the quality and value of your LLM investments most efficiently by feeding only relevant information 37.8 49.0 49.1 63.4 Web search-like queries 検索エンジンによく⼊⼒されるよ うな短縮クエリ Best retrieval concept queries 51.1 41.5 51.0 60.8 Low query/doc term overlap 解答が質問とは異なる単語やフ レーズを使っているクエリ greatest technology for sorting” searching for a document that says: “Azure Cognitive Search has the best models for ranking your content 41.8 46.3 50.0 58.9 Fact seeking queries 単⼀の明確な答えを持つクエリ How many documents are semantically ranked 79.2 11.7 61.0 66.9 Keyword queries 重要な識別語のみで構成された短 いクエリ semantic ranker 23.0 36.1 35.9 49.1 Queries with misspellings 誤字、転記、⼀般的なスペルミス を含むクエリ Ho w mny documents are samantically r4nked 28.8 39.1 40.6 54.6 Long queries 20トークンを超えるクエリ This is a very long query that uses a lot of tokens in its composition and structure because it is verbose 42.7 41.6 48.1 59.4 Medium queries 5~20 トークンの⻑さ This is a medium length query 38.1 44.7 46.7 59.9 Short queries 5 トークンより短いクエリ Short query 53.1 38.8 53.0 63.9 ※ 60pt 以上を緑 50pt 以下を⾚でハイライト

Slide 22

Slide 22 text

RAG Fusion https://github.com/langchain-ai/langchain/blob/master/cookbook/rag_fusion.ipynb 複数のクエリを⽣成し Reciprocal Rank Fusion (RRF) によって検索結果を再ランク付けする 𝑅𝑅𝐹!"#$% 𝑑 ∈ 𝐷 = ' $ ∈ ' 1 𝑘 + 𝑟 𝑑 ユーザ⼊⼒ 検索クエリ 1 検索クエリ 2 検索クエリ 3 検索クエリ 4 ユーザ⼊⼒ 複数のクエリを⽣成 検索 RRF リランキング 関連⽂書 複数の異なる基準で採点されたランキングを統合する⽅法 https://plg.uwaterloo.ca/~gvcormac/cormacksigir09-rrf.pdf

Slide 23

Slide 23 text

Retrieval-based LM の推論フレーム クエリ拡張 検索 知識⽂⽣成 再帰・反復検索 解答抽出 応答⽣成 ⽂書フィルタ 分解・抽象化 根拠提⽰ クエリ 応答⽂ 計画 関連知識取得 回答 内省 検索対象選定 思考・⾏動 リランキング

Slide 24

Slide 24 text

複雑なクエリを 構成要素に分解する マルチホップ質問をより単純な要素に分解し、 サブ質問を作成し回答するプロンプトを作成する Press+’23 - Measuring and Narrowing the Compositionality Gap in Language Models (ICLR) https://openreview.net/forum?id=PUwbwZJz9dO Comp. Gap を緩和

Slide 25

Slide 25 text

複雑なクエリを 抽象化する クエリに対して抽象化を⾏った後に回答を⾏う 1948年、ウィスコンシン⼤学マディソン校卒業、植物学、学⼠号 1950年、カリフォルニア⼤学バークレー校、植物学、修⼠号 1955年、イェール⼤学、植物学、博⼠号 エステラ・レオポルド の学歴は? エステラ・レオポルドが 1954年8⽉から11⽉に かけて通った学校は? 1951年から1955年までイェール⼤学の植物学博⼠課程に在籍。 したがって、エステラ・レオポルドは1954年8⽉から1954年11⽉ の間にイェール⼤学に通っていた可能性が⾼い。 Zheng+’23 - Take a Step Back: Evoking Reasoning via Abstraction in Large Language Models https://arxiv.org/abs/2310.06117

Slide 26

Slide 26 text

Retrieval-based LM の推論フレーム クエリ拡張 検索 知識⽂⽣成 再帰・反復検索 解答抽出 応答⽣成 ⽂書フィルタ 分解・抽象化 根拠提⽰ クエリ 応答⽂ 計画 関連知識取得 回答 内省 検索対象選定 思考・⾏動 リランキング

Slide 27

Slide 27 text

LLM を⽤いて 検索対象を絞り込む Mei+’23 - Foveate, Attribute, and Rationalize: Towards Physically Safe and Trustworthy AI (ACL) https://aclanthology.org/2023.findings-acl.701 ⽋落している知識に着⽬して信頼できる情報源に帰属する情報を⽣成する 使⽤する知識選定を誘導する UI を導⼊することも効果的 根拠を⽰すために必要な 外部の知識を⾒極める foveation に関する外部知 識を信頼できる情報源に 問い合わせる LLM が説明を ⽣成するための追加の ⽂脈情報を提供する Q:「残ったレモネードを保存する必要がある場合、銅の容器に保存するべき か」という問いに答えるには、まず何についての⽂脈が必要でしょうか︖ A: レモネードと銅の容器の相互作⽤ Q:「ピーナッツを⾷べたい場合、⾷べる前にアレルギーがないことを確認す るべきか」という問いに答えるには、まず何についての⽂脈が必要か︖ A: ピーナッツアレルギー 拡張後クエリ startsWith('社内⽂書') True 検索 from 社内⽂書インデックス 拡張後クエリに条件分岐⽤の 表現を持たせるのも良い

Slide 28

Slide 28 text

分類器 (router) を⽤いて 検索対象を絞り込む https://gpt-index.readthedocs.io/en/stable/module_guides/querying/router/root.html 検索器 or 分類器

Slide 29

Slide 29 text

Retrieval-based LM の推論フレーム クエリ拡張 検索 知識⽂⽣成 再帰・反復検索 解答抽出 応答⽣成 ⽂書フィルタ 分解・抽象化 根拠提⽰ クエリ 応答⽂ 計画 関連知識取得 回答 内省 検索対象選定 思考・⾏動 リランキング

Slide 30

Slide 30 text

思考 を伴う検索対象選定 ReAct [Yao+ʼ22] 京都への⽇帰り旅⾏計画のレポート作成 まずは観光地を検索する search: 観光地検索 清⽔寺、⾦閣寺、嵐⼭ 観光地を取得したので 次は清⽔寺周辺の … … write: レポート作成 … 思考・⾏動・結果を 1 セットとして推論を進める 思考 ⾏動 結果

Slide 31

Slide 31 text

Search-in-the-Chain Xu+’23 - Search-in-the-Chain: Towards Accurate, Credible and Traceable Large Language Models for Knowledge-intensive Tasks https://arxiv.org/abs/2304.14732 LLM が複雑な質問を 分解して解くための 推論チェーン (CoQ) を構築 IR が各ノード の答えを検証 CoQ が誤って いる場合再⽣成 ノードに不⾜した 知識があるか判断 不⾜した情報を提供 し CoQ を再⽣成

Slide 32

Slide 32 text

関連知識取得

Slide 33

Slide 33 text

Retrieval-based LM の推論フレーム クエリ拡張 検索 知識⽂⽣成 再帰・反復検索 解答抽出 応答⽣成 ⽂書フィルタ 分解・抽象化 根拠提⽰ クエリ 応答⽂ 計画 関連知識取得 回答 内省 検索対象選定 思考・⾏動 リランキング

Slide 34

Slide 34 text

… 単語意味 に基づく検索 (HNSW w/ cosine sim) 索引 検索 表層検索 意味検索 (あいまい検索) … 単語辞書によるキーワード検索 e.g. 転置インデックス … 出現頻度 に基づく検索 (TF-IDF, BM25) https://learn.microsoft.com/ja-jp/azure/search/search-lucene-query- architecture#stage-4-scoring https://learn.microsoft.com/en-us/azure/search/vector-search-overview Lin+’21 - A Few Brief Notes on DeepImpact, COIL, and a Conceptual Framework for Information Retrieval Techniques https://arxiv.org/abs/2106.14807 BM25 を教師とする密検索⼿法も SPAR [Chen+’22, EMNLP], LE-BS [Liu+’21, EMNLP] 検索 に使⽤される要素 詳細な分類

Slide 35

Slide 35 text

メタデータ によるフィルタリング https://python.langchain.com/docs/modules/data_connection/retrievers/self_query What's a highly rated (above 8.5) science fiction film? Query: 'science fiction' Filter: gt('rate', 8.5') Query: 'science fiction' Filter: e['rate’] >= 8.5

Slide 36

Slide 36 text

検索 を伴う機能の⽴ち位置について ※ 著者によって作成されており、誤りを含む可能性があります 索引 表層検索 意味検索 メタデータ フィルタ 集計 ハイブリッド検索 △ ✔ ✔ △ × SelfQueryRetriever × ✔ ✔ ✔ × SQLDatabaseChain × ✔ × ✔ ✔

Slide 37

Slide 37 text

Retrieval-based LM の推論フレーム クエリ拡張 検索 知識⽂⽣成 再帰・反復検索 解答抽出 応答⽣成 ⽂書フィルタ 分解・抽象化 根拠提⽰ クエリ 応答⽂ 計画 関連知識取得 回答 内省 検索対象選定 思考・⾏動 リランキング

Slide 38

Slide 38 text

外部知識源 × モデル内部知識 による回答精度の向上 Yu+’23 - Generate rather than Retrieve: Large Language Models are Strong Context Generators (ICLR) https://openreview.net/forum?id=fB0hRu9GZUS Gui+’22 - KAT: A Knowledge Augmented Transformer for Vision-and-Language (NAACL) https://aclanthology.org/2022.naacl-main.70/ モデル 外部知識源 モデル内部知識 正解率 KAT-base 18.56 ✔ 40.93 ✔ 47.60 ✔ ✔ 50.58 表3. OK-VQA におけるアブレーション結果 図3. 検索した関連⽂書に加えて LLM の⽣成⽂書を利⽤すると⼤幅に正解率が向上

Slide 39

Slide 39 text

外部知識源 × モデル内部知識 の有効な組み合わせ⽅ Zhang+’23 - Merging Generated and Retrieved Knowledge for Open-Domain QA (EMNLP) https://arxiv.org/abs/2310.14393 図1.(FiD に⼊⼒するためのコンテキストとして) 検索された外部知識と LLM が⽣成した内部知識が 衝突する際 ハルシネーションが発⽣する 可能性あり

Slide 40

Slide 40 text

Retrieval-based LM の推論フレーム クエリ拡張 検索 知識⽂⽣成 再帰・反復検索 解答抽出 応答⽣成 ⽂書フィルタ 分解・抽象化 根拠提⽰ クエリ 応答⽂ 計画 関連知識取得 回答 内省 検索対象選定 思考・⾏動 リランキング

Slide 41

Slide 41 text

関連しない⽂書 は応答品質に悪影響を及ぼす Yoran+’24 - Making Retrieval-Augmented Language Models Robust to Irrelevant Context (ICLR) https://openreview.net/forum?id=ZS4m74kZpH 図2. few-shot 設定における Llama-2 13B の QA タスク別正解率 関連⽂書を参照しない応答⽣成 に⽐べて 検索上位1件の関連⽂書を参照した応答⽣成 は Single-hop, Explicit Multi-hop において⼤幅に精度向上 検索時に関連しない⽂書を取得 してしまう と ⼤幅に応答品質が低下する可能性がある

Slide 42

Slide 42 text

検索結果を要約 して応答品質向上を図る Xu+’23 - RECOMP: Improving Retrieval-Augmented LMs with Compression and Selective Augmentation https://arxiv.org/abs/2310.04408 関連⽂書の要約⽂を⽣成 • 計算コストの削減 • 情報特定難易度の軽減 • 無関係な⽂書の除去

Slide 43

Slide 43 text

Retrieval-based LM の推論フレーム クエリ拡張 検索 知識⽂⽣成 再帰・反復検索 解答抽出 応答⽣成 ⽂書フィルタ 分解・抽象化 根拠提⽰ クエリ 応答⽂ 計画 関連知識取得 回答 内省 検索対象選定 思考・⾏動 リランキング

Slide 44

Slide 44 text

反復的な検索 によってマルチホップ推論に取り組む Xiong+’21 - Answering Complex Open-Domain Questions with Multi-Hop Dense Retrieval (ICLR) https://openreview.net/forum?id=EMHoBG0avc1

Slide 45

Slide 45 text

検索と⽣成を繰り返すことで 反復的な改良を実現する Shao+’23 - Enhancing Retrieval-Augmented Large Language Models with Iterative Retrieval-Generation Synergy https://arxiv.org/abs/2305.15294 検索と⽣成を反復する Iter-RetGen を提案.各反復において Iter-RetGen は前回のモデル出⼒をコ ンテキストとして活⽤、より関連性の⾼い知識を検索し、モデル⽣成を改善する 2015 年 AFL ライジングスター賞を受賞した選⼿の⾝⻑は? Title: 2015 AFL Rising Star Context: NAB AFL Rising Start 賞は毎年オーストラリアン フットボールリーグで傑出した若⼿選⼿に贈られる。 メルボルンの Jesse Hogan が受賞した。 2015年 AFL Rising Star 賞は、メルボルンの Jesse Hogan が受賞した。Jesse Hogan は Australian rules footballer の プロ選⼿。⾝⻑は 198 cm。よって答えは 198 cm 2015 年 AFL ライジングスター賞を受賞した選⼿の⾝⻑は? Title: Jesse Hogan Context: Jesse Hogan ... メルボルン・フットボール・クラブでプレー。 フォワードの要で⾝⻑ 1.95 m ... 2015年 に AFL デビューを果た し AFL Rising Star として Ron Evans メダルを受賞。 2015 年の AFL Rising Star 賞は、メルボルンの Jesse Hogan が受 賞した。Jesse Hogan の⾝⻑は 1.95 m。よって答えは 1.95 m。

Slide 46

Slide 46 text

再帰検索 を伴うルーティング https://gpt-index.readthedocs.io/en/latest/examples/query_engine/pdf_tables/recursive_retriever.html この表は … この画像は … インデックスノード集合 b a 2 1 i 4 3 j クエリ エンジン id 要約⽂ キャプション id クエリエンジンの 参照データ id クエリ エンジン クエリエンジンの 参照データ id id とクエリエンジンの連想配列 弊社の昨年度の売上はいくら︖ ①親階層の検索 ②紐づけられたクエリエンジンによる回答 適切にクエリエンジンを設定すれば PDF 等の半構造化データに対して応答⽣成可能

Slide 47

Slide 47 text

Jiang+’23 - Active Retrieval Augmented Generation (EMNLP) https://arxiv.org/abs/2305.06983 ⻑⽂記事の⽣成タスク等では 1回の検索で⼗分な知識情報を取得するのは困難 検索タイミングを動的に決定し、 検索しつつ断続的に⽣成を⾏う2つの⽅法を提案︓ 1. [Search(query)] というトークンを⽣成した場合 2. 予測した次単語の logit が閾値を下回る場合 ⽣成過程において オンデマンドに検索を⾏う

Slide 48

Slide 48 text

Retrieval-based LM の推論フレーム クエリ拡張 検索 知識⽂⽣成 再帰・反復検索 解答抽出 応答⽣成 ⽂書フィルタ 分解・抽象化 根拠提⽰ クエリ 応答⽂ 計画 関連知識取得 回答 内省 検索対象選定 思考・⾏動 リランキング

Slide 49

Slide 49 text

ハイブリッド検索+リランキング による精度改善 https://techcommunity.microsoft.com/t5/azure-ai-services-blog/azure- cognitive-search-outperforming-vector-search-with-hybrid/ba-p/3929167 ※ 512トークン, 25%重複 検索結果の上位1~5位で⾼品質なチャンクが⾒つかったクエリの割合 顧客データ [nDCG@3] BEIR [nDCG@10] MIRACL [nDCG@10] Hybrid + Semantic ranker 60.1 50.0 72.0 Hybrid (RRF: Keyword + Vector) 48.4 48.4 58.8 Vector (ada-002) 43.8 45.0 58.3 Keyword (転置インデックス, BM25) 40.6 40.6 49.6

Slide 50

Slide 50 text

タスク難易度 による Few Shot 選択に基づくリランキング Drozdov+’23 - PaRaDe: Passage Ranking using Demonstrations with Large Language Models https://arxiv.org/abs/2310.14408 図1. TREC 2020 において同⼀クエリに対し て 100 種類の異なる one-shot 推論結果の nDCG@10 集計結果。BM25 で 100 件検索 し Flan-T5-XXL でリランキングを⾏う。 11.1% のクエリにおいて zero-shot の推論結果が one-shot における集計値の最⼤値を上回った → デモ選択における正解数の分散が⼤きい 図3. TREC 2020 の nDCG@10 の難易度別評価 難易度は demonstration query likelihood で算出 低 → タスク難易度 → ⾼

Slide 51

Slide 51 text

回答

Slide 52

Slide 52 text

Retrieval-based LM の推論フレーム クエリ拡張 検索 知識⽂⽣成 再帰・反復検索 解答抽出 応答⽣成 ⽂書フィルタ 分解・抽象化 根拠提⽰ クエリ 応答⽂ 計画 関連知識取得 回答 内省 検索対象選定 思考・⾏動 リランキング

Slide 53

Slide 53 text

質問応答タスクにおける 抽出型 reader 加藤+’22 -第⼆回AI王最終報告会 - DPR ベースラインによる オープンドメイン質問応答の取り組み (2022) https://speakerdeck.com/smiyawaki0820/jia-teng-tuo-zhen-gong-xie-jun-ping-di-er-hui-aiwang-zui-zhong-bao-gao-hui- dpr-besurainniyoru-opundomeinzhi-wen-ying-da-falsequ-rizu-mi-2022?slide=7 答えとなるスパンを予測する

Slide 54

Slide 54 text

Izcard+’20 - Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering https://arxiv.org/abs/2007.01282 Fusion-in-Decoder 詳細は 第3回 AI王~クイズAI⽇本⼀決定戦~ コンペティション最終報告会 を参照されたい https://sites.google.com/view/project-aio/competition3/final-presentation?authuser=0 質問応答タスクにおける ⽣成型 reader

Slide 55

Slide 55 text

表5.抽出型・⽣成型 reader における頻出タイプ別⽐較. OOD or Rare において抽出型 QA が⽣成型より⾼精度 抽出型 v.s. ⽣成型 reader 図2. 12 MRQA ベンチマークにおける 抽出型 (Ext) および⽣成型 (Gen) の⽐較 Luo+'22 - Choose Your QA Model Wisely: A Systematic Study of Generative and Extractive Readers for Question Answering (SpaNLP) https://aclanthology.org/2022.spanlp-1.2/ 77.79 85.22 78.54 84.95 82.71 69.90 80.02 66.91 図4.抽出型・⽣成型 reader における⽂脈トークン⻑別⽐較. トークン⻑が短い場合は抽出型 QA が⽣成型より⾼精度 In-Domain Out-of-Domain

Slide 56

Slide 56 text

Retrieval-based LM の推論フレーム クエリ拡張 検索 知識⽂⽣成 再帰・反復検索 解答抽出 応答⽣成 ⽂書フィルタ 分解・抽象化 根拠提⽰ クエリ 応答⽂ 計画 関連知識取得 回答 内省 検索対象選定 思考・⾏動 リランキング

Slide 57

Slide 57 text

インデクシング

Slide 58

Slide 58 text

インデックスの構築 20,000 tokens … 1,000 tokens 1,000 tokens A0 A19 A0 A19 ⽂書ベクトル DB ファイル チャンク embeddings 最⼤トークン数 text-embedding-ada-002 … 8192 tokens gpt-3.5-turbo-16k … 16,387 tokens 分割が必要 以降のスライドで紹介 https://github.com/hppRC/simple-simcse-ja Han+’23 - A Comprehensive Survey on Vector Database: Storage and Retrieval Technique, Challenge https://arxiv.org/abs/2310.11703 以下を参照されたい

Slide 59

Slide 59 text

検索対象における 不要⽂書のフィルタリング EfficientQA (NeurIPS 2020) では • Wikipedia タイトルとカテゴリを特徴とする線形分類器の⽂書フィルタリング • ページビューが少ない Wikipedia ページの除外 Izcard+’20 - A Memory Efficient Baseline for Open Domain Question Answering https://arxiv.org/abs/2012.15156 Wikipedia ⽂書数 [M] 完全⼀致による正解率 [%] 256 128 ベクトル次元数 ⼭⽥育⽮⽒ (Studio Ousia, RIKEN AIP) +’21 – NeurIPS EfficientQA コンペティションの上位システムから学ぶ オープンドメイン質問応答技術の最新動向 / NLP2021 ワークショップ第1回「AI王~クイズAI⽇本⼀決定戦」招待公演 https://speakerdeck.com/ikuyamada/opundomeinzhi-wen-ying-da-ji- shu-falsezui-xin-dong-xiang ⽂書数を 20% 除去しても性能低下は ~2% 程度

Slide 60

Slide 60 text

チャンクの分割戦略 (512 tokens) Recall@50 分割イメージ トークン境界で分割 40.9 ⽂境界を保持 42.4 10% 重複を含む 43.1 25% 重複を含む 43.9 チャンク分割 における分割戦略 https://techcommunity.microsoft.com/t5/azure-ai-services-blog/azure- cognitive-search-outperforming-vector-search-with-hybrid/ba-p/3929167 表5. text-embeddings-ada-002 を⽤いたチャンクの分割戦略⽐較。 指標はベクトル検索のみで計算(意味ランキングなし)。 ※ 対象⾔語は英語のため⽇本語の結果は異なる ⽂ 1 ⽂ 2 チャンク1 チャンク2 ⽂ 1 チャンク1 チャンク2 ⽂ 2 チャンク3 ⽂1 ⽂2 チャンク1 チャンク2 ⽂ 1 チャンク1 チャンク2 ⽂ 2 チャンク あたりの トークン数 Recall@50 512 42.4 1024 37.5 4096 36.4 8191 34.9 表4. text-embeddings-ada-002 によるチャンクサイズ別 ⽐較.⽂の境界は保持しベクトル検索のみで算出. ※ 対象⾔語は英語のため⽇本語の結果は異なる

Slide 61

Slide 61 text

⽂書構造 を考慮した分割 https://x.com/RLanceMartin/status/1674817117475188737?s=20 文書のパラグラフ、 文書画像の画像・表・テキスト、 HTML の DOM 構造、 など

Slide 62

Slide 62 text

類似の他律性問題* に対する ⼩さなチャンクを⽤いた検索 https://python.langchain.com/docs/modules/data_conn ection/retrievers/parent_document_retriever 1. インデックス作成時にチャンクを⼆段階に分割. 親チャンクから⼦チャンクを作成. 2. ⼦チャンクをベクトル DB に登録. 3. ⼦チャンク単位で検索し、 紐づけられた親チャンクを応答⽣成に利⽤. Parent Document Retriever LangChain Auto Merging Retriever LlamaIndex https://gpt-index.readthedocs.io/en/latest/ examples/retrievers/auto_merging_retriever.html Sentence-aware Contrastive Learning for Open-Domain Passage Retrieval https://aclanthology.org/2022.acl-long.76/ *チャンクに含まれる複数の意味表現が1つのベクトルに集約することで 検索時にノイズが含まれてしまう問題

Slide 63

Slide 63 text

チャンク分割の切削問題に対する 要約 https://gpt-index.readthedocs.io/en/latest/examples/index_structs/doc_summary/DocSummary.html 各⽂書から要約を抽出して、その要約と⽂書に対応する全てのノードを保持 Building Performant RAG Applications for Production (LlamaIndex) https://gpt-index.readthedocs.io/en/stable/optimizing/production_rag.html • チャンク毎の情報が⼀つ⼀つが完結していること • 複数ドキュメントの内容を拾えるようなチャンク⻑であること ⻄⾒+’23 - https://note.com/mahlab/n/n0a8fa0e1d586

Slide 64

Slide 64 text

半構造化データに対する ⾔語媒介な検索 • 画像・テキスト・表など様々なコンテンツが含まれる⽂書におけるベクトル検索 • Semi-structured RAG [ipynb] • Semi-structured and Multi-modal RAG [ipynb] https://blog.langchain.dev/semi-structured-multi-modal-rag/ 要約⽂

Slide 65

Slide 65 text

視覚情報に対する⾔語化 Berrios+'23 - Towards Language Models That Can See: Computer Vision Through the LENS of Natural Language https://arxiv.org/abs/2306.16410 Gao+ʼ22 - Transform-Retrieve-Generate: Natural Language-Centric Outside- Knowledge Visual Question Answering (CVPR) https://openaccess.thecvf.com/content/CVPR2022/html/Gao_Transform-Retrieve-Generate_Natural_Language- Centric_Outside-Knowledge_Visual_Question_Answering_CVPR_2022_paper.html Himakunthala+’23 - Let's Think Frame by Frame: Evaluating Video Chain of Thought with Video Infilling and Prediction https://arxiv.org/abs/2305.13903 視覚情報の⾔語化︓ • キャプション • 密キャプション • 物体タグ • OCR • など

Slide 66

Slide 66 text

参考

Slide 67

Slide 67 text

参考 • Berntson+’23 - Azure Cognitive Search: Outperforming vector search with hybrid retrieval and ranking capabilities https://techcommunity.microsoft.com/t5/azure-ai-services-blog/azure-cognitive-search-outperforming-vector-search-with-hybrid/ba-p/3929167 • 秋本⽒ (BrainPad) +’23 - プロンプトエンジニアリング⼿法 外部データ接続・RAG編 / Platinum Data Blog https://blog.brainpad.co.jp/entry/2023/06/13/191635 • Asai, Min, Zhong and Chen+’23 – ACL 2023 Tutorial: Retrieval-based Language Models and Applications https://acl2023-retrieval-lm.github.io/ • 篠⽥ (ACES) +’23 -⼤規模⾔語モデルの知識を補完するための Retriever の紹介 / ACES Developpers‘ blog https://tech.acesinc.co.jp/entry/2023/03/31/121001 • 服部 (ABEJA) +’23 – 外部データを Retrieve して LLM 活⽤する上での課題と対策案 / ABEJA Tech Blog https://tech-blog.abeja.asia/entry/retrieval-and-llm-20230703 • Kumar+’23 - Generative Retrieval for End-to-End Search Systems https://blog.reachsumit.com/posts/2023/09/generative-retrieval/ • Kumar+’23 – Zero and Few Shot Text Retrieval and Ranking Using Large Language Models https://blog.reachsumit.com/posts/2023/03/llm-for-text-ranking/ • 浅井+’22 – より多くの⾔語での情報検索・質問応答実現のために / 招待講演︓AI王 ~ クイズAI⽇本⼀決定戦 第三回最終報告会 https://drive.google.com/file/d/1mAroXPpKmrjOndlZ8HrrmriYO-VPmmMQ/view • Morris+’22 – A Brief Survey of Text Retrieval in 2022 https://jxmo.io/posts/retrieval • ⼭⽥+’21 – オープンドメイン質問応答技術の最新動向 / 招待講演︓NLP2021 WS AI王 ~ クイズAI⽇本⼀決定戦 第⼀回最終報告会 https://speakerdeck.com/ikuyamada/opundomeinzhi-wen-ying-da-ji-shu-falsezui-xin-dong-xiang

Slide 68

Slide 68 text

参考 • Yasunaga+’23 - RA-CM3: Retrieval-Augmented Multimodal Modeling (Blog) https://cs.stanford.edu/~myasu/blog/racm3/ • Rao+’23 - Vector databases (Part 4): Analyzing the trade-offs (Blog) https://thedataquarry.com/posts/vector-db-4/ • Pinecone Blog+’23 - Hierarchical Navigable Small Worlds (HNSW) https://www.pinecone.io/learn/series/faiss/hnsw/ • 杉⼭ (AI Shift)+’23 - 埋め込みベクトルを⽤いたSVMによる類似⽂検索の検証 / AI Shift TECH BLOG https://www.ai-shift.co.jp/techblog/3553 • Ambrogi+’23 - 10 Ways to Improve the Performance of Retrieval Augmented Generation Systems https://towardsdatascience.com/10-ways-to-improve-the-performance-of-retrieval-augmented-generation-systems-5fa2cee7cd5c • Li+’22 - A Survey on Retrieval-Augmented Text Generation https://arxiv.org/abs/2202.01110 • Kamata+’21 - ⾃然⾔語処理と情報検索について (NLP AND IR) https://speakerdeck.com/kamata_shingo/zi-ran-yan-yu-chu-li-toqing-bao-jian-suo-nituite-nlp-and-ir • Chen and Yih+’20 - ACL2020 Tutorial: Open-Domain Question Answering https://github.com/danqi/acl2020-openqa-tutorial#acl2020-tutorial-open-domain-question-answering • AI王~クイズAI⽇本⼀決定戦 https://sites.google.com/view/project-aio/home?authuser=0)2%E2%80%9D • Wikipedia 構造化プロジェクト ~ 森羅プロジェクト http://shinra-project.info/