IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 楽天株式会社の特許一覧

特許7538364情報処理システム、情報処理方法及びプログラム
<>
  • 特許-情報処理システム、情報処理方法及びプログラム 図1
  • 特許-情報処理システム、情報処理方法及びプログラム 図2
  • 特許-情報処理システム、情報処理方法及びプログラム 図3
  • 特許-情報処理システム、情報処理方法及びプログラム 図4
  • 特許-情報処理システム、情報処理方法及びプログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-08-13
(45)【発行日】2024-08-21
(54)【発明の名称】情報処理システム、情報処理方法及びプログラム
(51)【国際特許分類】
   G06F 16/30 20190101AFI20240814BHJP
【FI】
G06F16/30
【請求項の数】 12
(21)【出願番号】P 2024009522
(22)【出願日】2024-01-25
【審査請求日】2024-01-25
【早期審査対象出願】
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】100207837
【弁理士】
【氏名又は名称】小松原 寿美
(72)【発明者】
【氏名】オレヤナ ルイス
(72)【発明者】
【氏名】森下 民平
(72)【発明者】
【氏名】エング ミカエル
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】特許第7325152(JP,B1)
【文献】特許第7313757(JP,B1)
【文献】特開2022-180282(JP,A)
【文献】中国特許出願公開第116860930(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 40/00-40/58
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
複数のユーザの各々から入力される質問文に対して、大規模言語モデルを利用して生成した回答文を出力するように構成される情報処理システムであって、前記情報処理システムは、
プログラムを格納するように構成される少なくとも1つのメモリと、
前記プログラムに基づいて処理を実行するように構成される少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサが、
複数の電子文書に含まれるコンテンツを取得することであって、前記コンテンツは、コンテンツ分類に基づく複数のコンテンツ分類項目のうちの何れかが付された種別コンテンツを含む、ことと、
前記コンテンツを複数の文書ベクトルに変換することであって、前記複数の文書ベクトルの各々に変換元のコンテンツと同じコンテンツ分類項目を付すことを含む、ことと、
前記質問文に関するユーザ分類項目を取得することであって、当該ユーザ分類項目は、ユーザ分類に基づく複数のユーザ分類項目のうちの何れかであり、前記ユーザ分類は前記コンテンツ分類に対応している、ことと、
前記質問文を質問ベクトルに変換することと、
前記複数の文書ベクトルの中から、前記質問ベクトルとの関連度が高い規定数の文書ベクトルを検索することであって、当該検索において、前記質問ベクトルに係る前記ユーザ分類項目に対応する前記コンテンツ分類項目が付された文書ベクトルを検索対象とすることを含む、ことと、
前記大規模言語モデルに入力するためのプロンプトを生成することであって、前記プロンプトには前記質問文と、コンテキストとなる前記規定数の文書ベクトルの変換元のコンテンツとが含まれる、ことと、
前記プロンプトを前記大規模言語モデルに入力することと、
前記大規模言語モデルが出力した文章に基づいて生成した前記回答文を出力することと、
を実行するように構成される、情報処理システム。
【請求項2】
前記ユーザ分類は前記ユーザの種類に基づく分類であり、
前記複数のユーザ分類項目は、前記複数のユーザの種類にそれぞれ対応する複数のユーザ種別項目と、全てのユーザに対応する全ユーザ項目と、を含み、
前記コンテンツ分類は前記コンテンツの種類に応じた分類であり、前記コンテンツの種類は前記ユーザの種類に基づいて設定され、
前記複数のコンテンツ分類項目は、複数の前記種別コンテンツにそれぞれ対応する複数のコンテンツ種別項目と、前記コンテンツの種類を問わないコンテンツに対応する共通コンテンツ項目と、を含み、
前記コンテンツ種別項目が付されたコンテンツは、当該コンテンツ種別項目に対応する前記ユーザ種別項目に分類されるユーザのためのコンテンツであり、前記共通コンテンツ項目が付されたコンテンツは、前記ユーザの種類を問わないコンテンツである、
請求項1に記載の情報処理システム。
【請求項3】
前記検索することは、前記質問ベクトルに前記全ユーザ項目が付されている場合に、前記コンテンツ種別項目が付された全ての前記文書ベクトルと、前記共通コンテンツ項目が付された前記文書ベクトルとを検索対象とすることを含む、
請求項2に記載の情報処理システム。
【請求項4】
前記検索することは、前記質問ベクトルに前記複数のユーザ種別項目のうちの1のユーザ種別項目が付されている場合に、前記共通コンテンツ項目が付された前記文書ベクトルと前記1のユーザ種別項目に対応する1のコンテンツ種別項目が付された前記文書ベクトルとを検索対象とするとともに、前記1のコンテンツ種別項目以外のコンテンツ種別項目が付された前記文書ベクトルを検索対象外とすることを含む、
請求項2に記載の情報処理システム。
【請求項5】
前記複数のユーザは複数の社員であり、
前記ユーザ分類は前記社員の種類に基づいて規定され、
前記少なくとも1つのメモリには、前記複数の社員の各々の社員情報と前記ユーザ分類項目とを含むユーザデータベースが格納されており、
前記ユーザ分類項目を取得することは、
前記社員情報を取得することと、
前記ユーザデータベースを参照して、取得した前記社員情報に対応する前記ユーザ分類項目を取得することと、
を含む、
請求項1~4のうち何れか一項に記載の情報処理システム。
【請求項6】
前記社員の種類は、所属部署、職種、配属地域又は役職のうち少なくとも1つに基づいて規定される、
請求項5に記載の情報処理システム。
【請求項7】
第1言語で入力された前記質問文を第2言語に翻訳することと、
前記大規模言語モデルが前記第2言語で出力した文章を前記第1言語に翻訳することと、
を含む、
請求項1~4のうち何れか一項に記載の情報処理システム。
【請求項8】
前記ユーザ分類は、前記複数のユーザの各々が属する国又は地域に基づいて規定され、
前記複数のユーザ分類項目は、2以上の国又は地域の各々に対応する複数のユーザ種別項目と、全ユーザ項目と、を含み、
前記複数のコンテンツ分類項目は、前記2以上の国又は地域の各々に対応する複数のコンテンツ種別項目と、共通コンテンツ項目と、を含み、
前記コンテンツ種別項目が付されたコンテンツは、対応する国又は地域に特有のコンテンツであり、前記共通コンテンツ項目が付されたコンテンツは、国又は地域を問わないコンテンツである、
請求項1~4のうち何れか一項に記載の情報処理システム。
【請求項9】
前記少なくとも1つのメモリには、前記複数のユーザの各々のユーザ情報と前記ユーザ分類項目とを含むユーザデータベースが格納されており、
前記ユーザ分類項目を取得することは、
前記ユーザ情報を取得することと、
前記ユーザデータベースを参照して、取得した前記ユーザ情報に対応する前記ユーザ分類項目を取得することと、
を含む、
請求項1~4のうち何れか一項に記載の情報処理システム。
【請求項10】
複数のユーザの各々から入力される質問文に対して、大規模言語モデルを利用して生成した回答文を出力するための情報処理方法であって、
1以上のコンピュータ
複数の電子文書に含まれるコンテンツを取得することであって、前記コンテンツは、コンテンツ分類に基づく複数のコンテンツ分類項目のうちの何れかが付された種別コンテンツを含む、ことと、
前記コンテンツを複数の文書ベクトルに変換することであって、前記複数の文書ベクトルの各々に変換元のコンテンツと同じコンテンツ分類項目を付すことを含む、ことと、
前記質問文に関するユーザ分類項目を取得することであって、当該ユーザ分類項目は、ユーザ分類に基づく複数のユーザ分類項目のうちの何れかであり、前記ユーザ分類は前記コンテンツ分類に対応している、ことと、
前記質問文を質問ベクトルに変換することと、
前記複数の文書ベクトルの中から、前記質問ベクトルとの関連度が高い規定数の文書ベクトルを検索することであって、当該検索において、前記質問ベクトルに係る前記ユーザ分類項目に対応する前記コンテンツ分類項目が付された文書ベクトルを検索対象とすることを含む、ことと、
前記大規模言語モデルに入力するためのプロンプトを生成することであって、前記プロンプトには前記質問文と、コンテキストとなる前記規定数の文書ベクトルの変換元のコンテンツとが含まれる、ことと、
前記プロンプトを前記大規模言語モデルに入力することと、
前記大規模言語モデルが出力した文章に基づいて生成した前記回答文を出力することと、
を実行ることを含む、情報処理方法。
【請求項11】
複数のユーザの各々から入力される質問文に対して、ベクトルデータベース及び大規模言語モデルを利用して生成した回答文を出力するように構成される情報処理システムであって、
前記ベクトルデータベースは、複数の文書ベクトルを格納するように構成され、前記複数の文書ベクトルの各々は、コンテンツ分類に基づく複数のコンテンツ分類項目のうちの何れかが付されたコンテンツをベクトル変換したものであり、
前記情報処理システムは、
プログラムを格納するように構成される少なくとも1つのメモリと、
前記プログラムに基づいて処理を実行するように構成される少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサが、
前記質問文に関するユーザ分類項目を取得することであって、当該ユーザ分類項目は、ユーザ分類に基づく複数のユーザ分類項目のうちの何れかであり、前記ユーザ分類は前記コンテンツ分類に対応している、ことと、
前記質問文を質問ベクトルに変換することと、
前記複数の文書ベクトルの中から、前記質問ベクトルとの関連度が高い規定数の文書ベクトルを検索することであって、当該検索において、前記質問ベクトルに係る前記ユーザ分類項目に対応する前記コンテンツ分類項目が付された文書ベクトルを検索対象とすることを含む、ことと、
前記大規模言語モデルに入力するためのプロンプトを生成することであって、前記プロンプトには前記質問文と、コンテキストとなる前記規定数の文書ベクトルの変換元のコンテンツとが含まれる、ことと、
前記プロンプトを前記大規模言語モデルに入力することと、
前記大規模言語モデルが出力した文章に基づいて生成した前記回答文を出力することと、
を実行するように構成される、情報処理システム。
【請求項12】
複数のユーザの各々から入力される質問文に対して、ベクトルデータベース及び大規模言語モデルを利用して生成した回答文を出力するように構成されるコンピュータプログラムであって、
前記ベクトルデータベースは、複数の文書ベクトルを格納するように構成され、前記複数の文書ベクトルの各々は、コンテンツ分類に基づく複数のコンテンツ分類項目のうちの何れかが付されたコンテンツをベクトル変換したものであり、
前記コンピュータプログラムは、コンピュータに、
前記質問文に関するユーザ分類項目を取得することであって、当該ユーザ分類項目は、ユーザ分類に基づく複数のユーザ分類項目のうちの何れかであり、前記ユーザ分類は前記コンテンツ分類に対応している、ことと、
前記質問文を質問ベクトルに変換することと、
前記複数の文書ベクトルの中から、前記質問ベクトルとの関連度が高い規定数の文書ベクトルを検索することであって、当該検索において、前記質問ベクトルに係る前記ユーザ分類項目に対応する前記コンテンツ分類項目が付された文書ベクトルを検索対象とすることを含む、ことと、
前記大規模言語モデルに入力するためのプロンプトを生成することであって、前記プロンプトには前記質問文と、コンテキストとなる前記規定数の文書ベクトルの変換元のコンテンツとが含まれる、ことと、
前記プロンプトを前記大規模言語モデルに入力することと、
前記大規模言語モデルが出力した文章に基づいて生成した前記回答文を出力することと、
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理システム、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
近年、大規模言語モデル(LLM:Large Language Models)を用いた質疑応答システムが提供されている。大規模言語モデルは、自然言語処理(NLP:Natural Language Processing)に特化した言語モデルであって、いわゆる生成AI(Artificial Intelligence)の一種である。一般的に、大規模言語モデルは、プロンプト(Prompt)と呼ばれる指示文を入力すると、その指示に基づいて生成したコンプリーション(Completion)と呼ばれる文章を出力する。
【0003】
大規模言語モデルを用いた生成AIは、質問に対して正確性に欠く回答を出力することがしばしばある。そこで、例えば特許文献1は、質問文に対して参考情報を付加することにより、大規模言語モデルに入力するためのよりよいプロンプトを生成する技術を開示している。
【先行技術文献】
【特許文献】
【0004】
【文献】特許第7313757号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
プロンプトを最適化するためには、質問文に対してより適切な情報を付加する必要がある。そのため、汎用的な大規模言語モデルを用いてより適切な回答文を出力するためには、質問文とともにプロンプトに含める情報の選択方法を確立することが課題となる。
【0006】
本開示は、汎用的な大規模言語モデルを用いてより適切な回答文を出力することができる情報処理システム、情報処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本開示の一態様に係る情報処理システムは、複数のユーザの各々から入力される質問文に対して、大規模言語モデルを利用して生成した回答文を出力するように構成される情報処理システムであって、前記情報処理システムは、プログラムを格納するように構成される少なくとも1つのメモリと、前記プログラムに基づいて処理を実行するように構成される少なくとも1つのプロセッサと、を備え、前記少なくとも1つのプロセッサが、複数の電子文書に含まれるコンテンツを取得することであって、前記コンテンツは、コンテンツ分類に基づく複数のコンテンツ分類項目のうちの何れかが付された種別コンテンツを含む、ことと、前記コンテンツを複数の文書ベクトルに変換することであって、前記複数の文書ベクトルの各々に変換元のコンテンツと同じコンテンツ分類項目を付すことを含む、ことと、前記質問文に関するユーザ分類項目を取得することであって、当該ユーザ分類項目は、ユーザ分類に基づく複数のユーザ分類項目のうちの何れかであり、前記ユーザ分類は前記コンテンツ分類に対応している、ことと、前記質問文を質問ベクトルに変換することと、前記複数の文書ベクトルの中から、前記質問ベクトルとの関連度が高い規定数の文書ベクトルを検索することであって、当該検索において、前記質問ベクトルに係る前記ユーザ分類項目に対応する前記コンテンツ分類項目が付された文書ベクトルを検索対象とすることを含む、ことと、前記大規模言語モデルに入力するためのプロンプトを生成することであって、前記プロンプトには前記質問文と、コンテキストとなる前記規定数の文書ベクトルの変換元のコンテンツとが含まれる、ことと、前記プロンプトを前記大規模言語モデルに入力することと、前記大規模言語モデルが出力した文章に基づいて生成した前記回答文を出力することと、を実行するように構成される。
【0008】
本開示の一態様に係る情報処理方法は、複数のユーザの各々から入力される質問文に対して、大規模言語モデルを利用して生成した回答文を出力するための情報処理方法であって、1以上のコンピュータに、複数の電子文書に含まれるコンテンツを取得することであって、前記コンテンツは、コンテンツ分類に基づく複数のコンテンツ分類項目のうちの何れかが付された種別コンテンツを含む、ことと、前記コンテンツを複数の文書ベクトルに変換することであって、前記複数の文書ベクトルの各々に変換元のコンテンツと同じコンテンツ分類項目を付すことを含む、ことと、前記質問文に関するユーザ分類項目を取得することであって、当該ユーザ分類項目は、ユーザ分類に基づく複数のユーザ分類項目のうちの何れかであり、前記ユーザ分類は前記コンテンツ分類に対応している、ことと、前記質問文を質問ベクトルに変換することと、前記複数の文書ベクトルの中から、前記質問ベクトルとの関連度が高い規定数の文書ベクトルを検索することであって、当該検索において、前記質問ベクトルに係る前記ユーザ分類項目に対応する前記コンテンツ分類項目が付された文書ベクトルを検索対象とすることを含む、ことと、前記大規模言語モデルに入力するためのプロンプトを生成することであって、前記プロンプトには前記質問文と、コンテキストとなる前記規定数の文書ベクトルの変換元のコンテンツとが含まれる、ことと、前記プロンプトを前記大規模言語モデルに入力することと、前記大規模言語モデルが出力した文章に基づいて生成した前記回答文を出力することと、を実行させることを含む。
【0009】
本開示の一態様に係る情報処理システムは、複数のユーザの各々から入力される質問文に対して、ベクトルデータベース及び大規模言語モデルを利用して生成した回答文を出力するように構成される情報処理システムであって、前記ベクトルデータベースは、複数の文書ベクトルを格納するように構成され、前記複数の文書ベクトルの各々は、コンテンツ分類に基づく複数のコンテンツ分類項目のうちの何れかが付されたコンテンツをベクトル変換したものであり、前記情報処理システムは、プログラムを格納するように構成される少なくとも1つのメモリと、前記プログラムに基づいて処理を実行するように構成される少なくとも1つのプロセッサと、を備え、前記少なくとも1つのプロセッサが、前記質問文に関するユーザ分類項目を取得することであって、当該ユーザ分類項目は、ユーザ分類に基づく複数のユーザ分類項目のうちの何れかであり、前記ユーザ分類は前記コンテンツ分類に対応している、ことと、前記質問文を質問ベクトルに変換することと、前記複数の文書ベクトルの中から、前記質問ベクトルとの関連度が高い規定数の文書ベクトルを検索することであって、当該検索において、前記質問ベクトルに係る前記ユーザ分類項目に対応する前記コンテンツ分類項目が付された文書ベクトルを検索対象とすることを含む、ことと、前記大規模言語モデルに入力するためのプロンプトを生成することであって、前記プロンプトには前記質問文と、コンテキストとなる前記規定数の文書ベクトルの変換元のコンテンツとが含まれる、ことと、前記プロンプトを前記大規模言語モデルに入力することと、前記大規模言語モデルが出力した文章に基づいて生成した前記回答文を出力することと、を実行するように構成される。
【0010】
本開示の一態様に係るプログラムは、複数のユーザの各々から入力される質問文に対して、ベクトルデータベース及び大規模言語モデルを利用して生成した回答文を出力するように構成されるコンピュータプログラムであって、前記ベクトルデータベースは、複数の文書ベクトルを格納するように構成され、前記複数の文書ベクトルの各々は、コンテンツ分類に基づく複数のコンテンツ分類項目のうちの何れかが付されたコンテンツをベクトル変換したものであり、前記コンピュータプログラムは、コンピュータに、前記質問文に関するユーザ分類項目を取得することであって、当該ユーザ分類項目は、ユーザ分類に基づく複数のユーザ分類項目のうちの何れかであり、前記ユーザ分類は前記コンテンツ分類に対応している、ことと、前記質問文を質問ベクトルに変換することと、前記複数の文書ベクトルの中から、前記質問ベクトルとの関連度が高い規定数の文書ベクトルを検索することであって、当該検索において、前記質問ベクトルに係る前記ユーザ分類項目に対応する前記コンテンツ分類項目が付された文書ベクトルを検索対象とすることを含む、ことと、前記大規模言語モデルに入力するためのプロンプトを生成することであって、前記プロンプトには前記質問文と、コンテキストとなる前記規定数の文書ベクトルの変換元のコンテンツとが含まれる、ことと、前記プロンプトを前記大規模言語モデルに入力することと、前記大規模言語モデルが出力した文章に基づいて生成した前記回答文を出力することと、を実行させる、プログラム。
【図面の簡単な説明】
【0011】
図1図1は、実施形態に係る情報処理システムの模式図である。
図2図2は、ユーザ分類とコンテンツ分類の対応例を示す図である。
図3図3は、図1の情報処理システムが含む第1及び第2情報処理装置の構成を説明する図である。
図4図4は、図1の情報処理システムによるベクトルデータベースの構築方法を示す図である。
図5図5は、図1の情報処理システムによる回答の出力方法を示す図である。
【発明を実施するための形態】
【0012】
図1図5を参照して、本開示の情報処理システム11、情報処理方法、及びプログラムの例を説明する。本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【0013】
[情報処理システムの全体構成]
図1に示すように、情報処理システム11は、1以上の情報処理装置20を備える。以下では、情報処理システム11が2つの情報処理装置20(第1情報処理装置20A及び第2情報処理装置20B)を備える事例について説明する。
【0014】
情報処理装置20A,20Bの各々は、例えば、1以上のプロセッサ21、1以上のメモリ22、及び通信インタフェース(IF)23を備えるコンピュータとして実現されてもよい。複数の情報処理装置20の構成は、一部又は全部が同じであってもよいし、互いに異なっていてもよい。
【0015】
1以上のメモリ22には、各種の機能を実現するためのプログラム及びデータが格納されている。プログラムは、アプリケーション及びオペレーティングシステムを含む。1以上のプロセッサ21は、プログラムに基づいて処理を実行することにより、各種の機能を実現する。通信インタフェース23は、ネットワーク12を介した他の装置との通信を可能とする。ネットワーク12は、例えば、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、プロバイダ端末、無線通信網、無線基地局、専用回線等を含む。
【0016】
1以上の情報処理装置20はネットワーク12を通じて1以上のウェブサーバ30と通信可能であってもよい。各ウェブサーバ30は、1以上のプロセッサ31、1以上のメモリ32、及び通信インタフェース(IF)33を備えるコンピュータとして実現されてもよい。通信インタフェース33は、ネットワーク12を介した他の装置との通信を可能とする。
【0017】
プロセッサ21,31は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、MPU(Micro Processor Unit)、FPGA(Field-Programmable Gate Array)、又はその他の演算装置である。プロセッサ21,31は、例えば、各種ソフトウェア処理を実行するように構成される処理回路である。処理回路は、ソフトウェア処理の少なくとも一部を処理する専用のハードウェア回路(たとえばASIC等)を備えてもよい。すなわち、ソフトウェア処理は、1又は複数のソフトウェア処理回路及び1又は複数の専用のハードウェア回路の少なくとも一方を備えた処理回路(processing circuitry)によって実行されればよい。
【0018】
メモリ22,32は、例えば、RAM(Random Access Memory)、又はその他の揮発性メモリを含んでもよい。メモリ22,32は、プログラム及びデータを一時的に格納するように構成されてもよい。メモリ22,32は、プログラムを含むデータを恒久的に保管するストレージを含んでもよい。ストレージは、例えば、ROM(Read-Only Memory)、ハードディスク装置、フラッシュメモリ、又はその他の不揮発性記憶装置であってもよい。ストレージは、メモリカードのように、着脱可能な記憶装置であってもよい。通信インタフェース23,33は、例えば、LAN、又はその他の有線通信IFとして実現されてもよい。
【0019】
ウェブサーバ30は、例えば、複数の国及び地域に支社又は営業所を有する企業の社内ホームページを提供するように構成される。ウェブサーバ30のメモリ32には、複数の電子文書34が格納されている。
【0020】
情報処理システム11は、ベクトルデータベース13を備えてもよい。ベクトルデータベース13は、図示しないサーバ装置に保持されていてもよい。これに代えて、情報処理装置20A,20Bはネットワーク12を通じて情報処理システム11に含まれないベクトルデータベース13のデータを利用してもよい。あるいは、情報処理装置20A,20Bがベクトルデータベース13を備えてもよい。
【0021】
情報処理システム11は、大規模言語モデル14を備えてもよい。これに代えて、第2情報処理装置20Bはネットワーク12を通じて情報処理システム11に含まれない大規模言語モデル14を利用してもよい。大規模言語モデル14は、大量のテキストデータを使ってトレーニングされた自然言語処理のモデルである。大規模言語モデル14は、情報抽出、文章要約、テキスト生成、又は質疑応答といった、さまざまな自然言語処理タスクに適応できる汎用的な言語モデルである。
【0022】
大規模言語モデル14は、何らかの指示を含むプロンプト45(Prompt、図3参照)を入力すると、指示に応じた文章を作成して、コンプリーション46(Completion、図3参照)として出力するように構成される。本例では、第2情報処理装置20Bがプロンプト45を生成して大規模言語モデル14に入力し、その後、大規模言語モデル14のコンプリーション46を、第2情報処理装置20Bが必要に応じて編集した上で、出力するようになっている。
【0023】
[電子文書とコンテンツ分類]
複数の電子文書34は、例えば、社内での閲覧用に作成されたコンテンツを含むHTML、PDF、プレーンテキストファイルといったファイルであるが、電子文書34のファイル形式はこれらに限られない。複数の電子文書34の各々には、対応する電子文書34についてのメタデータ35が付されている。メタデータ35は、例えば、コンテンツのタイトル(title)又はURL(Uniform Resource Locator)といった情報を含んでもよく、さらに、社内管理用の文書番号(source)のような情報を含んでもよい(図4参照)。
【0024】
複数の電子文書34の各々は主に文字列からなるコンテンツを含む。これらコンテンツは、複数のユーザに情報を提供するために準備されている。コンテンツは、例えば、複数の社員である複数のユーザが閲覧するための各種社内ルール、社内設備の説明書、又はそれらに関するQ&A(Question and Answer)であるが、これらには限らない。
【0025】
コンテンツは、コンテンツ分類に基づく複数のコンテンツ分類項目のうちの何れかが付された種別コンテンツを含んでもよい。ここで、「コンテンツ分類」は、コンテンツを種類に応じて複数のコンテンツグループに分けることをいい、各コンテンツグループの名称を「コンテンツ分類項目」として示す。コンテンツ分類項目は、電子文書34のコンテンツ内にタイトルとして記載されていてもよいし、HTMLのようなソースコード内にコメントアウトとして記載されていてもよい。
【0026】
図2に示すように、複数のコンテンツ分類項目は、複数の種別コンテンツにそれぞれ対応する複数のコンテンツ種別項目と、コンテンツの種類を問わないコンテンツに対応する共通コンテンツ項目と、を含んでもよい。コンテンツの一部に複数のコンテンツ種別項目の何れかが付されている場合、コンテンツ種別項目が付されていないコンテンツを共通コンテンツ項目として分類してもよい。コンテンツ種別項目が付されたコンテンツは、対象ユーザが設定されたコンテンツであり、共通コンテンツ項目が付されたコンテンツは、全てのユーザに対するコンテンツである。
【0027】
[ユーザ分類]
複数の社員(ユーザ)の一部又は全部は、コンテンツ分類と対応するユーザ分類に基づいて分類される。ここで、「ユーザ分類」は、複数のユーザを種類に応じて複数のユーザグループに分けることをいい、各ユーザグループの名称を「ユーザ分類項目」として示す。ユーザ分類は、社員の種類に基づいて規定されてもよい。社員の種類は、例えば、所属部署、職種、配属地域又は役職のうち少なくとも1つに基づいて規定されてもよい。
【0028】
図1に示すように、情報処理装置20のメモリ22には、複数の社員の各々の社員情報(例えば、氏名又は社員ID)と社員の種類情報とを含むユーザデータベース24が格納されていてもよい。種類情報は、ユーザ分類項目となる情報、例えば、所属部署、職種、配属地域又は役職を含んでもよいが、これらには限られない。
【0029】
図2に示すように、複数のユーザ分類項目は、ユーザの種類にそれぞれ対応する複数のユーザ種別項目と、全ユーザ項目と、を含んでもよい。全ユーザ項目は、全てのユーザに対応するユーザグループの名称であって、複数のユーザ種別項目との重複分類が可能である。種別が未定又は不明なユーザは、全ユーザ項目として分類してもよい。複数のユーザ種別項目へのユーザの分類は、重複を許容した重複可能分類であってもよいし、重複を許容しない(択一的な)ユニーク分類であってもよい。複数のユーザ種別項目は、複数のコンテンツ種別項目と一致していてもよいし、異なっていてもよい。例えば、ユーザ種別項目の項目数がコンテンツ種別項目の項目数よりも多くてもよいし、少なくてもよい。
【0030】
一例として、ユーザ分類は、複数の社員(ユーザ)の各々が属する国又は地域に基づいて規定されてもよい。例えば、複数のユーザ分類項目は、2以上の国又は地域の各々に対応する複数のユーザ種別項目と、2以上の国又は地域の全てを含む全ユーザ項目と、を含んでもよい。
【0031】
本開示における「地域」は、複数の国を含む「ヨーロッパ」のような地域であってもよいし、1つの国の中に含まれる複数の地域であってもよい。この「地域」は、例えば国、県、又は市といった公的な境界で区切られた地域に限らず、コンテンツ又はユーザに応じて任意に設定されてもよい。
【0032】
この場合、複数のコンテンツ分類項目は、2以上の国又は地域の各々に対応する複数のコンテンツ種別項目と、国又は地域を問わない共通コンテンツ項目とを含んでもよい。コンテンツ種別項目が付されたコンテンツは、対応する国又は地域に特有のコンテンツであり、共通コンテンツ項目が付されたコンテンツは、全ての国及び地域に共通するコンテンツである。
【0033】
例えば、コンテンツ分類が「地域(region)」に基づいて規定される場合、コンテンツ種別項目は、「日本(Japan)」、「アジア(Asia)」、「(南北及び中央)アメリカ(Americas)」、「EMEA(Europe, Middle East and Africa)」を含んでもよい。この場合、共通コンテンツ項目は、「全域(All region)」であってもよい。このコンテンツ分類に対応して、ユーザ分類も「地域(region)」に基づいて規定されてもよく、ユーザ種別項目は、コンテンツ種別項目と同じく、「日本」、「アジア」、「アメリカ」、「EMEA」を含んでもよい。
【0034】
この場合、「日本」に分類されるユーザは、「アジア」にも重複して分類されてもよいし、「日本」以外のアジアのユーザを「アジア」に分類することにより、択一的なユニーク分類としてもよい。また、全ユーザ項目は、「グローバル(Global)」であってもよい。「グローバル」と「全域」のように、ユーザ分類とコンテンツ分類とで、項目名称が異なりつつ実質的に同じ対象を示してもよい。
【0035】
ユーザ及びコンテンツは、「地域」に基づく分類に加えて、社員の所属部署、職種、配属地域又は役職のうち少なくとも1つに基づいてさらに分類されてもよい。これに代えて、あるいはこれに加えて、ユーザ又はコンテンツのうち一方の「EMEA」が、さらに、「ヨーロッパ」、「中東」、及び「アフリカ」に分類されてもよい。このように、コンテンツ分類項目とユーザ分類項目とは「1対2以上」又は「2以上対1」で対応していてもよい。
【0036】
[第1情報処理装置]
図3に示すように、第1情報処理装置20Aは、プロセッサ21がプログラム25に基づいて処理を実行することにより、機能部51~55を備える装置として作動する。機能部51~55はプログラムコードであってもよい。第1情報処理装置20Aは、機能部51~55を備えることにより、ベクトルデータベース13を構築する装置として作動する。
【0037】
機能部51はコンテンツ取得部51である。コンテンツ取得部51は、ウェブサーバ30のメモリ32から複数の電子文書34を取得するように構成される。複数の電子文書34の各々には、コンテンツが含まれている。また、複数の電子文書34の各々には、メタデータ35が付されている。
【0038】
機能部52はメタデータ管理部52である。メタデータ管理部52は、複数の電子文書34に付されたメタデータ35の編集を行うように構成される。例えば、メタデータ管理部52は、メタデータ35に新たなデータを追加したり、電子文書34に基づいて生成されたデータに元の電子文書34に付されていたメタデータ35を付したりすることができる。
【0039】
機能部53はコンテンツ分割部(splitter)53である。コンテンツ分割部53は、コンテンツ取得部51が取得したコンテンツを適切な区分で分割したり、適切な長さに分割したりするように構成される。このとき、コンテンツ分割部53は、各々が分割後のコンテンツを含む、統一された形式の複数の電子文書を生成してもよい。
【0040】
機能部54はベクトル変換部54である。ベクトル変換部54は、適切な長さに分割されたコンテンツをベクトル変換するように構成される。この変換は、エンベディング(Enbedding、埋め込み)とも呼ばれる。ベクトルは、コンピュータがその概念間の関係を理解できるようにするための、概念の数値表現である。本開示では、コンテンツをエンベディングしたベクトルを「文書ベクトル」という。
【0041】
機能部55はデータ管理部55である。データ管理部55は、文書ベクトルをベクトルデータベース13に格納したり、ベクトルデータベース13に格納されている文書ベクトルを更新したりするように構成される。
【0042】
[第2情報処理装置]
第2情報処理装置20Bは、プロセッサ21がプログラム25に基づいて処理を実行することにより、機能部61~68を備える装置として作動する。第2情報処理装置20Bは、機能部61~68を備えることにより、問合せ対応用のチャットボットを提供する。機能部61~68は、チャットボットのためのプログラムコードであってもよい。
【0043】
図1に示すように、チャットボットは、複数のユーザの各々から入力される質問文26に対して、大規模言語モデル14を利用して生成した回答文27を出力するように構成される。チャットボットは、端末15のディスプレイ16にチャットウインドウ40を表示させるように構成される。
【0044】
チャットボットを利用する複数のユーザの各々は、端末15を通じて第2情報処理装置20Bと通信する。端末15は、例えば、パーソナルコンピュータ、タブレット、又はスマートフォンなどであるが、これらに限らない。端末15は個人が使用又は所有するユーザ端末であってもよいし、複数のユーザが使用する共用端末であってもよい。
【0045】
図3に示すように、機能部61はユーザ分類取得部61である。ユーザ分類取得部61は、質問文26又は質問文26を送信したユーザに関するユーザ分類項目を取得するように構成される。機能部62は質問文取得部62である。質問文取得部62は、チャットウインドウ40を通じて送信された質問文26を取得するように構成される。
【0046】
機能部63はベクトル変換部63である。ベクトル変換部63は、質問文26をベクトル変換(Enbedding)するように構成される。本開示では、質問文26をエンベディングしたベクトルを「質問ベクトル」という。
【0047】
機能部64はベクトル検索部64である。ベクトル検索部64は、質問ベクトルと関連度の高い文書ベクトルをベクトルデータベース13において検索するように構成される。この検索はセマンティック検索である。ベクトル検索部64は、ユーザ分類項目とコンテンツ分類項目とを用いて検索対象とする文書ベクトルをフィルタリングし、対象のコンテンツ分類項目が付された文書ベクトルの中から、質問ベクトルと関連度の高い文書ベクトルを抽出するように構成される。
【0048】
一例として、質問ベクトルに全ユーザ項目(「グローバル」)が付されている場合には、コンテンツ種別項目(「日本」、「アジア」、「アメリカ」、及び「EMEA」)が付された全ての文書ベクトルと、共通コンテンツ項目(「全域」)が付された文書ベクトルとが検索対象となる。そして、ベクトル検索部64は、「日本」、「アジア」、「アメリカ」、「EMEA」又は「全域」が付された文書ベクトルの中から、質問ベクトルと関連度の高い規定数の文書ベクトルを抽出する。
【0049】
別の例として、質問ベクトルに複数のユーザ種別項目のうちの1つのユーザ種別項目(例えば、「日本」)が付されている場合には、共通コンテンツ項目(「全域」)が付された文書ベクトルと1つのユーザ種別項目(「日本」)に対応するコンテンツ種別項目(「日本」)が付された文書ベクトルとが検索対象となる。このとき、1つのユーザ種別項目(「日本」)に対応するコンテンツ種別項目(「日本」)以外のコンテンツ種別項目(「アジア」、「アメリカ」、「EMEA」)が付された文書ベクトルは検索対象外となる。そして、ベクトル検索部64は、「日本」又は「全域」が付された文書ベクトルの中から、質問ベクトルと関連度の高い規定数の文書ベクトルを抽出する。
【0050】
取得する文書ベクトルの数(規定数)は、チャンク36のトークン長及び大規模言語モデル14に入力するプロンプト45の長さ制限に応じて設定することができる。規定数は、例えば、複数(例えば、2、3、5、又は10)であってもよいし、質問ベクトルに付されたユーザ種別項目に応じて変更してもよい。
【0051】
機能部65はプロンプト生成部65である。プロンプト生成部65は、大規模言語モデル14に入力するためのプロンプト45を生成するように構成される。機能部66はプロンプト入力部66である。プロンプト入力部66は、プロンプト45を大規模言語モデル14に入力するように構成される。
【0052】
機能部67は回答取得部67である。回答取得部67は、大規模言語モデル14が出力したコンプリーション46を回答として取得するように構成される。機能部68は回答出力部68である。回答出力部68は、必要に応じてコンプリーション46に加筆又は編集を加えて回答文27を生成した後、生成した回答文27をチャットウインドウ40に出力するように構成される。
【0053】
[問合せ対応用チャットボット]
図1に示すように、チャットウインドウ40は、質問文26を入力するための入力欄41を有する。チャットウインドウ40は、種別ボタン42と、送信ボタン43と、クリアボタン44を含んでもよい。種別ボタン42は、質問文26の種類を入力するために操作される。送信ボタン43は、入力欄41に入力された質問文26を情報処理装置20に送信する際に操作される。クリアボタン44は、入力内容又は表示内容をクリアするために操作される。
【0054】
種別ボタン42は、選択式であってもよい。質問文26の種類は、ユーザ分類項目と一致していてもよい。例えば、ユーザ分類項目が「日本」、「アジア」、「アメリカ」、「EMEA」、「グローバル」を含む場合、それらと同じ選択肢を種別ボタン42で選択可能であってもよい。ユーザは、自身の種類と異なる質問文26の種類を選択できてもよい。例えば、現在は日本にいるユーザが米国への異動するケースでは、異動前に異動後の国の情報が必要になる場合があるためである。
【0055】
種別ボタン42はユーザの所属部署、職種、役職、又は氏名を選択するものであってもよいし、チャットウインドウ40にユーザ又は質問文26の種類を自由に入力するための入力欄を加えてもよい。この場合、選択内容又は入力内容に基づいて情報処理装置20がユーザデータベース24から対応する種類情報をユーザ分類項目として取得してもよい。
【0056】
あるいは、端末15のID又は端末15へのログインIDといった社員情報(ユーザ情報)に基づいて、ユーザ分類取得部61がユーザデータベース24に格納された種類情報に対応するユーザ分類項目を自動的に取得してもよい。この場合、質問毎に種類情報を取得することに代えて、あるいはこれに加えて、ログイン毎、あるいはチャットボットの起動毎に質問文26の種類としてユーザの種類情報を取得するようにしてもよい。例えば、ログイン時にユーザデータベース24から種類情報を取得し、種別ボタン42の操作がなければその種類情報に対応するユーザ分類項目を質問文26に付す一方、種別ボタン42が操作された場合には選択されたそのユーザ分類項目を質問文26に付してもよい。
【0057】
チャットボットは、ウェブサーバ30で提供される複数の電子文書34のコンテンツについて、ユーザ(例えば、社員)からの問合せに回答するものであってもよい。すなわち、チャットボットは、特定の電子文書34を回答の根拠として、大規模言語モデル14の文章解読機能及び文章作成機能を利用して、ユーザの質問文26に対する回答文27を生成するように構成されてもよい。
【0058】
例えば、社外に公開することができない機密文書は、社外組織により提供される大規模言語モデル14の学習データとして用いられることは好ましくない。そのため、情報処理システム11は、社内文書専用のベクトルデータベース13を構築して、大規模言語モデル14に社内文書を学習させることなく、電子文書34のコンテンツに基づいて回答文27を生成する。
【0059】
[ベクトルデータベースの生成方法]
図4を参照して、コンテンツ分類及びユーザ分類が「地域」の事例を用いて、第1情報処理装置20Aがベクトルデータベース13を構築する方法について説明する。
【0060】
まず、ステップS11にて、コンテンツ取得部51がウェブサーバ30のメモリ32から複数の電子文書34を取得する。各電子文書34にはメタデータ35が付されている。複数の電子文書34の各々はコンテンツを含むので、ステップS11でコンテンツが取得される。
【0061】
続くステップS12にて、コンテンツ取得部51は、取得した電子文書34又はコンテンツの各々について、コンテンツ分類項目(「日本」、「アジア」、「アメリカ」、「EMEA」及び「全域」)を取得する。コンテンツ分類項目は、電子文書34毎に付されていてもよいし、1つの電子文書34が互いに異なるコンテンツ分類項目が付された複数のコンテンツを含んでもよい。
【0062】
ステップS13にて、コンテンツ分割部53は、1つの電子文書34が互いに異なるコンテンツ分類項目が付された複数のコンテンツが含まれている場合、そのコンテンツをコンテンツ分類項目毎に分割する。ステップS14にて、メタデータ管理部52は、コンテンツ分類項目を地域(region)情報として、電子文書34のメタデータ35に追加する。
【0063】
ステップS15にて、コンテンツ分割部53は、コンテンツ分類項目が付されたコンテンツの各々を、規定範囲のデータ量(トークン長)となるように分割(split)する。このとき、分割されたコンテンツの各々をチャンク(chunk)36という。このとき、各チャンク36が適切なトークン長(例えば、2000文字程度)になるように、コンテンツを分割してもよい。各チャンク36には、メタデータ管理部52により、分割前のコンテンツのメタデータ35が付される。続くステップS16にて、メタデータ管理部52は、複数のチャンク36の各々のメタデータ35に、対応するチャンク情報を追加する。
【0064】
ステップS17にて、ベクトル変換部54は、複数のチャンク36に含まれるコンテンツを複数の文書ベクトルに変換する。複数の文書ベクトルの各々には、メタデータ管理部52が変換元のコンテンツ(チャンク36)と同じメタデータ35を付す。これにより、各文書ベクトルには、対応するコンテンツ分類項目が付される。
【0065】
ステップS18にて、データ管理部55は、チャンク36(変換前のコンテンツ)と、それに対応する文書ベクトルとをセットにして、ベクトルデータベース13に格納して、処理を終了する。これにより、コンテンツ分類項目が付された文書ベクトルを格納したベクトルデータベース13が構築される。
【0066】
ベクトルデータベース13に格納された複数の文書ベクトルは、各々のメタデータ35及び電子文書34の取得日といったベクトル化に係るデータとセットにして、別途の履歴データベース(図示略)にて管理されてもよい。そして、文書ベクトルの元データである電子文書34又はそれに含まれるコンテンツがウェブサーバ30において更新された場合、データ管理部55は、履歴データベースに基づいて、更新された部分のみ、ベクトルデータベース13の文書ベクトルを更新してもよい。
【0067】
[回答文の出力方法]
図5を参照して、第2情報処理装置20Bが回答文27を出力する方法を説明する。
入力欄41に質問文26が入力された状態で送信ボタン43が操作されると、ステップS21にて、ユーザ分類取得部61が質問文26に関するユーザ分類項目を取得する。ユーザ分類項目は、ユーザ分類取得部61が種別ボタン42により選択された情報を取得してもよいし、上述した他の方法で取得してもよい。例えば、ユーザ分類取得部61は、ユーザ(社員)に関する社員情報を取得した後に、ユーザデータベース24を参照して、取得した社員情報に対応する社員の種類情報に対応するユーザ分類項目を取得してもよい。
【0068】
ステップS22にて、質問文取得部62が入力欄41に入力された質問文26を取得する。質問文取得部62は、ステップS22で取得した質問文26にステップS21で取得したユーザ分類項目を付してもよい。ステップS22はステップS21より先に実行されてもよいし、ステップS21と同時に実行されてもよい。
【0069】
ステップS23にて、質問文取得部62又は図示しない別の機能部(翻訳部)は、第1言語で入力された質問文26を第2言語に翻訳してもよい。例えば、大規模言語モデル14の主要な学習データで使用されている言語が第2言語(例えば、英語)である場合、プロンプト45が第2言語で表記されている方がコンプリーション46の生成精度が高い。そのため、大規模言語モデル14の訓練言語である第2言語以外で質問文26が表記されている場合、その質問文26を第2言語に機械翻訳するとよい。
【0070】
ステップS24にて、ベクトル変換部63は、質問文26を質問ベクトルに変換する。ここで、ベクトル化前の主要なコンテンツ(電子文書34)が第1言語で表記されている場合、ステップS24において第1言語で表記された質問文26をベクトル化するとよい。あるいは、ベクトル化前の主要なコンテンツが第2言語で表記されている場合、ステップS24において第2言語に翻訳した質問文26をベクトル化するとよい。すなわち、検索に用いる質問ベクトルと文書ベクトルとは、互いに同じ言語の文字列からベクトル変換するとよい。
【0071】
ステップS25にて、ベクトル検索部64は、ステップS24で生成した質問ベクトル及びステップS21で取得したユーザ分類項目に基づいて、ベクトルデータベース13を検索する。ユーザ分類項目に対応するコンテンツ分類項目が付された文書ベクトルが検索対象に含まれるように条件付けて行う。
【0072】
そして、ステップS26にて、ベクトル変換部63は、検索の結果として、複数の文書ベクトルの中から、質問ベクトルとの関連度が高い規定数の文書ベクトル(例えば検索結果がトップ10までのチャンク36)を取得する。この取得された規定数の文書ベクトルのベクトル変換前のコンテンツが、回答文27生成のための情報源(sources、コンテキスト(context)ともいう)になる。
【0073】
ステップS27にて、プロンプト生成部65は、質問文26と、ステップS26で取得した文書ベクトルの変換元のコンテンツ(上記情報源)とを用いて、大規模言語モデル14に入力するためのプロンプト45を生成する。このとき、予めプロンプト45のテンプレートを用意しておいてもよい。テンプレートを用いるか否かに関わらず、プロンプト45には、質問文26と、コンテキストとなる規定数の文書ベクトルの変換元のコンテンツとが含まれるようにする。
【0074】
プロンプト45は、コンプリーション46の生成精度を高めるために、第2言語で表記されてもよい。この場合、ステップS23で第2言語に翻訳された質問文26をプロンプト45に含めるとよい。また、コンテキストとなるコンテンツが第1言語で表記されている場合、それらコンテンツを第2言語に機械翻訳した上でプロンプト45に含めてもよい。
【0075】
テンプレートは、例えば、「以下のコンテキストを使用して質問への回答を生成して下さい」といった指示文であって、この「質問」の部分に質問文26を入れ、「コンテキスト」の部分に情報源となるコンテンツを入れてプロンプト45を完成するようにしてもよい。このプロンプト45(テンプレート)には、例えば回答文27には使用したコンテンツの出典となる電子文書34へのリンク(URL)を出力する指示、並びに、出力文の文字数又は表記言語といった形式的な出力方法の指示を含めてもよい。
【0076】
ステップS28にて、プロンプト入力部66は、生成したプロンプト45を大規模言語モデル14に入力する。すると、大規模言語モデル14は、質問文26及び情報源となるコンテンツをコンテキストとして、コンプリーション46を出力する。
【0077】
ステップS29にて、回答取得部67は、大規模言語モデル14が出力したコンプリーション46(回答)を取得する。ステップS23で質問文26の翻訳を行っている場合、ステップS30にて、回答出力部68又は他の図示しない機能部(翻訳部)が第2言語で表記されたコンプリーション46を第1言語に翻訳することにより、回答文27を生成するとよい。
【0078】
第1言語への翻訳は、プロンプト45に第1言語で回答を出力する指示を含めることにより、大規模言語モデル14に実行させてもよい。この場合、ステップS29において、第1言語で表記されたコンプリーション46が取得されるので、ステップS30において第1言語への翻訳は省略できる。回答出力部68は、コンプリーション46をそのまま回答文27として出力してもよいし、コンプリーション46の編集又は何らかの情報(例えば、回答日時)の追加を行うことによって回答文27を生成してもよい。ステップS31にて、回答出力部68が生成した回答文27をチャットウインドウ40に出力すると、処理が終了する。
【0079】
ユーザは、チャットウインドウ40に出力された回答文27を見た後、続けて次の質問文26を送信することもできる。この場合、第2情報処理装置20Bは、ステップS21~S31を繰り返す。このように質問と回答とを連続して繰り返す場合、第2情報処理装置20Bは、2回目以降の回答文27を作成する際に、それ以前の質問文26及びそれに付されたユーザ分類項目、並びに回答文27の内容を考慮してもよい。例えば、ステップS27において、プロンプト生成部65は、質問文26及び情報源となるコンテンツに加えて過去のチャット履歴もプロンプト45に加えてもよい。
【0080】
[本開示の作用]
高い性能の大規模言語モデルを構築するためには、膨大な学習用データと、それを学習させるための高度な計算機と、長い処理時間と、それらを用意するための多大なコストとを要する。そのため、一般の個人又は企業が大規模言語モデルを開発することは現実的ではなく、オープンソースで提供される大規模言語モデルを利用することが多い。
【0081】
大規模言語モデルを特定の分野の学習データで訓練すれば、その分野に関する出力の精度を上げることができる。しかし、オープンソースの大規模言語モデルでは学習データを一般のユーザが選択することはできない。また、社内文書は一般に外部に公開することができないため、不特定多数のユーザが使用するオープンソースの大規模言語モデルの学習データには適さない。
【0082】
また、社内文書の関連する全てのコンテンツを指示文と共にプロンプトとして大規模言語モデルに入力して、指示に基づく回答を出力させることも考えられるが、プロンプトとして入力できるトークン長には制限があるため、全てのコンテンツをプロンプトに含むことはできない。
【0083】
そこで、本開示の情報処理システム11は、電子文書34から得た一部のコンテンツをコンテキストとしてプロンプト45に含めた上で、大規模言語モデル14に質問文26に対するコンプリーション46を出力させるようにした。このように、回答に必要なコンテンツで大規模言語モデル14の知識不足を補うことにより、大規模言語モデル14の汎用的な文章作成機能を利用しつつ、より正確な回答文27を生成することが可能になる。
【0084】
例えば、複数の国に従業員を有する企業が、社内設備(例えばプリンターのような電子機器)又は勤怠申請のような事務手続きについてのマニュアルを電子文書34として社内ホームページで公開しているとする。こうしたマニュアルは内容によっては国毎に異なる上、それが必要になるのは稀であったりするし、マニュアルは不定期に更新されたりする。そのため、電子文書34の全てに目を通すことは、一般のユーザにとっては負担となる。
【0085】
そこで、情報処理システム11では、電子文書34のコンテンツを熟知した人工知能としてチャットボットを提供し、ユーザの質問に回答することで、ユーザ(社員)の負担を軽減する。しかし、プリンターのような機器は、国毎に微妙に仕様が異なることがあり、そうした微妙な違いを機械学習モデルに学習させることは難しい。
【0086】
そのため、情報処理システム11は、予め電子文書34のコンテンツを種類別に分類し、その分類情報(コンテンツ分類項目)をメタデータ35としてコンテンツに付している。こうした分類情報付きのコンテンツは、チャンク36に分けた上で文書ベクトル化することで、検索文(質問文26)の意味に沿ったセマンティック検索の検索対象とすることができる。
【0087】
さらに、質問文26にもコンテンツ分類項目に対応する分類情報(ユーザ分類項目)を付しておくことで、より正確に関連するコンテンツを検索することが可能になる。言い換えると、ユーザ分類項目とコンテンツ分類項目とにより、検索対象とする文書ベクトルがフィルタリングされる。これにより、大規模言語モデル14において読み取ることが難しい、コンテンツの微妙な違いをメタデータ35に基づいて判別することができる。
【0088】
例えば、コンテンツがプリンターの設定方法のマニュアルである場合、そのマニュアルが「米国」向けか「日本」向けかは、ファイル名、ページ名又はページタイトルに記載されているかもしれないが、コンテンツ内には記載がないことが多い。さらに、コンテンツを複数のチャンク36にするために細切れに分割すると、ほとんどのチャンク36には「米国」又は「日本」といった地域情報が含まれない。そのため、大規模言語モデル14がチャンク36に含まれるコンテンツに基づいてその対象地域を判別するのは非常に困難であり、その結果、不正確な回答を生成することになる。
【0089】
その点、コンテンツの種類をメタデータ35として文書ベクトルに付しておくことで、効率的にフィルタリングを行うことができる。すなわち、質問文26のユーザ分類項目に対応するコンテンツ分類項目のコンテンツを選び、その中から質問ベクトルと関連の高い文書ベクトルを取得することで、種類の異なるコンテンツの内容が回答文27に含まれないようにすることができる。
【0090】
ここで、質問文26の分類情報はユーザ分類に基づくユーザ分類項目となっている。質問文26そのものの種類よりも、それを入力するユーザの種類に基づく分類を採用することで、検索対象とするコンテンツが絞りやすくなる。特に、電子文書34が社内資料である場合には、社員の社員情報は、不特定多数のユーザの個人情報よりも、取得がし易い。また、コンテンツの種類も、その閲覧対象となる社員の想定がし易いため、コンテンツの分類とユーザの分類との対応付けの整合が取りやすい。
【0091】
このように、回答の情報源となるコンテンツにコンテンツ分類情報を紐付けるとともに、質問文26にユーザ分類情報を紐付けることにより、コンプリーション46の不正確さを補うことが可能になる。
【0092】
[本開示の効果]
本開示によれば、以下の効果を奏することができる。
(1)質問文26にユーザ分類項目を付すことにより、ユーザ分類項目に対応するコンテンツ分類項目が付されたコンテンツ(チャンク36)を検索対象にすることができる。このように質問文26と関連度の高いコンテンツをプロンプト45に含めることにより、汎用的な大規模言語モデル14を用いてより適切な回答文27を出力することができる。
【0093】
(2)コンテンツには、対象ユーザが想定される種別コンテンツの他、全てのユーザに共通するコンテンツも含まれる。こうした全てのユーザに共通するコンテンツに対して共通コンテンツ項目を付すことにより、適切な検索を行うことができる。
【0094】
(3)質問ベクトルに全ユーザ項目が付されている場合、質問文26は全てのユーザに共通する内容に関する。この場合には、コンテンツ種別項目が付された全ての文書ベクトルと、共通コンテンツ項目が付された文書ベクトルとを検索対象にすることで、質問と関連の高いコンテンツをもれなく検索することができる。
【0095】
(4)質問ベクトルに1のユーザ種別項目が付されている場合、その1のユーザ種別項目に対応する1のコンテンツ種別項目が付された文書ベクトルと、共通コンテンツ項目が付された文書ベクトルとを検索対象にすることで、質問と関連の高いコンテンツをもれなく検索することができる。また、1のコンテンツ種別項目以外のコンテンツ種別項目が付された文書ベクトルを検索対象外とすることで、異なる種類のコンテンツの内容が回答文27に含まれることを避けることができる。
【0096】
(5)複数のユーザが複数の社員である場合、情報処理装置20はユーザデータベース24を参照することにより、質問文26に付すべきユーザ分類項目を取得することができる。そのため、社員は、質問文26を入力する都度、ユーザ分類項目を入力するための操作(例えば種別ボタン42での選択)をする手間が省ける。また、操作ミス(例えば種別ボタン42での選択ミス)に起因する過回答の出力が避けられる。
【0097】
(6)社内文書(電子文書34)においてどのコンテンツがどの社員向けであるかは、通常、コンテンツ自体には記載されていないことが多く、また、社員自身による判別も難しい。その点、コンテンツに所属部署、職種、配属地域又は役職にそれぞれ応じたコンテンツ分類項目を付しておけば、質問文26を送信したユーザ(社員)の所属部署、職種、配属地域又は役職に応じて、適切な回答文27を出力することができる。
【0098】
(7)チャットボットによる一連の処理の中に質問文26と回答文27の翻訳処理を含むことにより、大規模言語モデル14及び情報処理装置20による処理をそれらに適した第2言語で行うことができ、同時に、ユーザは自身が使い慣れた第1言語で質問をしたり回答を得たりすることができる。
【0099】
(8)複数の国又は地域に提供される商品又はサービスは、基本的な構成又は内容が共通しているとしても、細部においては国又は地域に応じて異なっていることがある。そのため、地域に基づいてコンテンツ分類及びユーザ分類を行うことは、より広い地域に提供される商品又はサービスに関する情報を提供する際に有用である。
【0100】
(9)情報処理装置20は、チャットボットを操作するユーザのユーザ情報を取得すれば、ユーザデータベース24を参照することにより、質問文26に付すべきユーザ分類項目を取得することができる。そのため、ユーザは、質問文26を入力する都度、ユーザ分類項目を入力するための操作をする手間が省ける。
【0101】
[変更例]
本実施形態は、以下のように変更して実施することができる。本実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【0102】
[変更例1]
機能部51~55,61~68は、1つの情報処理装置20により実現されてもよいし、3以上の情報処理装置20により実現されてもよい。また、ステップS11~S18,S21~31がそれぞれ異なる機能部(プログラムコード)によって実現されてもよい。
【0103】
[変更例2]
情報処理システム11は、第1情報処理装置20Aを備えなくてもよい。すなわち、情報処理システム11は、ステップS11~S17に示すベクトルデータベース13の構築を実行しなくてもよい。この場合、情報処理装置20は、予め構築されたベクトルデータベース13を利用して回答文27を生成するように構成されてもよい。このとき利用するベクトルデータベース13は、情報処理システム11に含まれてもよいし、含まれていなくてもよい。
【0104】
[変更例3]
本開示においてコンテンツの種類情報はメタデータ35に含まれるようにしているが、種類情報は、チャンク及び文書ベクトルと対応付けられていれば、そのデータ形式及び付加方法は任意に変更できる。例えば、種類情報は、インデックスとして付加されてもよいし、文書ベクトル及び種類情報にナンバリングをして、別途のデータベース等を用いて互いを紐付けてもよい。
【0105】
[変更例4]
電子文書34が機密文書である場合、コンテンツ分類は、「社外秘」「秘」「極秘」といった機密ランクに基づいて規定されてもよい。この場合、各機密文書の閲覧が許容される対象ユーザ(社員)に基づいてユーザ分類を規定するとよい。また、回答取得部67はステップS30において、出力した情報の機密レベル又は情報取扱上の注意事項をコンプリーション46に付加することにより、回答文27を生成してもよい。
【0106】
[変更例5]
電子文書34は、社内文書のような機密文書に限らず、例えば、ECサイト、電子決済、又はポイントサービスといった各種サービスの登録ユーザに提供されるべきコンテンツを含むものであってもよい。例えばコンテンツが各サービス内容に関するマニュアルである場合、サービス提供者は、サービスサイト又はサービス提供用のアプリケーションへのログイン情報から、登録ユーザのユーザ情報(例えば、ユーザID)を取得することができる。この場合、情報処理装置20は、ユーザデータベース24を参照して、取得したユーザ情報に対応するユーザ分類項目を取得することができる。ユーザ分類項目は、例えば、ユーザの会員ランクであってもよいし、会員種別であってもよい。
【0107】
[変更例6]
電子文書34は、複数の支店を持つ店舗が提供するサービスに係るコンテンツを含んでもよい。そして、店舗毎に営業時間、提供商品又はサービス内容が異なる場合には、ユーザ分類及びコンテンツ分類の分類項目として、複数の支店名を採用してもよい。この場合、端末15は、ユーザ個人が所有する装置に限らず、店頭に配置されてユーザの使用に供される店舗端末であってもよい。
【0108】
[変更例7]
電子文書34が複数のバージョンがある商品又はサービスに関してのコンテンツを含む場合、コンテンツ分類は、バージョンに応じて規定されてもよい。この場合、ユーザ分類も、各バージョンのユーザを想定して規定されてもよい。例えば、種別ボタン42において、質問に係る商品又はサービスのバージョンを選択できるようにしてもよい。このように、ユーザ分類はコンテンツ分類と一致していてもよく、複数のユーザ分類項目が複数のコンテンツ分類項目と完全に一致していてもよい。この場合、「ユーザ分類」「ユーザ分類項目」はそれぞれ「コンテンツ分類」「コンテンツ分類項目」と言い換えることができる。
【0109】
[変更例8]
変更例7のように、質問文26の分類は、ユーザの種類による分類ではなく、質問自体の分類又はコンテンツ分類に基づいてもよい。この場合、本開示における「ユーザ分類」「ユーザ分類項目」はそれぞれ「クエリ(query)分類」「クエリ分類項目」と言い換えることができる。
【0110】
[変更例9]
質問文26に関するユーザ分類項目は、チャットウインドウ40でのチャット機能により取得してもよい。例えば、チャットウインドウ40の起動時に、ユーザの種類(ユーザ分類項目)を問うメッセージをチャットとして送信してもよいし、質問文26に応じてユーザの種類(ユーザ分類項目)を問うメッセージを返信してもよい。ユーザ分類が複数設定されている場合(例えば、「地域」及び「職種」について)には、各ユーザ分類に係るユーザの種類について問う、複数のメッセージを送信してもよい。
【0111】
[変更例10]
複数の電子文書34は、ウェブサーバ30に限らず、データサーバ、メモリ又はストレージといった任意の装置に格納されていてもよい。また、情報処理装置20はウェブサイトとして公開されているHTMLファイルをダウンロードすることにより電子文書34を取得してもよいし、ネットワーク12を介さずに着脱可能な記憶媒体(例えば、メモリカード又はストレージ)を介して電子文書34を取得してもよい。
【0112】
[変更例11]
情報処理システム11は、外部のベクトルデータベース13及び大規模言語モデル14を利用して本開示の各種機能を実現する1又は複数の情報処理装置20により実現されてもよい。
【0113】
上記実施形態及び変更例に基づいて把握される態様を以下に列記する。
[1]複数のユーザの各々から入力される質問文に対して、大規模言語モデルを利用して生成した回答文を出力するように構成される情報処理システムであって、前記情報処理システムは、
プログラムを格納するように構成される少なくとも1つのメモリと、
前記プログラムに基づいて処理を実行するように構成される少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサが、
複数の電子文書に含まれるコンテンツを取得することであって、前記コンテンツは、コンテンツ分類に基づく複数のコンテンツ分類項目のうちの何れかが付された種別コンテンツを含む、ことと、
前記コンテンツを複数の文書ベクトルに変換することであって、前記複数の文書ベクトルの各々に変換元のコンテンツと同じコンテンツ分類項目を付すことを含む、ことと、
前記質問文に関するユーザ分類項目を取得することであって、当該ユーザ分類項目は、ユーザ分類に基づく複数のユーザ分類項目のうちの何れかであり、前記ユーザ分類は前記コンテンツ分類に対応している、ことと、
前記質問文を質問ベクトルに変換することと、
前記複数の文書ベクトルの中から、前記質問ベクトルとの関連度が高い規定数の文書ベクトルを検索することであって、当該検索において、前記質問ベクトルに係る前記ユーザ分類項目に対応する前記コンテンツ分類項目が付された文書ベクトルを検索対象とすることを含む、ことと、
前記大規模言語モデルに入力するためのプロンプトを生成することであって、前記プロンプトには前記質問文と、コンテキストとなる前記規定数の文書ベクトルの変換元のコンテンツとが含まれる、ことと、
前記プロンプトを前記大規模言語モデルに入力することと、
前記大規模言語モデルが出力した文章に基づいて生成した前記回答文を出力することと、
を実行するように構成される、情報処理システム。
【0114】
[2]前記ユーザ分類は前記ユーザの種類に基づく分類であり、
前記複数のユーザ分類項目は、前記複数のユーザの種類にそれぞれ対応する複数のユーザ種別項目と、全てのユーザに対応する全ユーザ項目と、を含み、
前記コンテンツ分類は前記コンテンツの種類に応じた分類であり、前記コンテンツの種類は前記ユーザの種類に基づいて設定され、
前記複数のコンテンツ分類項目は、複数の前記種別コンテンツにそれぞれ対応する複数のコンテンツ種別項目と、前記コンテンツの種類を問わないコンテンツに対応する共通コンテンツ項目と、を含み、
前記コンテンツ種別項目が付されたコンテンツは、当該コンテンツ種別項目に対応する前記ユーザ種別項目に分類されるユーザのためのコンテンツであり、前記共通コンテンツ項目が付されたコンテンツは、前記ユーザの種類を問わないコンテンツである、
上記[1]に記載の情報処理システム。
【0115】
[3]前記検索することは、前記質問ベクトルに前記全ユーザ項目が付されている場合に、前記コンテンツ種別項目が付された全ての前記文書ベクトルと、前記共通コンテンツ項目が付された前記文書ベクトルとを検索対象とすることを含む、
上記[2]に記載の情報処理システム。
【0116】
[4]前記検索することは、前記質問ベクトルに前記複数のユーザ種別項目のうちの1のユーザ種別項目が付されている場合に、前記共通コンテンツ項目が付された前記文書ベクトルと前記1のユーザ種別項目に対応する1のコンテンツ種別項目が付された前記文書ベクトルとを検索対象とするとともに、前記1のコンテンツ種別項目以外のコンテンツ種別項目が付された前記文書ベクトルを検索対象外とすることを含む、
上記[2]又は[3]に記載の情報処理システム。
【0117】
[5]前記複数のユーザは複数の社員であり、
前記ユーザ分類は前記社員の種類に基づいて規定され、
前記少なくとも1つのメモリには、前記複数の社員の各々の社員情報と前記ユーザ分類項目とを含むユーザデータベースが格納されており、
前記ユーザ分類項目を取得することは、
前記社員情報を取得することと、
前記ユーザデータベースを参照して、取得した前記社員情報に対応する前記ユーザ分類項目を取得することと、
を含む、
上記[1]~[4]のうち何れかに記載の情報処理システム。
【0118】
[6]前記社員の種類は、所属部署、職種、配属地域又は役職のうち少なくとも1つに基づいて規定される、
上記[5]に記載の情報処理システム。
【0119】
[7]第1言語で入力された前記質問文を第2言語に翻訳することと、
前記大規模言語モデルが前記第2言語で出力した文章を前記第1言語に翻訳することと、
を含む、
上記[1]~[6]のうちに何れかに記載の情報処理システム。
【0120】
[8]前記ユーザ分類は、前記複数のユーザの各々が属する国又は地域に基づいて規定され、
前記複数のユーザ分類項目は、2以上の国又は地域の各々に対応する複数のユーザ種別項目と、全ユーザ項目と、を含み、
前記複数のコンテンツ分類項目は、前記2以上の国又は地域の各々に対応する複数のコンテンツ種別項目と、共通コンテンツ項目と、を含み、
前記コンテンツ種別項目が付されたコンテンツは、対応する国又は地域に特有のコンテンツであり、前記共通コンテンツ項目が付されたコンテンツは、国又は地域を問わないコンテンツである、
上記[1]~[7]のうち何れかに記載の情報処理システム。
【0121】
[9]前記少なくとも1つのメモリには、前記複数のユーザの各々のユーザ情報と前記ユーザ分類項目とを含むユーザデータベースが格納されており、
前記ユーザ分類項目を取得することは、
前記ユーザ情報を取得することと、
前記ユーザデータベースを参照して、取得した前記ユーザ情報に対応する前記ユーザ分類項目を取得することと、
を含む、
上記[1]~[8]のうち何れかに記載の情報処理システム。
【0122】
[10]複数のユーザの各々から入力される質問文に対して、大規模言語モデルを利用して生成した回答文を出力するための情報処理方法であって、
1以上のコンピュータに、
複数の電子文書に含まれるコンテンツを取得することであって、前記コンテンツは、コンテンツ分類に基づく複数のコンテンツ分類項目のうちの何れかが付された種別コンテンツを含む、ことと、
前記コンテンツを複数の文書ベクトルに変換することであって、前記複数の文書ベクトルの各々に変換元のコンテンツと同じコンテンツ分類項目を付すことを含む、ことと、
前記質問文に関するユーザ分類項目を取得することであって、当該ユーザ分類項目は、ユーザ分類に基づく複数のユーザ分類項目のうちの何れかであり、前記ユーザ分類は前記コンテンツ分類に対応している、ことと、
前記質問文を質問ベクトルに変換することと、
前記複数の文書ベクトルの中から、前記質問ベクトルとの関連度が高い規定数の文書ベクトルを検索することであって、当該検索において、前記質問ベクトルに係る前記ユーザ分類項目に対応する前記コンテンツ分類項目が付された文書ベクトルを検索対象とすることを含む、ことと、
前記大規模言語モデルに入力するためのプロンプトを生成することであって、前記プロンプトには前記質問文と、コンテキストとなる前記規定数の文書ベクトルの変換元のコンテンツとが含まれる、ことと、
前記プロンプトを前記大規模言語モデルに入力することと、
前記大規模言語モデルが出力した文章に基づいて生成した前記回答文を出力することと、
を実行させることを含む、情報処理方法。
【0123】
[11]複数のユーザの各々から入力される質問文に対して、ベクトルデータベース及び大規模言語モデルを利用して生成した回答文を出力するように構成される情報処理システムであって、
前記ベクトルデータベースは、複数の文書ベクトルを格納するように構成され、前記複数の文書ベクトルの各々は、コンテンツ分類に基づく複数のコンテンツ分類項目のうちの何れかが付されたコンテンツをベクトル変換したものであり、
前記情報処理システムは、
プログラムを格納するように構成される少なくとも1つのメモリと、
前記プログラムに基づいて処理を実行するように構成される少なくとも1つのプロセッサと、を備え、
前記少なくとも1つのプロセッサが、
前記質問文に関するユーザ分類項目を取得することであって、当該ユーザ分類項目は、ユーザ分類に基づく複数のユーザ分類項目のうちの何れかであり、前記ユーザ分類は前記コンテンツ分類に対応している、ことと、
前記質問文を質問ベクトルに変換することと、
前記複数の文書ベクトルの中から、前記質問ベクトルとの関連度が高い規定数の文書ベクトルを検索することであって、当該検索において、前記質問ベクトルに係る前記ユーザ分類項目に対応する前記コンテンツ分類項目が付された文書ベクトルを検索対象とすることを含む、ことと、
前記大規模言語モデルに入力するためのプロンプトを生成することであって、前記プロンプトには前記質問文と、コンテキストとなる前記規定数の文書ベクトルの変換元のコンテンツとが含まれる、ことと、
前記プロンプトを前記大規模言語モデルに入力することと、
前記大規模言語モデルが出力した文章に基づいて生成した前記回答文を出力することと、
を実行するように構成される、情報処理システム。
【0124】
[12]複数のユーザの各々から入力される質問文に対して、ベクトルデータベース及び大規模言語モデルを利用して生成した回答文を出力するように構成されるコンピュータプログラムであって、
前記ベクトルデータベースは、複数の文書ベクトルを格納するように構成され、前記複数の文書ベクトルの各々は、コンテンツ分類に基づく複数のコンテンツ分類項目のうちの何れかが付されたコンテンツをベクトル変換したものであり、
前記コンピュータプログラムは、コンピュータに、
前記質問文に関するユーザ分類項目を取得することであって、当該ユーザ分類項目は、ユーザ分類に基づく複数のユーザ分類項目のうちの何れかであり、前記ユーザ分類は前記コンテンツ分類に対応している、ことと、
前記質問文を質問ベクトルに変換することと、
前記複数の文書ベクトルの中から、前記質問ベクトルとの関連度が高い規定数の文書ベクトルを検索することであって、当該検索において、前記質問ベクトルに係る前記ユーザ分類項目に対応する前記コンテンツ分類項目が付された文書ベクトルを検索対象とすることを含む、ことと、
前記大規模言語モデルに入力するためのプロンプトを生成することであって、前記プロンプトには前記質問文と、コンテキストとなる前記規定数の文書ベクトルの変換元のコンテンツとが含まれる、ことと、
前記プロンプトを前記大規模言語モデルに入力することと、
前記大規模言語モデルが出力した文章に基づいて生成した前記回答文を出力することと、
を実行させる、プログラム。
【符号の説明】
【0125】
11…情報処理システム、12…ネットワーク、13…ベクトルデータベース、14…大規模言語モデル、15…端末、16…ディスプレイ、20,20A,20B…情報処理装置、21…プロセッサ、22…メモリ、23…通信インタフェース、24…ユーザデータベース、25…プログラム、26…質問文、27…回答文、30…ウェブサーバ、31…プロセッサ、32…メモリ、33…通信インタフェース、34…電子文書、35…メタデータ、36…チャンク、40…チャットウインドウ、41…入力欄、42…種別ボタン、43…送信ボタン、44…クリアボタン、45…プロンプト、46…コンプリーション、51…コンテンツ取得部、52…メタデータ管理部、53…コンテンツ分割部、54…ベクトル変換部、55…データ管理部、61…ユーザ分類取得部、62…質問文取得部、63…ベクトル変換部、64…ベクトル検索部、65…プロンプト生成部、66…プロンプト入力部、67…回答取得部、68…回答出力部。
【要約】
【課題】情報処理システム、情報処理方法、及びプログラムを提供する。
【解決手段】質問文26に関するユーザ分類項目を取得することと、質問文26を質問ベクトルに変換することと、複数の文書ベクトルの中から、質問ベクトルとの関連度が高い規定数の文書ベクトルを検索することであって、当該検索において、質問ベクトルに係るユーザ分類項目に対応するコンテンツ分類項目が付された文書ベクトルを検索対象とすることを含む、ことと、大規模言語モデル14に入力するためのプロンプトを生成することであって、プロンプトには質問文26と、コンテキストとなる規定数の文書ベクトルの変換元のコンテンツとが含まれる、ことと、プロンプトを大規模言語モデル14に入力することと、大規模言語モデル14が出力した文章に基づいて生成した回答文27を出力することと、を含む、情報処理方法。
【選択図】図1
図1
図2
図3
図4
図5