- 生成AIデータエンジニア
- DX推進事業マネージャー
- CTO、CTO候補
- Other occupations (5)
- Development
- Business
- Other
最近人気のRAGを理解する ― ベクトル解析とは
Photo by Bozhin Karaivanov on Unsplash
RAGとは?
RAG(Retrieval-Augmented Generation)は、検索(Retrieval)と生成(Generation)を組み合わせた仕組みです。 従来の生成AIは「学習済みモデルの中の知識」に依存していましたが、RAGは外部のデータベースに保存された情報を検索し、それを参照して回答を生成します。
特に最近は、ベクトル検索(Vector Search)を使ったRAGが主流です。
文章や文書を「ベクトル(数値の並び)」に変換し、意味的に近い情報を高速に検索できるようにします。
ベクトル化とは?
では、その「ベクトルに変換する」とは具体的にどういうことでしょうか?
コンピュータは文字そのものを理解できないため、テキストを数値に変換する必要があります。
たとえば「Python」という単語を [0.12, -0.85, 0.33, …] のような数百次元の数値の並びに変換する。この処理を**ベクトル化(embedding)**と呼びます。
ベクトル化のポイントは、
- 意味が近い単語や文 → 似たベクトルになる
- 意味が遠い単語や文 → 遠いベクトルになる
たとえば「犬」と「猫」は近いベクトルに、「犬」と「自動車」は遠いベクトルになります。
この性質を利用して「ユーザーの質問と似ている文章」を探し出せるのです。
なぜRAGが利用されるのか?
- 最新情報を扱える
学習時点の知識に縛られず、外部データを取り込める。 - ドメイン特化が容易
法律、医療、社内マニュアルなどの専門知識を追加可能。 - 検索+生成の組み合わせで精度向上
「回答の根拠」を検索で取りに行けるため、幻覚(hallucination)を減らせる。
つまり、RAGは生成AIを“調べながら答えるAI”にする方法です。 そのため、参照データの精度次第では簡単に欲しい情報を得ることができるため、人気となっています。
技術的な課題
ただし、RAGを実装すればすぐに高品質な回答が出るわけではありません。(そんな上手い話はない笑)
代表的な課題には以下があります。
- ベクトル化の精度
文書の分割方法や埋め込みモデル次第で検索結果が変わる。 - コンテキストの取り込み限界
大規模モデルに入力できるトークン数は限られており、検索結果のすべてを渡せない。 - 検索精度のトレードオフ
「網羅的に拾いたい」 vs 「本当に関連するものだけに絞りたい」のバランス。 - 更新コスト
外部データを定期的にベクトル化・インデックス更新する必要がある。
RAGを実装するときは、上記課題を意識して状況にあったパラメーターを設定するのがよいでしょう。
問題提起 ― 「実装できるけど仕組みがわからない」
最近、弊社マイクロベースのインターンに参加する学生の中には、教材やサンプルコードを見ながらRAGを「とりあえず動かした」経験はある方が増えてきました。
しかし、その多くが
- なぜベクトル検索を使うのか?
- どの段階で検索と生成が結合しているのか?
- 検索の質と生成の質はどう影響し合うのか?
といった原理的な理解にまで到達していないのが現状です。
「動かすだけ」ではなく、「なぜRAGが必要で、どんな制約があるのか」を理解することが、今後の実践的なAI開発には欠かせません。