メインコンテンツに移動

builders.flash

ウェブサービス・SaaS 企業の生成 AI

Amazon Bedrock を活用した RAG 品質管理に向けたパイプラインの構築

2026-01-05 | Author : 曺炯旭 (エムオーテックス株式会社), 古山 利樹 (エムオーテックス株式会社)

はじめに

エムオーテックスでは、PC・モバイル端末を一元管理できる IT 資産管理・MDM ソリューション「LANSCOPE エンドポイントマネージャー クラウド版」を提供しています。2025 年 3 月には、このプロダクトの新機能として「LANSCOPE Copilot for エンドポイントマネージャー (ベータ版)」が実装されました。この機能により、ユーザーが管理コンソール上のチャット画面に質問をテキスト入力すると、生成 AI が製品マニュアルから最適な情報を検索し回答を行います。

この機能の中核となる RAG (Retrieval-Augmented Generation) システムの品質を維持するため、Amazon Bedrock をはじめとするAWSサービスを活用して RAG パイプラインを構築しました。

本記事では、この RAG パイプラインによってどのようにデータの埋め込みから精度評価、モニタリングまでを自動化し、RAG システムの品質を担保しているのか、その実装方法と導入効果について紹介します。

 

X ポスト » | Facebook シェア » | はてブ »

builders.flash メールメンバー登録

builders.flash メールメンバー登録で、毎月の最新アップデート情報とともに、AWS を無料でお試しいただけるクレジットコードを受け取ることができます。

今すぐ登録 »

RAG システムの品質維持に向けた課題

RAG システムの運用にあたり、以下の 2 つの懸念がありました。

1. ナレッジドリフトへの対応

本記事で取り扱っている RAG システムでは、製品マニュアルの更新や追加により、時間の経過とともにデータの性質が変化していきます。このような変化は検索精度の低下を引き起こす可能性があるため、定期的な評価・モニタリングの仕組みが必要でした。

2. データセット作成の効率化

RAG システムの精度評価には、システムの用途に合わせた様々な観点を持つ十分な量のデータセットが必要です。
しかし、広範な内容をカバーするデータセットの手動作成には、多大な時間と労力がかかります。そのため、質の高いデータセットを自動的に構築するプロセスが必要でした。
これらの課題を解決するため、AWS の各種サービスを活用した RAG パイプラインを構築しました。

RAG パイプラインのアーキテクチャ

今回構築した RAG パイプラインは、製品マニュアルの前処理から精度評価まで、一連の処理を自動的に実行する AWS Step Functions のステートマシンとして実装しています。

ステートマシン内部では、各ステップを実行する AWS Fargate のタスクがステートとして組み込まれており、Amazon Bedrock をはじめとする複数の AWS サービスを利用して処理を行います。

  1. 製品マニュアルから不要な文字列などを削除するデータクレンジングなどの前処理を行います
  2. 埋め込みモデルを使用して、適切な粒度で分割した製品マニュアルの内容をベクトルに変換し、チャンクを作成します
  3. テキスト生成モデルを使用して、製品マニュアルからデータセットを自動生成します
  4. 生成したデータセットに対してベクトル検索を実行し、検索精度の評価を行います
  5. 評価結果をチャットツールへ通知し、評価指標が閾値を下回った場合にアラートを発報します

アーキテクチャ図

RAG パイプラインにおける工夫ポイント

 RAG パイプラインの実装において、データセットの自動生成と精度評価に関する工夫ポイントを、サンプルコードを交えながら紹介します。

データセットの自動生成について

データセットの自動生成では、処理の安定性を確保するため、生成 AI からの出力を正確な形式に統制する必要があります。Amazon Bedrock で提供されている Converse API の Tool use 機能を活用することで、出力形式の一貫性を保ち、信頼性の高いデータセット生成を実現しています。また、プロンプトや Tool Config の管理にはAmazon Bedrock の Prompt Management を使用しています。マネジメントコンソールからプロンプトを一元管理することで、データセット生成の品質を継続的に改善できる仕組みを整えています。

python
# Prompt Managementのプロンプトを利用してデータセットを生成する
response = client.converse(
    modelId=prompt_arn,
    promptVariables={
        "content": "チャンクの内容",
        "metadata": "チャンクに含まれるメタデータ"
    }
)
tool_input = get_tool_input(response)
 
# 構造化された出力からデータセットを抽出する
datasets = [
    {
        "question": dataset["question"],
        "metadata": dataset["metadata"]
    }
    for dataset in tool_input["datasets"]
]

自動生成される質問の例

元のテキスト
自動生成された質問
導入の流れ LANSCOPE エンドポイントマネージャー クラウド版で、Windowsデバイスを管理するために必要なプログラムや利用開始までの流れを説明します。 (後略)

WindowsデバイスにLANSCOPE クライアントをインストールする方法を教えてください。

デバイス情報の編集/削除 LANSCOPE エンドポイントマネージャー クラウド版で (後略)

デバイス情報を管理コンソール上で削除する方法を教えてください。

精度評価について

精度評価のタスクでは、検索精度と引用精度という 2 つの異なる観点から評価を行っています。1つ目の検索精度では、ベクトル検索によって得られたチャンクが、データセットで想定されているチャンクと合致しているかを評価します。これがベクトル検索の検索性能を測る指標となります。2 つ目の引用精度では、生成 AI が実際に回答の根拠として選択したチャンクが、データセットで想定されているものと合致しているかを評価します。この指標により、生成 AI によるチャンク選択の適切性を測ることができます。 このように検索と引用の精度を分離して評価することで、RAG システム全体の品質をより正確に把握し、改善につなげることができます。

python
for dataset in datasets:
    question = dataset["question"]
    
    # ベクトル検索による類似チャンクの取得
    question_embeddings = embed(question)
    retrieved_docs = retrieve(question_embeddings)

    # 検索精度の評価
    search_hit = is_hit(retrieved_docs, dataset)

    # 回答の生成と引用チャンクの取得
    response = client.converce(
        modelId=prompt_arn,
        promptVariables={
            "question": question,
            "documents": format(retrieved_docs)
        }
    )
    answer, cited_docs = get_answer_and_citations(response)

    # 引用精度の評価
    citation_hit = is_hit(cited_docs, dataset)

    metrics.append({
        "search_hit": search_hit,
        "citation_hit": citation_hit
    })

評価タスクで算出した評価指標は、チャットツールへリアルタイムに通知されます。これにより、運用チームは品質の変化を継続的にモニタリングすることができます。

また、評価指標が設定された閾値を下回った場合はアラートが発報され、製品マニュアルの更新による品質低下を早期に特定することができます。この仕組みにより、必要に応じて速やかに対策を講じることが可能になりました。

RAG パイプラインの導入効果

RAG パイプラインの導入により、懸念されていた課題に対して予防的な取り組みを実現することができました。

データドリフトへの対応

  • 製品マニュアルの更新後、自動的に精度評価が実施され、品質の低下を早期に検知できる体制が整いました。
  • 閾値を満たしたデータのみを本番環境で活用することで、信頼性の高い検索結果を提供できるようになりました。

評価用データセット作成の効率化

  • 生成 AI を活用したデータセットの自動生成により、マニュアル更新時の評価工数を大幅に削減し、迅速なリリースが可能になりました。
  • 多様な視点や表現の質問を自動的に生成させることで、RAG システムの対応力をより包括的に評価できる体制が構築できました。

RAG パイプラインの導入により作業が効率化されましたが、生成 AI によるチェックのみで品質を完全に担保するのは困難です。そのため弊社では、RAG システムの改善・修正などの大きな変更を伴う際には、専門知識を持つエンジニアによる人的チェックを組み合わせた品質管理を行なっています。


 

まとめ

本記事では、Amazon Bedrock をはじめとする AWS サービスを活用し、RAG システムの精度を継続的に評価・モニタリングする RAG パイプラインについて紹介しました。この仕組みにより、マニュアル更新や製品改善に伴う検索精度の低下リスクを最小化し、ユーザー体験の一貫性を維持することが可能となりました。今後は、この RAG パイプラインを基盤として、さらなる精度向上と運用効率化に取り組んで参ります。

    本 RAG システムの構築にあたり、Amazon Bedrock の活用方法について技術的なサポートをいただいた AWS Japan のチームの皆様に、この場を借りて深く感謝申し上げます。

    筆者プロフィール

    Missing alt text value

    曺 炯旭 (Cho Hyeonguk)

    エムオーテックス株式会社
    管理本部 経営企画室 AI戦略グループ / エキスパート

    Web 脆弱性診断チームから現在の部署に移動。現在は生成 AI を活用したシステムの開発やプロジェクトに参画中。#2021 JDLA Deep Learning for ENGINEER

    Missing alt text value

    古山 利樹

    エムオーテックス株式会社
    管理本部 経営企画室 AI戦略グループ / アソシエイト

    生成 AI を活用した RAG・AI Agent システムの構築や AWS を使ったアーキテクチャの設計などの業務に従事。
    2025 Japan All AWS Certifications Engineers。