RAG(Retrieval-Augmented Generation)は、LLMの生成能力に外部知識の検索を組み合わせることで、ハルシネーションを抑制しつつ最新・正確な回答を生成するアーキテクチャです。 Databricks GenAI Engineer試験では全体の30〜40%がRAG関連から出題され、アーキテクチャ設計・コンポーネント選択・評価手法の理解が求められます。
RAGパイプラインは「検索フェーズ」と「生成フェーズ」の2段階で構成されます。ユーザーのクエリをEmbeddingに変換し、Vector Searchで関連ドキュメントを検索した後、そのコンテキストとともにLLMへプロンプトを送信します。
┌─────────────────────────────────────────────────────────────┐
│ RAG パイプライン │
│ │
│ User Query │
│ │ │
│ ▼ │
│ ┌──────────────┐ ┌──────────────────┐ │
│ │ Embedding │───▶│ Vector Search │ │
│ │ Model │ │ (類似度検索) │ │
│ └──────────────┘ └───────┬──────────┘ │
│ │ Top-K チャンク │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Prompt Template │ │
│ │ (Query+Context) │ │
│ └───────┬──────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ LLM (生成) │ │
│ └───────┬──────────┘ │
│ │ │
│ ▼ │
│ Response │
└─────────────────────────────────────────────────────────────┘このパイプライン設計により、LLMが学習時に持っていない情報(社内ドキュメント・最新データ等)にもアクセスでき、根拠のある回答を生成できます。
ドキュメントをVector Searchに格納する前に、適切なサイズのチャンク(断片)に分割する必要があります。チャンキング戦略の選択はRAGの検索精度に直結するため、ドキュメントの特性に応じた使い分けが求められます。
| 戦略 | 分割基準 | メリット | デメリット | 適用シーン |
|---|---|---|---|---|
| Fixed-size | 固定トークン数(例: 512トークン) | 実装が簡単、処理速度が速い | 文の途中で切断される可能性 | 均質な文書(FAQ、ログ) |
| Semantic | 文の意味的な区切り | 意味の一貫性が高い | Embeddingモデルの追加コスト | 技術文書、論文 |
| Recursive | 段落→文→トークンの階層的分割 | 構造を保持しつつサイズ制御可能 | パラメータ調整が必要 | Markdown、HTML構造文書 |
GenAI Engineer試験では、ドキュメントの種類に応じてどのチャンキング戦略を選択すべきかを問う問題が出題されます。たとえば「社内Wikiのように見出し構造があるドキュメント」にはRecursive、「短いFAQの集合」にはFixed-sizeが適しています。
Embeddingモデルはテキストをベクトル空間に変換し、類似度検索の基盤となります。DatabricksではFoundation Model APIで提供されるモデルのほか、外部APIも利用可能です。
| モデル | 次元数 | 日本語対応 | 特徴 |
|---|---|---|---|
| BGE-large-en | 1024 | 限定的 | オープンソース、セルフホスト可能 |
| Instructor | 768 | 限定的 | タスク指示付きEmbedding |
| OpenAI text-embedding-3 | 256〜3072(可変) | 対応 | 高精度、API従量課金 |
| GTE-large(Databricks提供) | 1024 | 対応 | Foundation Model APIで即利用可 |
Databricksプラットフォーム内で完結させたい場合は、Foundation Model APIのGTEモデルが最も統合しやすく、External Model機能でOpenAI等の外部APIを利用する構成も選択できます。
DatabricksのVector SearchはマネージドベクトルDBで、Unity Catalogと統合されたアクセス制御のもとで類似度検索を提供します。インデックスタイプの選択はRAGアーキテクチャの運用性に大きく影響します。
| 項目 | Delta Sync Index | Direct Vector Access Index |
|---|---|---|
| データソース | Delta Table(自動同期) | REST APIで直接書き込み |
| 更新方式 | ソーステーブル変更時に自動更新 | 手動でベクトルを挿入・更新 |
| Embedding | 自動計算(モデル指定)or 事前計算列 | 事前計算済みベクトルのみ |
| 適用シーン | 社内ドキュメントのRAG(定期更新) | 外部システムとのリアルタイム連携 |
RAGではLLMに渡すプロンプトの設計が回答品質を左右します。検索されたコンテキストとユーザーのクエリを構造化して渡すことで、ハルシネーションを抑制できます。
# RAG用プロンプトテンプレートの例
prompt_template = """
あなたは社内ドキュメントに基づいて回答するアシスタントです。
以下のコンテキストのみを使って質問に回答してください。
コンテキストに含まれない情報については「情報が見つかりません」と回答してください。
## コンテキスト
{context}
## 質問
{query}
## 回答
"""
# Databricks Foundation Model APIでの実行例
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
response = client.predict(
endpoint="databricks-meta-llama-3-1-70b-instruct",
inputs={
"messages": [
{"role": "system", "content": "社内ドキュメントに基づいて回答してください。"},
{"role": "user", "content": prompt_template.format(
context=retrieved_context,
query=user_query
)}
],
"max_tokens": 1024,
"temperature": 0.1
}
)temperature を低く設定(0.0〜0.2)することで、コンテキストに忠実な回答が得られやすくなります。 試験では、プロンプトテンプレートに「コンテキスト外の情報を使わない」という制約を含めることの重要性が問われます。
RAGパイプラインの品質を定量的に評価するには、以下の3つの指標を用います。DatabricksではMLflow evaluate()に組み込みの評価メトリクスとして提供されています。
| 指標 | 評価対象 | 判定基準 |
|---|---|---|
| Faithfulness | 回答がコンテキストに忠実か | 回答の各文がコンテキストから裏付けられるか |
| Answer Relevance | 回答が質問に適切か | 回答が質問の意図を正しく捉えているか |
| Context Precision | 検索精度 | 検索チャンクが質問に関連するものを含んでいるか |
import mlflow
# RAG評価パイプラインの実行
eval_data = pd.DataFrame({
"questions": ["Databricksのクラスターポリシーとは?", ...],
"ground_truth": ["クラスター作成時の設定制約を定義する機能です", ...],
"retrieved_context": [retrieved_chunks_list, ...],
"generated_answers": [rag_responses_list, ...]
})
results = mlflow.evaluate(
data=eval_data,
model_type="question-answering",
evaluators="default",
extra_metrics=[
mlflow.metrics.genai.faithfulness(),
mlflow.metrics.genai.relevance(),
]
)
print(results.metrics)
# {'faithfulness/v1/mean': 0.92, 'relevance/v1/mean': 0.88, ...}MLflow evaluate()はLLM-as-a-Judgeパターンを使い、別のLLMが回答品質をスコアリングします。各メトリクスは1〜5のスケールで評価され、閾値ベースでパイプラインの品質ゲートとして活用できます。
| 比較項目 | RAG | Fine-tuning |
|---|---|---|
| 知識の更新 | ドキュメント更新のみで即反映 | 再トレーニングが必要 |
| 根拠の提示 | ソースドキュメントを引用可能 | モデル内部に埋め込まれ引用不可 |
| コスト | 推論時にVector Search + LLM呼び出し | トレーニングコスト+推論コスト |
| レイテンシ | 検索ステップ分やや遅い | 単一モデル呼び出しで高速 |
| ハルシネーション | コンテキスト制約で抑制可能 | トレーニングデータ外の質問で発生しやすい |
| 適用例 | 社内Q&A、ドキュメント検索 | コード生成、専門領域の文体変換 |
GenAI Engineer試験の全体の30〜40%がRAG関連です。単なるアーキテクチャの理解だけでなく、「このシナリオでどのコンポーネントを選ぶべきか」という実務的な判断力が問われます。
RAG / GenAI Engineer
問題 1
ある企業が社内ナレッジベース(Confluence上の数千ページ)を活用したQ&Aチャットボットを構築しています。ドキュメントは週次で更新され、回答には必ずソースページへのリンクを含める必要があります。この要件に最も適したアプローチはどれですか?
正解: B
週次更新のドキュメントを活用するQ&Aにはデータ更新が即反映されるRAGが最適です。Delta Sync Indexを使えばソーステーブルの変更がVector Searchに自動同期され、チャンクのメタデータ(ソースURL等)を保持できるためソースリンクの提示も実現できます。Fine-tuning(A)ではソースの引用が困難で再トレーニングのコストも高く、全ドキュメントの直接入力(C)はコンテキストウィンドウの制限を超えます。要約のFew-shot(D)では情報の網羅性と正確性が担保できません。
RAGとFine-tuningはどのように使い分けますか?
RAGは最新情報や社内ドキュメントなど外部知識へのアクセスが必要な場合に適しています。Fine-tuningはモデルの出力形式・トーン・専門用語の使い方を恒久的に変更したい場合に向いています。DatabricksのGenAI Engineer試験では、この使い分けの判断基準が頻出です。両方を組み合わせるハイブリッド構成も実務では有効です。
DatabricksでRAGを構築する際に必要なコンポーネントは何ですか?
最低限必要なのは、(1) ドキュメントをチャンクに分割するパイプライン、(2) Embeddingモデル(Foundation Model APIまたは外部API)、(3) Vector Search Index(Delta Sync IndexまたはDirect Vector Access Index)、(4) LLM(Foundation Model APIまたはExternal Model)の4つです。加えて、MLflow evaluate()による品質評価パイプラインを組み合わせることが推奨されます。
RAGの評価指標にはどのようなものがありますか?
主要な評価指標は3つあります。Faithfulness(生成された回答がコンテキストに忠実か)、Answer Relevance(回答がユーザーの質問に適切に回答しているか)、Context Precision(検索されたコンテキストが質問に関連するチャンクを含んでいるか)です。DatabricksではMLflow evaluate()にこれらのメトリクスが組み込まれており、LLM-as-a-Judgeパターンで自動評価できます。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Databricks資格一覧|全7試験・難易度・勉強法
Databricks認定資格全7試験の一覧・難易度・出題範囲・合格ラインを徹底解説。2026年最新版の公式試験ガイドに準...
Databricks試験の難易度ランキング|全7資格を徹底比較
Databricks認定全7試験の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...
Databricks資格の勉強方法|最短合格ルートと学習時間の目安
Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...
Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略
Databricks Certified Data Engineer Associate試験を徹底解説。5つの出題ドメイ...
Databricks Data Engineer Professional完全解説|上級試験の攻略法
Databricks Certified Data Engineer Professional試験を徹底解説。10の出題...