(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-10
(54)【発明の名称】自己回帰言語モデルニューラルネットワークを使用して出力系列を評価すること
(51)【国際特許分類】
G06F 40/56 20200101AFI20240903BHJP
G06N 3/0475 20230101ALI20240903BHJP
G06F 40/44 20200101ALI20240903BHJP
【FI】
G06F40/56
G06N3/0475
G06F40/44
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024505411
(86)(22)【出願日】2022-07-28
(85)【翻訳文提出日】2024-03-29
(86)【国際出願番号】 US2022038742
(87)【国際公開番号】W WO2023009766
(87)【国際公開日】2023-02-02
(32)【優先日】2021-07-28
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ダニエル・デ・フレイタス・アディワルダナ
(72)【発明者】
【氏名】ノーム・エム・シャジール
(57)【要約】
言語モデルニューラルネットワークを使用して候補出力系列を評価するための、方法、システム、およびコンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む装置。具体的には、候補出力系列を生成するために、自己回帰言語モデルニューラルネットワークが使用される。候補出力系列を評価して、1つまたは複数の基準のそれぞれについてのレーティングスコアを決定するために、同じ自己回帰言語モデルニューラルネットワークが使用される。次いで、候補出力系列を提供すべきかどうかを判定するために、レーティングスコアが使用される。
【特許請求の範囲】
【請求項1】
1つまたは複数のコンピュータによって実施される方法であって、
出力系列を求める要求を受け取るステップと、
自己回帰言語モデルニューラルネットワークを使用して、第1の候補出力系列を生成するステップであって、前記第1の候補出力系列が、トークンの語彙からそれぞれが選択される複数のトークンを備える、ステップと、
1つまたは複数の出力系列基準のセット内の各出力系列基準について、
前記自己回帰言語モデルニューラルネットワークを使用して、(i)前記第1の候補出力系列とその後に続く(ii)前記出力系列基準を指定する1つまたは複数のトークンを備える、入力系列を処理して、前記語彙内の各トークンのそれぞれのスコアを生成するステップと、
トークンの前記語彙の対応する真部分集合内にある前記トークンの前記それぞれのスコアから、前記自己回帰言語モデルニューラルネットワークによって生成された前記第1の候補出力系列が前記出力系列基準を満足させる程度を表す、前記第1の候補出力系列のそれぞれのレーティングスコアを決定するステップと、
前記1つまたは複数の出力系列基準についての、前記第1の候補出力系列の前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列を前記要求に応答して提供するステップと
を含む、方法。
【請求項2】
前記要求が、コンテキスト系列に続く出力系列を求めるものであり、前記第1の候補出力テキスト系列を生成するステップが、前記自己回帰言語モデルニューラルネットワークを、前記コンテキスト系列を備える入力で条件付けるステップを含み、(i)前記第1の候補出力系列とその後に続く(ii)前記出力系列基準を指定する1つまたは複数のトークンを備える、前記入力系列が、前記コンテキスト系列をさらに備える、請求項1に記載の方法。
【請求項3】
前記自己回帰言語モデルニューラルネットワークを使用して、1つまたは複数の追加の候補出力系列を生成するステップと、
各追加の候補出力系列について、
1つまたは複数の出力系列基準の前記セット内の各出力系列基準について、
前記自己回帰言語モデルニューラルネットワークを使用して、(i)前記追加の候補出力系列とその後に続く(ii)前記出力系列基準を指定する前記1つまたは複数のトークンを備える、入力系列を処理して、前記語彙内の各トークンのそれぞれのスコアを生成するステップと、
トークンの前記語彙の対応する部分集合内のトークンの前記それぞれのスコアから、前記自己回帰言語モデルニューラルネットワークによって生成された前記追加の候補出力系列が前記出力系列基準を満足させる程度を表すそれぞれのレーティングスコアを決定するステップと
をさらに含み、
前記1つまたは複数の出力系列基準についての前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列を前記要求に応答して提供するステップが、
前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列の前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列のうちから、前記要求に応答して提供すべき系列を選択するステップ
を含む、請求項1または請求項2に記載の方法。
【請求項4】
前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列の前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列のうちから、前記要求に応答して提供すべき系列を選択するステップが、
各前記候補出力系列について、前記セット内の前記出力系列基準のうちの1つまたは複数の出力系列基準のそれぞれについての、前記候補出力系列の前記それぞれのレーティングスコアから、それぞれの品質スコアを生成するステップと、
前記要求に応答して提供すべき前記系列として、最も高いそれぞれの品質スコアを有する前記候補出力系列を選択するステップと
を含む、請求項3に記載の方法。
【請求項5】
前記1つまたは複数の出力系列基準についての前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列を前記要求に応答して提供するステップが、
前記セット内の第1の出力基準についての、前記第1の候補出力系列の前記それぞれの品質スコアが、しきい値を満足させるかどうかを判定するステップと、
前記セット内の前記第1の出力基準についての、前記第1の候補出力系列の前記それぞれの品質スコアが、前記しきい値を満足させないとき、前記第1の候補出力系列を前記要求に応答して提供しない、と決定するステップと
を含む、請求項1から4のいずれか一項に記載の方法。
【請求項6】
請求項1から5のいずれか一項に記載の自己回帰言語モデルニューラルネットワークを、トレーニングする方法であって、
1つまたは複数のトレーニング例のバッチを取得するステップであって、各トレーニング例が、
(i)トレーニング出力系列とその後に続く(ii)出力系列基準の前記セットからの特定の出力系列基準を指定する1つまたは複数のトークンを備える、トレーニング入力系列、および
前記対応する出力系列基準についての、前記トレーニング出力系列が前記特定の出力系列基準を満足させる程度を表すグラウンドトゥルースレーティングスコア
を備える、ステップと、
前記バッチ内の各トレーニング例について、
前記自己回帰言語モデルニューラルネットワークを使用して、前記トレーニング例内の前記トレーニング入力系列を処理して、前記語彙内の各トークンのそれぞれのスコアを生成するステップと、
前記バッチ内の各トレーニング例について、(i)前記トレーニング例について生成された、前記語彙内の前記トークンの前記それぞれのスコアと、(ii)前記トレーニング例の前記グラウンドトゥルースレーティングスコアをもたらす、前記語彙内の前記トークンのスコアのグラウンドトゥルースセットとの誤差を測定する損失関数を最小限に抑えるように、前記自己回帰言語モデルニューラルネットワークをトレーニングするステップと
を含む、方法。
【請求項7】
損失関数を最小限に抑えるように、前記自己回帰言語モデルニューラルネットワークをトレーニングするステップが、
損失を前記トレーニング入力系列内の任意の以前の位置に適用することなく、損失を前記誤差にのみ適用するステップ
を含む、請求項6に記載の方法。
【請求項8】
損失関数を最小限に抑えるように、前記自己回帰言語モデルニューラルネットワークをトレーニングするステップの前に、前記自己回帰言語モデルニューラルネットワークを、トークンの系列内の先行するトークンを与えられるとトークンの前記系列内の次のトークンを予測することを必要とする言語モデリングタスクについてトレーニングするステップをさらに含む、請求項6または請求項7に記載の方法。
【請求項9】
1つまたは複数のコンピュータによって実施される方法であって、
出力系列を求める要求を受け取るステップと、
自己回帰言語モデルニューラルネットワークを使用して、第1の候補出力系列を生成するステップであって、前記第1の候補出力系列が、複数の位置のそれぞれにおけるそれぞれのトークンを備え、前記言語モデルニューラルネットワークが、
第1のサブネットワークであって、前記複数の位置の各特定の位置において、
複数の入力トークンを備える入力を処理して、各前記入力トークンについてのそれぞれの隠れ状態を生成するように構成され、前記入力トークンが、前記第1の候補出力系列内の前記特定の位置に先行する各位置における前記トークンを備える、第1のサブネットワーク、および
出力サブネットワークであって、前記複数の位置の各特定の位置において、
前記特定の位置の直前の位置における前記入力トークンについての前記それぞれの隠れ状態を処理して、トークンの語彙内の各トークンのそれぞれのスコアを生成し、
前記それぞれのスコアを使用して、前記語彙内の前記トークンのうちの1つを前記第1の候補出力系列内の前記特定の位置における前記トークンとして選択する
ように構成される、出力サブネットワーク
を備える、ステップと、
1つまたは複数の出力系列基準のセット内の各出力系列基準についての、前記自己回帰言語モデルニューラルネットワークによって生成された前記第1の候補出力系列が前記出力系列基準を満足させる程度を表すそれぞれのレーティングスコアを生成するために、前記第1のサブネットワークによって前記第1の候補出力系列内の全ての前記位置における全ての前記トークンを含む複数の入力トークンを備える入力を処理することによって生成された前記それぞれの隠れ状態のうちの1つまたは複数を、1つまたは複数の分類器層を使用して処理するステップと、
前記1つまたは複数の出力系列基準についての、前記第1の候補出力系列の前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列を前記要求に応答して提供するステップと
を含む、方法。
【請求項10】
前記要求が、コンテキスト系列に続く出力系列を求めるものであり、前記第1の候補出力テキスト系列を生成するステップが、前記自己回帰言語モデルニューラルネットワークを、前記コンテキスト系列を備える入力で条件付けるステップを含み、各特定の位置について、前記入力トークンが前記コンテキスト系列からのトークンをさらに備える、請求項9に記載の方法。
【請求項11】
前記自己回帰言語モデルニューラルネットワークを使用して、1つまたは複数の追加の候補出力系列を生成するステップと、
各追加の候補出力系列について、1つまたは複数の出力系列基準の前記セット内の各出力系列基準についての、前記自己回帰言語モデルニューラルネットワークによって生成された前記追加の候補出力系列が前記出力系列基準を満足させる程度を表すそれぞれのレーティングスコアを生成するステップと
をさらに含み、
前記1つまたは複数の出力系列基準についての前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列を前記要求に応答して提供するステップが、
前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列の前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列のうちから、前記要求に応答して提供すべき系列を選択するステップ
を含む、請求項9または請求項10に記載の方法。
【請求項12】
前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列の前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列のうちから、前記要求に応答して提供すべき系列を選択するステップが、
各前記候補出力系列について、前記セット内の前記出力系列基準のうちの1つまたは複数の出力系列基準のそれぞれについての、前記候補出力系列の前記それぞれのレーティングスコアから、それぞれの品質スコアを生成するステップと、
前記要求に応答して提供すべき前記系列として、最も高いそれぞれの品質スコアを有する前記候補出力系列を選択するステップと
を含む、請求項11に記載の方法。
【請求項13】
前記1つまたは複数の出力系列基準についての前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列を前記要求に応答して提供するステップが、
前記セット内の第1の出力基準についての、前記第1の候補出力系列の前記それぞれの品質スコアが、しきい値を満足させるかどうかを判定するステップと、
前記セット内の前記第1の出力基準についての、前記第1の候補出力系列の前記それぞれの品質スコアが、前記しきい値を満足させないとき、前記第1の候補出力系列を前記要求に応答して提供しない、と決定するステップと
を含む、請求項9~12のいずれか一項に記載の方法。
【請求項14】
前記第1のサブネットワークによって前記第1の候補出力系列内の全ての前記位置における全ての前記トークンを含む複数の入力トークンを備える入力を処理することによって生成された前記それぞれの隠れ状態のうちの1つまたは複数を処理するステップが、
前記第1のサブネットワークによって生成された、前記第1の候補出力系列内の最終位置における前記トークンについての前記それぞれの隠れ状態を処理するステップ
を含む、請求項9~13のいずれか一項に記載の方法。
【請求項15】
前記第1のサブネットワークによって前記第1の候補出力系列内の全ての前記位置における全ての前記トークンを含む複数の入力トークンを備える入力を処理することによって生成された前記それぞれの隠れ状態のうちの1つまたは複数を処理するステップが、
前記第1のサブネットワークによって生成された、前記入力トークンのうちの指定された位置における指定された入力トークンについての前記それぞれの隠れ状態を処理するステップ
を含む、請求項9~14のいずれか一項に記載の方法。
【請求項16】
前記第1の候補出力系列の前記生成中に、前記第1の候補出力系列内の最終位置より前の1つまたは複数の指定の位置について、
前記第1の候補出力系列内の前記指定の位置において前記第1のサブネットワークによって生成された前記それぞれの隠れ状態のうちの1つまたは複数を、前記1つまたは複数の分類器層を使用して処理して、1つまたは複数の出力系列基準のセット内の各出力系列基準についての、前記指定の位置の時点で生成された前記第1の候補出力系列の一部分が前記出力系列基準を満足させる程度を表すそれぞれのレーティングスコアを生成するステップと、
(i)前記第1の候補出力系列を、前記指定の位置を通り過ぎて引き続き生成すべきか、それとも(ii)前記第1の候補出力系列の任意の部分を前記要求に応答して提供せざるべきかを、前記指定の位置において生成された、前記セット内の前記出力系列基準についての前記それぞれのレーティングスコアに基づいて判定するステップと
をさらに含む、請求項9~15のいずれか一項に記載の方法。
【請求項17】
請求項9~16のいずれか一項に記載の自己回帰言語モデルニューラルネットワークを、トレーニングする方法であって、
1つまたは複数のトレーニング例のバッチを取得するステップであって、各トレーニング例が、
トレーニング出力系列、および
前記出力系列基準のうちの1つまたは複数の出力系列基準のそれぞれについての、前記トレーニング出力系列が前記特定の出力系列基準を満足させる程度を表すそれぞれのグラウンドトゥルースレーティングスコア
を備える、ステップと、
前記バッチ内の各トレーニング例について、
各出力系列基準についてのそれぞれのレーティングスコアを生成するために、前記第1のサブネットワークによって前記トレーニング例内の前記トレーニング出力系列内の全ての位置における全てのトークンを含む複数の入力トークンを備える入力を処理することによって生成された前記それぞれの隠れ状態のうちの1つまたは複数を、前記1つまたは複数の分類器層を使用して処理するステップと、
前記バッチ内の各トレーニング例について、(i)前記トレーニング例について生成された、前記それぞれのレーティングスコアと、(ii)前記トレーニング例の前記それぞれのグラウンドトゥルースレーティングスコアとの誤差を測定する損失関数を最小限に抑えるように、前記1つまたは複数の分類器層をトレーニングするステップと
を含む、方法。
【請求項18】
損失関数を最小限に抑えるように、前記1つまたは複数の分類器層をトレーニングするステップが、
前記1つまたは複数の分類器層の前記トレーニング中に前記入力サブネットワークをフリーズ状態にしておくステップ
を含む、請求項17に記載の方法。
【請求項19】
前記1つまたは複数の分類器層をトレーニングするステップの前に、前記自己回帰言語モデルニューラルネットワークを、トークンの系列内の先行するトークンを与えられるとトークンの前記系列内の次のトークンを予測することを必要とする言語モデリングタスクについてトレーニングするステップをさらに含む、請求項17または請求項18に記載の方法。
【請求項20】
前記出力系列がテキスト系列であり、トークンの前記語彙が複数のテキストトークンを備える、請求項1から19のいずれか一項に記載の方法。
【請求項21】
前記コンテキスト系列がテキスト系列である、請求項2または請求項10にも従属するときの請求項20に記載の方法。
【請求項22】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータによって実行されると前記1つまたは複数のコンピュータに請求項1~21のいずれか一項に記載のそれぞれの動作を実施させる命令を記憶する、1つまたは複数の記憶デバイスと
を備える、システム。
【請求項23】
1つまたは複数のコンピュータによって実行されると前記1つまたは複数のコンピュータに請求項1~21のいずれか一項に記載の方法の前記それぞれの動作を実施させる命令を記憶する、1つまたは複数のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年7月28日に出願した米国仮出願第63/226,748号の利益を主張するものである。この先行出願の開示は、本出願の開示の一部とみなされ、参照により本出願の開示に組み込まれている。
【0002】
本明細書は、ニューラルネットワークを使用して入力を処理して、出力系列を生成することに関する。
【背景技術】
【0003】
ニューラルネットワークは、非線形ユニットの1つまたは複数の層を用いて、受け取った入力に対する出力を予測する、機械学習モデルである。一部のニューラルネットワークは、出力層に加えて1つまたは複数の隠れ層を含む。各隠れ層の出力が、ネットワーク内の次の層、すなわち別の隠れ層または出力層への入力として使用される。ネットワークの各層は、受け取った入力から、パラメータのそれぞれのセットの現在の値に従って出力を生成する。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Colin Raffel、Noam Shazeer、Adam Roberts、Katherine Lee、Sharan Narang、Michael Matena、Yanqi Zhou、Wei Li、およびPeter J Liu。Exploring the limits of transfer learning with a unified text-to-text transformer。arXivプレプリントarXiv:1910.10683、2019
【非特許文献2】Daniel Adiwardana、Minh-Thang Luong、David R. So、Jamie Hall、Noah Fiedel、Romal Thoppilan、Zi Yang、Apoorv Kulshreshtha、Gaurav Nemade、Yifeng Lu、およびQuoc V. Le。Towards a human-like open-domain chatbot。CoRR、abs/2001.09977、2020
【非特許文献3】Tom B Brown、Benjamin Mann、Nick Ryder、Melanie Subbiah、Jared Kaplan、Prafulla Dhariwal、Arvind Neelakantan、Pranav Shyam、Girish Sastry、Amanda Askellら。Language models are few-shot learners。arXivプレプリントarXiv:2005.14165、2020
【非特許文献4】Vaswaniら。「Attention is all you need」、31st Conference on Neural Information Processing Systems (NIPS 2017)、Long Beach、CA、USA
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書では、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムであって、自己回帰言語モデルニューラルネットワークを使用して出力系列を生成し、次いで同じ自己回帰言語モデルニューラルネットワークを使用してその出力系列を評価する、すなわちその出力系列がシステムの出力として提供するのに適しているかどうかを判定するために、またはどの出力系列を所与の要求に応答して提供すべきかを選択するために評価する、システムについて説明する。したがって、本システムでは、同じ自己回帰ニューラルネットワークを、系列を生成することと、系列がある場合にどの系列を所与の要求に応答して提供すべきかを決定するために、生成された系列同士を「識別する」ことの両方のために使用する。
【0006】
本明細書において説明する本主題は、特定の実施形態において、以下の利点のうちの1つまたは複数を実現するように実装することができる。
【0007】
説明する技法により、自己回帰言語モデルニューラルネットワークが、生成器と識別器の両方として使用される、すなわち出力系列を生成することと、その出力系列が1つまたは複数の基準をいかに十分に満足させるかを評価することの両方のために、使用されることが可能になる。
【0008】
別々の生成器モデルと識別器モデルを有することに比べて、生成器と識別器の両方として機能することのできる単一のモデルを有することにより、候補を生成することに比べて最小限の追加の計算オーバヘッドで、候補出力が正確に評価されることが可能になる。すなわち、本システムは、別途の生成器モデルを使用して系列を評価することに比べてずっと少ない追加のレイテンシで、ずっと少ない追加のメモリを消費して、生成された系列を評価することができる。
【0009】
例えば、いくつかの場合には、言語モデルニューラルネットワークを、制約されたメモリ空間を有する、すなわち利用可能なメモリに対する著しい制約を有するデバイス上にデプロイすることもでき、あるいは小さなデコードレイテンシが必要となるデバイス上、例えばモバイルデバイス、スマートスピーカ、または他のモノのインターネット(IoT)デバイスなどのエッジデバイス上にデプロイすることもでき、あるいはロボットまたは他の物理的なシステムに埋め込むこともできる。これらの場合には、本システムは、ニューラルネットワークによってオンデバイスで生成された系列の評価を、オンデバイスで、ネットワーク経由の追加のデータ通信を必要とすることなくその処理を実施すると同時に、最小限の追加の計算オーバヘッドで行い、それによって、受け取った要求に応答して提供される出力系列の品質が改善することが可能になり得る。すなわち、言語モデルニューラルネットワークが生成器と識別器の両方として使用されるので、エッジデバイスは、メモリ制約またはレイテンシ制約を超過することなく、評価をオンデバイスでローカルに実施することができる。
【0010】
さらに、この単一のモデルを使用して、タスク固有のファインチューニングデータをフィルタリングしてから、このフィルタリングされたデータを使用して、特定のタスクに対してうまく働くようにモデルをファインチューニングすることができる。ファインチューニング後、言語モデルニューラルネットワークによって生成される出力系列の品質は著しく向上することが可能であり、というのも、言語モデルは、標準に満たないかなりの量の出力を除いたトレーニングデータに対して、ファインチューニングされたためである。
【0011】
本明細書の本主題の1つまたは複数の実施形態の詳細については、添付の図面および下の説明において記載されている。
【0012】
本主題の他の特徴、態様、および利点が、説明、図面、および特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【0013】
【
図1】例示的なニューラルネットワークシステムの図である。
【
図3】候補出力系列を評価するための例示的なプロセスの流れ図である。
【
図5】候補出力系列を評価するための別の例示的なプロセスの流れ図である。
【発明を実施するための形態】
【0014】
さまざまな図面中の同様の参照番号および名称は、同様の要素を表す。
【0015】
図1は、例示的なニューラルネットワークシステム100の図である。ニューラルネットワークシステム100は、下で説明するシステム、コンポーネント、および技法を実装することのできる、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されたシステムの一例である。
【0016】
ニューラルネットワークシステム100は、受け取った要求に応答して出力系列150を生成するシステムである。
【0017】
例えば、システム100は、出力系列150を、プロンプトを与えられずに、すなわちユーザ指定の任意のコンテキスト入力に対する条件付けなしで生成する、出力系列生成システムとすることができる。これらの実装形態では、システム100によって生成される出力系列は、システム100のトレーニング中に使用されたトレーニング出力系列の分布のサンプルに近似する。
【0018】
一例として、システム100は、テキスト系列を生成するテキスト生成システムとすることができ、すなわち、システム100によって生成される各出力系列150は、例えば文字、サブワード、ワード、句読点、数字、または自然言語テキスト内に出現する他のシンボルのうちの1つまたは複数を含むテキストトークンの語彙からの、テキストトークンの系列である。例えば、システム100は、受け取った要求に応答してテキスト系列を生成し、そのテキスト系列をユーザに提示するために提供することができる。
【0019】
別の例として、システム100は、画素の系列としての画像を生成する画像生成システムとすることができ、すなわち、システム100によって生成される各出力系列150は、指定の順序に従って配置された出力画像内の画素の色彩値の系列である。
【0020】
別の例として、システム100は、要求の一部としてのコンテキスト系列102を受け取り、そのコンテキスト系列102への応答である出力系列150を生成することができる。
【0021】
特定の一例として、システム100は、対話システムの一部とすることができ、コンテキスト系列102は、対話システムのユーザによって対話中にサブミットされた一番最近の会話ターンからのオーディオまたはテキストを含むことができ、一方、出力系列150は、会話内の次のターン、例えば一番最近の会話ターンへの応答であるテキストまたはオーディオである。オプションで、コンテキスト系列102は、会話の初めのほうで生じた1つまたは複数の履歴会話ターンを含むこともできる。
【0022】
別の特定の例として、システム100は、機械翻訳システムの一部とすることができ、コンテキスト系列102は、起点言語で書かれたテキストを含むことができ、一方、出力系列150は、起点テキストを目標言語に翻訳したものである、目標言語で書かれたテキストである。
【0023】
別の特定の例として、システム100は、コンピュータコード生成システムの一部とすることができ、コンテキスト系列102は、所望のコード片についてのテキストによる説明、またはあるプログラミング言語で書かれたコンピュータコード断片(snippet)とすることができ、出力系列150は、コンピュータコード、例えばコンピュータプログラム内の、コンテキスト系列102によって説明されたコード断片またはコンテキスト系列102に従うコード断片とすることができる。
【0024】
より具体的には、システム100は、出力系列150を求める要求を受け取り、それに応答して、自己回帰言語モデルニューラルネットワーク110、すなわちコンテキスト系列102で条件付けられていないかまたは条件付けられている自己回帰言語モデルニューラルネットワーク110を使用して、1つまたは複数の候補出力系列120を生成する。
【0025】
各候補出力系列120は、複数の位置のそれぞれに、トークンの語彙からのそれぞれのトークンを含む。トークンの語彙は、テキストシンボルまたは他のシンボルを表す多様なトークンのいずれかを含むことができる。例えば、トークンの語彙は、文字、サブワード、ワード、句読点、数字、または自然言語テキストのコーパス内に出現する他のシンボルのうちの1つまたは複数を含むことができる。
【0026】
言語モデルニューラルネットワーク110は、自己回帰ニューラルネットワークと呼ばれ、というのも、ニューラルネットワーク110は、トークンの出力系列を、現在の入力系列で条件付けられた出力系列内の特定の各トークンを生成することによって、自己回帰的に生成するためであり、この現在の入力系列は、出力系列内のその特定のテキストトークンに先行する任意のトークン、すなわちその特定のトークンの特定の位置に先行する出力系列内の任意の先行位置についてすでに生成されたトークンを含む。システム100がコンテキスト系列102も受け取るとき、現在の入力系列はコンテキスト系列102も含むことができる。例えば、出力系列内の任意の所与の位置におけるトークンを生成するときの現在の入力系列は、コンテキスト系列102と、出力系列内のその所与の位置に先行する任意の先行位置におけるトークンとを含むことができる。特定の一例として、現在の入力系列は、コンテキスト系列102と、その後に続く、コンテキスト系列102への応答を生成すべきであることをニューラルネットワーク110に示すトークンの所定の系列を表す「センチネル(sentinel)」系列と、その後に続く、出力系列内のその所与の位置に先行する任意の先行位置におけるトークンを含むことができる。オプションで、現在の入力系列内で、部分系列を所定のトークン、例えば「<」および「>」トークンによって分離することができる。
【0027】
より具体的には、候補出力系列120内の特定の位置における特定のトークンを生成するために、ニューラルネットワーク110は、現在の入力系列を処理して、トークンの語彙内の各トークンにそれぞれのスコア、例えばそれぞれの確率を割り当てる、スコア分布、例えば確率分布を生成することができる。次いで、ニューラルネットワーク110は、このスコア分布を使用して語彙からのトークンをその特定のトークンとして選択することができる。例えば、ニューラルネットワーク110は、最も高いスコアを有するトークンを貪欲に選択することもでき、あるいは例えば核サンプリング技法または別のサンプリング技法を使用して、分布からトークンをサンプリングすることもできる。
【0028】
特定の一例として、言語モデルニューラルネットワーク110は、(i)自己注意演算をそれぞれが適用する複数の注意ブロック、および(ii)最終注意ブロックの出力を処理してスコア分布を生成する出力サブネットワークを含む、自己回帰Transformerベースのニューラルネットワークとすることができる。
【0029】
ニューラルネットワーク110は、多様なTransformerベースのニューラルネットワークアーキテクチャのいずれかを有することができる。そのようなアーキテクチャの例としては、次の文献に記載されたものがある。Colin Raffel、Noam Shazeer、Adam Roberts、Katherine Lee、Sharan Narang、Michael Matena、Yanqi Zhou、Wei Li、およびPeter J Liu。Exploring the limits of transfer learning with a unified text-to-text transformer。arXivプレプリントarXiv:1910.10683、2019;Daniel Adiwardana、Minh-Thang Luong、David R. So、Jamie Hall、Noah Fiedel、Romal Thoppilan、Zi Yang、Apoorv Kulshreshtha、Gaurav Nemade、Yifeng Lu、およびQuoc V. Le。Towards a human-like open-domain chatbot。CoRR、abs/2001.09977、2020;ならびにTom B Brown、Benjamin Mann、Nick Ryder、Melanie Subbiah、Jared Kaplan、Prafulla Dhariwal、Arvind Neelakantan、Pranav Shyam、Girish Sastry、Amanda Askellら。Language models are few-shot learners。arXivプレプリントarXiv:2005.14165、2020。
【0030】
しかし、一般に、Transformerベースのニューラルネットワークは、注意ブロックの系列を含み、所与の入力系列の処理の間、系列内の各注意ブロックが、その所与の入力系列内の各入力トークンについてのそれぞれの入力隠れ状態を受け取る。次いで、注意ブロックは、各隠れ状態を少なくとも一部には自己注意を適用することによって更新して、各入力トークンについてのそれぞれの出力隠れ状態を生成する。第1の注意ブロックのための入力隠れ状態は、入力系列内の入力トークンの埋め込みであり、後続の各注意ブロックのための入力隠れ状態は、先行する注意ブロックによって生成された出力隠れ状態である。
【0031】
この例では、出力サブネットワークは、系列内の最終注意ブロックによって生成された、入力系列内の最終入力トークンについての出力隠れ状態を処理して、スコア分布を生成する。
【0032】
いくつかの実装形態では、システム100または別のトレーニングシステムは、言語モデルニューラルネットワーク110を、言語モデリングタスク、例えば、テキストトークンの現在の系列を与えられると現在の系列に続く次のトークンを予測することを必要とするタスクについて、トレーニングデータ内で事前トレーニングする。特定の一例として、言語モデルニューラルネットワーク110は、最尤目的に基づいて、大規模テキストデータセット、例えばインターネットまたは別のテキストコーパスから公的に利用可能なテキストに対して事前トレーニングすることができる。
【0033】
一般に、ニューラルネットワーク110は自己回帰的であるため、システム100は、例えばニューラルネットワーク110によって生成されたスコア分布からのビーム探索デコードを使用することによって、Sample-and-Rankデコードストラテジを使用することによって、またはニューラルネットワークの自己回帰性を活用する別のデコードストラテジを使用することによって、同じ要求に応答して同じニューラルネットワーク110を使用して複数の異なる候補出力系列120を生成することができる。
【0034】
複数の候補出力系列120が生成されるとき、システム100は、複数の系列のうちどれを、要求に応答して出力系列150として提供すべきかを決定する必要がある。さらに、たとえただ1つの出力系列が生成されるとしても、いくつかの候補出力系列120は、最終出力系列150として提供されるものとして適していない。
【0035】
所与の要求にどのように応答すべきかを決定するために、すなわち候補出力系列120がある場合にどの候補出力系列120を要求に応答して提供すべきかを決定するために、システム100は、所与の出力系列の対応する特性をそれぞれが測定する1つまたは複数の基準(「出力系列基準」)のセットを指定するデータを維持する。
【0036】
基準のセットは、システム100が実施するように構成されているタスクの点で所与の候補出力系列の品質に関連のある特性を測定する、多様な基準のいずれかを含むことができる。
【0037】
例えば、基準のセットは、出力系列の意識性(sensibleness)に対応する基準を含むことができる。意識性基準は、モデルの応答が意識的であるかどうか、すなわちニューラルネットワーク110によって生成された所与の候補出力系列が、現在のインタラクションのコンテキストにおいて、すなわちコンテキスト系列102への応答として意味をなし、現在のインタラクションの間にコンテキスト系列102内または以前の系列内の任意の情報と矛盾しないかどうかを測定するものである。したがって、出力系列が意識的である場合、その出力系列はこの基準を満足させる。
【0038】
別の例として、基準のセットは、出力系列の特定性(specificity)に対応する基準を含むことができる。特定性基準は、モデルの応答が特定的であるかどうか、すなわちニューラルネットワーク110によって生成された所与の候補出力系列が、多様なコンテキスト系列のいずれかに当てはまり得る一般的な応答であるのではなく、対応するコンテキスト系列102に特定的であるかどうかを測定するものである。例えば、コンテキスト系列102が「私はテレビが好きです」であり、モデルが「私もです」と応答する場合、この応答は特定性について低いスコア、例えばスコア0を得ることになり、というのも、この応答は多くの異なるコンテキストにおいて使用され得るためである。モデルが「私もです。私はリアリティ番組を見るのが好きです」と応答する場合、この応答は特定性についてより高いスコアを得ることになる。
【0039】
別の例として、基準のセットは、出力系列の興味性(interestingness)に対応する基準を含むことができる。興味性基準は、モデルの応答が興味深いかどうか、すなわちニューラルネットワーク110によって生成された所与の候補出力系列が、対応するコンテキスト系列102を生成した人間にとって興味深いかどうかを測定するものである。例えば、「どうやってボールを投げますか」への応答としては、「最初にボールを手に取り、次にそれを投げることによって、ボールを投げることができます」があり得る。これに代わる、より興味深い回答としては、「ボールをトスする1つの方法は、ボールを両手でしっかりとつかみ、次に腕を振り下ろして再び振り上げ、肘を延ばし、次にボールを上方に放ちます」があり得る。最初の応答は、意味をなし、質問に特定的であるが、質問を投げかけた人物にとって興味深いまたは情報価値があると分からない可能性がある。一方、これに代わる応答は、質問に回答するさらなる情報を提供し、したがって、興味性基準について、最初の応答よりも高いスコアを得ることになる。
【0040】
上記の基準の代わりにまたはそれに加えて、他の基準を含めることができる。例えば、他の基準は、所与の出力系列が要求に応答して提供されるのに適している程度を測定するものである、適切性(suitability)基準を含むことができる。
【0041】
システム100は、基準評価システム130を使用して、セット内の1つまたは複数の基準のそれぞれについてのそれぞれのレーティングスコア140を生成する。所与の基準についてのレーティングスコア140は、自己回帰言語モデルニューラルネットワーク110によって生成された候補出力系列120がその基準を満足させる程度を測定するものである。
【0042】
一般に、基準評価システム130は、言語モデルニューラルネットワーク110からの出力を使用して、レーティングスコア140を、計算効率良くただし正確に生成する。
【0043】
ニューラルネットワーク110を使用して、セット内の1つまたは複数の基準についてのレーティングスコア140を生成するための例示的な技法については、下で
図2~
図5を参照して説明する。
【0044】
すなわち、単に別途トレーニングした機械学習モデルを使用してレーティングスコア140を生成するのではなく、システム130は、ニューラルネットワーク110を活用して、レーティングスコア140の正確さとレーティングスコア140を生成する計算効率の両方を改善する。
【0045】
レーティングスコア140が生成された後、システム100は、候補出力系列120を提供すべきかどうかを、レーティングスコア140を使用して、要求に応答して、多様な方途のいずれかで判定することができる。
【0046】
例えば、システム100が複数の候補出力系列を生成する実装形態では、システム100は、各候補出力系列について、セット内の基準のうちの1つまたは複数についての、その候補出力系列のそれぞれのレーティングスコア140から、それぞれの品質スコアを生成することができる。例えば、所与の候補出力系列の品質スコアは、1つまたは複数の基準についてのレーティングスコア140の和または重み付き和とすることができる。
【0047】
次いで、システム100は、要求に応答して提供すべき系列として、最も高いそれぞれの品質スコアを有する候補出力系列120を選択することができる。
【0048】
別の例として、システム100は、基準の少なくともサブセットについてのそれぞれのしきい値を維持することができる。この例では、サブセット内の各基準について、システム100は、所与の候補出力系列120について、セット内のその基準についての、その所与の候補出力系列のそれぞれの品質スコアが、その基準についてのしきい値を満足させる、例えば超過するかどうかを判定し、次いで、セット内の第1の出力基準についての、その所与の候補出力系列のそれぞれの品質スコアが、そのしきい値を満足させないとき、(たとえその所与の候補出力系列が普通なら最も高い品質スコアを有するはずであろうと)その所与の候補出力系列を要求に応答して提供しない、と決定することができる。
【0049】
システム130を使用して、要求にどのように応答すべきかを決定することに加えてまたはその代わりに、システム100は、システム130を使用して、タスク固有のファインチューニングデータをフィルタリングしてから、このフィルタリングされたデータを使用して、特定のタスクに対してうまく働くようにニューラルネットワーク110をファインチューニングすることもできる。
【0050】
具体的には、システム100は、トレーニング出力系列のセットと、オプションで、各トレーニング出力系列についての対応するコンテキスト系列とを含む、タスク固有のファインチューニングデータを取得することができる。次いで、システム130が、各トレーニング出力系列のレーティングスコアを生成し、次いで、レーティングスコアを使用して、ファインチューニングデータから1つまたは複数のトレーニング出力系列をフィルタリングすることができる。例えば、システム130は、しきい値よりも低い品質スコアを有する任意のトレーニング出力系列をフィルタリング除去する、と決定することができる。別の例として、システム130は、基準の指定されたサブセット内の各基準について、別のしきい値未満であるレーティングスコアを有する任意のトレーニング出力系列をフィルタリング除去する、と決定することができる。これらのトレーニング出力系列をフィルタリング除去することによって、システムは、ファインチューニングデータ内の出力系列の全体的な品質を改善し、したがって、ファインチューニング後に、言語モデルニューラルネットワーク110によって生成される出力系列の品質が著しく向上し得る。
【0051】
【0052】
図2の例では、基準評価システム130は、1つまたは複数の基準のそれぞれについて、それぞれの基準エンジン220A~Nを含む。
【0053】
各基準エンジン220A~Nは、候補出力系列120を受け取り、対応する基準についてのレーティングスコア140を生成する。レーティングスコア140は、自己回帰言語モデルニューラルネットワーク110によって生成された候補出力系列120が基準を満足させる程度を表す。
【0054】
レーティングスコア140を生成するために、各基準エンジン220A~Nは、候補出力系列120を受け取り、候補出力系列120と、基準を指定する、語彙からの1つまたは複数のトークンの所定の系列、すなわちどの基準が評価されているのかを自己回帰ニューラルネットワーク110に明示するトークンの系列とに基づく、入力系列230を生成する。より具体的には、ニューラルネットワーク110を使用して1つまたは複数の基準を評価する前に、システムは、入力として、各基準のためのトークンのそれぞれの系列を受け取る。例えば、トークンの系列は、対応する基準の自然言語の名称または他の識別子とすることができ、例えば、「特定性」というワードは特定性基準を表すことができ、一方、「興味性」というワードは興味性基準を表すことができる。
【0055】
具体的には、所与の基準のための入力系列230は、候補出力系列120と、その後に続く、出力系列基準を指定する1つまたは複数のトークンを含む。システム100がコンテキスト系列102も受け取るとき、入力系列230はそのコンテキスト系列も含むことができる。
【0056】
特定の一例として、入力系列230は、次の形式のものとすることができる。
<コンテキスト> <センチネル> <応答> <属性名>,
ただし、「コンテキスト」は、コンテキスト系列102を表し、「センチネル」は、コンテキスト系列102への応答を生成すべきであることをニューラルネットワーク110に示すトークンの所定の系列を表し、「応答」は、候補出力系列120であり、「属性名」は、基準を指定するトークンである。
【0057】
次いで、システム130は、ニューラルネットワーク110を使用して入力系列230を処理して、語彙内の各トークンのそれぞれのスコアを生成する。ニューラルネットワーク110がすでに、コンテキスト系列102を処理して、候補出力系列120を生成しているので、(「識別器の評価」とも呼ばれる)この処理は単に、候補出力系列120の生成中に生成された隠れ状態を再使用しながら、候補出力系列120の後に付加された1つまたは複数の追加のトークン「<属性名>」を処理するというものである。これは、基準の評価に別のニューラルネットワークを使用することとは対照的であり、それよりも著しく計算効率が良く、というのもすなわち、別のニューラルネットワークであれば、候補出力系列102に正確にスコア付けするために、コンテキスト102および候補出力系列120内の全てのトークンを処理する必要があるはずであるためである。
【0058】
したがって、各エンジン220A~Nは、異なる入力系列230を生成し、ニューラルネットワーク110を使用して、トークンの語彙にわたる対応するスコア分布を生成する。
【0059】
次いで、各エンジン220A~Nは、トークンの語彙の対応する真部分集合内にあるトークンのそれぞれのスコアから、レーティングスコア140を決定する。
【0060】
すなわち、各基準には、語彙内の1つまたは複数のトークンからなる対応する真部分集合がある。
【0061】
各レーティングスコアが同じ範囲を有するとき、対応する真部分集合は同じものであり得る。
【0062】
異なるレーティングスコアが異なる範囲を有するとき、対応する真部分集合は異なり得る。例えば、レーティングスコアの範囲が0から1であるとき、エンジン220A~Nは、トークンのスコア「1」をレーティングスコア140として使用することができる。より一般的には、システムのエンジン220A~Nは、レーティングスコア140を、レーティングスコアの可能な各グラウンドトゥルース値の重み付き和と等しいものとして計算することができ、各グラウンドトゥルース値についての重みが、語彙内のそのグラウンドトゥルース値を表すトークンのスコアである。
【0063】
したがって、
図2に示すように、システム130はニューラルネットワーク110を使用して1つまたは複数の基準についてのレーティングスコア140を計算効率良く生成し、というのもすなわち、レーティングスコア140の生成では、ニューラルネットワーク110は、基準当たりに少数の追加のトークンを処理するように要求されるにすぎないためである。
【0064】
ニューラルネットワーク110を使用してレーティングスコアを生成するより前、かつニューラルネットワーク110が事前トレーニングされた後で、システム130または別のトレーニングシステムは、ニューラルネットワーク110にレーティングスコアを正確に生成させるために、ニューラルネットワーク110をファインチューニングし、すなわちファインチューニング用のトレーニングデータのセットからのトレーニング例のバッチに対してトレーニングステップを繰り返し実施することによってファインチューニングする。
【0065】
各トレーニング例は、(i)トレーニング出力系列とその後に続く(ii)基準のセットからの特定の基準を指定する1つまたは複数のトークンを含む、トレーニング入力系列を含む。各トレーニング例は、対応する出力系列基準についての、そのトレーニング出力系列がその特定の出力系列基準を満足させる程度を表すグラウンドトゥルースレーティングスコアも含む。グラウンドトゥルースレーティングスコアは、例えばユーザが出力系列を人手によりラベル付与した結果として、または別の自動ラベル付与システムの出力として、取得することができる。
【0066】
トレーニングステップを実施するために、システム、すなわちシステム130または別のトレーニングシステムは、1つまたは複数のトレーニング例のバッチを取得する。例えば、システムは、ファインチューニングトレーニングプロセス用のトレーニング例のより大規模なセットから、バッチをサンプリングすることができる。
【0067】
バッチ内の各トレーニング例について、システムは、自己回帰言語モデルニューラルネットワークを使用して、トレーニング例内のトレーニング入力系列を処理して、語彙内の各トークンのそれぞれのスコアを生成する。
【0068】
次いで、システムは、バッチ内の各トレーニング例について、(i)そのトレーニング例について生成された、語彙内のトークンのそれぞれのスコアと、(ii)そのトレーニング例のグラウンドトゥルースレーティングスコアをもたらす、語彙内のトークンのスコアのグラウンドトゥルースセットとの誤差を測定する損失関数を最小限に抑えるように、自己回帰言語モデルニューラルネットワークをトレーニングする。例えば、損失関数は、負の対数尤度損失または交差エントロピー損失とすることができる。
【0069】
具体的には、システムは、ニューラルネットワーク110のパラメータに対する損失関数の勾配を、例えばバックプロパゲーションによって計算することができる。次いで、システムは、ニューラルネットワーク110のパラメータを、計算した勾配に最適化器を適用して更新を生成し、次いで更新をパラメータの現在の値に加えるかまたは更新をパラメータの現在の値から減じることによって、更新することができる。
【0070】
システムは、このファインチューニングを計算効率良く実施することができ、というのも、損失をトレーニング入力系列内の任意の以前の位置におけるどんな予測にも適用することなく、損失が、損失関数によって測定された誤差にのみ、すなわち予測されたレーティングスコアにのみ適用されるためである。
【0071】
上述したように、ファインチューニングが実施された後で、システム130または別のトレーニングシステムは、エンジン210A~Nを使用して、ニューラルネットワーク110をさらにファインチューニングするために使用されるトレーニングデータのフィルタリングされたセットを生成することもできる。
【0072】
図3は、候補出力系列を評価するための例示的なプロセス300の流れ図である。便宜上、プロセス300については、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータからなるシステムによって実施されるものとして説明する。例えば、ニューラルネットワークシステム、例えば
図1に示す、本明細書に従って適切にプログラムされたニューラルネットワークシステム100が、プロセス300を実施することができる。
【0073】
システムは、出力系列を求める要求を受け取る(ステップ302)。いくつかの実装形態では、要求はコンテキスト系列を含み、要求は、コンテキスト系列への応答を求めるものである。
【0074】
システムは、自己回帰言語モデルニューラルネットワークを使用して、トークンの語彙からそれぞれが選択される複数のトークンを含む第1の候補出力系列を生成する(ステップ304)。上述したように、いくつかの実装形態では、システムは、ニューラルネットワークを使用して、複数の候補出力系列を生成し、すなわち、第1の候補出力系列に加えて1つまたは複数の追加の候補出力系列も生成する。
【0075】
1つまたは複数の出力系列基準のセット内の各出力系列基準について、システムは、自己回帰言語モデルニューラルネットワークを使用して、(i)第1の候補出力系列とその後に続く(ii)その出力系列基準を指定する1つまたは複数のトークンを含む、入力系列を処理して、語彙内の各トークンのそれぞれのスコアを生成する(ステップ306)。要求が条件付け系列も指定するとき、入力系列はその条件付け系列も含む。
【0076】
各出力系列基準について、システムは、トークンの語彙の対応する真部分集合内にあるトークンのそれぞれのスコアから、自己回帰言語モデルニューラルネットワークによって生成された第1の候補出力系列がその出力系列基準を満足させる程度を表す、第1の候補出力系列のそれぞれのレーティングスコアを決定する(ステップ308)。
【0077】
スコアは、例えば、(i)第1の候補出力系列とその後に続く(ii)スコアを得るためのそれぞれの出力系列基準を指定する1つまたは複数のトークンをそれぞれが備える、複数の入力系列を、自己回帰言語モデルニューラルネットワークの複数のコピーを使用して処理することによって、並列に生成することができる。そのような並列化は、レーティングスコアをより迅速に決定することを可能にし、それによって、候補出力系列に基づく出力がより迅速に提供されることが可能になり得る。
【0078】
追加の候補出力系列が生成されたとき、システムはやはりステップ306および308を実施して、各追加の候補出力系列のそれぞれのレーティングスコアを生成する。
【0079】
次いで、システムは、第1の候補出力系列を要求に応答して提供すべきかどうかを、1つまたは複数の出力系列基準についての、第1の候補出力系列のそれぞれのレーティングスコアを使用して判定する(ステップ310)。例えば、システムはこの判定を、
図1を参照して上述したように行うことができる。
【0080】
図4は、基準評価システム130の別の例の図である。
【0081】
図4の例では、基準評価システム130は、1つまたは複数の基準のそれぞれについてのそれぞれのレーティングスコア140を生成する分類器460を含む。
【0082】
具体的には、
図2に示すように、言語モデルニューラルネットワーク110は、第1のサブネットワーク430および出力サブネットワーク450を含む。
【0083】
第1のサブネットワーク430は、複数の入力トークンを含む入力系列を処理して、各入力トークンについてのそれぞれの隠れ状態440を生成するように構成される。
【0084】
出力サブネットワーク450は、特定の位置の直前の位置における入力トークンについてのそれぞれの隠れ状態を処理して、トークンの語彙内の各トークンのそれぞれのスコアを生成し、それらのそれぞれのスコアを使用して、語彙内のトークンのうちの1つを第1の候補出力系列内のその特定の位置におけるトークンとして選択するように構成される。
【0085】
例えば、上述したように、ニューラルネットワーク110は、自己注意機構をそれぞれが適用する複数の注意ブロックを含む、Transformerベースのニューラルネットワークとすることができる。より具体的には、この例では、Transformerベースのニューラルネットワークは、注意ブロックの系列を含み、所与の入力系列の処理の間、系列内の各注意ブロックが、その所与の入力系列内の各入力トークンについてのそれぞれの入力隠れ状態を受け取り、各隠れ状態を少なくとも一部には自己注意を適用することによって更新して、各入力トークンについてのそれぞれの出力隠れ状態を生成する。第1の注意ブロックのための入力隠れ状態は、入力トークンの埋め込みであり、後続の各注意ブロックのための入力隠れ状態は、先行する注意ブロックによって生成された出力隠れ状態である。
【0086】
この例では、注意ブロックは、第1のサブネットワーク410の一部であり、隠れ状態440は、系列内の最終注意ブロックによって生成された出力隠れ状態である。
【0087】
出力サブネットワーク450は、例えば、入力系列内の最終入力トークンについての隠れ状態440を処理してトークンの語彙内の各トークンのそれぞれのスコアを生成する1つまたは複数の全結合層を含むことができる。特定の一例として、出力サブネットワーク450は、1つまたは複数の線形ニューラルネットワーク層とその後に続くsoftmax出力層を含むことができる。
【0088】
図4の例では、レーティングスコア140を生成するために、システム130は、第1のサブネットワーク430を使用して入力系列420を処理して、入力系列420内の各入力についてのそれぞれの隠れ状態440を生成する。
【0089】
具体的には、入力系列420は、候補出力系列120内の全ての位置における全てのトークンを含んだ複数の入力トークンを含む。すなわち、入力系列420は、候補出力系列120全体を含む。システム100がコンテキスト系列102も受け取るとき、入力トークンはそのコンテキスト系列102からのトークンも含む。
【0090】
例えば、入力系列420は、次の形式のものとすることができる。
<コンテキスト> <センチネル> <応答>,
ただし、「コンテキスト」は、コンテキスト系列102を表し、「センチネル」は、コンテキスト系列102への応答を生成すべきであることをニューラルネットワーク110に示すトークンの所定の系列を表し、「応答」は、候補出力系列120である。
【0091】
可変長出力系列を生成する多くの自己回帰ニューラルネットワーク110では、所与の時間ステップにおいて所定の系列の終了(end of sequence)トークンが選択されたときに所与の出力系列が終了する。すなわち、系列の終了トークンが選択されると、システム100は、出力系列が、出力系列の生成中のその所与の時間ステップに先行する各時間ステップにおけるトークンであると決定する。これらの実装形態では、システム130は、入力系列410についての隠れ状態を生成するためのどんな追加の処理も実施する必要がなく、というのもすなわち、入力系列410は、候補出力系列120の生成を終了させた系列の終了トークンを選択するようにすでに処理されたためである。
【0092】
次いで、システム130は、1つまたは複数の基準のそれぞれについてのそれぞれのレーティングスコア140を生成するために、隠れ状態440のうちの1つまたは複数を、分類器460を使用して処理する。例えば、分類器460によって処理される1つまたは複数の隠れ状態440は、第1のサブネットワークによって生成された、第1の候補出力系列内の最終位置におけるトークンについてのそれぞれの隠れ状態とすることができる。別の例として、分類器460によって処理される1つまたは複数の隠れ状態440は、第1のサブネットワーク430によって生成された、入力トークンのうちの指定された位置における指定された入力トークン、例えば入力系列内の第1の入力トークンについての、それぞれの隠れ状態とすることができる。さらに別の例として、1つまたは複数の隠れ状態440は、全ての隠れ状態440を含むことができ、分類器460を、それらの隠れ状態440を平均するように構成することができる。
【0093】
分類器460は、1つまたは複数の分類器層を含み、この1つまたは複数の分類器層を使用して1つまたは複数の隠れ状態を処理して、1つまたは複数の基準のそれぞれについてのそれぞれのレーティングスコア140を生成するように構成される、ニューラルネットワークである。例えば、分類器層は、最終層が、各基準に対応するそれぞれのノード、例えばロジスティック回帰またはシグモイドノードを有し、各ノードが対応する基準についてのそれぞれのレーティングスコア140を生成するように構成された、1つまたは複数の全結合層を含むことができる。
【0094】
したがって、
図4の例では、システム130は、(候補出力系列の生成の一環としてすでに生成された)隠れ状態を、小規模の、計算効率の良い分類器460を使用して処理することによって、全ての基準についてのスコアを生成することができる。
【0095】
分類器460を使用してレーティングスコアを生成するより前、かつニューラルネットワーク110が事前トレーニングされた後で、システム130または別のトレーニングシステムが、分類器460にレーティングスコアを正確に生成させるために、分類器460をトレーニングし、すなわちトレーニング用のトレーニングデータのセットからのトレーニング例のバッチに対してトレーニングステップを繰り返し実施することによってトレーニングする。
【0096】
トレーニングステップを実施するために、システム、すなわちシステム130または別のトレーニングシステムは、1つまたは複数のトレーニング例のバッチを取得する。例えば、システム130は、ファインチューニングトレーニングプロセス用のトレーニング例のより大規模なセットから、バッチをサンプリングすることができる。
【0097】
バッチ内の各トレーニング例について、システムは、各出力系列基準についてのそれぞれのレーティングスコアを生成するために、第1のサブネットワークによってトレーニング例内のトレーニング出力系列内の全ての位置における全てのトークンを含んだ複数の入力トークンを含む入力を処理することによって生成されたそれぞれの隠れ状態のうちの1つまたは複数を、1つまたは複数の分類器層を使用して処理する。
【0098】
次いで、システムは、バッチ内の各トレーニング例について、(i)そのトレーニング例について生成された、それぞれのレーティングスコアと、(ii)そのトレーニング例のそれぞれのグラウンドトゥルースレーティングスコアとの誤差を測定する損失関数を最小限に抑えるように、1つまたは複数の分類器層をトレーニングする。
【0099】
具体的には、システムは、分類器層のパラメータに対する損失関数の勾配を計算することができる。次いで、システムは、分類器層のパラメータを、計算した勾配に最適化器を適用して更新を生成し、次いで更新をパラメータの現在の値に加えるかまたは更新をパラメータの現在の値から減じることによって、更新することができる。
【0100】
システムは、このトレーニングを計算効率良く実施することができ、というのも、分類器460が比較的少数の、すなわちニューラルネットワーク110に比べて比較的少数のパラメータを有し、分類器460のトレーニング中にシステムが入力サブネットワークをフリーズ状態にしておくためである。
【0101】
上述したように、分類器460のトレーニングが実施された後で、システム130または別のトレーニングシステムは、分類器460を使用して、ニューラルネットワーク110をさらにファインチューニングするために使用されるトレーニングデータのフィルタリングされたセットを生成することもできる。
【0102】
図3は、候補出力系列を評価するための別の例示的なプロセス500の流れ図である。便宜上、プロセス500については、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータからなるシステムによって実施されるものとして説明する。例えば、ニューラルネットワークシステム、例えば
図1に示す、本明細書に従って適切にプログラムされたニューラルネットワークシステム100が、プロセス500を実施することができる。
【0103】
システムは、出力系列を求める要求を受け取る(ステップ502)。いくつかの実装形態では、要求はコンテキスト系列を含み、要求は、コンテキスト系列への応答を求めるものである。
【0104】
システムは、自己回帰言語モデルニューラルネットワークを使用して、トークンの語彙からそれぞれが選択される複数のトークンを含む第1の候補出力系列を生成する(ステップ504)。
【0105】
上述したように、言語モデルニューラルネットワークは、第1のサブネットワークおよび出力サブネットワークを含む。
【0106】
第1のサブネットワークは、候補出力系列内の複数の位置の各特定の位置において、複数の入力トークンを備える入力を処理して、各入力トークンについてのそれぞれの隠れ状態を生成するように構成され、入力トークンは、候補出力系列内のその特定の位置に先行する各位置におけるトークン、およびオプションでコンテキスト系列内のトークンを備える。
【0107】
出力サブネットワークは、複数の位置の各特定の位置において、その特定の位置の直前の位置における入力トークンについてのそれぞれの隠れ状態を処理して、トークンの語彙内の各トークンのそれぞれのスコアを生成し、それらのそれぞれのスコアを使用して、語彙内のトークンのうちの1つを第1の候補出力系列内のその特定の位置におけるトークンとして選択するように構成される。
【0108】
上述したように、いくつかの実装形態では、システムは、ニューラルネットワークを使用して、複数の候補出力系列を生成し、すなわち、第1の候補出力系列に加えて1つまたは複数の追加の候補出力系列も生成する。
【0109】
システムは、1つまたは複数の基準のセット内の各基準についてのそれぞれのレーティングスコアを生成するために、第1のサブネットワークによって第1の候補出力系列内の全ての位置における全てのトークンを含む入力を処理することによって生成されたそれぞれの隠れ状態のうちの1つまたは複数を、1つまたは複数の分類器層を使用して処理する(ステップ506)。
【0110】
追加の候補出力系列が生成されたとき、システムはやはりステップ506を実施して、各追加の候補出力系列のそれぞれのレーティングスコアを生成する。
【0111】
次いで、システムは、第1の候補出力系列を要求に応答して提供すべきかどうかを、1つまたは複数の出力系列基準についての、第1の候補出力系列のそれぞれのレーティングスコアを使用して判定する(ステップ508)。例えば、システムはこの判定を、
図1を参照して上述したように行うことができる。
【0112】
「埋め込み」とは、本明細書では、数値、例えば浮動小数点または他のタイプの数値の、所定の次元を有する、例えば所定数の値を有する、ベクトルである。
【0113】
上述した自己注意ブロックは、自己注意ブロック入力(または層入力から得られた入力)にわたって作用して自己注意ブロック出力を生成する注意機構を含む、ニューラルネットワーク層である。自己注意機構は、入力系列内の任意の所与の位置が入力系列内のその所与の位置よりも後の任意の位置にわたって注意を向けない(例えば入力系列内のその所与の位置よりも後の任意の位置からのデータを使用しない)ように、因果的にマスクされる(causally masked)ことがある。可能な多くの異なる注意機構がある。注意機構を含む自己注意層のいくつかの例については、次の文献に記載されている。Vaswaniら。「Attention is all you need」、31st Conference on Neural Information Processing Systems (NIPS 2017)、Long Beach、CA、USA;Colin Raffel、Noam Shazeer、Adam Roberts、Katherine Lee、Sharan Narang、Michael Matena、Yanqi Zhou、Wei Li、およびPeter J Liu。Exploring the limits of transfer learning with a unified text-to-text transformer。arXivプレプリントarXiv:1910.10683、2019;Daniel Adiwardana、Minh-Thang Luong、David R. So、Jamie Hall、Noah Fiedel、Romal Thoppilan、Zi Yang、Apoorv Kulshreshtha、Gaurav Nemade、Yifeng Lu、およびQuoc V. Le。Towards a human-like open-domain chatbot。CoRR、abs/2001.09977、2020;ならびにTom B Brown、Benjamin Mann、Nick Ryder、Melanie Subbiah、Jared Kaplan、Prafulla Dhariwal、Arvind Neelakantan、Pranav Shyam、Girish Sastry、Amanda Askellら。Language models are few-shot learners。arXivプレプリントarXiv:2005.14165、2020。
【0114】
一般に、注意機構は、クエリおよびキー-バリュー対のセットを出力にマッピングし、ここで、クエリ、キー、およびバリューはいずれもベクトルである。出力は、バリューの重み付き和として計算され、ここで、各バリューに割り当てられる重みは、例えばクエリと対応するキーとの適合関数(compatibility function)、例えばドット積またはスケールドドット積(scaled dot product)によって計算される。
【0115】
一般に、自己注意機構は、同じ系列内の異なる位置同士を関連付けて、出力としての、その系列の変換したバージョンを決定するように構成される。例えば、注意層入力は、入力系列の各要素についてのベクトルを備えることができる。これらのベクトルは、自己注意機構への入力をもたらし、これらのベクトルを自己注意機構が使用して、注意層出力のための同じ系列の新規表現を決定し、この新規表現も同様に入力系列の各要素についてのベクトルを備える。自己注意機構の出力を、注意層出力として使用することもでき、あるいは自己注意機構の出力を、フィードフォワード層、スキップ接続、または正規化演算のうちの1つまたは複数によって処理して、注意層出力をもたらすこともできる。
【0116】
いくつかの実装形態では、注意機構は、例えば行列WQによって定義されるクエリ変換、例えば行列WKによって定義されるキー変換、および例えば行列WVによって定義されるバリュー変換のそれぞれを、注意層への入力データXである注意層入力に適用して、入力系列内の各ベクトルについてのそれぞれのクエリを含むクエリ行列Q=XWQ、入力系列内の各ベクトルについてのそれぞれのキーを含むキー行列K=XWK、および入力系列内の各ベクトルについてのそれぞれのバリューを含むバリュー行列V=XWVを得るように構成され、これらの行列は、出力のための、注意を向けられる系列を決定するために使用される。例えば、注意機構は、各クエリベクトルを各キーベクトルに適用して、各バリューベクトルについてのそれぞれの重みを決定し、次いで、それぞれの重みを使用してバリューベクトル同士を組み合わせて、入力系列の各要素についての自己注意層出力を決定することによって適用される、ドット積注意機構とすることができる。この自己注意層出力を、スケーリングファクタによって、例えばクエリおよびキーの次元の平方根によってスケーリングして、スケールドドット積注意を実装することができる。したがって、例えば、注意機構の出力は、softmax
【0117】
【0118】
として決定することができ、ただし、dはキー(およびバリュー)ベクトルの次元である。別の実装形態では、注意機構は、1つの隠れ層を有するフィードフォワードネットワークを使用して適合関数を計算する「加法注意」機構を備える。注意機構の出力は、1つまたは複数の全結合フィードフォワードニューラルネットワーク層によってさらに処理することができる。
【0119】
注意機構は、マルチヘッド注意を実装することができ、すなわち、注意機構は、複数の異なる注意機構を並列に適用することができる。次いで、これらの注意機構の出力を組み合わせ、例えば連結し、必要なら元の次元数を低減させるために学習済みの線形変換を適用することができる。
【0120】
本明細書では、システムおよびコンピュータプログラムコンポーネントに関連して、「構成される」という用語を使用している。1つまたは複数のコンピュータからなるシステムが、特定の動作またはアクションを実施するように構成されるとは、動作の際にシステムにそれらの動作またはアクションを実施させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せを、システムがその上にインストールされる、ということを意味する。1つまたは複数のコンピュータプログラムが、特定の動作またはアクションを実施するように構成されるとは、データ処理装置によって実行されると装置にそれらの動作またはアクションを実施させる命令を、1つまたは複数のプログラムが含む、ということを意味する。
【0121】
本明細書において説明した本主題および機能的動作の実施形態は、デジタル電子回路の形で、有形に具現化されたコンピュータソフトウェアもしくはコンピュータファームウェアの形で、本明細書において開示した構造およびそれらの構造的等価物を含むコンピュータハードウェアの形で、またはそれらのうちの1つもしくは複数のものの組合せの形で、実装することができる。本明細書において説明した本主題の実施形態は、1つまたは複数のコンピュータプログラムとして、例えば、データ処理装置によって実行するかまたはデータ処理装置の動作を制御するために有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして、実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムアクセスもしくはシリアルアクセスのメモリデバイス、またはそれらのうちの1つもしくは複数のものの組合せとすることができる。その代わりにまたはそれに加えて、プログラム命令は、情報をデータ処理装置によって実行する目的で適切なレシーバ装置に送信できるように符号化するために生成される、人工的に生成された伝搬信号、例えば機械により生成された電気信号、光信号、電磁信号上に、符号化することもできる。
【0122】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として1つのプログラマブルプロセッサ、1つのコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。装置は、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)とすることもでき、あるいはFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)をさらに含むこともできる。装置はオプションで、ハードウェアに加えて、コンピュータプログラムのための実行環境を作り出すコード、例えばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数のものの組合せを構成するコードも、含むことができる。
【0123】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードとも呼ばれるかまたは記載されることのあるコンピュータプログラムは、コンパイル型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む、任意の形態のプログラミング言語で記述することができ、またそれは、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境において使用するのに適した他のユニットとして、を含む、任意の形態でデプロイすることができる。プログラムは、その必要はないが、ファイルシステム内のファイルに対応してよい。プログラムは、他のプログラムもしくはデータを保持するファイルの一部分、例えばマークアップ言語ドキュメント内に格納された1つもしくは複数のスクリプト内に、当該のプログラムに専用の単一のファイル内に、または複数の連係されたファイル、例えばコードの1つもしくは複数のモジュール、サブプログラム、もしくは一部分を格納したファイル内に、格納することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するかもしくは複数のサイトにわたって分散され、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように、デプロイすることができる。
【0124】
本明細書では、「データベース」という用語は、データの任意の集まりを指すために広義に使用されており、データは、任意の特定の様式で構造化されている必要も、全く構造化されている必要もなく、またデータは、1つまたは複数のロケーションにある記憶デバイス上に記憶させることができる。したがって、例えば、索引データベースは、そのそれぞれを別様に編成し、そのそれぞれに別様にアクセスすることのできる、データの複数の集まりを含むことができる。
【0125】
同様に、本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実施するようにプログラムされるソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広義に使用されている。一般に、エンジンは、1つまたは複数のロケーションにある1つまたは複数のコンピュータ上にインストールされた、1つまたは複数のソフトウェアモジュールまたはソフトウェアコンポーネントとして実装される。いくつかの場合には、1つまたは複数のコンピュータは特定のエンジンに専用であり、他の場合には、複数のエンジンは、同じ1つまたは複数のコンピュータ上にインストールされ、その上で実行されていてよい。
【0126】
本明細書において説明したプロセスおよび論理フローは、入力データに作用し出力を生成することにより機能を実施するための1つまたは複数のコンピュータプログラムを実行する、1つまたは複数のプログラマブルコンピュータによって実施することができる。プロセスおよび論理フローは、専用論理回路、例えばFPGAもしくはASICによって、または専用論理回路とプログラムされた1つもしくは複数のコンピュータとの組合せによって、実施することもできる。
【0127】
コンピュータプログラムの実行に適したコンピュータは、汎用マイクロプロセッサもしくは専用マイクロプロセッサもしくはその両方、または他の任意の種類の中央処理装置に基づくことができる。一般に、中央処理装置は、読出し専用メモリまたはランダムアクセスメモリまたはその両方から、命令およびデータを受け取る。コンピュータの不可欠な要素は、命令を実施または実行するための中央処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補完することもでき、あるいは専用論理回路に組み込むこともできる。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶デバイス、例えば磁気ディスク、光磁気ディスク、または光ディスクを含むか、またはそこからデータを受け取りもしくはそこにデータを転送するように動作可能に結合されるか、またはその両方である。しかし、コンピュータはそのようなデバイスを有している必要はない。さらに、コンピュータは別のデバイスに、例えばほんの数例を挙げると、モバイル電話、パーソナルデジタルアシスタント(PDA)、モバイルオーディオプレーヤもしくはモバイルビデオプレーヤ、ゲーム機、グローバルポジショニングシステム(GPS)レシーバ、またはポータブル記憶デバイス、例えばユニバーサルシリアルバス(USB)フラッシュドライブに、埋め込むことができる。
【0128】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体としては、例として半導体メモリデバイス、例えばEPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、例えば内蔵ハードディスクまたはリムーバルディスク;光磁気ディスク;ならびにCD ROMディスクおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性のメモリ、媒体、およびメモリデバイスがある。
【0129】
ユーザとのインタラクションを可能にするために、本明細書において説明した本主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、ユーザがそれによってコンピュータに入力することのできるキーボードおよびポインティングデバイス、例えばマウスまたはトラックボールとを有するコンピュータ上に実装することができる。他の種類のデバイスを使用してユーザとのインタラクションを可能にすることもでき、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバックとすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形態で受け取ることができる。それに加えて、コンピュータはユーザと、ユーザによって使用されているデバイスにドキュメントを送出し、そのデバイスからドキュメントを受信することによって、例えばユーザのデバイス上のウェブブラウザに、そのウェブブラウザから受信した要求に応答してウェブページを送出することによって、インタラクションすることができる。また、コンピュータはユーザと、パーソナルデバイス、例えばメッセージングアプリケーションを実行しているスマートフォンに、テキストメッセージまたは他の形態のメッセージを送出し、ユーザから返信として応答メッセージを受信することによって、インタラクションすることができる。
【0130】
機械学習モデルを実装するためのデータ処理装置は、例えば、機械学習トレーニングの作業負荷、またはプロダクション、例えば推論の作業負荷の、共通の計算集約的部分を処理するための、専用ハードウェアアクセラレータユニットを含むこともできる。
【0131】
機械学習モデルは、機械学習フレームワーク、例えばTensorFlowフレームワークを使用して、実装およびデプロイすることができる。
【0132】
本明細書において説明した本主題の実施形態は、例えばデータサーバとしてのバックエンドコンポーネントを含むコンピューティングシステム内、またはミドルウェアコンポーネント、例えばアプリケーションサーバを含むコンピューティングシステム内、またはフロントエンドコンポーネント、例えば本明細書において説明した本主題の一実装形態とユーザがそれを通じてインタラクションすることのできるグラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータを含むコンピューティングシステム内、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステム内に、実装することができる。システムのコンポーネント同士は、任意の形態または媒体のデジタルデータ通信、例えば通信ネットワークによって、相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(LAN)、および広域ネットワーク(WAN)、例えばインターネットがある。
【0133】
コンピューティングシステムは、クライアントとサーバを含むことができる。クライアントとサーバは一般に、互いに遠隔にあり、典型的には、通信ネットワークを通じてインタラクションする。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有する、コンピュータプログラムによって生じる。いくつかの実施形態では、サーバはデータ、例えばHTMLページをユーザデバイスに、例えばクライアントとして働くデバイスとインタラクションしているユーザにデータを表示し、そのユーザから入力を受け取る目的で、送信する。ユーザデバイスにおいて生成されたデータ、例えばユーザインタラクションの結果は、デバイスからサーバにおいて受信することができる。
【0134】
本明細書は、実装形態の多くの具体的な詳細を含んでいるが、これらは、任意の発明の範囲に対する、または特許請求され得るものの範囲に対する限定と解釈するのではなく、特定の発明の特定の実施形態に固有であり得る特徴についての説明と解釈すべきである。本明細書において別々の実施形態の文脈の中で説明されるいくつかの特徴は、単一の実施形態において組み合わせて実装することもできる。反対に、単一の実施形態の文脈の中で説明されるさまざまな特徴は、複数の実施形態において別々に、または任意の適切な部分組合せで実装することもできる。さらに、特徴については上で、ある特定の組合せで作用するものとして説明されていることがあり、そういうものとして最初に特許請求されていることすらあるが、特許請求された組合せからの1つまたは複数の特徴を、場合によっては、その組合せから削除することができ、特許請求された組合せが、部分組合せまたは部分組合せの変形を対象としていてよい。
【0135】
同様に、動作については特定の順序で図面中に示され、特許請求の範囲において記載されているが、これは、望ましい結果を達成するために、そのような動作が図示の特定の順序で、もしくは順番に実施されること、または示された全ての動作が実施されることを必要とするものと理解すべきではない。ある特定の状況下では、マルチタスキングおよび並列処理が有利となることがある。さらに、上で説明した実施形態におけるさまざまなシステムモジュールおよびシステムコンポーネントの分離は、そのような分離を全ての実施形態において必要とするものと理解すべきではなく、説明したプログラムコンポーネントおよびシステムは一般に、単一のソフトウェア製品に一緒に統合するか、または複数のソフトウェア製品にパッケージ化できる、ということを理解されたい。
【0136】
以上、本主題の特定の実施形態について説明してきた。他の実施形態が、添付の特許請求の範囲に記載の範囲に含まれる。例えば、特許請求の範囲において記載されたアクションを、異なる順序で実施し、それでもなお望ましい結果を達成することができる。一例として、添付の図中に示したプロセスは、望ましい結果を達成するために、図示の特定の順序、または順番を必ずしも必要とするとは限らない。場合によっては、マルチタスキングおよび並列処理が有利となることがある。
【符号の説明】
【0137】
100 ニューラルネットワークシステム
102 コンテキスト系列、候補出力系列、コンテキスト
110 自己回帰言語モデルニューラルネットワーク、自己回帰ニューラルネットワーク
120 候補出力系列
130 基準評価システム
140 レーティングスコア
150 出力系列
220A~N 基準エンジン
230 入力系列
300 プロセス
410 第1のサブネットワーク、入力系列
420 入力系列
430 第1のサブネットワーク
440 隠れ状態
450 出力サブネットワーク
460 分類器
500 プロセス
【手続補正書】
【提出日】2024-03-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つまたは複数のコンピュータによって実施される方法であって、
出力系列を求める要求を受け取るステップと、
自己回帰言語モデルニューラルネットワークを使用して、第1の候補出力系列を生成するステップであって、前記第1の候補出力系列が、トークンの語彙からそれぞれが選択される複数のトークンを備える、ステップと、
1つまたは複数の出力系列基準のセット内の各出力系列基準について、
前記自己回帰言語モデルニューラルネットワークを使用して、(i)前記第1の候補出力系列とその後に続く(ii)前記出力系列基準を指定する1つまたは複数のトークンを備える、入力系列を処理して、前記語彙内の各トークンのそれぞれのスコアを生成するステップと、
トークンの前記語彙の対応する真部分集合内にある前記トークンの前記それぞれのスコアから、前記自己回帰言語モデルニューラルネットワークによって生成された前記第1の候補出力系列が前記出力系列基準を満足させる程度を表す、前記第1の候補出力系列のそれぞれのレーティングスコアを決定するステップと、
前記1つまたは複数の出力系列基準についての、前記第1の候補出力系列の前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列を前記要求に応答して提供するステップと
を含む、方法。
【請求項2】
前記要求が、コンテキスト系列に続く出力系列を求めるものであり、前記第1の候補出
力系列を生成するステップが、前記自己回帰言語モデルニューラルネットワークを、前記コンテキスト系列を備える入力で条件付けるステップを含み、(i)前記第1の候補出力系列とその後に続く(ii)前記出力系列基準を指定する1つまたは複数のトークンを備える、前記入力系列が、前記コンテキスト系列をさらに備える、請求項1に記載の方法。
【請求項3】
前記自己回帰言語モデルニューラルネットワークを使用して、1つまたは複数の追加の候補出力系列を生成するステップと、
各追加の候補出力系列について、
1つまたは複数の出力系列基準の前記セット内の各出力系列基準について、
前記自己回帰言語モデルニューラルネットワークを使用して、(i)前記追加の候補出力系列とその後に続く(ii)前記出力系列基準を指定する前記1つまたは複数のトークンを備える、入力系列を処理して、前記語彙内の各トークンのそれぞれのスコアを生成するステップと、
トークンの前記語彙の対応する部分集合内のトークンの前記それぞれのスコアから、前記自己回帰言語モデルニューラルネットワークによって生成された前記追加の候補出力系列が前記出力系列基準を満足させる程度を表すそれぞれのレーティングスコアを決定するステップと
をさらに含み、
前記1つまたは複数の出力系列基準についての前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列を前記要求に応答して提供するステップが、
前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列の前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列のうちから、前記要求に応答して提供すべき系列を選択するステップ
を含む、請求項
1に記載の方法。
【請求項4】
前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列の前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列のうちから、前記要求に応答して提供すべき系列を選択するステップが、
各前記候補出力系列について、前記セット内の前記出力系列基準のうちの1つまたは複数の出力系列基準のそれぞれについての、前記候補出力系列の前記それぞれのレーティングスコアから、それぞれの品質スコアを生成するステップと、
前記要求に応答して提供すべき前記系列として、最も高いそれぞれの品質スコアを有する前記候補出力系列を選択するステップと
を含む、請求項3に記載の方法。
【請求項5】
前記1つまたは複数の出力系列基準についての前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列を前記要求に応答して提供するステップが、
前記セット内の第1の出力基準についての、前記第1の候補出力系列の前記それぞれの品質スコアが、しきい値を満足させるかどうかを判定するステップと、
前記セット内の前記第1の出力基準についての、前記第1の候補出力系列の前記それぞれの品質スコアが、前記しきい値を満足させないとき、前記第1の候補出力系列を前記要求に応答して提供しない、と決定するステップと
を含む、請求
項4
に記載の方法。
【請求項6】
請求項
1に記載の自己回帰言語モデルニューラルネットワークを、トレーニングする方法であって、
1つまたは複数のトレーニング例のバッチを取得するステップであって、各トレーニング例が、
(i)トレーニング出力系列とその後に続く(ii)出力系列基準の前記セットからの特定の出力系列基準を指定する1つまたは複数のトークンを備える、トレーニング入力系列、および
前記対応する出力系列基準についての、前記トレーニング出力系列が前記特定の出力系列基準を満足させる程度を表すグラウンドトゥルースレーティングスコア
を備える、ステップと、
前記バッチ内の各トレーニング例について、
前記自己回帰言語モデルニューラルネットワークを使用して、前記トレーニング例内の前記トレーニング入力系列を処理して、前記語彙内の各トークンのそれぞれのスコアを生成するステップと、
前記バッチ内の各トレーニング例について、(i)前記トレーニング例について生成された、前記語彙内の前記トークンの前記それぞれのスコアと、(ii)前記トレーニング例の前記グラウンドトゥルースレーティングスコアをもたらす、前記語彙内の前記トークンのスコアのグラウンドトゥルースセットとの誤差を測定する損失関数を最小限に抑えるように、前記自己回帰言語モデルニューラルネットワークをトレーニングするステップと
を含む、方法。
【請求項7】
損失関数を最小限に抑えるように、前記自己回帰言語モデルニューラルネットワークをトレーニングするステップが、
損失を前記トレーニング入力系列内の任意の以前の位置に適用することなく、損失を前記誤差にのみ適用するステップ
を含む、請求項6に記載の方法。
【請求項8】
損失関数を最小限に抑えるように、前記自己回帰言語モデルニューラルネットワークをトレーニングするステップの前に、前記自己回帰言語モデルニューラルネットワークを、トークンの系列内の先行するトークンを与えられるとトークンの前記系列内の次のトークンを予測することを必要とする言語モデリングタスクについてトレーニングするステップをさらに含む、請求項6または請求項7に記載の方法。
【請求項9】
1つまたは複数のコンピュータによって実施される方法であって、
出力系列を求める要求を受け取るステップと、
自己回帰言語モデルニューラルネットワークを使用して、第1の候補出力系列を生成するステップであって、前記第1の候補出力系列が、複数の位置のそれぞれにおけるそれぞれのトークンを備え、前
記自己回帰言語モデルニューラルネットワークが、
第1のサブネットワークであって、前記複数の位置の各特定の位置において、
複数の入力トークンを備える入力を処理して、各前記入力トークンについてのそれぞれの隠れ状態を生成するように構成され、前記入力トークンが、前記第1の候補出力系列内の前記特定の位置に先行する各位置における前記トークンを備える、第1のサブネットワーク、および
出力サブネットワークであって、前記複数の位置の各特定の位置において、
前記特定の位置の直前の位置における前記入力トークンについての前記それぞれの隠れ状態を処理して、トークンの語彙内の各トークンのそれぞれのスコアを生成し、
前記それぞれのスコアを使用して、前記語彙内の前記トークンのうちの1つを前記第1の候補出力系列内の前記特定の位置における前記トークンとして選択する
ように構成される、出力サブネットワーク
を備える、ステップと、
1つまたは複数の出力系列基準のセット内の各出力系列基準についての、前記自己回帰言語モデルニューラルネットワークによって生成された前記第1の候補出力系列が前記出力系列基準を満足させる程度を表すそれぞれのレーティングスコアを生成するために、前記第1のサブネットワークによって前記第1の候補出力系列内の全ての前記位置における全ての前記トークンを含む複数の入力トークンを備える入力を処理することによって生成された前記それぞれの隠れ状態のうちの1つまたは複数を、1つまたは複数の分類器層を使用して処理するステップと、
前記1つまたは複数の出力系列基準についての、前記第1の候補出力系列の前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列を前記要求に応答して提供するステップと
を含む、方法。
【請求項10】
前記要求が、コンテキスト系列に続く出力系列を求めるものであり、前記第1の候補出
力系列を生成するステップが、前記自己回帰言語モデルニューラルネットワークを、前記コンテキスト系列を備える入力で条件付けるステップを含み、各特定の位置について、前記入力トークンが前記コンテキスト系列からのトークンをさらに備える、請求項9に記載の方法。
【請求項11】
前記自己回帰言語モデルニューラルネットワークを使用して、1つまたは複数の追加の候補出力系列を生成するステップと、
各追加の候補出力系列について、1つまたは複数の出力系列基準の前記セット内の各出力系列基準についての、前記自己回帰言語モデルニューラルネットワークによって生成された前記追加の候補出力系列が前記出力系列基準を満足させる程度を表すそれぞれのレーティングスコアを生成するステップと
をさらに含み、
前記1つまたは複数の出力系列基準についての前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列を前記要求に応答して提供するステップが、
前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列の前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列のうちから、前記要求に応答して提供すべき系列を選択するステップ
を含む、請求項
9に記載の方法。
【請求項12】
前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列の前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列および前記1つまたは複数の追加の候補出力系列のうちから、前記要求に応答して提供すべき系列を選択するステップが、
各前記候補出力系列について、前記セット内の前記出力系列基準のうちの1つまたは複数の出力系列基準のそれぞれについての、前記候補出力系列の前記それぞれのレーティングスコアから、それぞれの品質スコアを生成するステップと、
前記要求に応答して提供すべき前記系列として、最も高いそれぞれの品質スコアを有する前記候補出力系列を選択するステップと
を含む、請求項11に記載の方法。
【請求項13】
前記1つまたは複数の出力系列基準についての前記それぞれのレーティングスコアを使用して、前記第1の候補出力系列を前記要求に応答して提供するステップが、
前記セット内の第1の出力基準についての、前記第1の候補出力系列
のそれぞれの品質スコアが、しきい値を満足させるかどうかを判定するステップと、
前記セット内の前記第1の出力基準についての、前記第1の候補出力系列の前記それぞれの品質スコアが、前記しきい値を満足させないとき、前記第1の候補出力系列を前記要求に応答して提供しない、と決定するステップと
を含む、請求項
9に記載の方法。
【請求項14】
前記第1のサブネットワークによって前記第1の候補出力系列内の全ての前記位置における全ての前記トークンを含む複数の入力トークンを備える入力を処理することによって生成された前記それぞれの隠れ状態のうちの1つまたは複数を処理するステップが、
前記第1のサブネットワークによって生成された、前記第1の候補出力系列内の最終位置における前記トークンについての前記それぞれの隠れ状態を処理するステップ
を含む、請求項
9に記載の方法。
【請求項15】
前記第1のサブネットワークによって前記第1の候補出力系列内の全ての前記位置における全ての前記トークンを含む複数の入力トークンを備える入力を処理することによって生成された前記それぞれの隠れ状態のうちの1つまたは複数を処理するステップが、
前記第1のサブネットワークによって生成された、前記入力トークンのうちの指定された位置における指定された入力トークンについての前記それぞれの隠れ状態を処理するステップ
を含む、請求項
9に記載の方法。
【請求項16】
前記第1の候補出力系列の前記生成中に、前記第1の候補出力系列内の最終位置より前の1つまたは複数の指定の位置について、
前記第1の候補出力系列内の前記指定の位置において前記第1のサブネットワークによって生成された前記それぞれの隠れ状態のうちの1つまたは複数を、前記1つまたは複数の分類器層を使用して処理して、1つまたは複数の出力系列基準のセット内の各出力系列基準についての、前記指定の位置の時点で生成された前記第1の候補出力系列の一部分が前記出力系列基準を満足させる程度を表すそれぞれのレーティングスコアを生成するステップと、
(i)前記第1の候補出力系列を、前記指定の位置を通り過ぎて引き続き生成すべきか、それとも(ii)前記第1の候補出力系列の任意の部分を前記要求に応答して提供せざるべきかを、前記指定の位置において生成された、前記セット内の前記出力系列基準についての前記それぞれのレーティングスコアに基づいて判定するステップと
をさらに含む、請求項
9に記載の方法。
【請求項17】
請求項
9に記載の自己回帰言語モデルニューラルネットワークを、トレーニングする方法であって、
1つまたは複数のトレーニング例のバッチを取得するステップであって、各トレーニング例が、
トレーニング出力系列、および
前記出力系列基準のうちの1つまたは複数の出力系列基準のそれぞれについての、前記トレーニング出力系列が前記特定の出力系列基準を満足させる程度を表すそれぞれのグラウンドトゥルースレーティングスコア
を備える、ステップと、
前記バッチ内の各トレーニング例について、
各出力系列基準についてのそれぞれのレーティングスコアを生成するために
、第1のサブネットワークによって前記トレーニング例内の前記トレーニング出力系列内の全ての位置における全てのトークンを含む複数の入力トークンを備える入力を処理することによって生成された前記それぞれの隠れ状態のうちの1つまたは複数を、前記1つまたは複数の分類器層を使用して処理するステップと、
前記バッチ内の各トレーニング例について、(i)前記トレーニング例について生成された、前記それぞれのレーティングスコアと、(ii)前記トレーニング例の前記それぞれのグラウンドトゥルースレーティングスコアとの誤差を測定する損失関数を最小限に抑えるように、前記1つまたは複数の分類器層をトレーニングするステップと
を含む、方法。
【請求項18】
損失関数を最小限に抑えるように、前記1つまたは複数の分類器層をトレーニングするステップが、
前記1つまたは複数の分類器層の前記トレーニング中
に入力サブネットワークをフリーズ状態にしておくステップ
を含む、請求項17に記載の方法。
【請求項19】
前記1つまたは複数の分類器層をトレーニングするステップの前に、前記自己回帰言語モデルニューラルネットワークを、トークンの系列内の先行するトークンを与えられるとトークンの前記系列内の次のトークンを予測することを必要とする言語モデリングタスクについてトレーニングするステップをさらに含む、請求項
17に記載の方法。
【請求項20】
前記出力系列がテキスト系列であり、トークンの前記語彙が複数のテキストトークンを備える、請求項
1に記載の方法。
【請求項21】
前記コンテキスト系列がテキスト系列である、請求項2または請求項10に従属する請求項20に記載の方法。
【請求項22】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータによって実行されると前記1つまたは複数のコンピュータに請求項
1に記載
の方法を実施させる命令を記憶する、1つまたは複数の記憶デバイスと
を備える、システム。
【請求項23】
1つまたは複数のコンピュータによって実行されると前記1つまたは複数のコンピュータに請求項
1に記載の方
法を実施させる命令を記憶する、1つまたは複数のコンピュータ可読記憶媒体。
【国際調査報告】