(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-12
(45)【発行日】2025-02-20
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
G06F 16/90 20190101AFI20250213BHJP
【FI】
G06F16/90 100
(21)【出願番号】P 2024116002
(22)【出願日】2024-07-19
【審査請求日】2024-07-19
(31)【優先権主張番号】P 2023120201
(32)【優先日】2023-07-24
(33)【優先権主張国・地域又は機関】JP
【早期審査対象出願】
(73)【特許権者】
【識別番号】510058391
【氏名又は名称】株式会社調和技研
(74)【代理人】
【識別番号】100140936
【氏名又は名称】高橋 功一
(72)【発明者】
【氏名】▲高▼松 一樹
(72)【発明者】
【氏名】島田 敦子
【審査官】松尾 真人
(56)【参考文献】
【文献】特開2023-011524(JP,A)
【文献】中国特許出願公開第116414990(CN,A)
【文献】米国特許第11516158(US,B1)
【文献】特開2022-180282(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/20-40/58
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
大規模言語モデルに入力された質問データに対する回答データを前記大規模言語モデルから取得することが可能な情報処理装置であって、
前記大規模言語モデルにおいて所定の文字列に関する知識が一定の基準に到達しているか否かを示す判定情報と当該文字列と当該文字列の説明情報とを関連付けて保持するデータベースにおいて、前記質問データに含まれる文字列のうちから、前記基準に到達していない判定情報が関連付けられている第1文字列を抽出する抽出部と、
前記第1文字列と前記第1文字列に関連付けられている前記説明情報とを前記質問データに含めた入力データを前記大規模言語モデルに入力して当該質問データに対する回答データを前記大規模言語モデルから取得する制御部と
を備える情報処理装置。
【請求項2】
前記データベースは、複数の前記文字列間の関係性をツリー構造で示す階層構造情報を前記文字列毎に関連付けて保持し、
前記抽出部は、前記ツリー構造において、前記第1文字列を基準として、前記第1文字列から上層側に連結されている文字列のうちから、前記基準に到達していない判定情報が関連付けられている1又は複数の第2文字列を抽出し、
前記制御部は、前記第1文字列及び前記第2文字列と、前記第1文字列及び前記第2文字列のそれぞれに関連付けられている前記説明情報とを前記入力データに含める
請求項1に記載の情報処理装置。
【請求項3】
前記文字列は、特定分野において使用される用語であり、
前記ツリー構造は、前記特定分野における抽象を上層とし、具象を下層とするツリー構造であり、
前記抽出部は、前記ツリー構造において、前記第1文字列が属する上層側の文字列のうちから前記第2文字列を抽出す
る
請求項2に記載の情報処理装置。
【請求項4】
前記抽出部は、前記特定分野において使用される特定情報を保持する特定情報データベースにおいて、前記質問データに含まれる文字列に関連する前記特定情報を抽出し、
前記制御部は、前記第1文字列と、前記第1文字列に関連付けられている前記説明情報と、前記第1文字列に関連する前記特定情報とを前記入力データに含める
請求項3に記載の情報処理装置。
【請求項5】
判定対象となる前記文字列である判定対象文字列の説明情報に対する質問を作成する旨の第1質問データを前記大規模言語モデルに入力して当該第1質問データに対する回答データに含まれる質問を前記大規模言語モデルから取得し、前記質問に対して回答する旨の第2質問データを前記大規模言語モデルに入力して当該第2質問データに対する回答データを前記大規模言語モデルから取得し、当該回答データに含まれる回答結果に基づいて前記判定対象文字列の判定情報を設定する判定情報設定部をさらに備える
請求項1に記載の情報処理装置。
【請求項6】
前記判定情報設定部は、前記判定対象文字列の説明情報に対して肯定又は否定の何れかで回答可能な質問を複数作成する旨の前記第1質問データを前記大規模言語モデルに入力して当該第1質問データに対する回答データを前記大規模言語モデルから取得し、当該回答データに含まれる複数の質問に対して肯定又は否定の何れかで回答する旨の前記第2質問データを前記大規模言語モデルに入力して当該第2質問データに対する回答データを前記大規模言語モデルから取得し、当該回答データに含まれる回答結果に基づいて前記判定対象文字列の判定情報を設定する
請求項5に記載の情報処理装置。
【請求項7】
前記特定分野において使用される特定情報に含まれる用語の抽出と用語間の関係性を示すグラフ情報の生成とを指示する第3質問データを前記大規模言語モデルに入力して当該第3質問データに対する回答データを前記大規模言語モデルから取得し、当該回答データに含まれる用語に対する説明を生成する旨の第4質問データを前記大規模言語モデルに入力して当該第4質問データに対する回答データを前記大規模言語モデルから取得し、前記第4質問データに対する回答データに含まれる用語に対する説明を用いて前記データベースにおける前記説明情報を設定する設定部をさらに備える
請求項3に記載の情報処理装置。
【請求項8】
前記特定分野において使用される特定情報に含まれる用語の抽出と用語間の関係性を示すグラフ情報の生成とを指示する第3質問データを前記大規模言語モデルに入力して当該第3質問データに対する回答データを前記大規模言語モデルから取得し、当該回答データに含まれる用語及びグラフ情報に基づいて前記ツリー構造を設定する設定部をさらに備える
請求項3に記載の情報処理装置。
【請求項9】
大規模言語モデルに入力された質問データに対する回答データを前記大規模言語モデルから取得することが可能な情報処理方法であって、
コンピュータが、前記大規模言語モデルにおいて所定の文字列に関する知識が一定の基準に到達しているか否かを示す判定情報と当該文字列と当該文字列の説明情報とを関連付けて保持するデータベースにおいて、前記質問データに含まれる文字列のうちから、前記基準に到達していない判定情報が関連付けられている第1文字列を抽出する抽出処理と、
コンピュータが、前記第1文字列と前記第1文字列に関連付けられている前記説明情報とを前記質問データに含めた入力データを前記大規模言語モデルに入力して当該質問データに対する回答データを前記大規模言語モデルから取得する制御処理と
を含む情報処理方法。
【請求項10】
大規模言語モデルに入力された質問データに対する回答データを前記大規模言語モデルから取得することが可能なコンピュータに実行させるプログラムであって、
前記大規模言語モデルにおいて所定の文字列に関する知識が一定の基準に到達しているか否かを示す判定情報と当該文字列と当該文字列の説明情報とを関連付けて保持するデータベースにおいて、前記質問データに含まれる文字列のうちから、前記基準に到達していない判定情報が関連付けられている第1文字列を抽出する抽出手順と、
前記第1文字列と前記第1文字列に関連付けられている前記説明情報とを前記質問データに含めた入力データを前記大規模言語モデルに入力して当該質問データに対する回答データ前記大規模言語モデルからを取得する制御手順と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、機械学習の技術の進歩は著しく、大量の情報を用いて汎用的に学習して生成されたいわゆる大規模言語モデル(Large Language Models)を用いて、ユーザの問い合わせに対する回答を生成するようなサービス等も提供され始めている(例えば、非特許文献1)。
【先行技術文献】
【非特許文献】
【0003】
【文献】「Natural Language Commanding via Program Synthesis」、[online]、[令和5年7月4日検索]、インターネット(URL: https://arxiv.org/abs/2306.03460)
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述した従来技術では、大規模言語モデルを利用して質問データに対する回答データを取得することが可能である。しかし、大規模言語モデルは、汎用的な学習データにより学習を行ったモデルであるため、いわゆる社内用語や専門用語、最新の用語等は未学習であることが多い。そのため、問い合わせの中に未知の単語や用語等が含まれていると極端に回答の精度が劣化するおそれもある。
【0005】
本発明は、大規模言語モデルを利用して質問データに対する回答データを取得する場合に、その回答データの質を高めることを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様は、大規模言語モデルに入力された質問データに対する回答データを前記大規模言語モデルから取得することが可能な情報処理装置であって、前記大規模言語モデルにおいて所定の文字列に関する知識が一定の基準に到達しているか否かを示す判定情報と当該文字列と当該文字列の説明情報とを関連付けて保持するデータベースにおいて、前記質問データに含まれる文字列のうちから、前記基準に到達していない判定情報が関連付けられている第1文字列を抽出する抽出部と、前記第1文字列と前記第1文字列に関連付けられている前記説明情報とを前記質問データに含めた入力データを前記大規模言語モデルに入力して当該質問データに対する回答データを前記大規模言語モデルから取得する制御部とを備える情報処理装置、その各処理を含む情報処理方法、及び、その各処理をコンピュータに実行させるプログラムである。
【発明の効果】
【0007】
本発明によれば、大規模言語モデルを利用して質問データに対する回答データを取得する場合に、その回答データの質を高めることができる。
【図面の簡単な説明】
【0008】
【
図1】本発明の一実施形態に係る情報処理システムの構成の一例を示す図である。
【
図2】本発明の一実施形態に係る情報処理システムを構成する管理サーバのハードウェア構成の一例を示す図である。
【
図3】本発明の一実施形態に係る情報処理システムを構成する管理サーバ、ユーザ端末、言語モデルサーバの機能的構成の一例を示す図である。
【
図4】本発明の一実施形態に係る情報処理システムにかかる事前知識の内容の一例を説明するためのイメージ図である。
【
図5】本発明の一実施形態に係る情報処理システムにかかる事前知識の階層化構造の一例を説明するためのイメージ図である。
【
図6】本発明の一実施形態に係る情報処理システムを構成するユーザ端末に表示される画像の一例を示す図である。
【
図7】本発明の一実施形態に係る情報処理システムを構成する管理サーバに表示される画像の一例を示す図である。
【
図8】本発明の一実施形態に係る情報処理システムを構成するユーザ端末に表示される画像の一例であり、
図6の例とは異なる例を示す図である。
【
図9】本発明の一実施形態に係る情報処理システムを構成する管理サーバにおいて、事前知識の確認時に実行される各種処理の流れの一例を示す図である。
【
図10】本発明の一実施形態に係る情報処理システムを構成する管理サーバ、ユーザ端末、言語モデルサーバにおいて、問い合わせ又はリクエスト時に実行される各種処理の流れの一例を示す図である。
【
図11】業務知識DB及び事前知識DBの構成例を示す図である。
【
図12】LLMが既知か未知かを判定する判定例を示す図である。
【
図13】LLMが既知か未知かを判定する判定例を示す図である。
【
図14】既知未知判定処理の一例を示すフローチャートである。
【
図15】用語集の各用語に関するナレッジグラフを作成する流れを示す図である。
【
図16】用語集の各用語に関するナレッジグラフを作成する流れを示す図である。
【
図17】ナレッジグラフを表示する場合の表示例を示す図である。
【
図18】用語集の各用語に関するナレッジグラフを作成する流れを示す図である。
【
図19】用語集の各用語に関するナレッジグラフを作成する流れを示す図である。
【
図20】ナレッジグラフを表示する場合の表示例を示す図である。
【
図21】事前知識生成処理の一例を示すフローチャートである。
【
図22】質問に対する回答を出力する場合の例を示す図である。
【発明を実施するための形態】
【0009】
以下、添付図面を参照しながら本発明の実施形態について説明する。
【0010】
[情報処理システムの構成例]
図1は、本発明の一実施形態に係る情報処理システムの構成の一例を示す図である。
【0011】
図1に示す情報処理システムは、管理サーバ1と、ユーザ端末2と、言語モデルサーバ3とを含み構成される。管理サーバ1と、ユーザ端末2と、言語モデルサーバ3とは、インターネット等の所定のネットワークNを介して相互に接続されている。なお、ネットワークNは必須の構成要素ではないし、例えば、NFC(Near Field Communication)、ブルートゥース(登録商標)、LAN(Local Area Network)等が利用されてもよい。
【0012】
管理サーバ1は、汎用的なPC(Personal Computer)等により構成され、本システムの管理者等により管理される。管理サーバ1は、例えば、ユーザからの問い合わせ又はリクエストに関する情報を取得し、言語モデルサーバ3に対して、回答の生成に必要となる各種情報を送信する。また、管理サーバ1は、言語モデルサーバ3から送信されてきた問い合わせ又はリクエストに対する回答に関する情報を取得し、その情報をユーザ端末2へ送信する。
【0013】
ユーザ端末2は、汎用的なPCやスマートフォン等により構成され、本システムの適用対象となるサービスの提供を希望するユーザにより使用される。ユーザ端末2は、例えば、ユーザにより入力された問い合わせ又はリクエストに関する情報を管理サーバ1へ送信する。また、ユーザ端末2は、管理サーバ1から送信されてきた問い合わせ又はリクエストに対する回答に関する情報を取得し、その情報を出力部130(
図3参照)等に表示する。
【0014】
言語モデルサーバ3は、各種大規模言語モデルの管理者等により管理される。
【0015】
ここで、大規模言語モデルとは、様々な分野や言語にわたる大量の情報により学習された学習済みモデルであり、典型的には、GPT(Generative Pre-Trained Transformer)(例えば、GPT-3.5、GPT-4、GPT-4 Turbo、GPT-4o(Omni))、BERT(Bidirectional Encoder Representations from Transformers)、Transformer-XL等が含まれる。なお、ここで言う大規模言語モデルの例は、あくまでも例示であり、今後も開発され、利用され得る各種言語モデルが広く含まれるものとする。
【0016】
<ハードウェア構成>
図2は、本発明の一実施形態に係る情報処理システムの管理サーバを構成するハードウェア構成の一例を示す図である。
【0017】
図2に示すように、管理サーバ1は、制御部11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、バス14と、入出力インターフェース15と、出力部16と、入力部17と、記憶部18と、通信部19と、ドライブ20と、を備えている。
【0018】
制御部11は、CPU(Central Processing Unit)やGPU(Graphics Processing Unit)、及び半導体メモリを含むマイクロコンピュータ等で構成され、ROM12に記録されているプログラム、または、記憶部18からRAM13にロードされたプログラムに従って各種の処理を実行する。
【0019】
RAM13には、制御部11が各種の処理を実行する上において必要な情報等も適宜記憶される。
【0020】
制御部11、ROM12およびRAM13は、バス14を介して相互に接続されている。このバス14にはまた、入出力インターフェース15も接続されている。入出力インターフェース15には、出力部16、入力部17、記憶部18、通信部19、ドライブ20が接続されている。
【0021】
出力部16は、各種液晶ディスプレイやスピーカ等で構成され、各種情報を画像や音声として出力する。
【0022】
入力部17は、キーボードやマウス等で構成され、各種情報を入力する。
【0023】
記憶部18は、HDD(Hard Disk Drive)やSSD(Solid State Drive)等で構成され、各種データを記憶する。本実施形態では、例えば、各種プログラムや各種データベースを含む各種情報が記憶されている。
【0024】
通信部19は、インターネットを含むネットワークNを介して他の装置との間で行う通信を制御する。
【0025】
ドライブ20は、必要に応じて設けられる。ドライブ20には磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等よりなる、リムーバブルメディア31が適宜装着される。ドライブ20によってリムーバブルメディア31から読み出されたプログラムは、必要に応じて記憶部18にインストールされる。またリムーバブルメディア31は、記憶部18に記憶されている各種データも、記憶部18と同様に記憶することができる。
【0026】
なお、ユーザ端末2及び言語モデルサーバ3のハードウェア構成は、上述の管理サーバ1のハードウェア構成と基本的に同様とすることができるので説明を省略する。
【0027】
図3は、本発明の一実施形態に係る情報処理システムを構成する管理サーバ、ユーザ端末、言語モデルサーバの機能的構成の一例を示す図である。
【0028】
図3に示すように、管理サーバ1の制御部11では、各種プログラム等を実行することにより、入力情報取得部60と、事前知識管理部61と、事前知識絞り込み部62と、提供情報生成部63と、回答情報管理部64とが機能する。
【0029】
また、記憶部18の一領域には、事前知識DB(Data Base)300が設けられている。事前知識DB300には、事前に対象の単語が所定の言語モデルにおいて既知か未知かという確認の結果と、それぞれの単語の関係性を示す情報とが合わせて格納されているものとする。なお、事前知識DB300に格納されている情報の詳細は、例えば、
図4及び
図5を参照しながら後述する。また、事前知識DB300及び業務知識DB350については、
図11を参照して詳細に説明する。
【0030】
管理サーバ1の入力情報取得部60は、問い合わせ又はリクエストに関するテキスト情報又は音声情報を取得する。
【0031】
具体的に入力情報取得部60は、ユーザ端末2から送信されてくる問い合わせ又はリクエストの内容に関する情報(以下、「入力情報」と呼ぶ)を、通信部19を介して取得する。
【0032】
管理サーバ1の事前知識管理部61は、ユーザからの問い合わせ又はリクエストの事前に確認される事前知識に関する各種処理を実行する。事前知識管理部61には、事前知識確認部80と、階層化管理部81とが設けられている。
【0033】
管理サーバ1の事前知識確認部80は、所定の言語モデルにおいて、所定の単語に関する知識が一定の基準に到達しているか否かの確認に関する情報を取得する。
【0034】
具体的に事前知識確認部80は、例えば、事前に行われる所定の単語の問い合わせ又はリクエストを行うための情報(以下、「事前知識情報」と呼ぶ)を生成し、事前知識情報を言語モデルサーバ3へ送信する。ここで、所定の単語とは、例えば、管理サーバ1の管理者等が自社のビジネスで利用する業界用語や技術用語等の任意の単語が選択される。そして、事前知識確認部80は、言語モデルサーバ3により生成された事前知識情報に対する回答に関する情報を取得し、例えば、その回答の内容が一定の基準に達している場合にはその単語を既知と判定し、一定の基準に達していない場合にはその単語を未知と判定する。
【0035】
なお、事前知識確認部80による判定の基準は、本システムの管理者等の任意であるが、例えば、「〇〇という単語について100文字程度で完結に説明してください。」という質問を行い、それに対する回答を、(その分野の知識を有する)人が評価してその結果を入力させる、要約等の内容を自動で評価するシステムを利用する等の方法で行うことができる。
【0036】
管理サーバ1の階層化管理部81は、対象となる単語のそれぞれの関係性を階層構造として保持し、その単語の確認の結果のそれぞれと、その単語のそれぞれの関係性とを合わせて管理する。
【0037】
具体的に階層化管理部81は、対象となる単語それぞれの関係性を生成する。また、階層化管理部81は、事前知識確認部80によるそれぞれの単語に対する確認の結果と、それぞれの単語の関係性を階層化して管理する。また、階層化管理部81は、管理している各種情報を、事前知識情報として、事前知識DB300に格納する。
【0038】
管理サーバ1の事前知識絞り込み部62は、入力情報取得部60で取得された入力情報及び事前知識DB300に格納されている事前知識情報の内容に基づいて、後述する提供情報の一部として言語モデルサーバ3に提供する単語の候補(以下、「提供単語候補」と呼ぶ)を決定する。また、事前知識絞り込み部62は、提供単語候補として決定した単語の上位の階層の単語を提供単語候補に追加する。
【0039】
管理サーバ1の提供情報生成部63は、事前知識絞り込み部62による絞り込みの結果や入力情報取得部60で取得された入力情報等の各種情報に基づいて、問い合わせ又はリクエストに対する回答の精度を向上させるために、管理サーバ1が言語モデルサーバ3に提供する情報(以下、「提供情報」と呼ぶ)を生成する。また、提供情報生成部63は、生成した提供情報を言語モデルサーバ3へ送信する。なお、提供情報生成部63で生成される提供情報の具体的な内容やイメージは、
図7等を参照しながら、後述する。
【0040】
管理サーバ1の回答情報管理部64は、テキスト情報又は音声情報に基づいて、問い合わせ又はリクエストに対する回答に関する情報を取得する。
【0041】
具体的に回答情報管理部64は、言語モデルサーバ3から送信されてくる問い合わせ又はリクエストに対する回答に関する情報(以下、「回答情報」と呼ぶ)を、通信部19を介して取得する。また、回答情報管理部64は、取得した回答情報を、ユーザ端末2へ送信する。
【0042】
図3に示すように、ユーザ端末2の制御部100では、各種プログラム等を実行することにより、入力情報管理部120と、回答情報管理部121とが機能する。
【0043】
ユーザ端末2の入力情報管理部120は、ユーザからの問い合わせ又はリクエストに関する入力情報を受け付ける。また、入力情報管理部120は、受け付けた入力情報を、管理サーバ1へ送信する。
【0044】
ユーザ端末2の回答情報管理部121は、管理サーバ1から送信されてきた回答情報を、通信部110を介して取得する。また、回答情報管理部121は、取得した回答情報を、ユーザ端末2の出力部130に表示する。
【0045】
図3に示すように、言語モデルサーバ3の制御部160では、各種プログラム等を実行することにより、提供情報等取得部180と、回答情報生成部181とが機能する。
【0046】
言語モデルサーバ3の提供情報等取得部180は、管理サーバ1から送信されてきた提供情報を、通信部170を介して取得する。また、提供情報等取得部180は、管理サーバ1から送信されてきた事前知識情報を、通信部170を介して取得する。
【0047】
言語モデルサーバ3の回答情報生成部181は、提供情報等取得部180で取得された提供情報に基づいて、ユーザからの問い合わせ又はリクエストに対する回答に関する情報(以下、「回答情報」と呼ぶ)を生成する。回答情報生成部181は、生成した回答情報を管理サーバ1へ送信する。
【0048】
また、回答情報生成部181は、提供情報等取得部180で取得された事前知識情報に対する回答に関する情報を生成し、その情報を管理サーバ1へ送信する。
【0049】
図4は、本発明の一実施形態に係る情報処理システムにかかる事前知識の一例を説明するためのイメージ図である。
【0050】
ここで、大規模言語モデルについて補足する。大規模言語モデルは、上述の通り、一般に汎用的な情報を用いて学習された学習済みモデルであることから、一般的な用語や単語の回答は精度の高い内容となりやすい。他方、上述の通り、社内情報、専門的な情報、最新の情報等の学習は不足しやすく、高い精度での回答が難しい。そのため、大規模言語モデルが、例えば、専門的な問い合わせ又はリクエストや最新の動向等に関する問い合わせ又はリクエストに対して高い精度で回答を行おうとすると、例えば、不足しやすい情報を大規模言語モデルに与える等の工夫が必要となる。
【0051】
図4の例では、ラビット、ラビット(3代目)、RB3-A、RB3-B、RB3-C、エコトク車、コンパクトカーという単語に関して、単語のID、区分、説明、LLM判定(言語モデルによる既知か未知かの判定結果)のそれぞれが表示されている。
【0052】
具体的に
図4の例では、ラビットが、主として社内で利用される特有の用語であり、「ラビットはA自動車が生産販売するコンパクトカーである」との説明が表示されている。
【0053】
また、
図4の例では、ラビットは、LLM判定で未知と表示されており、これは、上述の事前知識確認部80による判定により、ラビットに対する大規模言語モデルによる回答が一定の基準に達していなかった旨を示している。
【0054】
図4の例において、ラビット(3代目)は、主として社内で利用される特有の用語であり、「現行のラビットは2023年から販売を開始した。エコトク車である。」との説明が表示されている。また、
図4の例では、ラビット(3代目)は、LLM判定で未知である。
【0055】
図4の例において、RB3-Aは、主として社内で利用される特有の用語であり、「ラビット(3代目)の最上位グレードである。」との説明が表示されている。また、RB3-Aは、LLM判定で未知である。
【0056】
図4の例において、RB3-Bは、主として社内で利用される特有の用語であり、「ラビット(3代目)の中間グレードである。」との説明が表示されている。また、RB3Bは、LLM判定で未知である。
【0057】
図4の例において、RB3-Cは、主として社内で利用される特有の用語であり、「ラビット(3代目)の廉価グレードである。」との説明が表示されている。また、RB3Cは、LLM判定で未知である。
【0058】
図4の例において、エコトク車は、主として業界全体として利用される用語であり、「環境性能Sをクリアした自動車の総称。補助金率が50%である。」との説明が表示されている。また、エコトク車は、LLM判定で未知である。
【0059】
他方、
図4の例において、コンパクトカーは、主として業界全体として利用される用語であり、「乗用車の形状の1つ。明確な定義はないが、全長4、400mm級未満の小型車に用いられることが多い。」との説明が表示されている。また、コンパクトカーは、LLM判定で既知である。
【0060】
なお、ラビット、ラビット(3代目)、RB3-A、RB3-B、RB3-C、エコトク車、コンパクトカーの単語の名称や各種説明等は、本実施形態の説明のために作成した架空の内容である。実際に本システムの適用対象となる単語の名称や定義、LLM判定の結果等は本システムの管理者等の任意である。
【0061】
さらに、本システムは、このような事前知識を階層化して管理することもできる。
図5は、本発明の一実施形態に係る情報処理システムにかかる事前知識の階層化構造の一例を説明するためのイメージ図である。
【0062】
図5の例では、
図4に示したラビット313、ラビット(3代目)314、RB3-A(315)、RB3-B(316)、RB3-C(317)、エコトク車312、コンパクトカー311の各単語の関係性が構造的に表示されている。具体的には
図5に示す通り、ラビット(3代目)314は、RB3-A(315)、RB3-B(316)、RB3-C(317)の上位語に該当する。ラビット313は、ラビット(3代目)314の上位語に該当する。エコトク車312は、ラビット313の上位語に該当する。コンパクトカー311は、ラビット313の上位語に該当する。このように本システムは、各単語を階層化して管理することで、事前知識の絞り込みを行うことが可能となる。これにより、本システムは、回答に必要な範囲の事前知識のみを効率的に大規模言語モデルに送ることができる。
【0063】
続いて、
図6を参照しながら、実際にユーザがユーザ端末2を利用して問い合わせ又はリクエストを行う方法の一例を説明する。
図6は、本発明の一実施形態に係る情報処理システムを構成するユーザ端末に表示される画像の一例を示す図である。
【0064】
図6の例では、「質問の内容を入力して下さい。」という定型メッセージが表示されるとともに、ユーザにより入力された「ラビットのオーディオについてオプションには何が選べるか教えてください。」という入力メッセージが表示されている。このように、ユーザは、ユーザ端末2を利用して任意のメッセージを入力し、例えば、
図6の確定ボタン131等を押下することで、問い合わせ又はリクエストの内容を確定することができる。
【0065】
これに対して、
図7を参照しながら、このような問い合わせ又はリクエストに対して管理サーバ1で行われる具体的な処理の一例を説明する。
図7は、本発明の一実施形態に係る情報処理システムを構成する管理サーバに表示される画像の一例を示す図である。
【0066】
なお、本実施形態では、RB3-Aの仕様書の10ページ目にオプションについての記載があり、この情報により
図6に示す問い合わせ又はリクエストの内容に十分な回答を生成できる。
【0067】
図7の例では、
図6の「ラビットのオーディオについてオプションには何が選べるか教えてください。」という問い合わせ又はリクエストに対して、言語モデルサーバ3へ送る提供情報として、「#作業指示」731、「#事前知識」732、「#参照情報」733、「#問い合わせ内容」734のそれぞれに関する具体的な情報が表示されている。
【0068】
「#作業指示」731として提供される情報には、言語モデルサーバ3による回答の精度を向上させるために寄与し得る補足的な指示やユーザへの可読性を高めるための指示等が含まれる。
【0069】
具体的に
図7の例では、「以下の事前知識、製品仕様書を元に問い合わせに対して回答してください。最後に、以下の形式で、参考になったドキュメントを示してください。参考ドキュメント:<ドキュメント名>製品仕様書から、問い合わせに対応する情報が得られない場合は、「対応する情報が見つかりませんでした」と回答してください。」という指示が作業指示として表示されている。
【0070】
「#事前知識」732として提供される情報には、言語モデルサーバ3の回答の精度を向上させるために必要であり、言語モデルサーバ3が未知の単語に関する情報等が含まれる。具体的に
図7の例では、ラビット、ラビット(3代目)、RB3-A、エコトク車という単語に関する説明が事前知識として表示されている。
【0071】
重要な点は、本システムは、言語モデルサーバ3が未知のすべての単語の情報を事前知識として提供するわけではなく、提供する事前知識の絞り込みを行うことができる点である。例えば、本システムは、
図6の「ラビットのオーディオについてオプションには何が選べるか教えてください。」という問い合わせ又はリクエストに関して、ラビットという単語を事前知識として提供が必要な単語の候補として抽出する。ラビットという単語は、
図4に示す通り、言語モデルサーバ3が未知の単語である。また、本システムは、RB3-Aの仕様書にオプションについての記載があることからRB3-Aという単語を事前知識として提供が必要な単語の候補として抽出する。同様にRB3-Aという単語は、言語モデルサーバ3が未知の単語である。
【0072】
ここで、
図5に示す各単語の階層を参照すると、ラビット(3代目)314という単語はRB3-A(315)という単語の上位語である。また、エコトク車312及びコンパクトカー311という単語はラビット313という単語の上位語である。一般に、下位概念にあたる単語の意味が未知の場合、上位概念にあたる単語の意味も知らなければ正確な回答を生成することが難しいと考えられることから、本システムは、それぞれの単語の上位語であるラビット(3代目)314、エコトク車312、コンパクトカー311という単語のうち、言語モデルサーバ3が未知であるラビット(3代目)314、エコトク車312を事前知識として提供が必要な単語の候補として追加する。
【0073】
他方、RB3-B(316)及びRB3-C(317)は、ラビット313の下位概念にあたる単語であり、事前知識として提供が必要な単語の候補となる単語の何れとの関係においても上位語に当たらない。そのため、本システムは、RB3-B(316)及びRB3-C(317)の単語に関する情報を事前知識として言語モデルサーバ3に提供しない。本システムは、このような事前知識の絞り込みを行うことで、効率的に必要な情報のみを事前知識として言語モデルサーバ3に提供する。
【0074】
「#参照情報」733として提供される情報には、問い合わせ又はリクエストの内容に応じて参照するべき補足的な情報が含まれる。
図7の例では、RB3-Aの仕様書の10ページ目にオプションについての記載があることからRB3-Aの仕様書に関する情報が参照情報として提供される。
【0075】
「#問い合わせ内容」734として提供される情報には、ユーザにより入力された問い合わせ又はリクエストの内容に関する情報が含まれる。
図7の例では、
図6の「ラビットのオーディオについてオプションには何が選べるか教えてください。」という問い合わせ又はリクエストの内容が問い合わせ内容として提供される。なお、
図7に示した作業指示、事前知識、参照情報、問い合わせ内容に関する情報は、いずれも提供情報に含まれ得る。
【0076】
続いて、
図8を参照しながら、生成される回答740の内容を簡単に説明する。
図8は、本発明の一実施形態に係る情報処理システムを構成するユーザ端末に表示される画像の一例であり、
図6の例とは異なる例を示す図である。
【0077】
図8の例では、ユーザによる「ラビットのオーディオについてオプションには何が選べるか教えてください。」という問い合わせ又はリクエストの内容が表示されるとともに、その問い合わせ又はリクエストに対する回答740として、
ラビットのオーディオは、以下のオプションが利用可能です。
(1)純正ナビ A自動車 10万 4inchモニタのカーナビです。
(2)オーディオ A自動車 5万 オーディオのみのシステムです
(3)ハイグレードセット Yオーディオ 20万 Y社スピーカシステムとのセット提供です。
参考ドキュメント: RB3-A 製品仕様書 p10
という回答740が表示されている。このような回答740に関する回答情報は、言語モデルサーバ3により生成されて最終的にはユーザ端末2の出力部130に表示される。
【0078】
図9は、本発明の一実施形態に係る情報処理システムを構成する管理サーバ1において、事前知識の確認時に実行される各種処理の流れの一例を示す図である。
【0079】
ステップS1において、事前知識確認部80は、所定の単語に関する問い合わせ又はリクエストを行うための事前知識情報を生成し、事前知識情報を言語モデルサーバ3へ送信する。
【0080】
ステップS2において、事前知識確認部80は、言語モデルサーバ3により生成された事前知識情報に対する回答を取得し、その回答の内容が一定の基準に達している場合にはその単語を既知と判定し、一定の基準に達していない場合にはその単語を未知と判定する。
【0081】
ステップS3において、階層化管理部81は、対象となる単語それぞれの関係性を生成する。
【0082】
ステップS4において、階層化管理部81は、事前知識確認部80によるそれぞれの単語に対する確認の結果と、それぞれの単語の関係性を階層化して管理する。
【0083】
ステップS5において、階層化管理部81は、管理している各種情報を事前知識情報として、事前知識DB300に格納する。これにより、事前知識確認処理は終了する。
【0084】
図10は、本発明の一実施形態に係る情報処理システムを構成する管理サーバ1、ユーザ端末2、言語モデルサーバ3において、問い合わせ又はリクエスト時に実行される各種処理の流れの一例を示す図である。
【0085】
ステップS21において、ユーザ端末2の入力情報管理部120は、ユーザからの問い合わせ又はリクエストに関する入力情報を受け付ける。
【0086】
ステップS22において、ユーザ端末2の入力情報管理部120は、受け付けた入力情報を、管理サーバ1へ送信する。
【0087】
ステップS41において、管理サーバ1の入力情報取得部60は、ユーザ端末2から送信されてくる問い合わせ又はリクエストの内容に関する入力情報を、通信部19を介して取得する。
【0088】
ステップS42において、管理サーバ1の事前知識絞り込み部62は、入力情報取得部60で取得された入力情報及び事前知識DB300に格納されている事前知識情報の内容に基づいて、提供情報の一部として言語モデルサーバ3に提供する提供単語候補を決定する。
【0089】
ステップS43において、管理サーバ1の事前知識絞り込み部62は、提供単語候補として決定した単語の上位の階層の単語を提供単語候補に追加する。
【0090】
ステップS44において、管理サーバ1の提供情報生成部63は、事前知識絞り込み部62による絞り込みの結果や入力情報取得部60で取得された入力情報等の各種情報に基づいて、問い合わせ又はリクエストに対する回答の精度を向上させるために、管理サーバ1が言語モデルサーバ3に提供する提供情報を生成する。
【0091】
ステップS45において、管理サーバ1の提供情報生成部63は、生成した提供情報を言語モデルサーバ3へ送信する。
【0092】
ステップS61において、言語モデルサーバ3の提供情報等取得部180は、管理サーバ1から送信されてきた提供情報を、通信部170を介して取得する。
【0093】
ステップS62において、言語モデルサーバ3の回答情報生成部181は、提供情報等取得部180で取得された提供情報に基づいて、ユーザからの問い合わせ又はリクエストに対する回答情報を生成する。
【0094】
ステップS63において、言語モデルサーバ3の回答情報生成部181は、生成した回答情報を管理サーバ1へ送信する。
【0095】
ステップS46において、管理サーバ1の回答情報管理部64は、言語モデルサーバ3から送信されてくる問い合わせ又はリクエストに対する回答に関する回答情報を、通信部19を介して取得する。
【0096】
ステップS47において、管理サーバ1の回答情報管理部64は、取得した回答情報を、ユーザ端末2へ送信する。
【0097】
ステップS23において、ユーザ端末2の回答情報管理部121は、管理サーバ1から送信されてきた回答情報を、通信部110を介して取得する。
【0098】
ステップS24において、ユーザ端末2の回答情報管理部121は、取得した回答情報を、ユーザ端末2の出力部130に表示する。これにより、管理サーバ、ユーザ端末、言語モデルサーバにおいて、問い合わせ又はリクエスト時に実行される各種処理は終了する。
【0099】
以上本発明の一実施形態について説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【0100】
[他の実施形態]
ここで、大規模言語モデル等を用いた問い合わせ又はリクエスト対応を行う際に利用される手法について簡単に補足する。
【0101】
一般的に大規模言語モデル等による問い合わせ又はリクエスト対応では、類似検索と呼ばれる検索手法が利用される。この類似検索の手法は、いくつか存在するが、例えば、各分割されたドキュメントに対して、エンベッティングと呼ばれるベクトルの数値表現を計算し、それを検索のインデックスとして取り扱うことで検索を実行するベクトルを基準とした手法や、キーワードを基準とした、n-gram(Nグラム)、TF-IDF、BM25等の手法が知られている。本システムは、これらの類似検索の手法を含む、任意の手法を採用して、各種検索を実行することができる。
【0102】
また、上述の実施形態では説明を省略したが、問い合わせ又はリクエストとは、単に質問を意味するのではなく、要望、提言、意見等が広く含まれるものとする。具体的に例えば、音声情報の書き起こしや内容の要約の要望、議事録の作成の要望、キャッチコピーやニュースリリースの創作支援の要望、マニュアルなどの校正の要望、商品レビューの内容分析の要望等の幅広い概念も上述の問い合わせ又はリクエストの概念に含まれる。なお、この場合本システムは、例えば、ドキュメント等の検索を行わず、単に指示情報等を大規模言語モデルに送信してもよい。
【0103】
また、上述の実施形態では、大規模言語モデルが1種類のみの場合を例として説明したが、限定されない。本システムは複数種類の大規模言語モデルを利用して、本システムを提供してもよい。その場合、例えば、本システムは、それぞれの大規模言語モデルの種類ごとに事前知識を取得し、管理していてもよい。
【0104】
また、上述の実施形態(特に
図5の実施形態)において、本システムは、事前知識を階層化して管理するものとして説明したが、限定されない。本システムは、事前知識を階層化せず、例えば、ハイパーリンクのように簡易的な構造として管理してもよい。
【0105】
また、上述の実施形態において、本システムは、事前知識の管理に際して上位または下位の概念のみを用いるものとして説明したが、限定されない。本システムは、例えば、構成要素や非構成要素、属性、同族語等の単語それぞれの関係性を表現する任意の概念を用いて事前知識を管理してもよい。
【0106】
また、上述の実施形態において、本システムは自動車関連の問い合わせ又はリクエストに回答する事例を説明したが、例示であり、限定されない。本システムは、例えば、製造業、サービス業、物流、行政手続き等業界や種別等に限られず各種各様の問い合わせ又はリクエストに対応可能である。
【0107】
具体的には、例えば、本システムを以下のような態様で適用することができる。
【0108】
例えば、本システムは、広告の業界や金融業界等での適用において、クライアントとユーザ間での相互理解の補助に利用することができる。
【0109】
例えば、本システムは、薬品業界や薬局業務等での適用において、薬剤師資格のない従業員等への業務連絡等の補助に利用することができる。
【0110】
例えば、本システムは、学術領域等での適用において、科研費や補助金の申請にかかる書類の作成等を補助することができる。また、例えば、本システムは、学術領域等での適用において、ユーザの論文検索や論文作成等の補助にも利用できる。
【0111】
例えば、本システムは、税関や検疫業務等への適用において、申請内容の調査や申請書類の作成等を補助することができる。
【0112】
例えば、本システムは、行政等の領域への適用において、法案の調査や確認等を補助することができる。
【0113】
例えば、本システムは、任意の業界等での適用において、従業員間の業務の引継ぎ等を補助することができる。
【0114】
また、上述の実施形態では簡易的な説明に留めたが、本システムの効果の一つは、問い合わせ又はリクエストへの回答に必要十分な事前知識を大規模言語モデル等に提供することにより、大規模言語モデル等の有限な処理環境でも回答の質を高めることである。なお、仮に大規模言語モデル等の処理環境が比較的大きい場合であっても、本システムは、事前知識の提供により演算効率を向上させることができるため、演算の時間やコストを低下させることができる。
【0115】
また、上述の実施形態において、問い合わせ、リクエスト、回答はいずれもテキスト情報として入力又は出力されるものとして説明したが、限定されない。本システムは、音声情報として問い合わせ又はリクエストの情報を取得してもよいし、回答情報を音声情報として出力してもよい。
【0116】
また、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
【0117】
換言すると、
図3等の機能的構成は例示に過ぎず、特に限定されない。
【0118】
即ち、上述した一連の処理を全体として実行できる機能が情報処理システムに備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは
図3等の例に限定されない。また、機能ブロックの存在場所も、
図3等の例に限定されず、任意でよい。
【0119】
また、1つの機能ブロックは、ハードウェア単体で構成されてもよいし、ソフトウェア単体で構成されてもよいし、それらの組み合わせで構成されてもよい。
【0120】
また、上述の実施形態において、本システムにかかる各種ハードウェア(例えば、管理サーバ1、ユーザ端末2、言語モデルサーバ3)は単一のハードウェア装置として存在しているものとして説明したが、限定されない。本システムに関する各種ハードウェアは、複数のハードウェア装置により構成されてもよい。
【0121】
さらに言えば、本システムにかかる各種ハードウェアは、いわゆるクラウド型のシステムのようにWeb等を介して各種処理を実行し、処理結果を各種ハードウェアに送る等の構成を採用してもよい。
【0122】
また、一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
【0123】
また、コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータであってもよい。
【0124】
すなわち、例えば、上述の実施形態における各種ハードウェアには、任意のコンピュータ、任意のスマートフォン等の携帯端末等が自由に採用されてもよい。
【0125】
また、このようなプログラムを含む記録媒体は、ユーザ等にプログラムを提供するために装置本体とは別に提供される図示せぬリムーバブルメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成されてもよい。
【0126】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理は勿論、並列的又は個別に実行されてもよい。また、上述の実施形態で記載するステップは、一部が省略されてもよい。
【0127】
また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味している。
【0128】
これらの他の実施形態を採用した場合においても、本実施形態の作用効果は発揮される。また、本実施形態と他の実施形態、及び他の実施形態同士を適宜組み合わせることも可能である。
【0129】
[本実施形態の構成例]
以上を換言すると、本発明が適用される情報処理装置は、次のような構成を有していれば足り、各種各様な実施の形態を取ることができる。
【0130】
即ち、本発明の第1の態様は、所定の問い合わせ又はリクエストに関する回答の生成に利用し得る情報処理システムであって、前記問い合わせ又は前記リクエストに関するテキスト情報又は音声情報を取得する入力情報取得手段(例えば、入力情報取得部60)と、所定の言語モデルにおいて、所定の単語に関する知識が一定の基準に到達しているか否かの確認に関する情報を取得する確認情報取得手段(例えば、事前知識確認部80)と、前記単語の前記確認の結果のそれぞれを管理する確認情報管理手段(例えば、階層化管理部81)と、前記テキスト情報又は前記音声情報に基づいて、前記問い合わせ又は前記リクエストに対する前記回答に関する情報を取得する回答情報取得手段(例えば、回答情報管理部64)と、を備える情報処理システムであれば足りる。
【0131】
また、第1の態様において、前記回答情報取得手段は、前記言語モデルが生成した前記回答に関する情報を取得してもよい。
【0132】
また、第1の態様において、前記確認情報管理手段は、前記単語のそれぞれの関係性を含めて、前記単語の前記確認の結果のそれぞれを管理してもよい。
【0133】
また、第1の態様において、前記確認情報管理手段は、前記単語のそれぞれの前記関係性を階層構造として保持し、前記単語の前記確認の結果のそれぞれと、前記単語のそれぞれの前記関係性とを合わせて管理してもよい。
【0134】
また、本発明の第2の態様は、所定の問い合わせ又はリクエストに関する回答の生成に利用し得るコンピュータが実行する情報処理方法であって、前記問い合わせ又は前記リクエストに関するテキスト情報又は音声情報を取得する入力情報取得ステップと、所定の言語モデルにおいて、所定の単語に関する知識が一定の基準に到達しているか否かの確認に関する情報を取得する確認情報取得ステップと、前記単語の前記確認の結果のそれぞれを管理する確認情報管理ステップと、前記テキスト情報又は前記音声情報に基づいて、前記問い合わせ又は前記リクエストに対する前記回答に関する情報を取得する回答情報取得ステップと、を含む情報処理方法であれば足りる。
【0135】
また、本発明の第3の態様は、所定の問い合わせ又はリクエストに関する回答の生成に利用し得るコンピュータに、前記問い合わせ又は前記リクエストに関するテキスト情報又は音声情報を取得する入力情報取得ステップと、所定の言語モデルにおいて、所定の単語に関する知識が一定の基準に到達しているか否かの確認に関する情報を取得する確認情報取得ステップと、前記単語の前記確認の結果のそれぞれを管理する確認情報管理ステップと、前記テキスト情報又は前記音声情報に基づいて、前記問い合わせ又は前記リクエストに対する前記回答に関する情報を取得する回答情報取得ステップと、を含む処理を実行させるプログラムであれば足りる。
【0136】
[本実施形態の背景技術及び課題]
近年、機械学習の技術の進歩は著しく、大量の情報を用いて汎用的に学習して生成されたいわゆる大規模言語モデル(Large Language Models)を用いて、ユーザの問い合わせに対する回答を生成するようなサービスなども提供され始めている(例えば、非特許文献1)。
【0137】
ここで、従来、チャットボット等で問い合わせや質問に回答する場合、あらかじめ質問等に対する回答を準備して、問い合わせの内容にもっとも近い質問等に対する回答を返答するという方法が行われてきた。しかし、あらかじめ問い合わせに対する回答を準備しておく方法は、そもそも準備等に要する負荷が高く、また、過去に行われていないような問い合わせに正しい回答を行うことが難しいという問題があった。
【0138】
これに対して、近年、試みられている方法が、いわゆる大規模言語モデル等を活用する方法である。この方法では、問い合わせに対する回答を準備する代わりにドキュメントを一定のサイズ以下に分割し(この分割したドキュメントを、「チャンク」と呼ぶ)、チャンクに対して類似検索等の手法を適用することで、回答を事前に準備しなくても、それなりに精度の高い回答を生成することができる。
【0139】
例えば、非特許文献1によれば、大規模言語モデルをテキストからテキストへの変換だけでなく、異なるAPIで利用するための方法が開示されている(非特許文献1を参照)。
【0140】
しかし、大規模言語モデルは汎用的な学習データにより学習を行ったモデルであるため、いわゆる社内用語や専門用語、最新の用語等は未学習である。そのため、問い合わせの中に未知の単語や用語等が含まれていると極端に回答の精度が劣化するような場合もある。さらに言えば、大規模言語モデルに入力(送信)できる情報(プロンプト)も有限である。
【0141】
本実施形態は、このような状況に鑑みてなされたものであり、所定の問い合わせ又はリクエストに対する回答の質を高め得る技術を提供することを目的とする。
【0142】
[大規模言語モデルについて]
ここで、大規模言語モデル(LLM)は、AI(Artificial Intelligence)モデル(例えば、機械学習されて生成される機械学習モデル)の一例である。なお、本実施形態で示す学習は、多量のデータに基づいて、これらのデータの背後にある規則性を見出すことを意味するものとする。また、本実施形態で示す学習により生成されるAIモデルは、各種の学習アルゴリズムにより生成される。LLMとして、例えば、ChatGPT、Bard、Llama(Large Language Model Meta AI)、Gemini、Claude等を用いることが可能である。なお、これらは一例であり、他のAIモデルを使用してもよい。また、本実施形態では、言語モデルサーバ3により実現されるLLMをLLM500(
図12等参照)と称して説明する。
【0143】
[業務知識及び事前知識について]
次に、本実施形態で用いられるドメイン知識(例えば、業界知識)、業務知識及び事前知識について説明する。一般に、LLM500は一般常識的な知識は保持するが、特有の知識(例えば、会社固有の知識、業界固有の知識)を有しないことが多い。例えば、自動車会社のような認知度が高い分野であれば、ある程度の概念をLLM500が有する可能性があるが、一般的とは言えない分野(例えば、特定の産業向けの製造装置等)の知識をLLM500が有しないことが多い。
【0144】
また、LLM500が知識を有している場合でも、事前学習した時点での知識でとどまるため、新しい概念や規制の変化等、最新の動向にはLLM500が追従できないことも想定される。このため、特有の知識(例えば、専門的なドキュメント)に基づく問い合わせ応答業務では、ドメイン知識(例えば、業界知識)についてもLLM500に与える必要がある。そこで、本実施形態では、LLM500に与える必要があるドメイン知識(例えば、事前知識)を選択して抽出することにより、LLM500に必要となる事前知識を適切に渡すことが可能であり、回答の質を高めることが可能である。
【0145】
ここで、業務知識は、特定の組織に特化して知られている内容(認識、理解されている内容)を意味する。例えば、業務知識は、その特定の組織で業務に使用される設計書、仕様書、マニュアル等の書類に記載されている各種文章、各種用語等から導き出される内容を意味する。なお、特定の組織は、例えば、会社等である。また、特定の組織に対応する業界は、例えば、特定の組織が自動車の製造会社又は販売会社であれば、自動車業界を意味する。
【0146】
事前知識は、業務知識を得るために知られている内容、業務知識を補うために知られている内容(例えば、認識、理解されている内容)等を意味する。例えば、事前知識は、特定の組織に対応する業界で業務に使用される設計書、仕様書、マニュアル等の書類を読む際に知識を補うための各種文章、各種用語等の内容を意味する。言い換えると、事前知識は、業務知識としてLLM500に渡す設計書等の内部文書を読み解くために必要な知識を意味する。例えば、事前知識として、業界固有の知識、社内の製品名、略称等の用語集のようなものが想定される。なお、LLM500は、大規模言語モデルであり、言語モデルサーバ3(
図1等参照)に対応する。
【0147】
[業務知識DB及び事前知識DBの構成例]
図11は、記憶部18(
図3参照)に格納される業務知識DB350及び事前知識DB300の構成例を示す図である。
図11(A)には、業務知識DB350の構成例を示し、
図11(B)には、事前知識DB300の構成例を示す。また、
図11(C)には、仕様書(RB3-A)351の10ページ目に記載されている内容を簡略化して示す。なお、
図3、
図11では、業務知識DB350及び事前知識DB300を管理サーバ1(記憶部18)に保持させる例を示すが、管理サーバ1の外部機器に保持させ、その外部機器から管理サーバ1が必要に応じて各DBの内容を取得してもよい。また、
図11では、自動車等の製造販売を行う業界に対応する業務に関する知識を業務知識とし、自動車等の製造販売を行うA自動車において主に使用される知識を事前知識とする例を示す。
【0148】
業務知識DB350には、上述した業務知識に対応する各情報が格納される。例えば、用語集531、用語集551、仕様書(RB-A)351等が格納される。用語集531、用語集551は、A自動車が製造販売する自動車等に関する各種用語、各用語の説明等が記載されている。なお、用語集531の内容例については
図15に示す。また、用語集551の内容例については
図18に示す。
【0149】
仕様書(RB3-A)351は、A自動車が製造販売するラビット(3代目)の最上位グレードであるRB3-Aの仕様書である。例えば、
図11(C)に示すように、仕様書(RB3-A)351の10ページ目には、オプションについての記載がある。
【0150】
なお、
図11(B)に示す事前知識DB300には、
図4に示す構成以外にsrc_id306、dst_id307を追加した点が異なる。すなわち、事前知識DB300は、識別情報301と、区分302と、用語303と、説明304と、LLM判定305と、src_id306と、dst_id307とが関連付けて格納されているデータベースである。
【0151】
識別情報301は、各単語を識別するための識別情報(例えば、ID)である。区分302は、各単語がどこで主に使用されるかを示す情報である。
図11(B)では、各単語が、主として社内で使用される特有の用語である場合(「社内」を表示)と、主として業界全体として使用される用語である場合(「業界」を表示)とを示す。
【0152】
用語303は、事前知識に対応する文字列である。なお、用語303に格納される文字列は、特殊な内容、専門的な内容等となるため、「用語」の文字を使用して説明するが、用語の代わりに、単語、文字列等と称してもよい。なお、文字列は、文字、数値、記号、符号等の文字を並べたものを意味する。
【0153】
説明304は、用語303に格納されている用語を説明するための文章である。この文章は、例えば、用語303に格納されている用語を説明するための既存の用語集等の書類に基づいてユーザが作成して格納可能である。なお、用語集等の書類に含まれる各用語の説明を、その書類に含まれる各文章、各文字等に基づいて、自動で生成可能な文章作成技術を用いて、各説明を格納してもよい。なお、LLM500を用いて説明304の情報を自動で生成する例については、
図15~
図21を参照して詳細に説明する。
【0154】
LLM判定305は、用語303に格納されている用語が、LLM500において既知か未知かの判定結果を示す情報である。なお、LLM判定305に格納される情報については、上述したように、専門家による確認結果を用いて手動で格納してもよく、LLM500を用いて自動で格納してもよい。なお、LLM500を用いてLLM判定305の情報を自動で生成する例については、
図12~
図14を参照して詳細に説明する。
【0155】
src_id306及びdst_id307は、各用語をツリー構造で管理する場合に用いられる階層構造情報である。src_id306は、ソースidを意味し、dst_id307は、ディスティネーションidを意味する。すなわち、用語303に格納されている各用語のうち、下位側に連結される用語の識別情報301がsrc_id306に格納され、上位側に連結される用語の識別情報301がdst_id307に格納される。例えば、
図5に示すように、ラビット313の下位側に連結される用語はラビット(三代目)314であるため、
図11(B)に示す識別情報301「1」の用語303「ラビット」に対応するsrc_id306にはラビット(三代目)の識別情報301「2」が格納される。同様に、
図5に示すように、ラビット313の上位側に連結される用語はコンパクトカー311及びエコトク車312であるため、
図11(B)に示す識別情報301「1」の用語303「ラビット」に対応するdst_id307には、コンパクトカーの識別情報301「7」と、エコトク車の識別情報301「6」とが格納される。
【0156】
このように、知識を業務知識と事前知識に分け、LLM500に与える業務知識について、必要となる情報を限定することが可能である。なお、
図11では、業務知識と事前知識の2段階にする例を示すが、3段階以上の多段階としてもよい。また、上述したように、事前知識を階層構造とすることにより、必要最小限の事前知識をLLM500に適切に与えることが可能である。
【0157】
なお、高度な処理能力を持つが一般的な知識しか持たないLLMと、ネットワーク規模が小さいが専門分野の知識を学習させたLLMとを使い分けることも想定される。この場合には、LLM判定305の項目は、利用するLLM毎に用意することが好ましい。これにより、同じドメイン知識を複数のLLMに利用する場合にも効率的に適用可能である。
【0158】
[事前知識の生成例]
図4等では、対象用語(用語303)がLLMにおいて既知か未知かという確認を、人間の評価に基づいて行う例を示した。例えば、候補の事前知識(例えば、対象用語「ラビット」)について、事前に「ラビットという単語について100文字程度で完結に説明してください。」という質問をLLM500に対して行い、LLM500からの出力結果(対象用語「ラビット」の説明)を取得する。この場合には、上述した質問以外の背景情報等をLLM500には与えず、LLM500の知識のみを問うようにする。
【0159】
次に、専門家が、事前知識(例えば、対象用語「ラビット」)と、LLM500からの出力結果(対象用語「ラビット」の説明)とを確認する。この場合に、その説明(LLM500からの出力結果)が妥当であるか軽微な修正で済む程度の内容であるかを確認する。そして、その説明(LLM500からの出力結果)が妥当である場合、又は、軽微な修正で済む程度の内容である場合には、LLM500からの出力結果(対象用語「ラビット」の説明)を採用し、LLM判定305(
図11(B)参照)を既知と設定する。一方、その説明(LLM500からの出力結果)の内容が専門家の判断と異なる場合には、LLM判定305(
図11(B)参照)を未知と設定し、専門家が妥当な説明を設定する。
【0160】
このような確認については、自動で実行することも可能である。そこで、以下では、対象用語がLLM500において既知か未知かの確認を自動で実行する例を示す。
【0161】
図12、
図13は、事前知識DB300の用語303(
図11(B)参照)に格納されている各用語について、LLM500が既知か未知かを判定する場合の例を模式的に示す図である。
図12、
図13では、用語303「ラビット」についてLLM500が既知か未知かを判定する場合の例を示す。ここでは、対象となる事前知識(例えば、用語303「ラビット」)について、説明304を用いてその説明をLLM500に入力し、Yes/Noで回答できる質問(回答502)を生成させる例を示す。
【0162】
図12には、プロンプト501をLLM500に入力し、この入力に対してLLM500が回答502を出力する例を示す。プロンプト501には、「#指示」及び「#文章」が含まれる。「#指示」には、Yes/Noで回答できる質問を作成する旨の指示が含まれる。また、「#文章」には、事前知識DB300の用語303「ラビット」に関連付けられている説明304「ラビットはA自動車が生産販売するコンパクトカーである」が挿入される。
【0163】
このように、事前知識DB300の用語303に関連付けられている説明304を含むプロンプト501をLLM500に入力することによりLLM500から回答502を得ることが可能である。
【0164】
図13には、
図12に示す回答502を含むプロンプト511をLLM500に入力し、この入力に対してLLM500が回答512を出力する例を示す。プロンプト511には、「#指示」及び「#質問」が含まれる。「#指示」には、
図12で生成された質問(Yes/Noで回答できる質問)に対してYes/Noで回答する旨の指示が含まれる。また、「#質問」には、
図12で生成された質問(回答502)が挿入される。
【0165】
このように、LLM500から得られた回答502を含むプロンプト511をLLM500に入力することによりLLM500から回答512を得ることが可能である。この回答512に基づいて、事前知識確認部80(
図3参照)は、LLM判定305を既知又は未知の何れかに設定可能である。例えば、LLM500から回答が適切に回答できたものである場合(例えば、全問正解の場合)には、LLM判定305として既知を設定可能である。一方、LLM500から回答512が適切に回答できたものでない場合(例えば、少なくとも1問が不正解、又は、不明回答の場合)には、LLM判定305として未知を設定可能である。
【0166】
図13に示す例では、LLM500からの回答512に「No、No、私はその情報を持っていません。」が含まれる。すなわち、2問が不正解、1問が不明回答である。このため、
図12、
図13に示す例では、用語303「ラビット」についてLLMが未知であると判定される。すなわち、LLM判定305に「未知」が格納される。
【0167】
このように、既存の単語集等の事前知識が整備され、用語説明が存在するような場合には、LLM判定を自動で行うことが可能である。なお、事前知識の用語がリストアップされているものの、用語説明が存在しない場合等には、後述するように、LLM500を用いて用語説明を生成することが可能であるため、その用語説明を用いて、LLM判定を自動で行うことが可能である。
【0168】
[管理サーバの動作例]
図14は、管理サーバ1における既知未知判定処理の一例を示すフローチャートである。また、この既知未知判定処理は、記憶部18(
図3参照)に記憶されているプログラムに基づいて、制御部11(
図3参照)により実行される。また、この既知未知判定処理は、例えば、既知未知判定処理を開始する開始操作がされたタイミングで実行される。また、この既知未知判定処理では、
図1~
図13を適宜参照して説明する。
【0169】
ステップS601において、事前知識確認部80は、事前知識DB300に格納されている用語303のうちから、判定対象となる用語(対象用語)を取得する。例えば、事前知識確認部80は、事前知識DB300に格納されている用語303のうち、LLM判定305に情報が格納されていない用語を識別情報301の順序で取得する。
【0170】
ステップS602において、事前知識確認部80は、ステップS601で取得された対象用語に関連付けて事前知識DB300に格納されている説明304を取得する。例えば、対象用語として「ラビット」が取得された場合には、「ラビット」に格納されている説明304「ラビットはA自動車が生産販売するコンパクトカーである」が取得される。
【0171】
ステップS603において、事前知識確認部80は、ステップS602で取得された説明に関して、Yes/Noで回答可能な質問と、その回答とを複数組作成する旨のプロンプトをLLM500に入力し、その回答をLLM500から取得する。例えば、事前知識確認部80は、
図12に示すプロンプト501をLLM500に入力し、その回答502をLLM500から取得する。なお、回答502は、ステップS605の判定処理で使用されるためメモリに保持される。
【0172】
ステップS604において、事前知識確認部80は、ステップS603で取得したLLM500からの回答に含まれる質問(Yes/Noで回答可能な質問)に対してYes/Noで回答する旨の指示を含むプロンプトをLLM500に入力し、その回答をLLM500から取得する。例えば、事前知識確認部80は、
図13に示すプロンプト511をLLM500に入力し、その回答512をLLM500から取得する。
【0173】
ステップS605において、事前知識確認部80は、ステップS604で取得したLLM500からの回答が全て正解であるか否かを判定する。LLM500からの回答が全て正解である場合には、ステップS606に進む。一方、LLM500からの回答が全て正解でない場合(すなわち、少なくとも一部が不正解、又は、不明回答)には、ステップS607に進む。例えば、LLM500からの回答502(
図12参照)に含まれる回答(Yes/No)は「Yes,No,Yes」である。また、LLM500からの回答512(
図13参照)に含まれる3つの回答は「No,No,私はその情報を持っていません。」である。また、これらを比較して一致する回答は正解であり、不一致の回答は不正解である。
図13に示す例では、回答512に含まれる3つの回答「No,No,私はその情報を持っていません。」のうち、2番目のみが正解(「No」)であり、1番目は不正解(「Yes」及び「No」)であり、3番目は不明回答である。この場合には、LLM500からの回答が全て正解でないと判定され、ステップS607に進む。なお、ここで示す判定基準は一例であり、他の判定基準を用いて判定処理を実行してもよい。例えば、ステップS604で取得したLLM500からの回答のうち、閾値以上が正解である場合に、対象用語をLLM500は既知であると判定してもよい。
【0174】
ステップS606において、事前知識確認部80は、対象用語をLLM500は既知であると判定する。
【0175】
ステップS607において、事前知識確認部80は、対象用語をLLM500は未知であると判定する。
【0176】
ステップS608において、事前知識確認部80は、対象用語に対するLLM500の既知未知の判定結果を事前知識DB300のLLM判定305に格納する。例えば、対象用語「ラビット」に対して「未知」が判定された場合には、事前知識確認部80は、用語303「ラビット」に関連付けられているLLM判定305に「未知」を格納する。
【0177】
[ナレッジグラフの構築例]
図5では、事前知識に関する各用語を階層化して管理する例を示した。具体的には、事前知識に関する各用語を、関係性を含めたネットワーク構造とする例を示した。この場合には、上位、下位等のエンティティ(用語)間に関係性を保持させる。ここで、エンティティは、固有名詞等の固有の表現等を意味する。また、
図5等では、LLM500が把握していない情報については、その情報を基準として上位側に辿っていき、その上位の各情報をLLM500に渡す例を示した。
【0178】
ここでは、
図5を参照して説明する。例えば、LLM500に入力する文章に「RB3-A」315が出てきた場合を想定する。この場合には、「RB3-A」315の上位側の用語(エンティティ)を辿っていく。
図5に示す例では、「RB3-A」315の上位側の用語(エンティティ)として、「ラビット(3代目)」314、「ラビット」313、「エコトク車」312、「コンパクトカー」311が存在する。なお、上述したように、各エンティティ(事前知識に関する用語)を、LLM500が認知しているか否かについては、事前に確認された判定結果がLLM判定305(
図11(B)参照)に格納されている。
図11(B)を参照すると、LLM判定305に「既知」が格納されている用語303は「コンパクトカー」311のみであり、他は「未知」である。このように、LLM500に入力する文章に、LLM判定305「未知」の用語「RB3-A」315が出てきた場合でも、その用語を基準として上位に辿っていくと、LLM判定305「既知」の用語に辿り着く。すなわち、事前知識に関する各用語については、対象用語を基準としてその上位に辿っていくと、LLM500が把握している概念にたどり着く場合がある。
【0179】
図5に示す例では、対象用語を「RB3-A」315とする場合には、「コンパクトカー」311のようにLLM判定305「既知」のエンティティに到達する。又は、「エコトク車」312のように、その上位に情報が登録されていないエンティティに到達する。このように、LLM判定305「既知」のエンティティに到達するか、又は、上位に情報が登録されていないエンティティに到達した場合には、対象用語「RB3-A」315を基準としてその各エンティティ(「コンパクトカー」311、「エコトク車」312)に到達するまでの各エンティティ(「ラビット(3代目)」314、「ラビット」313、「コンパクトカー」311又は「エコトク車」312)に関連する各情報をLLM500に渡す。LLM500が把握している用語とこれの下位階層の用語(対象用語)とに関連する情報(例えば、説明304)をLLM500に渡すことにより、その下位階層の用語をLLM500が把握可能となる。また、このように、対象用語とこれに関連する上位階層の用語とに関連する情報(例えば、説明304)のみをLLM500に渡すことにより、LLM500に渡す情報量を最小化することが可能である。
【0180】
[用語を自動で階層化する例]
上述したように、各用語を階層化する作業を手作業で実行すると、その作業が煩雑となる。そこで、以下では、LLM500を利用して各用語を階層構造とするための情報を生成する例を示す。
【0181】
例えば、LLM500を利用してナレッジグラフを作成することが可能である。ここで、ナレッジグラフは、各種情報をグラフ構造により表すグラフである。このナレッジグラフは、ノード(例えば、エンティティ)と、そのノードを繋ぐエッジ(例えば、エンティティ間の関係性)とで構成される。
【0182】
図15、
図16は、LLM500を利用して用語集531に含まれる各用語に関するナレッジグラフを作成する際の流れを模式的に示す図である。
【0183】
図17は、LLM500を利用して生成されたナレッジグラフを表示する場合の表示例を示す図である。
【0184】
図15には、LLM500に入力される入力データ530の一例を示す。入力データ530には、用語集531及びプロンプト532が含まれる。
【0185】
用語集531は、業務知識(仕様書等)のドキュメントの一例である。例えば、用語集531は、A自動車が生産販売する自動車に関する用語集の一例である。なお、用語集531は、業務知識DB350(
図11(A)参照)に格納されている。例えば、各用語及びその説明等が含まれる用語集531を用いることが可能である。
【0186】
プロンプト532は、LLM500を利用して、用語集531に含まれる各用語に関するナレッジグラフを作成するためのプロンプトの一例であり、「#指示」及び「#出力形式」を含む。例えば、「#指示」には、ナレッジグラフを作成する旨の指示が含まれる。また、「#出力形式」には、JSON(JavaScript(登録商標) Object Notation)で出力する旨と、ノードにはid、name、descriptionの属性を持たせる旨と、エッジにはsrc_id、dst_id、relationの属性を持たせる旨と、エッジは概念の具象から抽象の方向になるようにする旨との指示が含まれる。
【0187】
なお、JSONは、多数の要素が複雑な構造で組み合わせられたデータを簡潔な表記で書き表すことが可能な記法である。なお、JSON以外にMarkdown記法等を用いてもよい。
【0188】
idは、各ノードを識別するための識別情報である。idとして、例えば、通し番号等を用いることが可能である。nameは、各ノードに対応するエンティティを示す情報である。例えば、nameとして、用語集531に含まれる各用語が抽出される。descriptionは、各ノードに対応するエンティティの説明(用語説明)を示す情報である。例えば、事前知識DB300(
図11(B)参照)に格納されている用語303がnameに対応し、説明304がdescriptionに対応する。
【0189】
src_idは、ソースのid(関係元のid)を意味する。また、dst_idは、ディスティネーションのid(関係先のid)を意味する。すなわち、src_id及びdst_idにより、エッジが指し示すノード(ノードのid)を特定可能となる。また、src_id及びdst_idにより、各ノードの上下関係を特定可能である。例えば、事前知識DB300(
図11(B)参照)に格納されているsrc_id306がsrc_idに対応し、dst_id307がdst_idに対応する。
【0190】
また、概念の具象(下位)から抽象(上位)の方向になるようにエッジをする旨のプロンプト532を用いることにより、
図17に示すように、下位概念の用語から上位概念の用語の方向を指し示す矢印が生成される。
【0191】
このように、用語集531及びプロンプト532が含まれる入力データ530をLLM500に入力すると、入力データ530に対する出力データ534(
図16参照)がLLM500から出力される。
【0192】
図16には、入力データ530に対する出力データ534の一例を示す。出力データ534には、用語集531から抽出された各用語(name)と、これに関する属性情報(description)と、これらに関連するエッジ情報(src_id、dst_id、relation)とが含まれる。また、
図17には、出力データ534に基づいて表示されるグラフ情報を示す。
【0193】
図17に示すように、各用語541~546の関係が視覚的に容易に把握可能となる。これにより、用語集531に含まれる各用語を確認する作業を容易とすることが可能である。
【0194】
このように、事前知識DB300の各用語を階層化する場合に、その作業を自動化することが可能である。また、事前知識DB300の用語303、説明304のそれぞれに情報を格納する場合に、その作業を自動化することが可能である。
【0195】
[用語説明の判定例]
図16に示す出力データ534に含まれる各用語と、これに対応する説明とについては、事前知識DB300の用語303、説明304のそれぞれに格納することが可能である。ただし、これらの用語、説明については、専門家による評価、又は、LLM500等を用いた評価をし、その評価結果に基づいて適宜修正等をすることが好ましい。そこで、以下では、出力データ534に含まれる用語、説明等について評価する例を示す。
【0196】
例えば、出力データ534に含まれる各用語(ノード)に対する説明を生成する旨のプロンプトをLLM500に入力し、その出力結果を取得する。例えば、出力データ534に含まれる用語「ラビット」について「ラビットという単語について100文字程度で完結に説明してください。」という質問を含むプロンプトをLLM500に入力し、その出力結果を取得する。この場合には、用語集531等の背景情報等をLLM500に与えず、LLM500の知識のみを問うようにすることが好ましい。すなわち、各用語に対する用語説明を予備知識なしでLLM500にそれぞれ生成させることが好ましい。
【0197】
次に、出力データ534に含まれる用語、これに対応する説明と、出力データ534に含まれる用語に対する説明を生成する旨のプロンプトに対する出力結果(用語の説明)とを比較し、これらの一致度、類似度等に基づいて、出力データ534に含まれる用語とこれに対応する説明が妥当であるか否かを判定可能である。それらが一致した場合、又は、類似度が基準値以上である場合(すなわち、類似度が高い)には、出力データ534に含まれる用語とこれに対応する説明が妥当であると判定可能である。一方、それらの類似度が基準値未満である場合(すなわち、類似度が低い)には、出力データ534に含まれる用語とこれに対応する説明が妥当ではなく修正が必要であると判定可能である。この類似判定処理については、公知の判定処理を用いることが可能である。
【0198】
また、専門家が、用語「ラビット」と、LLM500からの出力結果(ラビットの説明)とを確認して判定してもよい。例えば、LLM500からの出力結果であるラビットの説明が妥当であるか、軽微な修正で済むと専門家が判定した場合には、その説明を採用する。すなわち、用語「ラビット」を事前知識DB300の用語303に格納し、この「ラビット」に対応する説明304にLLM500からの出力結果(ラビットの説明)を格納する。
【0199】
一方、LLM500からの出力結果であるラビットの説明が専門家の判断と異なる場合には、その説明を専門家が修正したり、妥当な説明を新たに作成したりして、ラビットの妥当な説明を設定する。このように、ラビットの説明として、意味の異なる説明を専門家が抽出し、妥当な説明を設定することが可能である。また、意味が異なる説明が専門家により抽出された場合には、その説明に対応する用語をLLM500が理解(学習)していないと判定し、その用語に対するLLM判定305に「未知」を格納してもよい。
【0200】
なお、以上では、専門家が、用語(例えば、ラビット)と、LLM500からの出力結果(例えば、ラビットの説明)とを確認する例を示したが、これに限定されない。例えば、用語集531に対応するデータベース(例えば、用語、その説明等を含む)が存在する場合には、その用語(例えば、ラビット)に対応するデータベースの内容(例えば、ラビットの説明)と、LLM500からの出力結果(例えば、ラビットの説明)とを突合して両者の類似性を判定してもよい。この場合には、公知の文字突合処理を採用することが可能である。また、用語集531に対応するデータベースが存在しない場合でも、用語集531の内容と、用語(例えば、ラビット)と、LLM500からの出力結果(例えば、ラビットの説明)とを突合して両者の類似性を判定してもよい。この場合には、例えば、LLMを用いた突合処理、公知の文字突合処理等を採用することが可能である。
【0201】
図18、
図19は、LLM500を利用して用語集551に含まれる各用語に関するナレッジグラフを作成する際の流れを模式的に示す図である。また、
図20は、LLM500を利用して生成されたナレッジグラフを表示する場合の表示例を示す図である。なお、
図18~
図20に示す例は、
図15~
図17の用語集531の代わりに用語集551を用いる例であり、他の部分は、
図15~
図17に対応する。このため、
図18~
図20に関するここでの説明を省略する。
【0202】
[管理サーバの動作例]
図21は、管理サーバ1における事前知識生成処理の一例を示すフローチャートである。また、この事前知識生成は、記憶部18(
図3参照)に記憶されているプログラムに基づいて、制御部11(
図3参照)により実行される。また、この事前知識生成は、例えば、事前知識生成処理を開始する開始操作がされたタイミングで実行される。また、この事前知識生成処理では、
図1~
図20を適宜参照して説明する。
【0203】
ステップS611において、事前知識確認部80は、業界知識情報を取得する。例えば、事前知識確認部80は、業務知識DB350に格納されている各情報のうち、事前知識生成に必要となる情報(例えば、用語集531、用語集551)を取得する。
【0204】
ステップS612において、事前知識確認部80は、ステップS611で取得された業界知識情報に含まれる用語の抽出と、その用語間の関係性を示すグラフ情報の生成とを指示するプロンプトをLLM500に入力し、LLM500からの回答を取得する。例えば、
図15、
図16に示すように、用語集531を含む入力データ530をLLM500に入力し、LLM500からの回答として、出力データ534を取得する。
【0205】
ステップS613において、事前知識確認部80は、ステップS612で取得された回答に含まれる用語に対する説明を生成する旨のプロンプトをLLM500に入力し、LLM500からの回答を取得する。例えば、
図16に示す出力データ534に含まれる各用語(ノード)に対する説明を生成する旨のプロンプトをLLM500に入力し、その出力結果を取得する。この場合には、用語集等の背景情報等をLLM500に与えず、LLM500の知識のみを問うようにすることが好ましい。
【0206】
ステップS614において、事前知識確認部80は、ステップS612で取得したLLM500からの回答に含まれる用語の説明と、ステップS613で取得したLLM500からの回答に含まれる用語の説明とを比較し、各用語に対する説明を評価する評価処理を実行する。この場合には、上述したように、各説明を比較して両者の類似性を判定し、その類似度に基づいて各用語に対する説明を評価することが可能である。また、各用語集に対応するデータベースの内容と、各用語と、各用語の説明とを突合して両者の類似性を判定してもよく、LLMを用いた突合処理、公知の文字突合処理等を採用して判定してもよい。また、少なくとも一部を専門家に確認させ、その確認結果を反映させてもよい。
【0207】
ステップS615において、事前知識確認部80は、ステップS614での評価処理において、各用語に対する説明が全て基準以上であったか否かを判定する。各用語に対する説明が全て基準以上であった場合には、ステップS616に進む。一方、各用語に対する説明のうちの少なくとも一部が基準未満であった場合には、ステップS617に進む。
【0208】
ステップS616において、事前知識確認部80は、ステップS613での評価処理で評価された各用語、各用語に対する説明を事前知識DB300の用語303、説明304にそれぞれ格納する。
【0209】
ステップS617において、事前知識確認部80は、ステップS613での評価処理において、基準未満と判定された用語の説明をユーザ(例えば、専門家)に提示する。なお、ステップS613での評価処理において、基準以上と判定された各用語、各用語に対する説明については、事前知識DB300の用語303、説明304にそれぞれ格納してもよい。また、基準未満と判定され、ユーザ(例えば、専門家)に提示された各用語、各用語に対する説明については、そのユーザによる確認、修正等がされた後に、事前知識DB300の用語303、説明304にそれぞれ格納することが可能である。
【0210】
このように、事前知識DB300の用語303、説明304のそれぞれに情報を格納する場合に、その作業を自動化することが可能である。
【0211】
[ユーザの質問に対してLLMが回答する例]
図22は、ユーザU1の質問710に対してLLM500が回答740を出力する場合の例を模式的に示す図である。
図22では、ユーザU1の質問710「ラビットのオーディオについてオプションには何が選べるか教えてください。」に対してLLM500が回答740を出力する場合の例を示す。また、ここでは、
図10に示すシーケンスチャートを参照して説明する。また、業務知識DB350に格納される情報群720は、例えば、
図11(A)に示す用語集531、551、仕様書(RB3-A)351である。また、
図10では、ユーザからの問い合わせ又はリクエストに対する回答を言語モデルサーバ3から取得する例を示すが、ここでは、
図22に示す例と同様に、ユーザU1からの質問710をLLM500(言語モデルサーバ3)から取得する例を示す。なお、質問には、問い合わせ又はリクエストに相当する概念が含まれる。
【0212】
ステップS21において、ユーザ端末2の入力情報管理部120は、ユーザU1からの質問710に関する入力情報「ラビットのオーディオについてオプションには何が選べるか教えてください。」を受け付ける。例えば、テキスト情報の入力、音声情報の入力等によりユーザU1からの質問710が受け付けられる。
【0213】
ステップS22において、ユーザ端末2の入力情報管理部120は、受け付けた入力情報を、管理サーバ1へ送信する。
【0214】
ステップS41において、管理サーバ1の入力情報取得部60は、ユーザ端末2から送信された入力情報を、通信部19を介して取得する。
【0215】
ステップS42において、管理サーバ1の事前知識絞り込み部62は、入力情報取得部60で取得された入力情報と、事前知識DB300に格納されている事前知識情報とを用いて、プロンプト(提供情報)の一部として言語モデルサーバ3に提供する提供単語候補を決定する。例えば、事前知識DB300に格納されている用語303のうちから、質問710「ラビットのオーディオについてオプションには何が選べるか教えてください。」に含まれる用語「ラビット」が提供単語候補として抽出される。
【0216】
ステップS43において、管理サーバ1の事前知識絞り込み部62は、提供単語候補として決定した単語の上位の階層の単語を提供単語候補に追加する。例えば、ステップS42で提供単語候補として抽出された用語「ラビット」に繋がる上位の用語「エコトク車」が提供単語候補に追加される。なお、後述するように、質問710「ラビットのオーディオについてオプションには何が選べるか教えてください。」に含まれる用語「オプション」に関連する用語「RB3-A」と、この用語「RB3-A」に繋がる上位の用語「ラビット(3代目)」、「ラビット」、「エコトク車」を提供単語候補に追加してもよい。
【0217】
ステップS44において、管理サーバ1の提供情報生成部63は、事前知識絞り込み部62による絞り込みの結果、入力情報取得部60で取得された入力情報等の各種情報に基づいて、問い合わせ又はリクエストに対する回答の精度を向上させるために、管理サーバ1が言語モデルサーバ3に提供するプロンプト(提供情報)を生成する。
【0218】
具体的には、提供情報生成部63は、事前知識絞り込み部62による絞り込みの結果と、事前知識DB300に格納されている事前知識情報と、業務知識DB350に格納されている業務知識情報とを用いて、LLM500に入力するプロンプト730を決定する。なお、
図22に示すプロンプト730は、
図7に示すプロンプト730に対応するものであり、矩形内の情報の一部を省略して示す。
【0219】
図7で示したように、プロンプト730には「#作業指示」731、「#事前知識」732、「#参照情報」733、「#問い合わせ内容」734が含まれる。「#作業指示」731には、ユーザU1からの質問710に対する回答を生成するための具体的な指示が格納される。例えば、「#作業指示」731は、問い合わせ応答業務での定型のプロンプトである。なお、
図7に示すプロンプトは一例であり、これに限定されない。ユーザU1からの質問710に対する回答を生成することが可能な他のプロンプトを用いてもよい。
【0220】
「#問い合わせ内容」734には、ユーザU1からの質問710「ラビットのオーディオについてオプションには何が選べるか教えてください。」が格納される。なお、問い合わせ内容は、これに限定されない。A自動車会社が、スポーツカーからSUV、業務用のバンまで多様な車種を販売する自動車会社である場合には、これらに関する各問い合わせ内容に適用することが可能である。また、例えば、製造業に限らず、サービス業から行政までの各種分野の問い合わせ内容に適用が可能である。すなわち、本実施形態は、特定の業界に限定されるものではない。
【0221】
「#事前知識」732には、事前知識DB300に格納されている用語303、説明304が格納される。上述したように、事前知識DB300に格納されている用語303のうちから、質問710「ラビットのオーディオについてオプションには何が選べるか教えてください。」に含まれる用語「ラビット」が抽出され、この用語「ラビット」と、用語「ラビット」に繋がる上位の用語「エコトク車」とが提供単語候補として特定される。このため、用語「ラビット」及び「ラビット」の説明と、用語「エコトク車」及び「エコトク車」の説明とが「#事前知識」732に格納される。
【0222】
なお、
図7で説明したように、質問710「ラビットのオーディオについてオプションには何が選べるか教えてください。」に含まれる用語のうち、業務知識DB350に格納されている情報に関連する用語が含まれる場合には、その用語に関連する用語303を抽出してもよい。例えば、業務知識DB350に格納されているRB3-Aの仕様書(仕様書(RB3-A)351)の10ページ目(
図11(C)参照)には、質問710「ラビットのオーディオについてオプションには何が選べるか教えてください。」に含まれる用語「オプション」についての記載がある。この場合には、事前知識DB300に格納されている用語303のうちから、用語「オプション」に関連する用語「RB3-A」が抽出され、この用語「RB3-A」と、用語「RB3-A」に繋がる上位の用語「ラビット(3代目)」、「ラビット」、「エコトク車」と、これらの各説明とが特定される。このため、用語「RB3-A」、「ラビット(3代目)」、「ラビット」、「エコトク車」と、これらの各説明とが「#事前知識」732に格納される。
【0223】
「#参照情報」733には、質問710「ラビットのオーディオについてオプションには何が選べるか教えてください。」に関連して参照するべき補足的な情報(コンテキスト)が含まれる。上述したように、業務知識DB350に格納されているRB3-Aの仕様書(仕様書(RB3-A)351)には、質問710「ラビットのオーディオについてオプションには何が選べるか教えてください。」に含まれる用語「オプション」についての記載がある。この場合には、業務知識DB350に格納されている仕様書(RB3-A)351が「#参照情報」733に格納される。ただし、この場合には、仕様書(RB3-A)351のうちの関連部分(例えば、オーディオについてオプションの記載がある部分)のみを格納することが好ましい。なお、関連部分については、公知の文字認識処理等により「オーディオ」「オプション」等の記載がある文章部分等を抽出することが可能である。
【0224】
なお、
図3では、事前知識絞り込み部62及び提供情報生成部63を異なる処理部として構成し、
図10では、ステップS42で事前知識絞り込み部62が提供単語候補を決定し、ステップS43で事前知識絞り込み部62がその提供単語候補として決定した単語の上位の階層の単語を提供単語候補に追加し、ステップS44で提供情報生成部63がプロンプト(提供情報)を生成する例を示したが、これに限定されない。例えば、事前知識絞り込み部62及び提供情報生成部63を同一の処理部(制御部)として構成し、ステップS42~S44の各処理を、制御部(事前知識絞り込み部62、提供情報生成部63)による一連の処理として実行してもよい。
【0225】
ステップS45において、管理サーバ1の提供情報生成部63は、生成したプロンプト(提供情報)を言語モデルサーバ3(LLM500)へ送信する。
【0226】
ステップS61において、言語モデルサーバ3の提供情報等取得部180は、管理サーバ1から送信されてきたプロンプト(提供情報)を、通信部170を介して取得する。
【0227】
ステップS62において、言語モデルサーバ3の回答情報生成部181は、提供情報等取得部180で取得されたプロンプト(提供情報)に基づいて、ユーザU1からの質問710に対する回答情報(回答740)を生成する。
【0228】
ステップS63において、言語モデルサーバ3の回答情報生成部181は、生成した回答情報(回答740)を管理サーバ1へ送信する。
【0229】
ステップS46において、管理サーバ1の回答情報管理部64は、言語モデルサーバ3から送信された回答情報(回答740)を、通信部19を介して取得する。
【0230】
ステップS47において、管理サーバ1の回答情報管理部64は、取得した回答情報(回答740)を、ユーザ端末2へ送信する。
【0231】
ステップS23において、ユーザ端末2の回答情報管理部121は、管理サーバ1から送信されてきた回答情報(回答740)を、通信部110を介して取得する。
【0232】
ステップS24において、ユーザ端末2の回答情報管理部121は、取得した回答情報(回答740)を、ユーザ端末2の出力部130に表示する。例えば、
図8に示すように、回答740が出力部130に表示される。
【0233】
[本実施形態における効果例]
上述したように、質問内容に含まれる「ラビットのオーディオについてオプションには何が選べるか教えてください。」について「ラビット」が自動車の車種名と分からない場合には、LLM500の回答の質が大きく劣化する可能性がある。そこで、質問内容とともに、A自動車が扱っている多数の車種に関する事前知識をLLM500に全て渡すことも考えられる。しかし、LLM500に渡せる情報量は制限されているため、多数の車種に関する事前知識をLLM500に全て渡すことは困難である。
【0234】
そこで、本実施形態では、質問の回答に必要な範囲内の事前知識を抽出することにより、LLM500に渡せる有限な情報量の範囲内でも必要な事前知識を渡すことが可能であり、回答の質を高めることができる。例えば、LLM500が把握していない事前知識をLLM500に事前に確認することが可能である。すなわち、それぞれの事前知識をLLM500が正しく回答できるかを事前に確認することが可能である。そして、LLM500が把握していない事前知識のみをLLM500に渡すことが可能であり、プロンプト生成を効率化することが可能である。この場合に、階層構造情報に基づいて、LLM500が把握していない事前知識を芋づる式に抽出してLLM500に渡すことが可能である。また、例えば、LLM500を変更する場合、又は、LLM500がバージョンアップした場合等においても、把握していない事前知識をLLM500に対して再検証することでLLM500の進化に追随することが可能である。
【0235】
また、LLM500は、プロンプトの情報量に応じて処理時間、計算コストを長く要することがある。このため、例えば、LLM500に渡せる情報量が多い場合でも、質問の回答に必要な範囲内の事前知識を抽出することにより、LLM500の計算効率を向上させることが可能であり、演算に係る費用を低減させることが可能である。
【0236】
また、本実施形態では、事前知識DB300の各用語を階層化する場合に、その作業を自動化することが可能である。また、事前知識DB300の用語303、説明304のそれぞれに情報を格納する場合に、その作業を自動化することが可能である。
【0237】
[他の機器、他のシステムにおいて処理を実行させる例]
以上では、抽出処理、制御処理等を管理サーバ1(情報処理装置の一例)において実行する例を示したが、それらの各処理の全部または一部を他の機器において実行してもよい。この場合には、それらの各処理の一部を実行する各機器により情報処理システムが構成される。例えば、サーバ、ユーザが使用可能な機器(例えば、スマートフォン、タブレット端末、パーソナルコンピュータ)、インターネット等の所定のネットワークを介して接続可能なサーバ等の各種情報処理装置、各種電子機器を用いて各処理の少なくとも一部を実行させることができる。
【0238】
また、管理サーバ1等の機能を実行可能な情報処理システムの一部(または全部)については、インターネット等の所定のネットワークを介して提供可能なアプリケーションにより提供されてもよい。このアプリケーションは、例えばSaaS(Software as a Service)である。
【0239】
[本実施形態の構成例及びその効果]
ここで、管理サーバ1、ユーザ端末2、言語モデルサーバ3の各構成については、上述した組合せ以外に、必要に応じて適宜組合せることが可能である。そこで、以下で示す各構成例についても各種組合せを考慮した構成としてもよい。
【0240】
管理サーバ1(情報処理装置の一例)は、言語モデルサーバ3(又はLLM500)(大規模言語モデルの一例)に入力された質問データ(例えば、「ラビットのオーディオについてオプションには何が選べるか教えてください。」)に対する回答データ(例えば、
図8に示す回答740)を言語モデルサーバ3(又はLLM500)から取得することが可能な情報処理装置である。管理サーバ1は、言語モデルサーバ3(又はLLM500)において用語303(所定の文字列の一例)に関する知識が一定の基準に到達しているか否かを示すLLM判定305(判定情報の一例)と、用語303と、その説明304(説明情報の一例)とを関連付けて保持する事前知識DB300(データベースの一例)において、質問データ「ラビットのオーディオについてオプションには何が選べるか教えてください。」に含まれる各用語(例えば、ラビット、オーディオ、オプション)(文字列の一例)のうちから、LLM判定305「未知」(基準に到達していない判定情報の一例)が関連付けられている第1文字列「ラビット」を抽出する事前知識絞り込み部62(抽出部の一例)と、第1文字列「ラビット」と第1文字列「ラビット」に関連付けられている説明304(説明情報の一例)「ラビットはA自動車が生産販売するコンパクトカーである」とを質問データ「ラビットのオーディオについてオプションには何が選べるか教えてください。」に含めたプロンプト730(入力データの一例)を言語モデルサーバ3(又はLLM500)に入力してその質問データ「ラビットのオーディオについてオプションには何が選べるか教えてください。」に対する回答データ(例えば、
図8に示す回答740)を言語モデルサーバ3(又はLLM500)から取得する提供情報生成部63、回答情報管理部64(制御部の一例)とを備える。例えば、
図7、
図22に示すように、プロンプト730を言語モデルサーバ3(又はLLM500)に入力し、その質問データ「ラビットのオーディオについてオプションには何が選べるか教えてください。」に対する回答データ(例えば、
図8に示す回答740)を取得することが可能である。また、本実施形態に係る情報処理方法は、それらの各処理を含む情報処理方法である。また、本実施形態に係るプログラムは、それらの各処理をコンピュータに実行させるプログラムである。言い換えると、本実施形態に係るプログラムは、管理サーバ1が実行可能な各機能をコンピュータに実現させるプログラムである。
【0241】
この構成によれば、質問の回答に必要な範囲内の事前知識を抽出することにより、言語モデルサーバ3(又はLLM500)に渡せる有限な情報量の範囲内でも必要な事前知識を渡すことが可能であり、回答の質を高めることができる。
【0242】
また、事前知識DB300(データベースの一例)は、複数の用語303(文字列の一例)間の関係性をツリー構造で示す階層構造情報(src_id306、dst_id307)を用語303(文字列の一例)毎に関連付けて保持してもよい。事前知識絞り込み部62(抽出部の一例)は、事前知識DB300のツリー構造において、抽出された用語「ラビット」(第1文字列の一例)を基準として、用語「ラビット」から上層側に連結されている文字列(エコトク車、コンパクトカー)のうちから、用語に関する知識が一定の基準に到達していないLLM判定305「未知」(判定情報の一例)が関連付けられている用語「エコトク車」(1又は複数の第2文字列の一例)を抽出する。提供情報生成部63(制御部の一例)は、用語「ラビット」及び用語「エコトク車」と、用語「ラビット」及び用語「エコトク車」のそれぞれに関連付けられている説明304(説明情報の一例)とをプロンプト730(入力データの一例)に含めてもよい。例えば、
図7、
図22に示すように、プロンプト730を言語モデルサーバ3(又はLLM500)に入力し、その質問データ「ラビットのオーディオについてオプションには何が選べるか教えてください。」に対する回答データ(例えば、
図8に示す回答740)を取得することが可能である。
【0243】
この構成によれば、階層構造情報に基づいて、LLM500が把握していない事前知識を芋づる式に抽出することにより、言語モデルサーバ3(又はLLM500)に渡せる有限な情報量の範囲内でも必要な事前知識を適切に渡すことが可能であり、回答の質を高めることができる。
【0244】
上述した文字列を、特定分野(例えば、特定の組織(会社等)に対応する業界(例えば、特定の組織が自動車の製造会社又は販売会社であれば、自動車業界))において使用される用語としてもよい。事前知識DB300のツリー構造を、その特定分野における抽象を上層とし、具象を下層とするツリー構造としてもよい。事前知識絞り込み部62(抽出部の一例)は、事前知識DB300のツリー構造において、抽出された用語「ラビット」(第1文字列の一例)が属する上層側の文字列のうちから用語「エコトク車」(第2文字列の一例)を抽出する。
【0245】
この構成によれば、階層構造情報に基づいて、LLM500が把握していない特定分野の用語を芋づる式に抽出することにより、言語モデルサーバ3(又はLLM500)に渡せる有限な情報量の範囲内でも必要な用語を適切に渡すことが可能であり、回答の質を高めることができる。
【0246】
事前知識絞り込み部62(抽出部の一例)は、特定分野において使用される特定情報を保持する業務知識DB350(特定情報データベースの一例)において、質問データ「ラビットのオーディオについてオプションには何が選べるか教えてください。」に含まれる用語(文字列の一例)(例えば、ラビット、オーディオ、オプション)に関連する特定情報(例えば、用語「オプション」についての記載があるRB3-Aの仕様書の10ページ目(
図11(C)参照))を抽出してもよい。提供情報生成部63(制御部の一例)は、第1文字列「ラビット」と、第1文字列「ラビット」と第1文字列に関連付けられている説明304(説明情報の一例)「ラビットはA自動車が生産販売するコンパクトカーである」と、第1文字列「ラビット」に関連する特定情報(例えば、RB3-Aの仕様書の10ページ目)とをプロンプト730(入力データの一例)に含めてもよい。
【0247】
この構成によれば、言語モデルサーバ3(又はLLM500)が把握していない特定分野の用語に関連する特定情報をプロンプト730に含めることにより、特定分野の用語とこれに関連する特定情報とを言語モデルサーバ3(又はLLM500)が把握することが可能であり、言語モデルサーバ3(又はLLM500)からの回答の質を高めることができる。
【0248】
判定対象となる用語(文字列の一例)である判定対象用語(判定対象文字列用語の一例)(例えば、「ラビット」)の説明情報に対する質問を作成する旨のプロンプト501(
図12参照)(第1質問データの一例)を大規模言語モデルに入力してプロンプト501に対する回答502(回答データの一例)を言語モデルサーバ3(又はLLM500)から取得し、その回答502に含まれる質問(例えば、ラビットは自動車ですか?Yes、…、ラビットはA自動車が生産販売していますか?Yes)に対して回答する旨のプロンプト511(
図13参照)(第2質問データの一例)を言語モデルサーバ3(又はLLM500)に入力してプロンプト511に対する回答512(回答データの一例)を言語モデルサーバ3(又はLLM500)から取得し、その回答512に含まれる回答結果(例えば、No、No、私はその情報を持っていません。)に基づいて判定対象用語(例えば、「ラビット」)のLLM判定305(判定情報の一例)を設定する事前知識確認部80(判定情報設定部の一例)をさらに備えてもよい。
図12、
図13に示す例では、判定対象用語「ラビット」のLLM判定305には「未知」が設定される。
【0249】
この構成によれば、言語モデルサーバ3(又はLLM500)において用語303(所定の文字列の一例)に関する知識が一定の基準に到達しているか否かを示すLLM判定305を設定する場合に、その設定作業を自動化することが可能である。これにより、LLM判定305の設定を迅速に精度よく実行することが可能である。
【0250】
事前知識確認部80(判定情報設定部の一例)は、判定対象用語(判定対象文字列用語の一例)(例えば、「ラビット」)の説明情報に対して肯定(YES)又は否定(NO)の何れかで回答可能な質問を複数作成する旨のプロンプト501(
図12参照)(第1質問データの一例)を言語モデルサーバ3(又はLLM500)に入力してプロンプト501に対する回答502(回答データの一例)を言語モデルサーバ3(又はLLM500)から取得し、その回答502に含まれる複数の質問(例えば、ラビットは自動車ですか?Yes、…、ラビットはA自動車が生産販売していますか?Yes)に対して肯定(YES)又は否定(NO)の何れかで回答する旨のプロンプト511(
図13参照)(第2質問データの一例)を言語モデルサーバ3(又はLLM500)に入力してプロンプト511に対する回答512(回答データの一例)を言語モデルサーバ3(又はLLM500)から取得し、その回答512に含まれる回答結果(例えば、No、No、私はその情報を持っていません。)に基づいて判定対象用語(例えば、「ラビット」)のLLM判定305(判定情報の一例)を設定してもよい。
図12、
図13に示す例では、判定対象用語「ラビット」のLLM判定305には「未知」が設定される。
【0251】
この構成によれば、言語モデルサーバ3(又はLLM500)において用語303(所定の文字列の一例)に関する知識が一定の基準に到達しているか否かを示すLLM判定305を設定する場合に、肯定(YES)又は否定(NO)の何れかで回答可能な質問を用いて自動で設定することが可能である。これにより、LLM判定305の設定を迅速に精度よく実行することが可能である。
【0252】
上述した特定分野において使用される用語集531(
図15参照)(特定情報の一例)に含まれる用語(エンティティ)の抽出と、用語間の関係性を示すグラフ情報の生成とを指示する入力データ530(
図15参照)(第3質問データの一例)を言語モデルサーバ3(又はLLM500)に入力して入力データ530に対する出力データ534(
図16参照)(回答データの一例)を言語モデルサーバ3(又はLLM500)から取得し、その出力データ534に含まれる用語に対する説明を生成する旨のプロンプト(ステップS613(
図21参照)で示す)(第4質問データの一例)を言語モデルサーバ3(又はLLM500)に入力してそのプロンプト(第4質問データ)に対する回答データを言語モデルサーバ3(又はLLM500)から取得し、その回答データに含まれる用語に対する説明を用いて事前知識DB300(データベースの一例)における説明340(説明情報の一例)を設定する事前知識確認部80(設定部の一例)をさらに備えてもよい。
【0253】
この構成によれば、事前知識DB300の説明340を設定する場合に、その設定作業を自動化することが可能である。これにより、説明340の設定を迅速に精度よく実行することが可能である。
【0254】
上述した特定分野において使用される用語集531(
図15参照)(特定情報の一例)に含まれる用語(エンティティ)の抽出と、用語間の関係性を示すグラフ情報の生成とを指示する入力データ530(
図15参照)(第3質問データの一例)を言語モデルサーバ3(又はLLM500)に入力して入力データ530に対する出力データ534(
図16参照)(回答データの一例)を言語モデルサーバ3(又はLLM500)から取得し、その出力データ534に含まれる用語及びグラフ情報に基づいて事前知識DB300(データベースの一例)におけるツリー構造を設定する事前知識確認部80(設定部の一例)をさらに備えてもよい。
【0255】
この構成によれば、事前知識DB300の各用語を階層化する場合に、その作業を自動化することが可能である。これにより、各用語を階層化する場合に、その階層化処理を迅速に精度よく実行することが可能である。
【0256】
本実施形態に係る情報処理方法は、言語モデルサーバ3(又はLLM500)(大規模言語モデルの一例)に入力された質問データ(例えば、「ラビットのオーディオについてオプションには何が選べるか教えてください。」)に対する回答データ(例えば、
図8に示す回答740)を言語モデルサーバ3(又はLLM500)から取得することが可能な情報処理方法である。言語モデルサーバ3(又はLLM500)において用語303(所定の文字列の一例)に関する知識が一定の基準に到達しているか否かを示すLLM判定305(判定情報の一例)と、用語303と、その説明304(説明情報の一例)とを関連付けて保持する事前知識DB300(データベースの一例)において、質問データ「ラビットのオーディオについてオプションには何が選べるか教えてください。」に含まれる各用語(例えば、ラビット、オーディオ、オプション)(文字列の一例)のうちから、LLM判定305「未知」(基準に到達していない判定情報の一例)が関連付けられている第1文字列「ラビット」を抽出する抽出処理(ステップS42)と、第1文字列「ラビット」と第1文字列「ラビット」に関連付けられている説明304(説明情報の一例)「ラビットはA自動車が生産販売するコンパクトカーである」とを質問データ「ラビットのオーディオについてオプションには何が選べるか教えてください。」に含めたプロンプト730(入力データの一例)を言語モデルサーバ3(又はLLM500)に入力してその質問データ「ラビットのオーディオについてオプションには何が選べるか教えてください。」に対する回答データ(例えば、
図8に示す回答740)を言語モデルサーバ3(又はLLM500)から取得する制御処理(ステップS42~S46)とを含む。また、本実施形態に係るプログラムは、それらの各処理をコンピュータに実行させるプログラムである。言い換えると、本実施形態に係るプログラムは、管理サーバ1が実行可能な各機能をコンピュータに実現させるプログラムである。
【0257】
この構成によれば、質問の回答に必要な範囲内の事前知識を抽出することにより、言語モデルサーバ3(又はLLM500)に渡せる有限な情報量の範囲内でも必要な事前知識を渡すことが可能であり、回答の質を高めることができる。
【0258】
なお、本実施形態で示した各処理手順は、本実施形態を実現するための一例を示したものであり、本実施形態を実現可能な範囲で各処理手順の一部の順序を入れ替えてもよく、各処理手順の一部を省略したり他の処理手順を追加したりしてもよい。
【0259】
なお、本実施形態で示した各処理は、各処理手順をコンピュータに実行させるためのプログラムに基づいて実行されるものである。このため、本実施形態は、それらの各処理を実行する機能を実現するプログラム、そのプログラムを記憶する記録媒体の実施形態としても把握することができる。例えば、情報処理装置に新機能を追加するためのアップデート処理により、そのプログラムを情報処理装置の記憶装置に記憶させることができる。これにより、そのアップデートされた情報処理装置に本実施形態で示した各処理を実施させることが可能となる。
【0260】
以上、本発明の実施形態について説明したが、上記実施形態は本発明の適用例の一部を示したに過ぎず、本発明の技術的範囲を上記実施形態の具体的構成に限定する趣旨ではない。
【符号の説明】
【0261】
1…管理サーバ、 2…ユーザ端末、 3…言語モデルサーバ、 11…制御部、 60…入力情報取得部、 61…事前知識管理部、 62…事前知識絞り込み部、 63…提供情報生成部、 64…回答情報管理部、 80…事前知識確認部、 81…階層化管理部、 100…制御部、 120…入力情報管理部、 121…回答情報管理部、 160…制御部、 180…提供情報等取得部、 181…回答情報生成部、 300…事前知識DB、 350…業務知識DB