技術トレンド

RAGの精度を上げる勘所。検索が当たらないとき、どこを疑うか

イーランサー・ジャパン株式会社 約4分

RAGは動くものを作るだけなら難しくありません。難しいのは精度です。「それらしい答えは返るが、肝心なときに正しくない」という状態から抜け出せず、本番投入を見送るケースが多く発生しています。この記事では、精度が出ないときにどこを疑うべきかを、処理の流れに沿って整理します。

RAGの処理はどこで失敗するか

RAG(検索拡張生成)は、質問に対して社内データから関連情報を検索し、その内容をLLMに渡して回答を生成させる仕組みです。処理は大きく次の順に進みます。

精度が出ないとき、多くの人は最後のLLMやプロンプトを疑います。しかし実際の原因は、前半の検索段階にあることがほとんどです。正しい情報が検索できていなければ、どれだけプロンプトを工夫しても正しい答えは出ません。

分割の仕方で結果が変わる

文書をどの単位で切るかを「チャンク分割」と呼びます。ここが精度に直結します。

細かく切りすぎると、前後の文脈が失われます。「その手続きは前項の条件に該当する場合に限る」という文だけが取れても、前項が何かは分かりません。

大きく切りすぎると、1つのチャンクに複数の話題が混ざります。検索の精度が落ち、LLMに渡す情報にも無関係な内容が混ざります。

実務では、文書の構造に沿って切るのが基本です。見出し単位、条項単位、Q&A単位。機械的に文字数で切るより、意味のまとまりを保てます。

チャンク同士を少し重ねる(オーバーラップさせる)手法もよく使われます。境界で文脈が切れる問題を緩和できます。

よくあるのは次のパターンです。

対策として、意味の近さで探す検索と、単語の一致で探す検索を組み合わせる方法が取られます。固有名詞や型番は単語一致のほうが確実に当たるためです。

質問そのものを一度LLMに整形させてから検索する、という手法もあります。曖昧な聞き方を検索しやすい形に直す前処理です。

検索したあとの絞り込み

検索で上位に出た内容が、必ずしも質問への答えを含んでいるとは限りません。そこで、取得した候補を再度評価して並べ替える処理を挟みます。

検索で20件取り、そこから本当に関連するものを5件に絞ってLLMへ渡す。この一段を入れるだけで、回答の質が目に見えて変わることがあります。

渡す情報を増やせば増やすほど良いわけではありません。無関係な内容が混ざると、LLMがそちらに引きずられます。

渡し方と答えさせ方

検索結果をLLMに渡す段階では、次の点を明示します。

3つ目の出典表示は、業務利用では実質的に必須です。回答が正しいかどうかを利用者が自分で確認できるようになり、ハルシネーション(事実と異なる回答)のリスクを大きく下げられます。

2つ目も重要です。「分からない」と言えないシステムは、必ずそれらしい嘘をつきます。

評価の仕組みがないと改善できない

ここが実務でもっとも軽視される部分です。

チャンクの切り方を変えた、検索方式を変えた、プロンプトを直した。その変更が良くなったのか悪くなったのか、判断する基準がなければ改善は進みません。

最低限必要なのは、想定質問と期待する回答の組を用意しておくことです。数十件でも構いません。変更のたびにこれを流し、結果を比べます。

本番運用に入ってからは、実際の質問と回答を記録し、定期的に確認する仕組みが要ります。利用者が「役に立たない」と感じて使わなくなる前に、問題を検知できるかどうかが分かれ目です。

最後は元データの問題に行き着く

技術的な調整を尽くしても精度が上がらない場合、原因は元データにあります。

「AIを導入したいが、社内のデータが整っていない」という状況は珍しくありません。 RAGの構築とは、その整備を含む仕事だと考えたほうが実態に近くなります。

この点で、データ基盤の知識を持つ人材が有利になります。どこに何があり、どう管理されているかを把握し、整える。技術の問題に見えて、実は情報管理の問題という場面が多く発生します。

CONSULTATION

AI開発案件をお探しの方へ

イーランサーは、AI開発、データ基盤・DWH、BI、AWS、Azure、GCP、Java、Python、SAP/S4HANA、Salesforceなど幅広い領域の案件を取り扱っています。専任担当がご経歴と希望条件を整理し、条件に合うプロジェクトをご提案します。

登録から案件のご紹介、契約手続きまで費用は一切かかりません。フルリモート・一部リモート・常駐のほか、週1〜2日の副業案件も取り扱っています。

案件を見る