RAGAL: A Frugal, Fully Local Retrieval-Augmented Assistant for Technical Support at a Government Agency
本論文は、大規模な生成モデルよりも検索エンジニアリングとエンベッダーのファインチューニングを優先することで機密データに対して高い性能を実現した、ルーマニア政府機関向けの完全ローカルかつリソース制約のある検索拡張アシスタントであるRAGALを提示するものであり、SQLのハルシネーションを防ぐためのアンカー蒸留や、クラウドへの依存なしに出力を評価するためのCPUベースのオフラインジャッジといった斬新な手法を導入している。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
超スマートなロボット司書を想像してみてください。そのロボットは何百万冊もの本を読み、あなたが尋ねるあらゆる質問に答えることができます。通常、このロボットを機能させるには、あなたの質問と本を、遠く離れたデータセンターにある巨大なクラウドベースの脳へと送る必要があります。しかし、もしあなたの図書館に、建物から持ち出すことが違法とされる最高機密の政府ファイルが含まれていたらどうでしょう?もし、クラウドを一切使えないとしたら?これは、**検索拡張生成(RAG)**の中核にあるパズルです。RAGを「二段階のダンス」と考えてみてください。まず、ロボットは特定の書類の山を素早くスキャンして、最も関連性の高いページを見つけ出し(検索)、次に、それらのページを使って賢く正確な回答を作成します(生成)。大きな疑問は、多くの組織にとって次の通りです。「私たちは、データを一バイトも外部に送信することなく、たった一台の控えめなノートパソコンだけで、完全に自分たちの壁の中でこのロボットを構築できるのだろうか?」
この論文は、まさにそのようなロボットを構築したルーマニア政府機関によるプロジェクト、RAGALの物語を伝えています。彼らは、不可能に聞こえる3つのルールに直面しました。データは決して建物から出てはならないこと、ロボットは回答の下書きのみを行うこと(人間が「送信」ボタンを押さなければならない)、そして、これらすべてをメモリがわずか8GBしかない一般的なノートパソコンで行わなければならないことです。諦める代わりに、彼らはこの「質素な」セットアップを、巧妙なエンジニアリングの実験場へと変えました。彼らは、成功の秘訣はより大きく高価な「脳」を買うことではなく、ロボットに情報の「探し方」をより良く教えることにあると発見しました。サポートチケットに基づいて検索エンジンを微調整し、「アンカー蒸留(anchor distillation)」という巧妙なトリックを使ってロボットが偽のデータベースコマンドを捏造するのを防ぐことで、安全かつ効果的に機能するシステムを作り上げました。彼らはさらに、CPU上で動作するためリアルタイムでのチャットはできないものの、一晩でロボットの宿題を採点するには完璧な「スローモーションの審判」さえも構築しました。その結果、プライバシーに関する厳格な規則を持つ組織が、クラウドを一切必要とせずに、いかに役立つAIアシスタントを構築できるかという設計図が示されました。
RAGALの物語:家を出ることのないロボット
RAGALをご紹介しましょう。これは、農村投資基金を管理するルーマニア政府機関の新しいアシスタントです。この機関は、毎日数千件の機密文書やサポートチケットを扱っています。これらのファイルには市民のプライベートなデータが含まれているため、それらを機関の建物から持ち出すことは厳格に禁止されています。これは、彼らがクラウド上に存在する通常の強力なAIツールを使用できなかったことを意味します。彼らは独自の「完全ローカル」なロボットを構築しなければならず、しかもグラフィックスカードのメモリがわずか8GBしかない、AIの基準では極めて少ないスペックの単一のノートパソコンで構築する必要がありました。
チームは、彼らが「制約」と呼ぶ3つの厳格なルールに従わなければなりませんでした。
- ゼロ・エグレス(データの流出ゼロ): データの一片たりとも建物から外に出てはなりません。質問をクラウドに送ることも、インターネットから学習データをダウンロードすることも禁止です。すべては独自のハードウェア上で行われなければなりませんでした。
- 読み取り専用: ロボットは「書き手」であり、「実行者」ではありません。ロボットはSQLコード(データベースエラーを修正するための指示)や説明文を下書きすることはできますが、それらのコマンドを実際に実行することは決してできません。人間がレビューし、実行する必要があります。
- 質素さ(フルガリティ): システム全体は、一台の一般消費者向けノートパソコンで開発、学習、テストされました。
大きな発見:より大きな脳よりも、より良い検索
チームは、より良い回答を得るためには、より大きく、より賢いAIモデルが必要であるという一般的な仮定からスタートしました。しかし、彼らはそれが間違いであることをすぐに知りました。彼らの最初の大きな勝利は、「脳」(生成器)をアップグレードすることからではなく、「検索エンジン」(検索器)をアップグレードすることから得られました。
単にロボットに文書を探させるだけでは不十分であることに彼らは気づきました。彼らは、ロボットに「探し方」を教える必要がありました。彼らは、言葉の意味を理解する「高密度(dense)」検索と、正確なキーワード一致を探す「疎(sparse)」検索を組み合わせたハイブリッド検索システムを構築しました。また、質問に基づいてどの種類の文書を見るかを決定する「交通整理員」(インテント・ルーティング)を追加しました。手順について尋ねればマニュアルを探し、データベースの修正について尋ねれば古いサポートチケットを探します。
この単純な変更は、劇的なアップグレードとなりました。高度なトレーニングを行う前、このハイブリッド検索によって、成功率は**62%から81%**へと上昇しました。これは、彼らが行った中で最も安価で効果的な改善でした。
8 GBの奇跡:ノートパソコンでの学習
次の課題は、独自のデータに基づいて検索エンジンを学習させることでした。彼らには、解決済みのサポートチケットと内部文書が約15,000件ありました。彼らは、検索エンジンに彼らの機関特有の言語を理解させたいと考えていました。
通常、このようなモデルの学習には大規模なスーパーコンピューターが必要になります。しかし、チームには8GBのメモリしかありませんでした。彼らは、隠れた罠を発見しました。Windowsノートパソコンでは、グラフィックスカードのドライバーが、容量不足になるとデータを通常のコンピュータメモリへ静かに「溢れ(spill)」させてしまい、クラッシュすることなく学習が極端に遅くなる現象です。それはまるで、背中に水が入ったバックパックを背負っていることに気づかずにマラソンを走っているようなものでした。
これを解決するために、彼らは特別なレシピを使用しました。
- 8ビット・オプティマイザ: コンピュータが行うべき数学的計算を縮小する方法。
- グラディエント・チェックポインティング: 一部のステップを保存する代わりに再計算することで、メモリを節約するテクニック。
これらのテクニックを用いることで、彼らはその単一のノートパソコンで、わずか72分で検索エンジンを完全に学習させることに成功しました。結果は驚異的でした。上位10件の結果の中に正しい文書を見つける能力(Recall@10)が、0.663から0.850へと跳ね上がったのです。
沈黙の罠:一つのドメイン、二つの世界
ここから物語は複雑になります。検索エンジンをサポートチケットのみで学習させたとき、それはチケットを見つけることに関しては非常に優秀になりました。しかし、静かで目に見えない方法で、公式文書を見つける能力が低下してしまったのです。学習によって検索エンジンの理解が「変形」され、フォーマルな文書を扱う方法を忘れてしまったのです。
彼らがこれを発見できたのは、文書専用のテストセットを別途作成していたからです。もしそうでなければ、システムが半分(文書側)のデータに対して失敗しているにもかかわらず、完璧であると誤解していただろうでしょう。データをクラウドに送らずにこれを解決するために、彼らはGenQと呼ばれる巧妙なトリックを使用しました。ローカルAIを使用して文書に対する「偽の質問」を生成し、両方の世界をバランスよくカバーする新しい学習セットを作成しました。これにより、ダメージが修復され、検索エンジンは再びチケットと文書の両方を上手く見つけられるようになりました。
安全第一:ロボットに嘘をつかせないために
ロボットがデータベースのコマンドを下書きするため、チームはロボットが勝手に作り物(ハルシネーション)をしないようにしなければなりませんでした。彼らは**アンカー蒸乳(Anchor Distillation)**という手法を用いました。AIにSQLコードをゼロから書かせるのではなく、過去のチケットから実際に動作しているコードをそのままコピーし、AIにはその「周囲のテキスト」(それが何を何のために行うのかの説明など)だけを書かせました。これにより、コード自体が検証済みの実在する「アンカー(錨)」となるため、ロボットが偽のデータベースコマンドを捏造することは不可能になりました。
また、PII(個人識別情報)のマスキング(名前やID番号を隠すこと)による意外なメリットも見出しました。名前を<user>や<project_id>のようなプレースホルダーに置き換えてから学習させたところ、ロボットは実際により優れた回答を書くようになりました。古いチケットから特定の人名をコピーするのではなく、誰にでも使える柔軟なテンプレートを書くようになったのです。
スローな審判
最後に、クラウドベースのAIを使って仕事のチェックができない場合、どのようにしてロボットを採点すればよいのでしょうか?チームは「スローな審判」を構築しました。彼らは、高速に動作させるには大きすぎる(7440億パラメータを持つ)巨大なAIモデルを使用しました。これはグラフィックスカードではなく、コンピュータのメインプロセッサ(CPU)上で動作し、データをハードドライブから移動させながら処理を進めます。非常に低速で、一つの回答を採点するのに約10分から13分かかりました。しかし、非常に賢いため、一晩でロボットの宿題を採点する「審判」としては完璧でした。
彼らは、このスローな審判が優れた「セカンドオピニオン」になることを発見しましたが、完璧ではありませんでした。特に、最高または最低の回答については、人間の専門家と意見が食い違うことがありました。教訓は、審判には傾向やパターンを見つけるために利用し、具体的な判定については常に人間がダブルチェックを行うことです。
まとめ
RAGALプロジェクトは、強力で安全なAIアシスタントを構築するために、スーパーコンピューターやクラウドは必要ないということを証明しています。より良い検索戦略、注意深いデータハンドリング、そして厳格な安全規則といった巧妙なエンジニアリングに焦点を当てることで、単一のノートパソコンを持つ小さなチームでも、プライバシーを尊重し、真の価値を提供するシステムを構築できるのです。彼らは、時には進むためにゆっくりと動き、すべてをローカルに保ち、細部に細心の注意を払うことが最善の方法であることを示しました。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。