RAGを用いたZoom FAQシステムを作ってみた
こんにちは!生成AIより上手な絵を描きたい🎨
NECネッツエスアイ データ分析チームの久保寺です!
今回は、データ分析チームで技術検証している生成AI技術の一種であるRAGを活用したZoom FAQシステムについてご紹介します!
データ分析チームではいろいろな情報発信をしています😎
前回の投稿はこちら!
RAGとは…
ChatGPTなどのLLM(大規模言語モデル)は、通常インターネット上のオープンソースを学習データとして利用しているため、企業内情報を用いた回答を生成することはできません。
ですが、RAG(Retrieval-Augmented Generation)という技術を活用することで、企業内情報から回答を生成することができるようになります。
どのような仕組みか簡単に説明すると、外部データベース(ベクトルDB)に企業情報を格納することで、LLMはベクトルDB内を検索した結果と、ユーザーからの質問文を基に回答を生成することが可能となるのです。
RAGは、長い文章や多くの情報を扱うことが得意で、質問応答システムや情報検索エンジンなどに活用されます。
RAGを用いたZoom FAQシステム
当社では、社内のコミュニケーションツールとして利用しているSlackのチャンネル上に約60種類の生成AIの各種機能を搭載したボタンを実装しています。
今回は、上記で説明したRAGを用いたZoomに関するFAQシステムを作ってみました
システム構成
作成したZoom FAQシステムの構成は以下の図の通りです。
図中の③~⑥がRAGの処理に該当する部分で、LangChainを用いて、Zoomのマニュアルを格納したベクトルDBとAzure OpenAI Service内で扱えるGPT-3.5 Turboモデルを連携させ、RAGを実装しました。
利用したコンポーネント
Azure OpenAI Service
Azure OpenAI Serviceは、Microsoft Azureのクラウドプラットフォーム上で提供される生成AIサービスです。OpenAIが開発した自然言語処理モデル(例:GPT-4やChatGPT)を利用することができます。
LangChain
LangChainは、ChatGPTなどのLLMの機能を拡張し、より高度な機能を実現することできるフレームワークです。PythonやJavaScriptを用いて、様々なドキュメントソースからRAGを簡単に実装することが出来ます。
GPT-3.5 Turboモデル
GPT-3.5 Turboモデルは、OpenAIが開発した大規模言語モデルです。文章の文脈を理解し、それに基づいて適切な回答や文章を生成することができるため、文章生成や文章の要約、翻訳、意味理解など、さまざまな自然言語処理タスクに応用することができます。
また、OpenAIではGPT-4をはじめとした様々なGPTモデルを提供しておりますが、現状GPT-3.5 Turboモデルが性能と料金から最もコスト効率に優れたモデルとして提供されております。
Zoom FAQのボタンから質問してみた
Zoom FAQのボタンをクリックし、立ち上がったモーダルの入力フォームに質問内容を入力し、送信します。
上記の質問を送信すると、LLMからの回答と関連度の高い関連文書の本文、ページ、リンクを出力します。
詳細を確認したい場合は、関連ドキュメントへのリンクをクリックすると、該当するZoomマニュアルにアクセスすることができます。
さらに、会話履歴を保持しているため、スレッド内で質問を継続することができます。
今後の展望
データセットの拡充
今回Zoomに関するデータからRAGを構築いたしましたが、今後は社内のドキュメントをさらに追加し、社内情報検索ツールの進化を目指していきたいと考えています。回答精度の向上
現状、簡単な質問には精度よく対応できていますが、PDFファイルなどに含まれる画像や表形式データなどに関する複雑な質問への回答精度が良くない課題があります。また、今後ベクトルDBが拡大した際に適切なドキュメントに参照できるようにルーティングするといった対応も必要になります。
そのため、検索する際にメタデータの活用やプロンプトの改善などを用いて、回答精度の向上を目指していきたいと考えています。
次回もお楽しみに!
※ Zoom及びZoom名称を含むサービスはZoom Video Communications, Inc.が提供するサービスです。
※ 記載されている会社名および製品名は、各社の商標または登録商標です。