大和総研DX推進部の城石賢蔵です。
大和総研では「DIR ChatGPT(当社独自の社員向けChatGPT環境)」という生成AIサービスを社内に展開しています。DIR ChatGPTでは、Microsoft社Azureの製品を活用してセキュアなAzure OpenAI Serviceの環境を構築し、新機能や新手法の実践を進めています。
今回は「SuperRAG(注1)」という新手法を利用しChatGPTの情報検索手段としての実用性を検証した事例を紹介します。
結論として、ChatGPTは文章生成だけでなく情報検索の手段としても有用であることを認識しました。なぜなら、ChatGPTを利用して複数種類の情報を対象に「要求文の目的に合致する情報であるか」という信頼度のスコアリングを行ったところ、スコアリングの段階で正答(要求文への直接の回答となる情報)が特定され、妥当な内容のスコアシートが生成されたからです。
今回検証した範囲は特定の1パターンですが、ChatGPTを情報検索手段として活用するSuperRAGに既存のRAGを超える可能性を感じました。
Azure OpenAI Serviceの社内導入を検討されている方や、Azure OpenAI Serviceの活用範囲をさらに広げたいとお考えのみなさんの参考となれば幸いです。
なお大和総研ではMicrosoft 365、Azureをはじめ、AWS、Google Cloud、Oracle Cloud Infrastructureなどのパブリッククラウドの導入に関するご相談を承っております。ぜひご用命ください。
注1:「RAG(Retrieval-Augmented Generation:検索拡張生成)」の発展型となる手法。①生成AIに追加インプットする情報量を拡大すること、②追加インプットする情報の選別にChatGPTを利用すること、の二つの特徴があります。詳しくは章「はじめに」で紹介します。
はじめに
① ChatGPT(Azure OpenAI Service)の利用環境
はじめにChatGPT(Azure OpenAI Service)の利用環境を紹介します。
先行ブログ「GPT-4 Turbo with Visionはシステム設計図のセルフチェックツールになりうるか?」と同様に今回もプライベート(閉域)ネットワーク化を施したAzure OpenAI Service環境を利用しています。Azure OpenAI Serviceをプライベートネットワーク化することのメリットについても先行ブログ「Azure OpenAI Serviceのプライベートネットワーク化と対話ログ保管運用」をご覧ください。
ユーザーインターフェースも上記先行ブログ群と同様にAzure OpenAI Studio(Azure OpenAI Service標準のWebユーザーインターフェース)を利用しています。
出所:大和総研作成
AIモデルは先行ブログ「GPT-4 OmniとメガプロンプトでARMテンプレートを生成する」と同様に「GPT-4 Omni(正式バージョン)」を利用しています。
モデル | モデルID | 説明 | 東日本リージョンへの提供 |
---|---|---|---|
GPT-4 Omni | gpt-4o 2024-05-13 | 最新の正式(GA)モデル 画像の入力に対応している GPT-4 Turbo with Visionよりも英語以外の言語のパフォーマンスが向上している 画像認識機能の拡張(Azure AI Visionとの連携)に対応していない |
○ |
出所:Microsoft「Azure OpenAI Service モデル - Azure OpenAI | Microsoft Learn」を基に大和総研作成
② AzureにおけるRAGの実践の例
RAG(Retrieval-Augmented Generation:検索拡張生成)とは、自社に蓄積された大量の業務文書・規定などの社内情報、外部の最新情報を活用する手段として、信頼できるデータを検索して情報を抽出し、それに基づいて大規模言語モデル(LLM)に回答させる方法のことです。RAGについての詳細の説明は、下記用語解説サイトをご参照ください。
生成AIのビジネス活用で注目されるRAG(検索拡張生成)とは? - 仕組みや活用例、精度向上のノウハウなどを紹介 - WOR(L)D ワード|大和総研の用語解説サイト
RAGでは、生成AIの学習データに不足している情報を補うために、外部の情報源から情報を取得して追加インプットを行います。不足情報を追加インプットするという方法は先行ブログ「GPT-4 OmniとメガプロンプトでARMテンプレートを生成する」で紹介したメガプロンプトの手法と共通しています。追加でインプットする情報の検索と選別を専用の検索機能により自動実行することがRAGの特徴です。
より具体的に説明すると、上で紹介したメガプロンプトの事例では、目的とするデータの生成のための必要情報が全て格納された追加インプットデータ(メガプロンプト)を手作業で作成しました。一方RAGでは専用の検索機能を実装して追加インプットデータの検索と抽出を自動化します。この検索機能を実現する手段として、AzureではAzure AI Searchというサービスが提供されています。
DIR ChatGPTではAzure OpenAI Serviceのon your dataという機能を利用してRAGの実行環境を構築しました。図2をご覧ください。
現時点では環境構築の第1フェーズとして、Azure OpenAI ServiceからAzure Blob Storageまでの各サービスを直接接続して運用しています。環境構築の第2フェーズとして、サービス間のデータの連携を制御するカスタムアプリケーションを作成配置することを構想しています。
以下は補足情報ですが、追加導入したAzure AI SearchおよびAzure Blob Storage(追加インプットデータの情報源となるデータを保管するためのクラウドストレージサービス)に先行ブログ「Azure OpenAI Serviceのプライベートネットワーク化と対話ログ保管運用」で紹介したセキュリティ対策を施し、セキュアに利用しています。また、各サービスにon your data機能固有のセキュリティ対策を施し、Azure OpenAI ServiceからAzure Blob Storageまでの接続経路のセキュリティを確保しています。
出所:大和総研作成
③ SuperRAGの特長:文意と文脈に基づく情報検索
SuperRAGはMicrosoftが提唱するRAGの新たな手法です。次の「Microsoftコミュニティハブ – Azure AIサービスブログ」の記事の中で基本概念が紹介されています。
この手法には次の二つの特徴があります。
- 生成AIに追加インプットする情報の量を大幅に拡大すること
(上のMicrosoftのSuperRAGの公開情報では「細分化された文章」から「文書」に拡大している) - 生成AIに追加インプットする情報を「要求文の意図や目的(intent)」に基づいて選別すること
RAGとSuperRAGの情報検索方法の違いをまとめると表2の通りです。
手法 | 利用するサービスと機能 | 情報の処理単位 | 情報の選別基準 |
---|---|---|---|
RAG | Azure AI Search ・キーワード検索 ・ベクトル検索 ・ハイブリッド検索 |
文章 (情報源となる情報を文章のレベルに分割したもの。RAGの活用シーンでは「chunk:チャンク」と呼ばれる) |
要求文に含まれる単語と同一、もしくは類似する意味を持つ単語が含まれていること (単語の同一性・類似性に基づく選別) |
SuperRAG | Azure OpenAI Servic ・GPT-4 Omni など |
文書 (情報源が文書の場合、チャンク分割を行わず文書の全文をインプットする) |
「要求文への直接の回答」となる内容が含まれていること (文意・文脈に基づく選別) |
出所:大和総研作成
情報検索方法の違いについて以下に補足します。
Azure AI Searchを利用する既存方式のRAGでは、検索にあたり情報源となる情報(文書など)をチャンクに分割します。そして各チャンクに対して、単語の同一性や類似性に基づくランク付けをし、生成AIに追加インプットするチャンクを選抜します。Microsoftによると、現時点ではキーワード検索とベクトル検索の長所を組み合わせたハイブリッド検索が最も精度が高いとされています。
一方、SuperRAGでは情報検索にChatGPTを利用し、対象とする情報の全体を視野に入れて文意と文脈に基づく精査を行います。具体的には、まず要求文の文意(意図・目的)を把握します。そして、使用している単語の類似度が高い文章を機械的に抽出するのではなく、文脈を読み解いて要求文への直接の回答となりうる文章を特定します。
以上より、SuperRAGは既存のRAGよりも高精度な情報検索を実現できるとMicrosoftは述べています。2章3節で紹介したMicrosoftのSuperRAGの公開情報の中で「(SuperRAGは)ベクトル検索よりも強力である(More powerful than a vector store!)」という見解が示されています。
このSuperRAGの思想はRAGを実践している立場から見て納得のいくものです。そこで実証実験の第1フェーズとして、ChatGPTによる「情報の信頼度スコアリング」を試みました。結果を次章で紹介します。
SuperRAGの基本概念の実証:ChatGPTによる文章および文書の信頼度スコアリング
ChatGPTによる「情報の信頼度スコアリング」の検証結果を本章で紹介します。
はじめに前提条件の説明をします。
- 「信頼度」の定義
本章では「信頼度」という語を「対象の情報が要求文への回答になっていること(要求に対する適合度)」の指標として使用します(2章3節で紹介したMicrosoftのSuperRAGの公開情報用いられていた「confidence」という語をそのまま引用しています)。 - 検証パターン
2章3節で紹介したMicrosoftのSuperRAGの公開情報にならい、対象とする情報のサイズに基づいて「文章レベル」と「文書レベル」の2パターンを設定しています。 - ChatGPT(GPT-4 Omni)の利用方法
ChatGPTでは要求文の送信時に「temperature」「top_p」などの追加パラメータを指定することができます。詳しく先行ブログ「GPT-4 Turbo with VisionはAzureサービス構成図からARMテンプレートを生成できるか?」をご覧ください。今回も先行事例と同様に有意な値はセットせず、既定値のままとしています。また、今回の検証でも同一内容の要求文を複数回(最低でも3回)送信し、同内容の応答文が返却されることを確認しています。
① 文章レベルの情報の信頼度スコアリング
2章3節で紹介したMicrosoftのSuperRAGの公開情報にならい、まず文章レベルのサイズの情報を対象に信頼度のスコアリングを行いました。
具体的手順としては、大和総研で実際に運用されている社内ルールに基づいて「質問文」を設定し、質問文への回答となりうる情報を社内文書から選出して「回答文の候補」として取りまとめました。そしてスコアシートのフォーマットを具体的に指示して、ChatGPTにスコアシートの生成を指示しました。
実際のインプットデータは表3の通りです。
なお「回答文の候補」の内容は今回の検証にあたり改変を加えたもので、大和総研の社内規程の内容を直接的に表現するものではありません。
セクション | 内容 |
---|---|
システムプロンプト (AIへの要求事項) |
質問に対して日本語で回答してください |
要求文 | - 以下に「質問文」と「回答文の候補」を提供します。あなたの目標は「回答文の候補」のうちどれが「質問文」に対して適切であるかを判定することです。 - 次のフォーマットの JSON 形式で、各候補の「信頼度(confidence)スコア(テキストが質問に答えているという確信度)」を回答してください。 - "id" : 「回答文の候補」の 「ID」 をセットしてください - "confidence" : 「回答文の候補」 の「信頼度スコア」をセットしてください - "reason" : 「信頼度スコア」の根拠の説明をセットしてください - 各「回答文の候補」には「ID」と「テキスト」がコロンで区切られてセットされています。 - 質問文 有給休暇は最長何日間取得できますか。 - 回答文の候補 1:有給休暇を利用する長期休暇のうち、「通常連続休暇」は土日祝日を含めて最低連続7日間、最長連続12日間取得できる。 2:有給休暇を利用する長期休暇のうち、「特別連続休暇A」は土日祝日を含めて連続5日間まで取得できる。 3:有給休暇を利用する長期休暇のうち、「特別連続休暇B」は土日祝日を含めて連続14日間まで取得できる。ただしこれは、「通常連続休暇」と「特別連続休暇A」を連続取得する場合に限られる。 4:入社40年目に達した社員は、当該年度中に最長6日間の「長期勤続慰労休暇」を取得できる。これは通常の有給休暇とは別に取得できる。 5:社用により連続15日以上出張した社員は、帰着後1週間以内に5日以内の「出張休暇」を取得できる。これは通常の有給休暇とは別に取得できる。 |
出所:大和総研作成
生成されたスコアシートは表4の通りです。
ID | 回答文の候補の内容 | 信頼度スコア | 信頼度スコアの根拠 |
---|---|---|---|
1 | 有給休暇を利用する長期休暇のうち、「通常連続休暇」は土日祝日を含めて最低連続7日間、最長連続12日間取得できる。 | 0.7 | この回答は「有給休暇は最長何日間取得できますか」という質問に対して、具体的な日数を示しており、最長連続12日間取得できると述べているため、質問に対する適切な回答である可能性があります。しかし、他の回答文の候補と比較すると、完全に明確でない部分が残ります。 |
2 | 有給休暇を利用する長期休暇のうち、「特別連続休暇A」は土日祝日を含めて連続5日間まで取得できる。 | 0.4 | この回答は特定の条件下での有給休暇の日数を示していますが、質問に対する最長日数には明確に答えていません。そのため、信頼度は低めです。 |
3 | 有給休暇を利用する長期休暇のうち、「特別連続休暇B」は土日祝日を含めて連続14日間まで取得できる。ただしこれは、「通常連続休暇」と「特別連続休暇A」を連続取得する場合に限られる。 | 0.8 | この回答は「有給休暇は最長何日間取得できますか」という質問に対して、最も長い日数(連続14日間)を示しており、質問に対する適切な回答として高い信頼度を持っています。ただし、特別な条件が付いているため、完全に明確ではない部分があります。 |
4 | 入社40年目に達した社員は、当該年度中に最長6日間の「長期勤続慰労休暇」を取得できる。これは通常の有給休暇とは別に取得できる。 | 0.3 | この回答は特定の条件(入社40年目)でのみ取得できる休暇について述べており、一般的な有給休暇の最長日数には答えていません。そのため、信頼度は低いです。 |
5 | 社用により連続15日以上出張した社員は、帰着後1週間以内に5日以内の「出張休暇」を取得できる。これは通常の有給休暇とは別に取得できる。 | 0.2 | この回答は特定の条件(連続15日以上の出張)で取得できる休暇について述べており、一般的な有給休暇の最長日数には答えていません。そのため、信頼度は非常に低いです。 |
出所:大和総研作成(JSON形式で返却されたデータを表形式に整形して掲載)
検証者はこのスコアシートを表5の通り評価しました。
項目 | 内容 |
---|---|
プラス評価点 | ・検証者が正答と定めていた「ID:3」に最高スコアがセットされている。よって、検証者の期待通りの結果である ・全ての「回答文の候補」の内容を理解した上で、各候補の内容を相対的に評価し信頼度をセットしている(「信頼度スコアの根拠」からそのように読み取れる) ・「信頼度スコア」の値および「信頼度スコアの根拠」の内容は検証者の観点から妥当である(検証者が疑問を抱く点がない) |
マイナス評価点 | なし |
出所:大和総研作成
以下はChatGPTの情報処理の過程についての考察結果です。
「信頼度スコアの値」および「信頼度スコアの根拠」から、ChatGPTは今回のケースにおいて次の2点の基準でスコアリングを行っているものと解釈しました。
項目 | 内容 | |
---|---|---|
1 | 質問文に掲げられた「取得可能な最長日数」に対する直接的な回答になっているか? | 「回答文の候補」内に掲げられた「最長取得可能日数」の値に基づいて相対的なスコアリングがなされている |
2 | 特別な条件が設定されていないか? | 「ID:4」「ID:5」のように「取得に際しての特別な条件」が明記されている候補については、それ以外の候補より一段低いスコアがセットされている |
出所:大和総研作成
生成されたスコアシートは妥当と言える内容のものであったため、最終確認として、全ての「回答文の候補」の内容を総合して回答文を生成することを指示しました。スコアリング結果の通り、信頼度スコアが最も高かった「ID:3」に基づく回答文が生成されました。
セクション | 内容 |
---|---|
システムプロンプト (AIへの要求事項) |
質問に対して日本語で回答してください。 |
要求文 | 質問に対して日本語で回答してください。 - 以下に「質問文」と「回答文の候補」を提供します。「回答文の候補」の内容を総合して「質問文」に対する回答を生成してください。 - 質問文 有給休暇は最長何日間取得できますか。 - 回答文の候補 [以下、表3と同一内容であるため掲載を省略] |
応答文 | 質問文に対する回答は以下のようになります 有給休暇は最長連続14日間まで取得できます。ただし、これは「通常連続休暇」と「特別連続休暇A」を連続して取得する場合に限られます。 |
出所:大和総研作成
② 文書レベルの情報の信頼度スコアリング
続いて、文書レベルのサイズの情報を対象とする信頼度スコアリングを行いました。
今回設定した質問文の内容に基づき、大和総研の社内文書から表8の通り文書を選出してテストデータとしました。
なお、今回の検証にあたりこれらの文書の内容にも改変を加えています。
文書の種類 | 格納する情報 | データサイズ | |
---|---|---|---|
1 | 社員向けマニュアル | ・通常連続休暇(ID:1)に関する記述 ・特別連続休暇A(ID:2)に関する記述 ・特別連続休暇B(ID:3)に関する記述 ・その他、社員の勤務ルールに関する記述 |
7,000トークン |
2 | 就業に関する社内規程 | ・長期勤続慰労休暇(ID:4)に関する記述 ・出張休暇(ID:5)に関する記述 ・その他、社員の就業規則に関する記述 |
5,000トークン |
3 | 防災に関する社内規程 | ・防災管理に関する記述 ※休暇に関わる記述なし |
2,000トークン |
出所:大和総研作成
前節の検証で使用した「回答文の候補」を含む文書と含まない文書の2種類を選出しています。列「格納する情報」で使用している「ID」は、前節の検証において「回答文の候補」の識別のために付与したものです。
実際のインプットデータは図3の通りです。
出所:大和総研作成
生成されたスコアシートは表9の通りです。
ID | 文書の種類 | 信頼度スコア | 信頼度スコアの根拠 |
---|---|---|---|
1 | 社員向けマニュアル | 0.8 | 「社員向けマニュアル」には、年次有給休暇に関する情報が含まれており、連続して取得できる日数についても記載されています。具体的には、通常の連続休暇は最長12日間、特別連続休暇Bは最長14日間取得できることが明記されています。この情報は質問に対して直接的に関連しています。 |
2 | 就業に関する社内規程 | 0.6 | 「就業に関する社内規程」には、年次有給休暇の取得についての記載がありますが、具体的な最長日数の情報は提供されていません。年次有給休暇の取得条件や手続きについては詳細に述べられていますが、質問に対する直接的な回答は不明確です。 |
3 | 防災に関する社内規程 | 0.1 | 「防災に関する社内規程」は防災対策や災害時の行動についての内容が中心であり、有給休暇に関する情報は一切含まれていません。このため、質問に対して適切な回答を提供することはできません。 |
出所:大和総研作成(JSON形式で返却されたデータを表形式に整形して掲載)
文書レベルの情報の信頼度スコアシートも文章レベルのそれと同様に妥当と言える内容のものでした。5,000トークンを超えるサイズの文書データについても文脈を正しく読み解き、質問文への直接の回答の有無を特定できています。
なお細かい点について補足すると、「就業に関する社内規程(ID:2)」では今回の検証でピックアップした5種の休暇以外の休暇についても記述しており、それぞれの「取得可能な最長日数」も明記しています。しかし、「具体的な最長日数の情報は提供されていません。」という評価が下されています。これは、各休暇の最長日数が「インプットした全ての文書(の情報)を通じての『最長日数』ではなかった」ことによるものと推測しています。
信頼度スコアリングの段階で既に質問文への直接の回答が示されていますが、SuperRAGの実際の情報処理の工程にのっとり、信頼度スコアの高い「文書 ID:1」「文章 ID:2」をインプットデータとして回答文の生成を指示しました。
セクション | 内容 |
---|---|
システムプロンプト (AIへの要求事項) |
質問に対して日本語で回答してください。 |
要求文 | -以下に「質問文」と「ドキュメント」を提供します。「ドキュメント」の内容を総合して「質問文」に対する回答を生成してください。 - 回答の根拠としたドキュメントの「ID」と「タイトル」を示してください。また、根拠とした文章を箇条書きで転記してください。 - 各「ドキュメント」には「ID」と「タイトル」がコロンで区切られてセットされています。 - 質問文 有給休暇は最長何日間取得できますか。 - ドキュメント 1:社員向けマニュアル [マークダウン形式のテキストデータをセット。長文のため掲載を割愛] 2:就業に関する社内規程 [マークダウン形式のテキストデータをセット。長文のため掲載を割愛] |
応答文 | 有給休暇の取得可能な最長日数について、以下の情報を元に回答します。 質問文 有給休暇は最長何日間取得できますか。 回答 有給休暇の最長取得日数は、通常連続休暇の場合で土日祝日を含めて最大12日間です。また、特別連続休暇を併用する場合は、最長で14日間まで取得できます。 根拠としたドキュメント ID: 1, タイトル: 社員向けマニュアル ID: 2, タイトル: 就業に関する社内規程 根拠とした文章 ID: 1, タイトル: 社員向けマニュアル ・「有給休暇を利用して下記の連続休暇を取得することができます。」 ・「「通常連続休暇」は土日祝日を含めて最低連続7日間、最長連続12日間取得できます。」 ・「「特別連続休暇A」は土日祝日を含めて連続5日間まで取得できます。」 ・「「特別連続休暇B」は土日祝日を含めて連続14日間まで取得できます。ただしこれは、「通常連続休暇」と「特別連続休暇A」を連続取得する場合に限られます。」 ID: 2, タイトル: 就業に関する社内規程 ・該当する情報は記載されていません。 |
出所:大和総研作成
生成された回答文は妥当と言える内容のものでした。補足情報(「根拠としたドキュメント」、「根拠とした文章」)にも疑問を抱く点はありませんでした。
なお、文書(レベルの情報)をインプットデータとする文章生成には注意点があります。
今回は5,000トークン以上のサイズの文書データを複数件ChatGPTに追加インプットしましたが、文章生成を繰り返し実行する中で生成結果に「ゆらぎ」が生じることがありました。これは、文書の中に複数の解釈が可能な文章(あいまいさの残る記述)などが存在していたためと判断しています。
次章「SuperRAGの運用上の注意」でも紹介しますが、文書をインプットデータとする文章生成において回答精度を保証する(つまり、同一内容の要求文に対して常に同一内容の応答文が生成されるようにする)ためには、文書の内容の正確性を保証する必要があると認識しています。
③ 総評
今回のChatGPTによる情報の信頼度スコアリングでは、「文章レベル」「文書レベル」の2パターンともに妥当と言える結果が得られました。生成されたスコアシートは両パターンで整合しており、検証者が疑問を抱く点はありませんでした。また、両パターンともに、信頼度スコアリングの段階で正答を特定できていたことに驚きました。
最終ステップである「文書サイズの情報に基づく回答文の生成」の結果も妥当と言えるものでした。また、「根拠としたドキュメント」と「根拠とした文章」の内容にも誤りはありませんでした。
今回行った検証は特定の1パターンですが、今回の結果を見る限り、ChatGPTは文意と文脈に基づく高精度な情報検索を実現する力があると感じました。
総評として、ChatGPTを情報検索手段として使うSuperRAGに既存のRAGを超える可能性を感じています。
SuperRAGの運用上の注意
SuperRAGを本格的に運用するにあたり注意したい点が二つあります。
① 利用トークン数・サービス利用料金への影響
本節の内容は先行ブログ「GPT-4 OmniとメガプロンプトでARMテンプレートを一発生成する」で紹介した「メガプロンプトの運用上の注意点」と同様です。
ChatGPTを検索手段として利用し文書レベルの情報を精査する場合、ChatGPTにインプットするデータの容量は膨大なものとなります。今回の検証では5,000トークン以上のサイズの文書を複数インプットしたため、インプットデータの総量は15,000トークンに達しました。先行ブログで紹介した「ヘクト(通常の100倍)プロンプト」の域を超え「キロ(通常の1,000倍)プロンプト」に至っています。SuperRAGの運用においてはこのサイズのデータのやり取りが恒常的に行われることになります。
そのため先行ブログ「GPT-4 OmniとメガプロンプトでARMテンプレートを一発生成する」紹介した「プロビジョニングスループットユニット(PTU:事前予約型の処理容量ユニット)」などを活用して、処理容量の事前確保と利用料金の定額化を実現することが必須であると考えています。
プロビジョニングスループットのメリットについて以下に再掲します。
- 必要十分な処理容量を持つAIモデルを安定した処理性能(スループット)で利用できる
- ユニットの容量や個数などに基づく課金体系となるため、利用トークン数に基づく従量課金制である「標準デプロイ」よりも利用料金が削減される可能性がある
次のMicrosoftの公開情報もご覧ください。
また、サービス利用料金の合理化、削減のために検索に利用するAIモデルに利用単価の低いものを選択することも有効と言えます。この点で現在注目しているのが「GPT-4 Omni mini」です。Microsoftは高い処理性能と合理的な利用料金を両立したモデルであると公表しており、情報検索の用途に適していると考えられます。東日本リージョンに早期に提供開始されることを期待しています。
② 情報源とする情報の正確性の維持
「情報源とする情報」とは、生成AIに追加インプットするデータの元となる情報を指します。今回の検証では大和総研の社内文書を情報源として利用しています。
先行ブログ「GPT-4 OmniとメガプロンプトでARMテンプレートを生成する」でも紹介した通り、追加インプットデータを使用する文章生成において回答の精度を保証する、つまり同一内容の要求文に対して常に同一内容の応答文が生成されるようにするためには、追加インプットするデータの正確性を高く保つことが必要であると認識しています。
そして、今回の事例のように自然言語で記述された文書を追加インプットデータとする場合には、情報源となる文書群においてさらなる配慮が必要になると考えています。
先行ブログ「GPT-4 OmniとメガプロンプトでARMテンプレートを生成する」で紹介したARMテンプレートの生成の事例では、追加インプットデータが「JSONの構造体」と「パラメータリスト」という仕様が明確に定義された形式言語であったため、正確性を保証することは比較的容易で、チェックツールを利用して機械的にチェックすることも可能でした。一方で、自然言語による文章の場合は正確性を保証するために、使用する単語の意味の正しさに加えて文法上の適切さや文章構造の妥当性も追求しなくてはなりません。誰が読んでも同じ解釈ができることは最低条件であると言えます。
言語の種別 | 解釈の自由度 | 生成AIのインプットとする場合の注意点 |
---|---|---|
自然言語 ・日本語など |
高い | ・「使用する単語」と「文章の構造」が適切であり、誰が読んでも同一の解釈ができること ・内容が「文脈」に沿っていること(前段の文章と内容が整合していること) (ほか多数) |
形式言語 ・プログラミング言語(JAVAなど) ・データ記述言語(JSONなど) |
低い (言語仕様が明確である) |
・記法(言語仕様)にのっとった構造になっていること ・定義されているオプション(選択肢)やパラメータの内容が適正であること (チェックツールを利用して機械的なチェックが可能) |
出所:大和総研作成
また生成AIが情報の内容把握と整理を的確に行えるようにするため、情報源全体の構成、文書の場合は文書管理体系の適切さにも配慮すべきと考えます。以下は一般論に過ぎませんが、文書を生成AIの情報源とするにあたっては文書管理の基本原則に立ち返って、文書の管理体系から各文書の記載内容までを再点検する必要があるのではないでしょうか。文書管理の要件を定めた標準規格に「ISO 9001」があります。参考情報として引用します。
-概要 | ISO 9001(品質) | ISO認証 | 日本品質保証機構(JQA)
なお、自然言語で記述された情報の点検や整理においてもChatGPTをはじめとする大規模言語モデルは有用であると考えています。この活用事例については機会を改めて紹介します。
おわりに
今回はSuperRAGを利用し、ChatGPTを情報検索手段として利用した事例を紹介しました。ChatGPTによる情報の信頼度スコアリングの結果は妥当と考えられるものであり、ChatGPTは文章生成だけでなく情報検索の手段としても有用であることを確認できました。今回検証した範囲は特定の1パターンです。今後、パターンや要求内容と追加インプット情報の種類を拡大しSuperRAGの有用性検証をさらに進めていきます。また、SuperRAGの実用化に向けた取組みも合わせて進めていきます。主要なタスクは次の通りです。
- SuperRAGの有用性の検証(要求内容と追加インプット情報の種類を拡大し検証を続行)
- SuperRAGに基づく情報処理工程を自動化するアプリケーションの設計と開発
- ChatGPTを「安定した処理性能」かつ「定額料金」で利用できるサービス利用方式の導入
- 追加インプットの情報源とする情報の再点検・再整備
並行して既存方式のRAGの実践も進めています。Azure AI Searchの進化のスピードはAzure OpenAI Serviceに引けを取りません。情報検索の方法がさらに充実し、ChatGPTのように「文意と文脈に基づく検索」ができるようになることを期待しています。
DIR ChatGPTではこれからも新機能の導入と検証を積極的に進めていきます。成果は順次エンジニアブログにて発信します。どうぞご期待ください。
(本ブログの内容は2024年8月時点のものです)
関連するソリューション
大和総研では、Azure等のパブリッククラウドを活用したChatGPT構築支援サービスを行っています。ITソリューションサービスサイトからお問い合わせください。
ChatGPT利用環境構築サービス|大和総研 (dir.co.jp)
※Microsoft 365、Power Platform、Azureは、米国 Microsoft Corporationの米国およびその他の国における登録商標または商標です。