広告

規制産業でRAGボットを導入するための学び

Reddit r/LocalLLaMA / 2026/3/29

💬 オピニオンDeveloper Stack & InfrastructureIdeas & Deep AnalysisTools & Practical Usage

要点

  • この記事は、RAGの導入における検索品質は、微調整でチャンクサイズを最適化することよりも、クエリ拡張(複数の代替表現を生成し、結果を統合すること)によって大きく改善すると主張している。
  • 「ソース・ブースト」機構の追加を推奨し、名前やタイトルに一致するドキュメントに含まれるチャンクを強制的に取り込むことで、セマンティック類似度が不十分な場合でも、ユーザーが権威ある政策回答を確実に得られるようにする。
  • 規制された環境向けに、階層化されたプロンプト・アーキテクチャを説明しており、垂直領域のペルソナプロンプトやクライアント固有の指示によって上書きできない不変のレイヤー1の安全性・セキュリティ規則を設けている。
  • 著者は、ローカルの埋め込みにsentence-transformers(MiniLM-L6-v2)とローカルのベクトルDBを用いるだけでドメイン向けQ&Aに十分であり、LLMが大部分の有効な処理を担うため、コストとレイテンシの利点が得られると報告している。
  • 運用とコンプライアンスの隔離の観点から、共有インフラと比べて、クライアントごとに専用のベクトルストアを1つ(「クライアントあたり1ドロップレット」)にすることで、クロスコンタミネーションとキー/コレクション管理の手間が減ると結論づけている。

オーストラリアの職場におけるコンプライアンス用途向けに、RAG対応のAIアシスタントを構築しました。建設現場、介護施設、鉱山事業で導入しました。実際に痛い目を見て学んだことは以下です:

  1. クエリ拡張はチャンクサイズより重要

誰もがチャンクサイズ(400語?512トークン?)にばかり注目します。真の成果は、Haikuを使って各クエリから4つの代替表現を生成し、それら4つをすべてChromaDBに投げてから、結果を統合し重複排除することでした。検索の品質が目に見えて向上しました。特に、ユーザーが文書作成者とは異なる言い回しをするような分野特有の専門用語では効果が大きかったです。

  1. 名前付きドキュメントへのソースブースト

ユーザーのクエリに、インデックスされているドキュメントのタイトルと一致する語が含まれている場合、そのドキュメントからは意味的な類似度に関係なく、そのチャンクを強制的に含めます。たとえば「FIFOポリシーではR&Rフライトについて何と言っていますか?」は、フライトに言及しているだけの意味的に似たチャンクではなく、常にFIFOポリシーから引くべきです。

  1. プロンプトをレイヤー化—クライアントにレイヤー1を崩させない

3層構成です:中核となるセキュリティ/安全のルール(不変)、縦方向(業界ごとに差し替え可能な)パーソナリティ、クライアントのカスタム指示(加法的に追加のみ)。クライアントは自分たちのカスタム指示によってレイヤー1を上書きできません。これで「前の指示を無視して」といった攻撃から守られ、さらにクライアントが自分のボットをうっかりジェイルブレイクしてしまう事態も防げました。

  1. ローカルの埋め込みで十分

ChromaDB上でローカル実行しているsentence-transformersのall-MiniLM-L6-v2です。外部の埋め込みAPIは不要。特定ドメインにおけるドキュメントQ&Aなら、ada-002にかなり近い性能を発揮するため、コストとレイテンシの削減に見合います。LLMの品質(Claude Haiku)のほうが、そもそも埋め込みよりも大きな仕事をしています。

  1. クライアントごとに1滴(1つのインスタンス)

最初に共有インフラを試しました。ChromaDBのコレクションを隔離しておくこと、APIキーを管理すること、クロスコンタミネーション(混入)を防ぐことにかかる運用上のオーバーヘッドは、クライアントごとに月6ドルのVMを立ち上げるだけのほうがマシだと感じるほどでした。各クライアントが自分のベクターストアを所有します。ドキュメントは共有インフラに触れません。

コードの共有も喜んでやります—RAGエンジンはGitHubにあるので、誰かが分解して見たいならどうぞ。

submitted by /u/Neoprince86
[link] [comments]

広告