はじめに (Introduction)
大規模言語モデル(Large Language Models; LLMs)の発展により、ソフトウェアエンジニアは新しい人間とコンピュータのインタラクション(HCI)ソリューションを構築し、複雑なタスクを完了させ、文書を要約し、artifacts内の質問に答え、新しいコンテンツを生成することができるようになりました。しかし、LLMは最新の知識や企業のリポジトリに現在捕捉されているドメイン固有の知識に関しては限界があります。この問題に対処するには、次の2つの選択肢があります。
-
a) LLMの微調整(Fine-tuning): ドメイン固有のartifactsを使用してLLMの訓練を継続し、微調整されたLLMを管理またはサービングする必要があります。
-
b) LLMの生成能力を利用して、既存の(拡張可能な)知識artifactsから回答を生成するRetrieval-Augmented Generation (RAG)システムを使用します。
RAGシステムは、この課題に対する魅力的なソリューションを提供します。検索メカニズムとLLMの生成能力を統合することで、RAGシステムは文脈に関連した正確で最新の情報を合成することができます。RAGシステムは、すべての非構造化情報をインデックス化してクエリに利用できるようにすることで、知識グラフの作成を必要とせず、データのキュレーションとクリーニングを最小限に抑えることができるため、開発時間を短縮できる重要なユースケースです。
本研究の目的は以下の2点です。
-
1) 実務者のためのリファレンスを提供すること
-
2) RAGシステムの研究ロードマップを提示すること
関連研究 (Related Work)
最近の調査(Zhu et al., 2023)では、大規模言語モデルがRAGパイプラインの retriever, data generation, rewriter, reader などで使用されていることが示されました。本研究は、ソフトウェア工学の観点から、エンジニアが直面する問題と、最先端のRAGシステムでソリューションを実現するために必要なソフトウェア工学研究に光を当てることで、この調査を補完するものです。
Retrieval Augmented Generation (RAG)
インデックスプロセス (Index Process)
RAGシステムでは、検索システムはドキュメントの圧縮された意味表現を提供する埋め込み(embedding)を使用して機能します。埋め込みは数値のベクトルとして表現されます。インデックスプロセスでは、各ドキュメントをより小さなチャンクに分割し、埋め込みモデルを使用して埋め込みに変換します。元のチャンクと埋め込みは、データベースにインデックス化されます。ソフトウェアエンジニアは、ドキュメントをどのように分割するか、チャンクをどの程度の大きさにするかについて、設計上の決定に直面します。
クエリプロセス (Query Process)
クエリプロセスは実行時に行われます。自然言語で表現された質問は、まず一般的なクエリに変換されます。クエリを一般化するために、大規模言語モデルが使用され、以前のチャット履歴などの追加のコンテキストを新しいクエリに含めることができます。次に、新しいクエリから埋め込みが計算され、データベースから関連するドキュメントを見つけるために使用されます。
ケーススタディ (Case Studies)
本研究では、RAGシステムの実装時に発生する課題を発見するために、3つのケーススタディを実施しました。各ケーススタディの概要を表1に示します。
ケーススタディ | ドメイン | ドキュメントタイプ | データセットサイズ | RAGステージ | サンプル質問 |
---|---|---|---|---|---|
Cognitive Reviewer | 研究 | PDF (任意のサイズ) | - | Chunker, Rewriter, Retriever, Reader | この論文で取り上げられている重要なポイントは何ですか? |
AI Tutor | 教育 | ビデオ, HTML, PDF | 38 | Chunker, Rewriter, Retriever, Reader | 第6週で取り上げたトピックは何でしたか? |
BioASQ | バイオメディカル | 科学論文PDF | 4017 | Chunker, Retriever, Reader | 偽腫瘍脳症(pseudotumor cerebri)を定義してください。どのように治療されますか? |
本研究では、RAGシステムの実装時に発生する課題を発見するために、3つのケーススタディを実施しました。各ケーススタディの詳細は以下の通りです。
Cognitive Reviewer (認知レビュアー)
Cognitive Reviewerは、研究者が科学文献を分析するのを支援するために設計されたRAGシステムです。研究者は研究の質問や目的を指定し、関連する研究論文のコレクションをアップロードします。すべてのドキュメントは、研究者が手動でレビューするために、指定された目的に従ってランク付けされます。研究者は、すべてのドキュメントに対して直接質問することもできます。Cognitive Reviewerは現在、Deakin大学の博士課程の学生が文献レビューをサポートするために使用されています。Cognitive Reviewerは、実行時にインデックスプロセスを行い、アップロードされたドキュメントを処理するための堅牢なデータ処理パイプラインに依存しています。このシステムはまた、アップロードされたドキュメントをソートするためのランキングアルゴリズムを使用しています。
AI Tutor (AIチューター)
AI Tutorは、学生がユニットについて質問し、回答が学習コンテンツから得られるRAGシステムです。学生は、回答の出所となったソースリストにアクセスすることで、回答を検証することができます。AI Tutorは、Deakinの学習管理システムに統合され、PDFドキュメント、ビデオ、テキストドキュメントを含むすべてのコンテンツをインデックス化することで機能します。インデックスプロセスの一部として、ビデオはチャンク化する前に、ディープラーニングモデルWhisper (Radford et al., 2023)を使用して書き起こされます。AI Tutorは、2023年8月から2023年11月にかけて開発され、2023年10月30日に開始された200人の学生を対象としたユニットでパイロット運用されました。
Biomedical Question and Answer (バイオメディカル質問応答)
前述のケーススタディでは、コンテンツサイズの小さいドキュメントに焦点を当てていました。より大規模な問題を探るために、質問、ドキュメントへのリンク、回答で構成されるBioASQ (Krithara et al., 2023)データセットを使用してRAGシステムを作成しました。質問への回答は、yes/no、テキスト要約、factoid (事実)、またはリストのいずれかでした。このデータセットは、バイオメディカルの専門家によって準備され、ドメイン固有の質問と回答のペアが含まれています。BioASQデータセットからオープンアクセスのドキュメントを4017件ダウンロードし、合計1000件の質問がありました。すべてのドキュメントがインデックス化され、RAGシステムに対して質問が行われました。生成された質問は、OpenAIが実装したOpenEvals手法を使用して評価されました。
RAGシステムの障害ポイント (Failure Points of RAG Systems)
ケーススタディから、以下の障害ポイントを特定しました。
-
FP1 欠落コンテンツ (Missing Content): 利用可能なドキュメントから回答できない質問をした場合の最初の失敗ケースです。
-
FP2 上位ランクのドキュメントを見逃した (Missed the Top Ranked Documents): 質問への回答はドキュメントにありますが、ユーザーに返されるほど高くランク付けされていませんでした。
-
FP3 コンテキスト内にない - 統合戦略の限界 (Not in Context - Consolidation strategy Limitations): 回答を含むドキュメントはデータベースから取得されましたが、回答を生成するためのコンテキストには含まれていませんでした。
-
FP4 抽出されない (Not Extracted): 回答はコンテキストに存在しますが、大規模言語モデルが正しい回答を抽出できませんでした。
-
FP5 間違った形式 (Wrong Format): 質問には表やリストなどの特定の形式で情報を抽出する必要がありましたが、大規模言語モデルはその指示を無視しました。
-
FP6 不正確な特異性 (Incorrect Specificity): 回答は応答の中で返されますが、ユーザーのニーズに対応するには十分に具体的ではないか、あるいは具体的すぎます。
-
FP7 不完全 (Incomplete): 不完全な回答は間違っていませんが、情報がコンテキストに存在し、抽出可能であったにもかかわらず、いくつかの情報が欠落しています。
教訓と今後の研究の方向性 (Lessons and Future Research Directions)
3つのケーススタディから得られた教訓を表2に示します。主な知見は以下の通りです。
- より大きなコンテキストでより良い結果が得られる
- セマンティックキャッシングはコストとレイテンシーを下げる
- メタデータを追加すると検索が改善される
- オープンソースの埋め込みモデルは小さなテキストでより良い性能を発揮する
- RAGシステムは継続的なキャリブレーションを必要とする
また、RAGに関連する複数の潜在的な研究分野を特定しました。
チャンク化と埋め込み (Chunking and Embeddings)
ドキュメントのチャンク化は些細なことのように思えますが、チャンク化の品質は多くの点で検索プロセスに影響を与えます。
RAG vs 微調整 (RAG vs Finetuning)
LLMは、大量のトレーニングデータと、モデルのリリース前に適用されるファインチューニングタスクのために、優れた世界モデルです。Fine-tuningとRAGは、それぞれ異なるトレードオフを持つ2つの潜在的なカスタマイズ経路を提供します。
RAGシステムのテストと監視 (Testing and Monitoring RAG systems)
RAGシステムのためのソフトウェア工学のベストプラクティスはまだ登場しつつある段階です。ソフトウェアテストとテストケース生成は、改良の余地がある分野の1つです。
結論 (Conclusion)
RAGシステムは、LLMを活用する新しい情報検索手法です。本稿では、15,000件のドキュメントと1,000件の質問を含む実証研究を含む3つのケーススタディから得られた教訓を紹介しました。私たちの知見は、RAGシステムの実装時に直面する課題を提示することで、実務者へのガイドを提供します。また、1)チャンク化と埋め込み、2)RAG vs 微調整、3)テストと監視に関連するRAGシステムの将来の研究方向性も含めました。
参考サイト
《RAG7つの失敗ポイント~RonJざっくり解説~》
これを参考にRAGの設計を見直します!
---
🔥RAGシステムはLLMを使って質問に対する回答を知識ベースから生成するシステム
🔥7つのフェイルポイントがあり、情報検索部分が特に重要… https://t.co/iq71N6dnaV pic.twitter.com/eiTPAE1wFk— Maki@Sunwood AI Labs. (@hAru_mAki_ch) May 17, 2024
コメント