本記事は、DataikuでRAGを構築した後、本格稼働するためには何をすればよいかを解説しています。
RAGって何?どうやって作るの?という方はまずこちらの記事をご確認ください。
Dataikuを使って完全ノーコードで、1時間でRAG作成→AIチャットボットを作ってみた
Dataiku LLMメッシュをつかってRAGをつくってみた
Use the RAG approach for question-answering
Dataikuを利用したRAGシステム開発について、知っておいた方が良い情報
DataikuでノーコードでRAGを構築し、さあ実用だ!と思っている皆様に水を差すようですが、
RAGの運用には様々な検討事項があります。
RAGの実用化に向けた検討事項
早速本題ですが、RAGの実用化に向けた課題にはおもに以下のようなものがあります。
- スケール、拡張性
- データの更新頻度と量
- 計算コスト
スケール、拡張性
どのシステム開発の案件も同じだとは思いますが、RAGについてもコストや実装難易度の観点からいきなり大きなものを作ろうとせず、スモールスタートでの開発がベストプラクティスになります。適切にロードマップを設計し、いきなり完成品を作るのではなくStepごとに分けた実装を検討しましょう。
そのために、明確な目標とロードマップを持ったうえでユーザー目線を重視し、アジャイル的なプロジェクト推進を行うことをおすすめします。
Dataikuを用いると統合的にリソースやコストを管理しつつ、様々なデータソースの追加やユーザー追加などのスケーリングがスムーズに実施できます。
データの更新頻度と量
前提として、RAGを構築した後これを有用なサービスとして運用するには、検索対象のナレッジバンクに格納されている情報は最新のものである必要があります。
実際のケースとして、
- 社内で運用されているシステム(勤怠管理、契約管理など)の問い合わせ先が変わった
- 社内システムの利用方法やその物が変わって、マニュアルが更新された
- 社内の規定が更新された
- 案件情報が更新された
のように、古い情報から応答が生成されると利用者を混乱させたり、社内の意思決定に悪影響を及ぼす例があります。
そのため、ストレージから構築したナレッジバンクを最新の状態に保つには、ストレージとのデータ連携やナレッジバンク更新のためのバッチ処理を用意して、定期的に実行することになります。
このバッチ処理に伴う後述のコストについても注意が必要です。
これを実現するためには、どちらかというとデータ連携側の詳細な設計が必要になってきます。
古いファイルは置き換えたり、厳重な命名管理によりソートされたデータから最新の情報だけを取ってくるような運用が求められます。
Dataikuのデータオーケストレーション(複数のストレージからサイロ化したデータを取り出し、組み合わせて整理し、分析に利用できるようにするための自動化されたプロセス)やMLOps,DevOps(機械学習や作成したコードをパイプライン化し、バージョン管理やデプロイの自動化を行うこと)関連機能を用いることで、データの更新管理をスムーズに行うことが可能です。
計算コスト
計算コストは金額的なコストと、時間的なコスト両方の意味を持っています。
一般的なデータ連携や集計処理と異なり、RAGでのナレッジバンク更新処理では、
- 文書データのチャンク分割やベクトル化処理が含まれる
- 埋め込み表現生成のためのAPIサービスなどを利用する可能性がある
といった特徴があり、それらに基づく計算コストの増大が懸念されます。
また、APIサービスには一般的にレートリミット(時間あたりリクエスト回数の制限)が設けられているため、それが処理時間のボトルネックになる可能性があります。
さらに、RAGの利用者が何人くらいいて、平均何リクエストくらいを行うか適切に見積もることが出来なければ、想定外のコストが発生する可能性があります。
これらを踏まえて、適切なコスト見積、運用体制を決めておく必要があります。
また、導入説明の際にROIなどをベースとして決裁者に向けて有益性を説明しなければならないケースなども考えられます。
RAG導入によって得られるリターンとしては、
- 質問・回答工数削減による人的コスト削減
- 回答の質向上による顧客満足度向上
- 人為的ミスの減少によるリスク低減
などが挙げられます。これらを踏まえてROIを適切に見積もる必要があります。
計算コストについて契約しているLLMモデルや計算リソースのコストを全体的に確認することが必要ですが、DataikuのLLMコスト推定・監視機能が助けになることでしょう。
まとめ
Dataikuを用いたRAG構築は簡単にできる反面、実用には以下のような課題が考えられます。
また、Dataikuにはこれらの解決策を実現するための助けとなる多くの機能があります。
- スケール、拡張性
- スモールスタートからのStep by Stepでの完成を目指す。
- データの更新頻度と量
- データの保存ルールの徹底
- 計算コストやレートリミット
- 適切なコスト推定とROI算出
今回上げた課題の他にもセキュリティ面、フロントエンドUI、応答の改善プロセスなど検討すべき事項は山ほどありますが
キーウォーカーではAIマネージャー(スクラッチでのRAG)開発の知見を活かして、
社内データを用いたRAG構築・運用支援を行っています。
RAGを実用化したい皆様からのお問い合わせをお待ちしております。