「【第3回】多様なニーズに応える「生成AI共通基盤」の開発」はこちら>
一筋縄ではいかないRAGの導入
——今回のRAGの高度化の取り組みにおけるそれぞれの役割を教えてください。
浅野
今回の取り組みは日立の実業務で検証を行っていますが、私は、生成AIを活用しようとする事業部が求める要件を取りまとめて研究開発チームに依頼し、その成果の実業務適用を推進しています。
山根
私は自部署でチームを組んで、RAGに関する既存技術やオープンソースのソフトウェア・ツールなどの業務への適応可能性の検証を行っています。チームメンバーには、生成AIの流行以前から自然言語処理に従事している者も少なからずいます。
横井
私は研究所において、学会などで発表されたRAG関連の最新技術について、実際の業務適用時の有効性を高めるための研究を行っています。
——この度RAGの高度化により生成AIの回答精度を大幅に向上させたそうですが、そもそもRAGとは何か、教えてください。
横井
RAGとは、LLM*¹にテキストを生成させる際に、関連する外部知識の検索結果と組み合わせることで、回答精度を向上させる手法です。
LLMは膨大なデータを学習することで、質問を理解し、回答を生成しますが、学習データに含まれていない情報については上手く答えることができません。例えば、専門用語が頻繁に交される業務において、インターネット上の一般的な情報のみで業務に固有の用語や知識を学んでいない汎用LLMを活用することは困難です。その時にRAGが有効に機能します。ある業務に特有の情報を格納した知識DBを用意し、専門的な質問が来た時にそのDB内から関連する情報を検索します。そして、質問内容と併せてその情報をLLMに渡すことで、生成される回答の精度が向上します。
*1 LLM:Large Language Models。大量のデータとディープラーニング(深層学習)技術によって構築された言語モデルのこと。
——RAGが参考文献の山の中から適切な情報を探し出して、LLMに手渡ししてくれるのですね。
山根
はい。生成AIの知識を補う上では取り組みやすく、有効性も期待できる仕組みなのでいま多くの企業がRAGの実務導入に挑んでいます。ですが、専門的な知識や用語が多く問われる業務にRAGを適応させることは容易ではありません。
例えば、専門用語が多く含まれる製品マニュアルをそのまま知識DBに格納する場合を考えます。このとき、質問に関連するマニュアルがうまく検索できたとしても、マニュアルに含まれる用語の意味が生成AIに理解できない場合があり、その際は適切な回答を生成できない恐れがあります。加えて、質問文に含まれる用語の表記が、マニュアルのものと異なる場合は、回答に必要な情報が検索で取れないこともあります。したがって、専門知識を用いる場合ではRAGを使うことでの精度向上にはそれ自体では制限があります。
そのため、誤回答をどう運用でカバーするかも実務では大きな課題になりえます。裏を返せば、RAGを業務に適用するためにはさまざまな配慮が必要になるわけですが、RAG関連技術は比較的新しいものである分、業務に実装した際、どこまで課題解決ができるか予期しづらい現状があります。もっとも、ここ1年あまりでさまざまな課題に対応するRAG関連技術が論文として数多く発表されています。ですが、私たちが業務で使うドキュメントの性質は論文での検証に用いられたものと同じとは限らないため、論文通りの結果が出ないことも珍しくありません。そのため、私たちの取り組みはまさに試行錯誤の連続でした。
「日立サポート360」における一部業務での生成AI活用
——今回の取り組みを、どのように進めたのですか。
浅野
私たちは、「日立サポート360」のカスタマーサポート業務で、RAGの機能検証を開始しました。「日立サポート360」では、金融機関向けの情報システムなどのミッションクリティカル系ITシステムのサーバー、ストレージ、OS、ミドルウェアなど多くの製品や、多様なIT環境における複雑で複合的な問題に、高度な経験知を持つエキスパートが対応しています。よって、生成AIがエキスパートと同等に質疑応答できるようになれば、生成AIをミッションクリティカルな業務に対応させるための道筋が得られると考えています。
まず、何も工夫をしていない状態のRAGを構築し、問い合わせに答えさせると、誤回答が66%、それ以外にも記載不足や見当違いが10%発生しました。つまり、使える回答は24%しかなかったということです。そこから私たちはRAGの高度化に取り組んだわけですが、結果を先にお話ししますと、誤回答を大幅に削減し、7割以上の回答精度*²を実現しました。さらに、回答の中に誤りがある恐れを考慮し、その根拠となった情報源を提示するなど、誤回答の発生を前提とした、追加のRAG機能も開発し、「日立サポート360」における一部業務での生成AI活用を果たしました。
*2 生成された回答が最終回答作成に有効だった場合を正答として評価した場合の精度を指します。
5つの領域でRAGを高度化
——ミッションクリティカル系ITシステムのような社会インフラをささえる業務に生成AIが実装されたのですね。では、具体的にRAGをどのように高度化したのでしょうか。
横井
「日立サポート360」における一部業務での生成AI活用を進める中で、大別して5つの領域でRAGの高度化を図りました。
まず「クエリの最適化」。ここでは、関連性の高い情報が検索結果として取得されやすくなるよう質問の文章を変更、拡張する仕組みを用意しました。例えば一つの質問文の中に、「エラーの原因と対策を教えてください」というように聞きたいことが複数含まれている場合、LLMに渡すクエリを「原因」と「対策」に分割します。最初に「原因」、次に「対策」を調べる、など合理的な調査の順番をLLMに指示する機能も実現しています。
次の「外部知識の取得」では、調べたい内容に応じて適切な方法で情報を収集できるよう、外部知識を格納した知識DBおよび検索ツールの最適化を図っています。知識DB内のデータを適切にチャンク分け*³したうえで、類似度の高い文章を探す類似性検索なのか、エラーコードなどを厳密に探すキーワード検索なのかなど、タスクに応じた検索ツールを用意して組み合わせることで、より正確で効率的な情報の収集を実現しています。
「外部知識の整理」では、検索で取得した複数の情報に対して、より重要な情報の選定や順位付けなどを行います。LLMに渡す情報量が多すぎると正答率が落ちるというような副作用が生じることがあります。そこで取得した情報の重要度などで順位付けして厳選した上で、適切な量の情報をLLMに渡します。
「回答の評価」では、回答の正誤を担当者が効率的に判断するための仕組みを実現しています。「日立サポート360」ではもともと、エキスパートによる回答文のチェックが行われますが、その際のチェック観点で、生成された回答の中で誤りの恐れのある箇所を警告表示することも検討しています。さらにLLMが回答生成時の根拠とした情報源も提示し、エキスパートによるチェックを支援することで、回答精度100%が難しい場合でも、生成AIの業務活用を可能にしています。
そして5つ目の「エージェント」で、回答精度をさらに向上させます。
*3 自然言語処理において大量のテキストデータを理解しやすくするために、意味のある小さな単位(チャンク)に分割する手法。
——次回は、回答精度向上の鍵であるエージェントについて聞いていきます。
浅野 優(あさの ゆう)
株式会社 日立製作所 マネージド&プラットフォームサービス事業部
生成AIサービス開発部
主任技師
日立製作所の研究開発グループでサービスロボットやコールセンター向けの対話技術、個人情報の匿名化技術、文書を対象とした自動審査技術など自然言語処理の研究開発を担当。2024年から、生成AIサービス開発部にて生成AIの基盤開発に従事。
山根 一樹(やまね かずき)
株式会社 日立製作所 デジタル事業開発統括本部Data&Design
Generative AI事業推進センタ
技師
ミドルウェアの開発に携わった後、AIを活用した自動車の安全運転評価技術の開発、小売店における優良顧客の見極め技術、鉄道におけるレール寿命の最適化技術の開発などを担当。2024年から、Generative AI事業推進センタにて最新のプロンプトエンジニアリング技術の実用化に従事。
横井 直明(よこい なおあき)
株式会社 日立製作所 研究開発グループ デジタルサービス研究統括本部
先端AIイノベーションセンタ メディア知能処理研究部
主任研究員
日立製作所の研究開発グループにおいて基幹システムの構成管理に関する研究、製造業を対象としたデータ分析技術の開発などに携わった後、現在は、AIが導き出した答えに対して、人間が納得できる根拠を示すための技術「XAI(eXplainable AI)」の研究に従事。