最近、生成AIを業務で活用するために「RAG(Retrieval-Augmented Generation)」という仕組みがよく使われています。
RAGとは、AIが回答を作る前に、社内ドキュメントやナレッジベースを検索して、その情報をもとに回答する仕組みです。
例えば、
- 社内マニュアルを検索して回答するチャットボット
- 製品ドキュメントを参照するAIアシスタント
- 問い合わせ対応を支援するAI
などで活用されています。
ただ、RAGを作ろうとすると、
- OpenSearch
- Elasticsearch
- ベクトルデータベース
などの検索基盤が登場し、「なんだか大変そう…」と感じる人も多いのではないでしょうか。
そこで今回私たちは、SQLiteだけでRAGの検索基盤を作れないか?というテーマで検証してみました。
RAGで重要なのは「検索」
生成AIというと、大規模言語モデル(LLM)が注目されがちです。
しかし実際のRAGでは、「どんな情報をAIに渡すか」が回答品質を大きく左右します。
つまり、
AIそのものよりも、検索の品質が重要になるケースも少なくありません。
ベクトル検索だけではうまくいかないこともある
最近のRAGでは、ベクトル検索がよく使われています。
ベクトル検索は、「意味が近い文章」を探すのが得意です。
例えば、「売上を増やす方法」と検索すると、「販売促進施策」のような関連文書も見つけることができます。
一方で苦手なものもあります。
例えば、
- 製品ID
- 型番
- 略称
- 固有名詞
などです。
こうした情報は、キーワードそのものが一致しているかが重要になります。
そこで必要になる「ハイブリッド検索」
この課題を解決する方法が、ハイブリッド検索です。
これは、
- ベクトル検索(意味検索)
- 全文検索(キーワード検索)
を組み合わせる手法です。
例えば、製品名や型番は全文検索で探し、関連する説明文はベクトル検索で探す
という使い分けができます。
その結果、検索精度を向上させることができます。
今回試したのはSQLite
今回のブログでは、多くの人が普段使っているSQLiteを使って検証しました。
SQLiteというと、
- 軽量なデータベース
- ローカルアプリで使うもの
というイメージがあるかもしれません。
しかし最近は、
- FTS5(全文検索)
- sqlite-vec(ベクトル検索)
といった拡張機能によって、検索基盤としても活用できるようになっています。
SQLiteだけでハイブリッド検索を実現
今回の検証では、
- FTS5で全文検索
- sqlite-vecでベクトル検索
を実装し、SQLite単体でハイブリッド検索環境を構築しました。
つまり、
これまでなら
- 検索エンジン
- ベクトルDB
- 専用インフラ
が必要だった構成を、SQLiteだけで実現できることを確認できました。
何がうれしいの?
今回の取り組みで感じた価値は大きく3つあります。
小さく始められる
PoCや社内ツールでは、必ずしも大規模な検索基盤は必要ありません。
まずはSQLiteで始めて、必要になったらスケールさせることもできます。
構築・運用がシンプル
サーバの構築や運用を最小限にできるため、AIシステムを試すハードルが下がります。
検索品質も確保できる
全文検索とベクトル検索を組み合わせることで、
実用的な検索品質を実現できます。
まとめ
RAGというと、大規模な検索基盤や専用サービスが必要なイメージがあります。
しかし今回の検証では、必ずしも最初から大がかりな仕組みは必要ない
ことが分かりました。
SQLiteのような身近な技術でも、ハイブリッド検索を活用したRAGを構築できます。
重要なのは、最新のサービスを使うことではなく、課題に合った技術を選ぶことです。
Acroquestでは、こうした新しい技術を試しながら、
実際に使える形に落とし込む技術検証を行っています。
もし、
- AIに興味がある
- RAGを触ってみたい
- 新しい技術を実際に試してみたい
そんな方がいれば、ぜひ一度お話しましょう。
具体的な実装コードなど詳しくは当社技術ブログに記載しておりますので、詳細を知りたい場合はこちらをご覧ください。
ぜひ、当社で一緒に働いてみませんか?
チャレンジングな案件が多く、成長の機会が多く得られる環境です
当社では、機械学習/AIや生成AIに加えて、AWSやAzureを活用したITサービス開発事業を推進しています。そこで、最先端技術を駆使しながら、社会を進化させたい情熱とスキルのある機械学習・AIエンジニア、クラウドエンジニアを募集しています!
私たちが取り組む案件は、最先端技術を用いる内容や高難易度の内容が多く、チャレンジングな環境なので、成長の機会が多く得られることをお約束します。
/assets/images/10338/original/b4c1f58c-4c92-447a-a0cc-671371e80f3a.png?1392712942)