MODULE m1 · 8.0 HOURS
RAGアーキテクチャの理解
0% 完了
LEARNING OBJECTIVES
このモジュールの目標
- RAG (Retrieval-Augmented Generation) アーキテクチャの主要構成要素を理解する。
- 大規模言語モデル (LLM) が持つ知識の限界と、検索ベースの拡張の必要性を把握する。
- 検索-生成パイプラインの構造的な流れを説明できるようにする。
RAG (Retrieval-Augmented Generation) アーキテクチャの概要
最新の自然言語処理 (NLP) およびディープラーニングモデルは、膨大なテキストデータを学習して優れた性能を発揮しますが、モデルの学習時点に含まれていない最新情報や、特定のドメインの非公開データに対しては、ハルシネーション(幻覚)を引き起こしたり、情報を知らないといった限界があります [S1]。
検索を通じたLLMの限界克服
RAGは、モデルがすべての知識をパラメータ内部に記憶させるのではなく、質問に関連する外部の信頼できるドキュメントを「適切な時点 (just-in-time)」で検索し、生成段階の入力として提供する方式です [S2]。
主要構成要素
- 検索器 (Retriever): ユーザーのクエリ (query) を受け取り、ベクトルデータベースなどで関連性の高いドキュメントの断片 (chunk) を特定します。
- 拡張 (Augmentation): 検索されたドキュメントと元の質問を組み合わせて、LLMに渡すプロンプトを構成します。
- 生成器 (Generator): 拡張された情報を基に、事実に基づいた回答を生成します。
このような構造は、モデルの知識を最新の状態に維持し、生成された回答の根拠を追跡可能にすることで、信頼性を確保するのに寄与します。
WORKED EXAMPLES
解説例
- 事例 1: 従来のLLM方式 - 「今日のニュースを教えて」と質問した場合、学習データ以降の出来事を認識できず、誤った情報を生成するリスクがある。
- 事例 2: RAG方式 - 「今日のニュースを教えて」と質問した際、1) 外部検索エンジンやリアルタイムニュースAPIを通じて検索器 (Retriever) が関連記事を収集し、2) これを文脈 (context) として含めてLLMに渡すことで、正確な最新情報の回答を生成。
LAB PROTOCOL
RAGアーキテクチャのフロー可視化および分析
- 1
Jupyter Notebookを開き、RAG基本パイプラインの3段階(入力、検索、生成)の構造を模式化する。
- 2
オープンライセンスのドキュメントコーパスから5個の短いテキストを抽出し、データセットのサンプルを作成する。
- 3
単純なキーワードマッチングを行う検索器 (Retriever) 関数を作成し、質問に適したドキュメントを返すよう実装する。
- 4
検索されたドキュメントをプロンプトテンプレートに注入する拡張段階をコードで作成する。
安全確認
- 実際の個人情報や機密ドキュメントを、絶対にコーパスデータとして使用しないこと。
- API使用時は呼び出し回数の制限 (Rate Limit) を確認し、テストコードにシード (seed) 値を設定して再現性を確保すること。
実習提出物
- RAGアーキテクチャのダイアグラム (Notebookセル内に含めること)
- 単純なキーワードベースの検索器の実装コード
- ドキュメント注入型プロンプトの生成結果
ASSIGNMENT
RAGベースの情報検索パイプライン分析レポート
提出物
評価基準
- RAGの3段階(検索、拡張、生成)が正確に区別されて説明されているか?
- 検索段階において、無関係なドキュメントが検索される可能性に対する分析が妥当か?
- 非公開データのセキュリティ指針を遵守して実装したか?
KNOWLEDGE CHECK
理解度チェック
FIELD CHECK
完了基準
- RAGアーキテクチャの構成要素を説明できる。
- 実習したRAGパイプラインのコードが正常に動作し、関連ドキュメントの検索および拡張を確認できる。
- RAGパイプラインの限界点と改善方向を分析レポートに記述する。
MODULE SOURCES
このモジュールの根拠
- Stanford CS 224N | Natural Language Processing with Deep Learningweb.stanford.edu · university
- Natural Language Processing with Deep Learning CS224N/Ling284web.stanford.edu · university