研究紹介/コラム - 銀行ローン業務支援チャットボットの試作前編~RAG*の活用~

銀行ローン業務支援チャットボットの試作前編~RAG*の活用~

GPT(GPT3.5, GPT4等)をはじめとするLLM*で実用的な会話システム(ChatBot)を作ろうとする場合、ふだんの日常会話等では無難な回答が得られる一方で、専門的な知識が必要となる質問に対しては自信たっぷりに堂々と誤った回答をしてしまう問題があります。


このような事象はハルシネーションと言われており、避けるための抜本的な解決法としては、モデルの追加学習やファインチューニングといったLLM自体をアップデートする方法があります。
ただし、膨大なGPUメモリを含む多くの計算資源、および学習データの準備が必要であり、かなりのコストがかかります。


一方、LLMはそのままでもプロンプトに未学習の知識を含める方法によって正しく回答させる方法があります。


今回は、銀行ローン担当として動くChatBotを想定し、LangChainの機能を使ったRAGによる活用例とエージェントツールを使った作成例を2回にわたりご紹介します。

*RAG : Retrival-Augmented Generation(検索拡張生成)
*LLM : Large Language Model(大規模言語モデル)

LangChainによるRAGの活用とは?

LangChainとは、PythonでLLMを用いたアプリケーション開発を効率的に行うためのフレームワークです。
詳細は以下の記事をご覧ください。

ChatGPTとその活用方法について【後編】

通常ChatGPTはカットオフと呼ばれる期間までの情報のみを学習しており、それ以降の情報を参照することができません。
そうでなくとも専門的な情報や、特定業務に係る知識等は学習されていない場合があります。


このような制約に対応し、特定ドメイン(対象となる特定の範囲)の知識を参照させるための技術がRAG*です。
日本語では検索拡張生成とも呼ばれます。
この手法はLLMに外部からの情報を与え、その情報に基づいた回答をさせるものです。


RAGの流れは下の図の通りです。与えられたドキュメントを細かく分割した上で埋込み用LLMを用いてベクトル化し、Retrieverと呼ばれる検索エンジンがそのベクトルストアの中から情報を検索し、入力情報を補完し、LLMはその情報に基づいて出力を生成します。

図表1:通常のchatGPT

chatGPTのイメージ図

図表2:LLM自体をアップデートする場合

LLM更新イメージ図

図表3:RAGを使用する場合

RAG(検索拡張生成)の処理の流れイメージ図

実践 : ローン情報に基づいて回答するLLMの作成

住宅ローン情報の詳細を記載したドキュメントを別途作成しLangChainに読み込ませ、その情報基づいた回答を生成してみます。

使用モデル:gpt-35-turbo
使用言語:Python3.10.14

読み込むドキュメントと実装

以下ドキュメントをベクトル化して読み込み、関連する質問を投げて回答させてみます。

まずは以下の通りテンプレートを設定します。


テンプレートでは上で与えた情報を元に回答することを指示しており、この情報が{context}部分に埋め込まれ、ユーザからの質問({question})を拡張して言語モデルに与えます。

続いて、下記の質問をして回答を生成しています。
「住宅ローンAの初回引き落としはいつですか。7月に契約したとします。」

確かに正しい回答が返ってきました。上の質問は答えが明快なため、もう少し漠然とした質問をしてみます。

正確な内容である上に、与えられた情報を網羅した回答が返ってきます。

おわりに

上述のようにLangChainにおけるChatGPTにおいて、RAGを活用することでChatGPTに元々学習させていない情報を元に正確な回答を生成することに成功しました。

RAGでは細かな要件を人間が定めずとも、ドキュメントをベクトルストアに変換することで必要な情報を適宜参照しながら回答を生成できます。このため、実装が手軽で応用可能な範囲が非常に広い技術といえます。


今回はChatGPTの活用事例としてLangChainによるRAGの活用についてご紹介しました。当社では最先端技術の研究・調査を行っており、最新の調査結果を随時公開していきます。

当社について

日々最先端の機械学習・分析技術の研究を行い、それらを活用した予測モデル・AIモデルの提供をおこなっています。

・テキスト情報を用いた分類モデル構築
・メール配信ターゲット抽出モデル構築
・商品レコメンドモデル構築
もっと見る

サービス紹介ページをご覧いただき、お気軽にお問い合わせください。

研究紹介/コラム ー 銀行ローン業務支援チャットボットの試作前編~RAG*の活用~