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

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

▶ Spiral.AI株式会社の特許一覧

<>
  • 特開-文章生成装置および文章生成方法 図1
  • 特開-文章生成装置および文章生成方法 図2
  • 特開-文章生成装置および文章生成方法 図3
  • 特開-文章生成装置および文章生成方法 図4
  • 特開-文章生成装置および文章生成方法 図5
  • 特開-文章生成装置および文章生成方法 図6
  • 特開-文章生成装置および文章生成方法 図7
  • 特開-文章生成装置および文章生成方法 図8
  • 特開-文章生成装置および文章生成方法 図9
  • 特開-文章生成装置および文章生成方法 図10
  • 特開-文章生成装置および文章生成方法 図11
  • 特開-文章生成装置および文章生成方法 図12
  • 特開-文章生成装置および文章生成方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024179004
(43)【公開日】2024-12-26
(54)【発明の名称】文章生成装置および文章生成方法
(51)【国際特許分類】
   G06F 16/90 20190101AFI20241219BHJP
   G06F 16/38 20190101ALI20241219BHJP
【FI】
G06F16/90 100
G06F16/38
【審査請求】有
【請求項の数】2
【出願形態】OL
(21)【出願番号】P 2023097476
(22)【出願日】2023-06-14
(11)【特許番号】
(45)【特許公報発行日】2023-08-14
(71)【出願人】
【識別番号】523174354
【氏名又は名称】Spiral.AI株式会社
(74)【代理人】
【識別番号】100105784
【弁理士】
【氏名又は名称】橘 和之
(72)【発明者】
【氏名】佐々木 雄一
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175EA01
5B175HB03
(57)【要約】
【課題】決められた文字数制限の範囲内で、入力された質問文に対して有効な文章を参考情報として加えたプロンプトを生成できるようにする。
【解決手段】ユーザにより入力された質問文をもとに、当該質問文の文字数と合わせたトータルの文字数が大規模言語モデル(LLM)1の回答生成部20に入力可能な文字数制限を超えない文字数で、質問文に関連した追加文章を生成する追加文章生成部11と、入力された質問文に対し、追加文章生成部11により生成された追加文章を参考情報として付加することによってプロンプトを生成するプロンプト生成部12とを備え、プロンプトとしてLLM1に入力可能な文字数制限を超えない文字数となるように追加文章を生成することにより、決められた文字数制限の範囲内で、入力された質問文に対して有効な文章を参考情報として加えたプロンプトを生成することができるようにする。
【選択図】図2
【特許請求の範囲】
【請求項1】
入力された質問文に対して参考情報を付加することにより、大規模言語モデルに入力するためのプロンプトを生成する文章生成装置であって、
上記入力された質問文をもとに、当該質問文に対して上記参考情報として付加する追加文章を生成するために用いる候補文章であって、上記質問文に関連した候補文章を取得する候補文章取得部と、
上記入力された質問文に対し、上記候補文章取得部により取得された上記候補文章をもとに生成された上記追加文章を上記参考情報として付加することによって上記プロンプトを生成するプロンプト生成部とを備えた
ことを特徴とする文章生成装置。
【請求項2】
上記候補文章取得部は、
上記入力された質問文から文章の特徴ベクトルを算出するベクトル算出部と、
上記ベクトル算出部により算出された上記特徴ベクトルを用いて、複数の文章がそれぞれの特徴ベクトルとあらかじめ関連付けて記録された文章データベースを検索することにより、上記ベクトル算出部により算出された上記特徴ベクトルとの類似度について所定の条件を満たす特徴ベクトルに関連付けられた文章を上記候補文章として上記文章データベースから取得するベクトル検索部とを備えた
ことを特徴とする請求項1に記載の文章生成装置。
【請求項3】
上記候補文章取得部は、
上記入力された質問文から別の質問文を生成する質問文生成部を更に備え、
上記ベクトル算出部は、上記入力された質問文の特徴ベクトルに加え、上記質問文生成部により生成された上記別の質問文の特徴ベクトルを算出し、
上記ベクトル検索部は、上記入力された質問文から算出された特徴ベクトルおよび上記別の質問文から算出された特徴ベクトルを用いて文章データベースを検索する
ことを特徴とする請求項2に記載の文章生成装置。
【請求項4】
上記候補文章取得部は、
上記入力された質問文から検索キーワードを抽出するキーワード抽出部と、
上記キーワード抽出部により抽出された上記検索キーワードを用いて、複数の文章が記録された文章データベースを検索することにより、上記検索キーワードを含む文章を上記候補文章として上記文章データベースから取得するキーワード検索部とを備えた
ことを特徴とする請求項1に記載の文章生成装置。
【請求項5】
上記候補文章取得部は、上記入力された質問文をもとに、小規模言語モデルにより別の質問文と回答文との組み合わせを上記候補文章として生成する質問・回答生成部を備えたことを特徴とする請求項1に記載の文章生成装置。
【請求項6】
入力された質問文に対して参考情報を付加することにより、大規模言語モデルに入力するためのプロンプトを生成する文章生成方法であって、
コンピュータの候補文章取得部が、上記入力された質問文をもとに、当該質問文に対して上記参考情報として付加する追加文章を生成するために用いる候補文章であって、上記質問文に関連した候補文章を取得する第1のステップと、
上記コンピュータのプロンプト生成部が、上記入力された質問文に対し、上記候補文章取得部により取得された上記候補文章をもとに生成された上記追加文章を上記参考情報として付加することによって上記プロンプトを生成する第2のステップとを有する
ことを特徴とする文章生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文章生成装置および文章生成方法に関し、特に、大規模言語モデルにプロンプトとして入力する文章を生成する技術に関するものである。
【背景技術】
【0002】
従来、大規模言語モデル(LLM:Large Language Models)を用いて質疑応答などの自然言語処理を行うシステムが提供されている。LLMは、大量のテキストデータを使ってトレーニングされた自然言語処理のモデルのことであり、文章を入力とし、文章を出力する。質疑応答を行うシステムにLLMを適用した場合、LLMに質問文を入力すると、LLMから回答文が出力される。LLMにおいて、入力される文章は「Prompt(プロンプト)」と呼ばれる。
【0003】
近年、LLMの利活用は進んでいるが、回答の正確性について大きな課題がある。すなわち、LLMが自信満々に間違えた回答を出力するといった振る舞いが問題視されている。それを解決するための手段として、質問文に情報を追加してプロンプトを生成することが行われている。追加情報がある場合、LLMは追加情報を参考にして質問文に対する回答文を生成する。例えば、図13に示すように、質問文の他に参考情報を加えてプロンプトを作ることにより、参考情報を考慮した適切な回答文がLLMから得られやすくなる。
【0004】
従来、追加情報を利用してプロンプトを生成する技術として、CompletionモデルとEmbeddingモデルとを組み合わせた手法が提案されている。Completionモデルは、質問文や参考文を含むプロンプトを入力し、それをもとに生成した回答文を出力するモデルである。Embeddingモデルは、入力された文章を、その意味合いを踏まえて数値的なベクトルに変換するモデルである。2つの文章の意味合いが近い場合、それらから生成されるベクトルが近くなるようモデルのパラメータが調整されている。これらのモデルを組み合わせた手法は、Embeddingモデルのベクトルを用いて質問文に関連深い情報を検索し、その検索結果をプロンプトに反映させた上で、Completionモデルを実行するというスタイルである。
【0005】
このように、入力された質問文に対して参考情報を追加してプロンプトを生成し、生成したプロンプトを言語モデルに入力して回答文を生成する技術は、特許文献1にも開示されている。特許文献1には、プロンプトへの情報追加に関して、チャットボットのキャラクターに関する説明を含む指示文をプロンプトに追加すること、キャラクター対話サンプルをプロンプトに追加すること、対話主題と関連して対話保存データベースから取得された対話シーンをプロンプトに追加すること、質問文に含まれる単語を同義語などに置き換えてプロンプトに追加することなどが開示されている。
【0006】
また、特許文献2,3には、入力された質問文から他の質問文を生成してプロンプトに追加することが開示されている。ここで、特許文献2には、過去の回答履歴に基づいて他の質問文を生成することが開示されている。特許文献3には、質問文に含まれる単語を縮小された用語などに置き換えて他の質問文を生成することが開示されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2022-180282号公報
【特許文献2】特表2001-519559号公報
【特許文献3】特表2002-508863号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述の通り、質問文に参考情報を追加して生成したプロンプトをLLMに入力することは、参考情報を追加しない場合に比べて適切な回答文が得られやすくなるという点で有効である。
【0009】
これに対し本発明は、特許文献1~3に記載された方法とは別の方法で、入力された質問文に対して有効な文章を参考情報として加えたプロンプトを生成できるようにすることを目的とする。
【課題を解決するための手段】
【0010】
上記した課題を解決するために、本発明では、入力された質問文をもとに、当該質問文に対して参考情報として付加する追加文章を生成するために用いる候補文章であって、質問文に関連した候補文章を取得し、当該取得した候補文章をもとに生成した追加文章を参考情報として質問文に付加することにより、大規模言語モデルに入力するためのプロンプトを生成するようにしている。
【発明の効果】
【0011】
上記のように構成した本発明によれば、入力された質問文に関連した文章を追加してプロンプトを生成する際に、入力された質問文に関連した候補文章が取得され、その候補文章がそのまま追加文章として使われるのではなく、候補文章をもとに追加文章が生成されるので、入力された質問文に対して有効な文章を参考情報として加えたプロンプトを生成することができる。
【図面の簡単な説明】
【0012】
図1】本実施形態の文章生成装置を備えた言語モデルシステムの構成例を示す図である。
図2】本実施形態による文章生成部(文章生成装置)の機能構成例を示すブロック図である。
図3】第1の候補文章取得手法を実装する候補文章取得部の機能構成例を示すブロック図である。
図4】3つの文章DBからそれぞれ取得される候補文章を用いて構成されるプロンプトの一例を示す図である。
図5】第2の候補文章取得手法を実装する候補文章取得部の機能構成例を示すブロック図である。
図6】第3の候補文章取得手法を実装する候補文章取得部の機能構成例を示すブロック図である。
図7】第3の候補文章取得手法を適用して生成されるプロンプトおよび別の質問文の一例を示す図である。
図8】第3の候補文章取得手法を適用して生成されるプロンプトおよび別の質問文の他の例を示す図である。
図9】第4の候補文章取得手法を実装する候補文章取得部の機能構成例を示すブロック図である。
図10】教師あり学習のための質問・回答の組を生成するためのプロンプトの例を示す図である。
図11】第1の候補文章調整手法により候補文章を調整した2つの例を示す図である。
図12】本実施形態による文章生成部(文章生成装置)の動作例を示すフローチャートである。
図13】質問文に参考情報を加えて生成したプロンプトをLLMに入力しれ回答文を得る内容の一例を示す図である。
【発明を実施するための形態】
【0013】
以下、本発明の一実施形態を図面に基づいて説明する。図1は、本実施形態の文章生成装置を備えた言語モデルシステム100の構成例を示す図である。本実施形態の言語モデルシステム100は、大規模言語モデル(LLM)1および文章データベース(DB)2を備えて構成される。
【0014】
LLM1は、インターネットまたは携帯電話網などの通信ネットワーク300を介してユーザ端末200と接続され、ユーザ端末200から質問文を入力し、それに対する回答文を生成してユーザ端末200に出力する。LLM1は、回答文を生成する際に、質問文に関連する追加文章を生成し、質問文と追加文章とを含むプロンプトを生成する。
【0015】
文章DB2は、LLM1がユーザ端末200より入力された質問文をもとに追加情報を生成する際に使用するデータベースである。なお、図1ではLLM1に文章DB2が接続される構成を示しているが、これに限定されない。例えば、文章DB2の一部または全部が通信ネットワーク300に接続される構成としてもよい。この場合、LLM1が通信ネットワーク300を介して文章DB2にアクセスし、必要な情報を取得する。
【0016】
LLM1は、大量のテキストデータを使ってトレーニングされたモデルに従って自然言語処理を行うソフトウェアであり、そのソフトウェアにより実現される機能構成として、文章生成部10および回答生成部20を備えている。文章生成部10は本実施形態の文章生成装置に相当するものであり、その機能はコンピュータのRAMやROM、ハードディスクまたは半導体メモリ等の記憶媒体に記憶されたプログラムがCPUの制御により動作することによって実現される。回答生成部20の機能についても同様に実現される。
【0017】
本実施形態の文章生成部10は、ユーザ端末200より入力された質問文に対して参考情報を付加することにより、LLM1に入力するためのプロンプトを生成する。LLM1に入力するためのプロンプトとは、具体的には回答生成部20に入力するためのプロンプトである。すなわち、文章生成部10は、ユーザ端末200より入力された質問文をもとに追加文章を生成し、さらにこの追加文章を質問文に対する参考情報として付加した文章を生成してこれをプロンプトとして回答生成部20に入力する。
【0018】
回答生成部20は、文章生成部10により生成されたプロンプトを入力し、当該プロンプトに含まれる質問文に対する回答文を、プロンプトに含まれる追加文章を参考情報として利用して生成する。すなわち、回答生成部20は、参考情報に対する適合度がより高い回答文を生成する。
【0019】
図2は、文章生成部10の機能構成例を示すブロック図である。図2に示すように、本実施形態の文章生成部10は、機能構成として、追加文章生成部11およびプロンプト生成部12を備えている。追加文章生成部11は、より具体的な機能構成として、候補文章取得部111および文章調整部112を備えている。
【0020】
追加文章生成部11は、ユーザ端末200より入力された質問文をもとに、当該質問文の文字数と合わせたトータルの文字数がLLM1の回答生成部20に入力可能な文字数制限を超えない文字数で、入力された質問文に関連した追加文章を生成する。プロンプト生成部12は、ユーザ端末200より入力された質問文に対し、追加文章生成部11により生成された追加文章を参考情報として付加することによってプロンプトを生成する。
【0021】
例えば、図13に示したように、ユーザ端末200から「明日の広島は洗濯物を干すのに適していますか?」といった質問文が入力されたときに、追加文章生成部11は#参考事実で示される3つの追加文章を生成し、プロンプト生成部12はこの追加文章を質問文に加えてプロンプトを生成する。図13の例では、プロンプトの冒頭に「以下の#質問に答えてください。答える際には、#参考事実に書かれている内容を参照して、それに基づいて回答してください。」といった文章も追加している。このとき追加文章生成部11は、入力された質問文と追加文章とを合わせて構成されるプロンプトのトータルの文字数がLLM1の入力文字数の制限を超えないように追加文章を生成する。
【0022】
ここで、追加文章生成部11の候補文章取得部111は、ユーザ端末200より入力された質問文をもとに、当該質問文に関連した候補文章を取得する。回答生成部20において質問文に対してより適切な回答文を生成するためには、質問文に対して適切な追加文章を生成することが重要となる。適切な追加文章を生成するためには、文章DB2から適切な候補文章を取得することが重要となる。そのために候補文章取得部111は、後述する手法の何れか1つまたは複数を用いて候補文章を取得する。
【0023】
文章調整部112は、候補文章取得部111により取得された候補文章を調整することによって追加文章を生成する。候補文章取得部111により取得された候補文章の文字数が多い場合、その候補文章をそのまま質問文に追加してプロンプトを生成すると、トータルの文字数がLLM1の入力文字数の制限を超えてしまうことがある。このような場合に文章調整部112は、後述する手法の何れか1つまたは複数を用いて候補文章を調整することにより、トータルの文字数が文字数制限の範囲内となるようにする。
【0024】
以下に、候補文章取得部111による候補文章の取得方法について詳述する。候補文章取得部111は、以下に述べる手法の何れか1つまたは複数を適用して候補文章を取得することが可能である。
【0025】
<第1の候補文章取得手法>
図3は、第1の候補文章取得手法を実装する候補文章取得部111の機能構成例を示すブロック図である。図3に示す例において、候補文章取得部111は、キーワード抽出部111aおよびキーワード検索部111bを備えている。
【0026】
キーワード抽出部111aは、ユーザ端末200より入力された質問文から検索キーワードを抽出する。例えば、キーワード抽出部111aは、入力された質問文から形態素解析により単語を検索キーワードとして抽出する。ここで、特定の品詞(例えば、名詞や動詞、形容詞、形容動詞など)に限定して単語を抽出してもよいし、特定の品詞(例えば、助詞や助動詞、副詞、連体詞、接続詞、感動詞など)を除外して単語を抽出してもよい。抽出する単語は1つでも複数でもよいが、複数の単語を抽出して検索キーワードとした場合には、質問文との関連性がより強い文章を検索して取得することが可能である。
【0027】
キーワード検索部111bは、キーワード抽出部111aにより抽出された検索キーワードを用いて、複数の文章が記録された文章DB2を検索することにより、検索キーワードを含む文章を候補文章として文章DB2から取得する。キーワード抽出部111aにより複数の検索キーワードを抽出した場合、キーワード検索部111bは、それら複数の検索キーワードを全て含む文章を候補文章として文章DB2から取得する。該当する文章が1つも見つからない場合は、何れかの検索キーワードを省いて検索を再実行するようにしてもよい。
【0028】
検索キーワードに合致する文章が複数存在する場合、キーワード検索部111bは、それら複数の文章を全て取得するようにしてもよい。なお、検索キーワードに合致する複数の文章を全て取得した場合、そのトータルの文字数がLLM1の入力文字数の制限を超えてしまう可能性が高くなる。そこで、検索キーワードとの一致度が高い方から所定数の文章を候補文章として取得するようにしてもよい。
【0029】
ここで、検索対象とする文章DB2は、図3に示すように複数種類あってもよい。図3では、事実情報DB2a、ペルソナ情報DB2b、正解例情報DB2cの3つを示している(以下、3つをまとめて文章DB2a~2cということがある)。キーワード検索部111bは、これら3つの文章DB2a~2cの何れか1つまたは複数を対象として、キーワード抽出部111aにより抽出された単語を検索キーワードとして文章の検索を実行する。回答生成部20により生成される回答文の正確性を向上させるために、複数のデータベースを対象として検索を行うのが好ましい。
【0030】
事実情報DB2aは、例えば、特定企業のWebページやWikipedia(登録商標)、または、ユーザ端末200を使用するユーザが自らアップロードしたtxt,csv,word,excel,pdfなどのファイルを参照可能な状態で保持するデータベースである。ペルソナ情報DB2bは、特定ユーザによるLLM1との過去の対話履歴、または、そこから抽出された情報であってそのユーザのリテラシ等が推し量れる情報(例えば、特定の技術分野に関する前提知識の程度、過去の旅行履歴、年齢・性別・家族構成などのデモグラフィック属性など)を保持するデータベースである。正解例情報DB2cは、任意のユーザによるLLM1との過去の対話履歴に対して人が手動で「LLM1は本来こう返答すべきだった」という修正を加えた情報を保持するデータベースである。
【0031】
図4は、3つの文章DB2a~2cからそれぞれ取得される候補文章を用いて構成されるプロンプトの一例を示す図である。図4において、「#参照可能な情報は事実情報DB2aから取得された候補文章、「#質問者のペルソナ」はペルソナ情報DB2bから取得された候補文章、「#参考になる回答例」は正解例情報DB2cから取得された候補文章である。図4に示す例では、プロンプトに含まれる全ての文章のトータルの文字数がLLM1の入力文字数の制限を超えていないため、文章調整部112の処理を実行することは不要であり、図4に示すプロンプトが回答生成部20に入力される。
【0032】
<第2の候補文章取得手法>
図5は、第2の候補文章取得手法を実装する候補文章取得部111の機能構成例を示すブロック図である。図5に示す例において、候補文章取得部111は、ベクトル算出部111cおよびベクトル検索部111dを備えている。
【0033】
ベクトル算出部111cは、ユーザ端末200より入力された質問文から文章の特徴ベクトルを算出する。例えば、ベクトル算出部111cは、Embeddingモデルの小規模言語モデルを備え、当該Embeddingモデルを用いて、入力された質問文を数値的なベクトルに変換する。小規模言語モデルは、LLM1に比べて少ないデータに基づきトレーニングされた自然言語処理モデルである。なお、特徴ベクトルの算出方法はこれに限定されず、その他の公知技術を適用してもよい。例えば、入力された質問文から形態素解析により単語を抽出し、単語の意味や単語同士の関係性をベクトル化するようにしてもよい。
【0034】
第2の候補文章取得手法を適用するために、文章DB2a~2cに記録される複数の文章についてもあらかじめ特徴ベクトルが算出され、複数の文章がそれぞれの特徴ベクトルとあらかじめ関連付けて記録されている。ベクトル検索部111dは、入力された質問文についてベクトル算出部111cにより算出された特徴ベクトルを用いて文章DB2a~2cを検索することにより、ベクトル算出部111cにより算出された特徴ベクトルとの類似度について所定の条件を満たす特徴ベクトルに関連付けられた文章を候補文章として文章DB2a~2cから取得する。
【0035】
文章を取得する際の所定の条件は、任意に定めることが可能である。例えば、特徴ベクトルの類似度が最も大きい方から所定数の文章を取得するようにすることが可能である。あるいは、特徴ベクトルの類似度が所定の閾値よりも大きい文章を取得するようにしてもよい。この場合、特徴ベクトルの類似度が所定の閾値よりも大きい文章を全て取得するようにしてもよいし、所定の閾値よりも大きい文章が所定数を超える場合は類似度が最も大きい方から所定数の文章を取得するようにしてもよい。
【0036】
<第3の候補文章取得手法>
図6は、第3の候補文章取得手法を実装する候補文章取得部111の機能構成例を示すブロック図である。図6に示す例において、候補文章取得部111は、図5に示したベクトル算出部111cおよびベクトル検索部111dに加え、質問文生成部111eを更に備えている。また、文章DB2は、複数の例示質問文を記録した例示質問文DB2dを更に備えている。
【0037】
質問文生成部111eは、ユーザ端末200より入力された質問文から別の質問文を生成する。ベクトル算出部111cは、ユーザ端末200より入力された質問文の特徴ベクトルに加え、質問文生成部111eにより生成された別の質問文の特徴ベクトルを算出する。ベクトル検索部111dは、ユーザ端末200より入力された質問文から算出された特徴ベクトルおよび質問文生成部111eにより生成された別の質問文から算出された特徴ベクトルを用いて文章DB2a~2cを検索し、候補文章を取得する。
【0038】
ここで、質問文生成部111eは、例えばFew-shot learnigを適用して生成した小規模言語モデルを備え、入力された質問文に対して例示質問文を付加したプロンプトを構成して小規模言語モデルに入力することにより、別の質問文を小規模言語モデルから出力する。例示質問文は例示質問文DB2dから取得する。図7は、この場合に候補文章取得部111により生成されるプロンプトおよび別の質問文の例を示す図である。図7の例では、入力された質問文に対して、当該質問文に含まれる「沖縄旅行」をキーワードとして例示質問文DB2dから抽出される例示質問文を付加してプロンプトを構成し、当該例示質問文で示される通りに別の質問文を生成している。
【0039】
また、質問文生成部111eは、ユーザ端末200より入力された質問文に応じて、参考となる質問生成例を動的に生成してプロンプトを構成するようにしてもよい。例えば、質問文生成部111eは、ユーザ端末200より入力された質問文にマッチする例示質問文を例示質問文DB2dから抽出し、抽出した例示質問文から参考となる質問生成例を生成してプロンプトを構成することが可能である。この例において、入力された質問文にマッチする例示質問文は、例えば、入力された質問文から算出される特徴ベクトルとの類似度が閾値以上の特徴ベクトルに関連付けられた例示質問文とすることが可能である。
【0040】
図8は、この場合に候補文章取得部111により生成されるプロンプトおよび別の質問文の例を示す図である。図8の例では、入力された質問文にマッチする複数の例示質問文を例示質問文DB2dから抽出し、これらから参考となる質問生成例を生成してプロンプトを構成している。小規模言語モデルはこのプロンプトに含まれる複数の質問生成例を利用して、別の質問文を動的に生成している。この例では、小規模言語モデルは過去の会話履歴を用いたトレーニングにより生成されており、質問生成例の通りに別の質問文を生成するのではなく、質問生成例と会話履歴とを入力して別の質問文を生成している。
【0041】
<第4の候補文章取得手法>
図9は、第4の候補文章取得手法を実装する候補文章取得部111の機能構成例を示すブロック図である。図9(a)に示す例において、候補文章取得部111は、質問生成例生成部111fおよび質問・回答生成部111gを備えている。また、文章DB2として文章DB2a~2cは備えておらず、例示質問文DB2dを備えている。
【0042】
質問生成例生成部111fは、ユーザ端末200より入力された質問文から参考となる質問生成例を生成する。質問生成例生成部111fによる参考となる質問生成例の生成方法は、図6および図8に例示した質問文生成部111eによる生成方法と同じでよい。すなわち、質問生成例生成部111fは、ユーザ端末200より入力された質問文にマッチする例示質問文を例示質問文DB2dから抽出し、抽出した例示質問文から参考となる質問生成例を生成する。もしくは、質問・回答生成部111gが柔軟な読解能力を持つ小規模言語モデルであることから、わざわざ質問生成例の生成をせず、ユーザ端末200より入力された質問をそのまま質問・回答生成部111gに入力しても良い。この場合、質問生成例生成部111fと例示質問文DB2dは構成から削除してもよい。
【0043】
質問・回答生成部111gは、質問生成例生成部111fにより生成された参考となる質問生成例を小規模言語モデルに入力することにより、質問文と回答文との組み合わせを候補文章として小規模言語モデルから取得する。
【0044】
質問・回答生成部111gが備える小規模言語モデルは、例えばLLM1を所定のタスクに合わせてファインチューニングしたモデルとすることが可能である。なお、小規模言語モデルは小規模なモデルであるものの、ユーザごとにファインチューニングを行い、それによって生成される複数の小規模言語モデルを常にサーバのメモリ上に配置しておくことは現実的には難しい。それを解消する手段として、公知のLoRAという追加学習の手法を用いるようにしてもよい。
【0045】
LoRAは、オリジナルの小規模言語モデルに対しAdapterと呼ばれる超小規模言語モデルを追加して学習するものであり、ファインチューニングを低メモリで効率的に行うことが可能である。オリジナルの小規模言語モデルは通常数十GByteあるのに対し、Adapterは通常数十MByteに留まる。そのため、小規模言語モデルはメモリ中に常駐させ、Adapterのみをユーザのリクエストに応じてオンデマンドで読み込ませても、ロード時間は無視できる規模になる。もしくは、大量のAdapterを限られたメモリ上に配置しておくことも可能になる。この手法は、質問・回答生成部111gに限らず、言語モデルを利用するシーンで一般的に利用できる。
【0046】
質問・回答生成部111gの小規模言語モデルをファインチューニングするにあたり、自己教示あり学習または教師あり学習の何れを利用してもよい。自己教師あり学習を用いる場合は、例えば、過去の対話履歴のキャッチボールから、入力と出力の対を抜き出すことで学習させることが可能である。一方、教師あり学習を用いる場合は、プロンプトを通して過去の対話履歴を参照する別のLLMにより、質問・回答を生成させることが可能であり、この質問・回答の組を学習させることが可能である。質問・回答の組を得るためのプロンプトを図10に例示する。
【0047】
図9(b)に示す例において、候補文章取得部111は、質問文生成部111hおよび回答文取得部111jを備えている。質問文生成部111hは、ユーザ端末200より入力された質問文から別の質問文を生成する。質問文生成部111hによる別の質問文の生成方法は、図6図8に例示した質問文生成部111eによる別の質問文の生成方法と同じでよい。もしくは、回答文取得部111jが柔軟な読解能力を持つ小規模言語モデルであることから、わざわざ質問文の生成をせず、ユーザ端末200より入力された質問をそのまま回答文取得部111jに入力しても良い。この場合、質問文生成部111hと例示質問文DB2dは構成から削除してもよい。
【0048】
回答文取得部111jは、質問文生成部111hにより生成された別の質問文を小規模言語モデルに入力することにより、別の質問文に対する回答文を候補文章として小規模言語モデルから取得する。図9(b)に示す例では、質問文生成部111hにより生成された質問文と回答文取得部111jにより取得された回答文との組み合わせを候補文章として候補文章取得部111より出力する。この場合、質問文生成部111hおよび回答文取得部111jにより特許請求の範囲の質問・回答生成部が構成される。
【0049】
候補文章取得部111が以上説明した手法を用いて候補文章を取得した場合、取得される候補文章の数が複数となることが多く、また、取得された候補文章が冗長な場合もある。そのため、候補文章取得部111により取得された候補文章をそのまま質問文に付加してプロンプトを生成すると、プロンプトのトータルの文字数がLLM1の入力文字数の制限を超えてしまうことがある。その場合には、文章調整部112による処理が必要となる。
【0050】
以下に、文章調整部112による候補文章の調整方法について詳述する。文章調整部112は、以下に述べる手法の何れか1つまたは複数を適用して候補文章を調整することが可能である。
【0051】
<第1の候補文章調整手法>
文章調整部112は、ユーザ端末200より入力された質問文と、候補文章取得部111により取得された候補文章とを小規模言語モデルに入力することにより、候補文章のうち質問文に関連した文章部分を利用して文字数が削減された追加文章を生成する。文章調整部112が備える小規模言語モデルは、例えば本実施形態のLLM1を上記のタスクで独自にファインチューニングしたものとしてもよいし、上記のタスク用に生成した小規模言語モデルであってもよい。
【0052】
図11は、第1の候補文章調整手法による候補文章の2つの調整例を示す図である。図11に示す例では、候補文章取得部111により取得された候補文章が「沖縄旅行といえば、夏なら海、冬なら水族館です!」であり、これを調整して文字数を減らすために、この候補文章とユーザ端末200より入力された質問文とを小規模言語モデルに入力する。
【0053】
図11(a)は、入力された質問文が「冬に沖縄旅行に行きたい。3泊4日でおすすめのプランは?」の場合における候補文章の調整例を示している。質問文が冬の沖縄旅行について聞いている内容なので、小規模言語モデルは候補文章のうち「夏なら海」の部分について質問文に対する関連性を低く評価し、候補文章のうち質問文に関連した文章部分である「冬なら水族館」を利用して「沖縄旅行は水族館がお勧め」という追加文章を生成している。
【0054】
これに対し、図11(b)は、入力された質問文が「夏に沖縄旅行に行きたい。3泊4日でおすすめのプランは?」の場合における候補文章の調整例を示している。質問文が夏の沖縄旅行について聞いている内容なので、小規模言語モデルは候補文章のうち「冬なら水族館」の部分の質問文に対する関連性を低く評価し、候補文章のうち質問文に関連した文章部分である「夏なら海」を利用して「沖縄旅行は海がお勧め」という追加文章を生成している。
【0055】
なお、ここでは説明のために1つの候補文章の調整例を示しているが、ここに示した1つの候補文章を質問文に付加するだけではLLM1に入力可能な文字数制限を超えることはない。実際には複数の候補文章が存在し、それら全てを質問文に付加するとトータルの文字数が文字数制限を超える場合に、個々の候補文章に対して上述の調整処理を実行する。これは、以下に説明する第2の候補文章調整手法についても同様である。
【0056】
<第2の候補文章調整手法>
文章調整部112は、候補文章取得部111により取得された候補文章を要約することにより、文字数が削減された追加文章を生成するようにしてもよい。候補文章の要約は、そのタスクのために生成した小規模言語モデルにより行うようにしてもよいし、公知のアルゴリズムにより行うようにしてもよい。
【0057】
また、文章調整部112は、候補文章取得部111により取得された候補文章について、ユーザ端末200より入力された質問文に関連した要点をとりまとめることにより、文字数が削減された追加文章を生成するようにしてもよい。この場合の文章調整部112は、例えば、ユーザ端末200より入力された質問文と、候補文章取得部111により取得された候補文章とを入力とし、要約された候補文章を出力とするようにトレーニングした小規模言語モデルを備えて構成することが可能である。
【0058】
図12は、以上のように構成した本実施形態による文章生成部10の動作例を示すフローチャートである。図12に示すフローチャートは、ユーザ端末200からLLM1に入力される1つの質問文に対して実行される処理の手順の概略を示したものである。
【0059】
まず、LLM1の追加文章生成部11は、ユーザ端末200より質問文を入力する(ステップS1)。追加文章生成部11が質問文を入力すると、候補文章取得部111は、第1~第4の候補文章取得手法の何れか1つまたは複数を適用して、入力された質問文に関連した1つ以上の候補文章を取得する(ステップS2)。
【0060】
次に、文章調整部112は、ユーザ端末200より入力された質問文の文字数と、候補文章取得部111により取得された1つ以上の候補文章の文字数と合わせたトータルの文字数が、LLM1に入力可能な文字数制限を超えるか否かを判定する(ステップS3)。ここで、トータルの文字数が入力文字数の制限を超えると判定された場合、文章調整部112は、第1~第2の候補文章調整手法の何れか一方または両方を適用して、候補文章の文字数を削減することにより、トータルの文字数が入力文字数の制限の範囲内となるようにする(ステップS4)。
【0061】
ここで、文章調整部112は、例えば、候補文章取得部111により取得された全ての候補文章を調整して文字数を削減し、削減後のトータルの文字数が入力文字数の制限を超えるか否かを再判定する。トータルの文字数が入力文字数の制限を依然として超えている場合は、候補文章を再度調整して文字数を削減する。あるいは、候補文章取得部111により取得された候補文章の何れかを削除するようにしてもよい。このような処理を繰り返すことにより、トータルの文字数が入力文字数の制限の範囲内となるようにする。このように調整された1つ以上の候補文章が、質問文に対する追加文章として確定される。
【0062】
以上のようにして文章調整部112による候補文章の調整によって質問文に対する追加文章が生成されると、プロンプト生成部12は、ステップS1でユーザ端末200より入力された質問文に対し、ステップS4で文章調整部112により生成された追加文章を参考情報として付加することによってプロンプトを生成する(ステップS5)。
【0063】
なお、上記ステップS3において、トータルの文字数が入力文字数の制限を超えないと判定された場合、ステップS4における文章調整部112の処理は行わず、候補文章取得部111により取得された候補文章がそのまま質問文に対する追加文章として確定される。この場合、プロンプト生成部12は、ステップS1でユーザ端末200より入力された質問文に対し、ステップS2で候補文章取得部111により取得された候補文章(=追加文章)を参考情報として付加することによってプロンプトを生成する(ステップS5)。
【0064】
そして、プロンプト生成部12は、生成したプロンプトを回答生成部20に入力する(ステップS6)。回答生成部20は、文章生成部10より入力されたプロンプトに含まれる追加文章を参考情報として利用して、当該プロンプトに含まれる質問文に対する回答文を生成し、生成した回答文をユーザ端末200に出力する(ステップS7)。これにより、図12に示すフローチャートの処理が終了する。
【0065】
以上詳しく説明したように、本実施形態では、ユーザ端末200よりLLM1に入力された質問文をもとに、当該質問文の文字数と合わせたトータルの文字数がLLM1の回答生成部20に入力可能な文字数制限を超えない文字数で、質問文に関連した追加文章を生成し、当該生成した追加文章を参考情報として質問文に付加することにより、回答生成部20に入力するためのプロンプトを生成するようにしている。
【0066】
このように構成した本実施形態によれば、入力された質問文に関連した文章を追加してプロンプトを生成する際に、プロンプトとして回答生成部20に入力可能な文字数制限を超えない文字数となるように追加文章が生成されるので、決められた文字数制限の範囲内で、入力された質問文に対して有効な文章を参考情報として加えたプロンプトを生成することができる。
【0067】
なお、上記実施形態では、LLM1の構成として文章生成部10を備える例について説明したが、本発明はこれに限定されない。例えば、LLM1とは別に文章生成部10を構成するようにしてもよい。
【0068】
また、上記実施形態において、回答生成部20が出力する回答文の出力形式をユーザが選択できるようにしてもよい。例えば、回答文の口調を選択することができるようにしてもよい。これは、文章生成部10によるプロンプトの生成時に、「〇〇という口調で回答すること」などと追加文章によって指定することで実現可能である。LLMの性質として、プロンプトの中で参考情報を記載している場合、口調に対する指定が無視されて、参考情報の口調が優先される傾向がある。それを解決するため、LLMに2段階の出力をさせる指示を行ってもよい。つまり、「まず“通常の回答:”に続けて通常の回答を記載し、その後、“〇〇のキャラクター:”に続けて、〇〇のキャラクターの口調に直して回答すること」という指示をプロンプトの追加文章として含めても良い。この場合、LLMの出力のうち“〇〇のキャラクター:”以降の部分を出力することで、キャラクターの口調を真似た部分のみユーザに提示することができる。また、回答文のフォーマットを選択することができるようにしてもよい。例えば、行政の申告書類のフォーマットなどに合わせて、「概要」「事業内容」「申請事項」「付記事項」などの章立てに合わせて出力させることができるようにしてもよい。これも、プロンプトの中で追加文章により指定することによって実現可能である。
【0069】
また、上記実施形態において使用する文章DB2a~2dまたは小規模言語モデルは、企業に販売することが可能である。一括払いでもよいし、サブスクリプション型としてもよい。文章DB2a~2dまたは小規模言語モデルを販売する際には、個人情報や企業の機密情報の除去が必要になる。その作業は人力で行ってもよいし、そのタスク用に生成したLLMを用いて行ってもよい。なお、上述した回答文の出力形式も、企業に販売することを可能としてもよい。
【0070】
その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0071】
1 大規模言語モデル(LLM)
2 文章DB
2a 事実情報DB
2b ペルソナ情報DB
2c 正解例情報DB
10 文章生成部(文章生成装置)
11 追加文章生成部
12 プロンプト生成部
20 回答生成部
111 候補文章取得部
111a キーワード抽出部
111b キーワード検索部
111c ベクトル算出部
111d ベクトル検索部
111e 質問文生成部
111f 質問生成例生成部
111g 質問・回答生成部
111h 質問文生成部(質問・回答生成部)
111j 回答文取得部(質問・回答生成部)
112 文章調整部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
【手続補正書】
【提出日】2023-07-07
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
入力された質問文に対して参考情報を付加することにより、大規模言語モデルに入力するためのプロンプトを生成する文章生成装置であって、
上記入力された質問文をもとに、当該質問文に対して上記参考情報として付加する追加文章を生成するために用いる候補文章であって、上記質問文に関連した候補文章を取得する候補文章取得部と、
上記入力された質問文に対し、上記候補文章取得部により取得された上記候補文章をもとに生成された上記追加文章を上記参考情報として付加することによって上記プロンプトを生成するプロンプト生成部とを備え、
上記候補文章取得部は、
上記入力された質問文から別の質問文を生成する質問文生成部と、
上記入力された質問文および上記質問文生成部により生成された上記別の質問文から文章の特徴ベクトルを算出するベクトル算出部と、
上記ベクトル算出部により上記入力された質問文および上記別の質問文から算出された上記特徴ベクトルを用いて、複数の文章がそれぞれの特徴ベクトルとあらかじめ関連付けて記録された文章データベースを検索することにより、上記ベクトル算出部により算出された上記特徴ベクトルとの類似度について所定の条件を満たす特徴ベクトルに関連付けられた文章を上記候補文章として上記文章データベースから取得するベクトル検索部とを備えた
ことを特徴とする文章生成装置。
【請求項2】
入力された質問文に対して参考情報を付加することにより、大規模言語モデルに入力するためのプロンプトを生成する文章生成方法であって、
コンピュータの候補文章取得部が、上記入力された質問文をもとに、当該質問文に対して上記参考情報として付加する追加文章を生成するために用いる候補文章であって、上記質問文に関連した候補文章を取得する第1のステップと、
上記コンピュータのプロンプト生成部が、上記入力された質問文に対し、上記候補文章取得部により取得された上記候補文章をもとに生成された上記追加文章を上記参考情報として付加することによって上記プロンプトを生成する第2のステップとを有し、
上記候補文章取得部が行う上記第1のステップの処理は、
上記入力された質問文から別の質問文を生成する質問文生成ステップと、
上記入力された質問文および上記質問文生成ステップにおいて生成された上記別の質問文から文章の特徴ベクトルを算出するベクトル算出ステップと、
上記ベクトル算出ステップにおいて上記入力された質問文および上記別の質問文から算出された上記特徴ベクトルを用いて、複数の文章がそれぞれの特徴ベクトルとあらかじめ関連付けて記録された文章データベースを検索することにより、上記ベクトル算出ステップにおいて算出された上記特徴ベクトルとの類似度について所定の条件を満たす特徴ベクトルに関連付けられた文章を上記候補文章として上記文章データベースから取得するベクトル検索ステップとを有する
ことを特徴とする文章生成方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0010
【補正方法】変更
【補正の内容】
【0010】
上記した課題を解決するために、本発明では、入力された質問文から別の質問文を生成し、当該入力された質問文および生成された別の質問文から算出した特徴ベクトルを用いて文章データベースを検索することにより、特徴ベクトルとの類似度について所定の条件を満たす特徴ベクトルに関連付けられた文章を、入力された質問文に対して参考情報として付加する追加文章を生成するために用いる候補文章として取得する。そして、当該取得した候補文章をもとに生成した追加文章を参考情報として質問文に付加することにより、大規模言語モデルに入力するためのプロンプトを生成するようにしている。