【要約】AIに自分の資料を読ませてみる――ローカルPCで作る、はじめてのRAG [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
AI導入を検討する意思決定者が、RAGの技術的な仕組みを理解していないために、不適切な発注や要件定義を行うリスクに直面している。具体的には、以下の問題が発生する。
- ・提案された構成が自社の目的に合致しているか判断できない。
- ・「人格」「知識」「会話履歴」の要件が混同され、開発が迷走する。
- ・見積もりの妥当性や、ベンダーロックインのリスクを評価できない。
- ・完成後に「期待した回答が得られない」という事態を招く。
// Approach
著者は、RAGの複雑な概念を分解し、PythonとOllamaのみを用いた最小限の構成で実装するアプローチを採用している。具体的な手順は以下の通りである。
1.Ollamaを用いて、埋め込み用と回答用の2つのモデルをローカルに準備する。
2.Markdownファイルを一定の文字数で分割(チャンク化)し、文脈維持のためオーバーラップを持たせる。
3.テキストをベクトル化し、コサイン類似度を用いて質問に最も近い断片を抽出する。
4.抽出した断片をプロンプトに組み込み、LLMに根拠に基づいた回答を生成させる。
// Result
利用者は、ローカル環境で「RAGなし」と「RAGあり」の回答の差を直接比較できる成果を得る。これにより、以下の具体的な理解が可能となる。
- ・LLMへ渡される検索結果(コンテキスト)の具体的な内容を可視化できる。
- ・RAGとファインチューニングの決定的な違いを、実体験として理解できる。
- ・本番環境へ移行する際に必要な要素(認証、権限、評価、運用コスト)を具体的に特定できる。
Senior Engineer Insight
> 教育的価値は極めて高いが、実戦投入には設計の再構築が必須だ。本実装は、データ増大時に計算コストが爆発する設計であり、ベクトルDBの導入が不可欠である。また、単純な文字数分割は文脈を破壊するため、セマンティックな分割戦略が求められる。実務では、メタデータによるフィルタリングや、回答の正確性を測定する評価パイプラインの構築が、スケーラビリティと信頼性の鍵となる。