RAGの中で何が起きているのか
このシリーズでは、中小製造業がAIと付き合う際にRAG(社内データを検索してAIに回答させる仕組み)が選択肢の一つになるという話を書いた。
RAGを導入するにせよ見送るにせよ、その中で使われているベクトルDBという技術の特性を知っておくと、業者の提案を聞くときや自分で検討するときに判断しやすくなる。少し技術的な話になるが、中身を理解しておいて損はない。
ベクトルDBとRDB(リレーショナルデータベース)は、同じ「検索」でも解いている問題が根本的に異なる。
RDBは「文字の並び」で検索する。「ステンレス」で検索すれば「ステンレス」を含むレコードだけが返る。完全一致や前方一致といった、確実な検索が得意な道具になる。
一方、ベクトルDBは「言葉の意味」で検索する。文章を数値の座標に変換し、座標同士の近さで「意味が似ている」かどうかを判定する。「ステンレス」で検索したときに「SUS304」や「耐食鋼」が近い結果として返ってくるのは、この仕組みによるもの。
「意味で検索できる」の落とし穴
ベクトルDBで知っておくべきは、データの入れ方で検索精度が変わること。たとえば「材質:SS、Φ400」のような簡潔な記述よりも、「材質はSSです。直径は400です」のように文章として入れた方が精度が上がる。AIが単語間の関係性を文脈から読み取るため、文としての構造があった方が意味の抽出がうまくいく。
つまり、ベクトルDBは「入れたデータがそのまま返る」道具ではなく、「入れ方次第で結果が変わる」道具になる。この性質を知っておくと、業者から「ベクトルDBで検索精度が上がります」と言われたときに、何がどう上がるのかを具体的に聞ける。
製造業のデータで考える使い分け
ここが一番大事なところ。中小製造業のデータには、数値や型番のように確定的なものと、備考や過去の経緯のように文章でしか残っていないものが混在している。
RDBが適するデータ:
- 材質コード、型番、単価など「1文字の違いも許されない」検索
- 径や重量の範囲検索(100mm〜200mmの間、など)
- 受注件数の集計、納期順のソート
ベクトルDBが適するデータ:
- 見積の備考欄、過去のトラブル対応メモなど自由記述の検索
- 表記ゆれを超えたマッチング(「アルミ」と「軽合金」、「ポンプ用の軸」と「回転軸(ポンプ向け)」)
- 「前に似たような案件なかったか」という曖昧な問いに対する検索
数値や確定コードをベクトルDBで検索するのはリスクが高い。「近い」結果が返ってくるだけなので、正確性が求められる場面には向かない。逆に、RDBでは備考欄の中身を意味で引っ張ることはできない。
どちらか一方ではなく組み合わせる
実務では、RDBとベクトルDBを組み合わせて使うのが現実的な構成になる。
たとえば、材質と径の絞り込みはRDBで確実に行い、過去の類似案件や加工時の注意点といった「文章の中にしかない情報」をベクトル検索で引き出す。構造化されたデータと自由記述を、それぞれ得意な道具で扱う考え方になる。
自分がシステムを組むときも、最初からこの組み合わせを前提にすることが多い。RDBだけでは備考欄や過去の知見が拾えず、ベクトルDBだけでは正確な値の検索ができない。両方の特性を知った上で使い分けることが、RAGを含めたAI活用の判断にもつながってくる。
このシリーズの他の記事: