「RAG」の基本をおさらい
そもそもRAG(Retrieval-Augmented Generation、検索拡張生成)とは、生成AIのチャットボットなどで多く活用されるもので、質問に対していきなり回答を生成するのではなく、答えが書いてありそうなドキュメントを検索し、それを参照して回答を生成する手法です。
生成AIで用いられる基盤モデルは一般的な情報を学習しているため、当然、回答も一般論になります。「自社の規定や製品に特化した回答を生成したい」というときにはRAGのような仕組みが必要、ということでした。
そして、RAGで欠かせないのが、「ナレッジベース」という、参照する知識をまとめておく場所です。RAGではナレッジベースとして、ドキュメントをベクトル化したデータを貯めた「ベクトルストア」を活用していました(ベクトルについては前回のコラムでがんばって解説しているので、ぜひそちらを参照ください!)。そして、Amazon Bedrockでは、「Amazon Bedrock Knowledge Bases」というサービスがあり、ナレッジベースも含めてRAGの仕組みを簡単に実装できるよ、というところまでが前のコラムでも解説していた話です。
RAGの限界
なんだか前提知識だけでもお腹いっぱい、という感じですが、ここから本題に入っていきます。生成AIの回答精度を上げるためのRAG、とはいえ、RAGで全部カンペキ!とはいきません。RAGでは、入力したキーワードとの“類似度”をベースに回答を生成するため、内容によってはうまく精度が上がらないものも出てきます。
特に、複数のドキュメントをうまく紐づけて適切な回答を生成するのはあまり得意ではなく、また、詳細な情報が漏れてしまう、といったこともあるそうです。
解決策として期待される「GraphRAG」に対応!
そしてこの課題を解決するのがGraphRAGであり、Amazon Bedrock Knowledge BasesがGraphRAGに対応すると発表された……のですが、GraphRAGっていったいどんなものなのでしょうか?
いろいろ調べてみると「GraphRAGでは、従来のベクトルストアの代わりに、ナレッジグラフを使用する」「ナレッジグラフは、情報同士の関係性を構造化する技術で、グラフデータベースを利用する」といったことは見えてきたのですが、……どうしよう、さっぱり理解が進みません。
細かな技術の解説は初心者シイノキの手に余るので、ちょっと置いておかせていただき、GraphRAGを使うことで、データの類似性だけでなく、関連性も加味した情報検索ができるようになるのがメリット、というところを押さえておきましょう。
ソニービズネットワークスのエンジニアさんの説明によると「これまでのRAGは情報を細かく分割してベクトル化していたため、たとえるならば、本のページを1枚ずつ破いてデータとして管理していたようなイメージ。そうなると、前後のページの文脈を踏まえて検索することはできない。これがGraphRAGだと、ページごとの関連性が分かるようになるので、精度があがると期待される」とのこと。なるほどー!それはちょっと期待したくなります。
生成AIの回答精度向上にどう活かせるかが鍵に
生成AIのチャットボット、どんどん進化していく様子はなんとなく知ってはいるものの、こうして次々新しい技術が出てくるのは、本当にすごいのひと言に尽きます。生成AI活用が進むなかで、回答精度をどうやって高めるのかというのは、多くの企業がこれから継続して取り組むテーマになるでしょうし、こうした新しい選択肢をどう活用できるかが鍵になるんだろうなと思いました。
ソニービズネットワークスの社内FAQボットソリューションでも、GraphRAG対応を検討するということなので、こちらも今後期待したいと思います。以上、シイノキでした!
- 生成AI活用「社内FAQボット」
-
社内ヘルプデスクや問い合わせ窓口の対応品質向上や業務改革に!