様々な図面における同様の参照番号および名称は、同様の要素を示す。
図1は、例示的なシーケンス生成システム100を示している。シーケンス生成システム100は、1つまたは複数の場所にある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムの例であり、以下で説明するシステム、コンポーネント、および技法を実装することができる。
シーケンス生成システム100は、1つまたは複数のテキストデータベース(図示せず)にアクセスする情報検索システムへのユーザインターフェースとして機能するか、あるいはシーケンス生成システム100とは別個であるがシーケンス生成システム100と通信するユーザコンピュータ上に実装されたユーザインターフェースに機能を提供する。テキストデータベースは、まとめて文書のコーパスを形成する。文書のコーパスは、たとえば、インターネットを通じてアクセス可能なウェブページおよび他の文書であり得る。あるいは、文書のコーパスは、たとえば科学出版社または他の組織の独自のテキストデータベースの一部であり得る。シーケンス生成システム100は、出力シーケンス116を生成するために、コンテキストシーケンス生成システム104、入力シーケンス生成システム110、および言語モデルニューラルネットワーク114を使用して、ユーザからの入力テキストクエリ102を処理する。
入力テキストクエリ102は、ユーザコンピュータを通じてユーザによってシステム100に提出されたクエリ、ユーザコンピュータを通じてシステム100に提出された質問、またはシステム100からの応答を必要とする別の要求であってよい。場合によっては、本システムは、ユーザコンピュータからクエリをテキストとして受信する。また、他の場合では、本システムは、ユーザから自然言語の音声クエリを受信し、音声認識エンジンを音声に適用することによって、音声を入力テキストクエリ102に変換する。入力テキストクエリ102は、ユーザコンピュータのマイクによってキャプチャされたサウンド(音声)信号の形で受信され、入力テキストクエリ102を形成するために、音声認識エンジン、すなわち音声-テキストコンバータによって変換される。あるいは、ユーザコンピュータのデータ入力デバイスを使用してタイプ入力されてもよい。
システム100が入力テキストクエリ102を受信すると、コンテキストシーケンス生成システム104は、1つまたは複数の第1のコンテキストテキストシーケンス106と、第1のコンテキストテキストシーケンス106の各々の、それぞれの自然言語識別子108とを取得する。
たとえば、各コンテキストテキストシーケンス106はそれぞれのコンテキスト文書から抽出することができ、識別子108はコンテキスト文書のタイトルになることができる。別の例として、コンテキストテキストシーケンス106の一部またはすべてを同じコンテキスト文書から抽出することができ、識別子108は、コンテキストテキストシーケンスが抽出される文書の部分のセクションヘッダまたは他の識別子であってもよい。
コンテキストシーケンスの取得については、図2を参照して以下でより詳細に説明する。
次いで、入力シーケンス生成システム110は、入力テキストクエリ102、1つまたは複数の第1のコンテキストテキストシーケンス106、および1つまたは複数の第1のコンテキストテキストシーケンスの各々に対するそれぞれの自然言語識別子108を含む第1の入力シーケンス112を生成する。
たとえば、第1の入力シーケンス112は、あらかじめ定められた入力構文に従って配置されたクエリ102、コンテキストテキストシーケンス106、および識別子108を含むことができる。場合によっては、第1の入力シーケンス112はまた、他のテキスト、たとえば、1つまたは複数の自然言語の「プロンプト」、入力シーケンスの様々な要素を区切る1つまたは複数のセパレータトークン、またはその両方を含むことができる。自然言語プロンプトは入力と出力のペアの例であり、入力は提供することができる入力の例であり、出力は生成されることになる出力の例である。プロンプトについては以下でより詳細に説明する。
次いで、シーケンス生成システム100は、第1の出力テキストシーケンス116を生成するために、自己回帰言語モデルニューラルネットワーク114を使用して第1の入力シーケンス112を処理する。
出力シーケンス116は、(i)入力テキストクエリ102に対する応答である第1の出力テキストサブシーケンスと、(ii)第1のコンテキストテキストシーケンス106に対するそれぞれの自然言語識別子108のうちの1つである第2の出力テキストサブシーケンスと、(iii)第2の出力テキストサブシーケンス内の自然言語識別子によって識別される第1のコンテキストテキストシーケンスからのテキストである第3の出力テキストサブシーケンスとを含む。
特に、(i)、(ii)、および(iii)は、あらかじめ定められた出力構文に従って出力シーケンス内に配置される。あらかじめ定められた構文の一例については、図3を参照して以下でより詳細に説明する。
次いで、シーケンス生成システム100は、入力テキストクエリ102に応答して、少なくとも第1の出力テキストサブシーケンスと第3の出力テキストサブシーケンスを提供する。したがって、システム100は、入力テキストクエリ102に対するテキスト応答と、テキスト応答の裏付けとなる証拠してコンテキストテキストシーケンス106のうちの1つからのテキストを提供する。
いくつかの実装形態では、シーケンス生成システム100は、入力クエリ102に応答して複数の候補出力シーケンス116を生成する。
これらの実装形態では、システム100はまた、候補出力シーケンスごとにそれぞれのスコアも生成し、ユーザクエリに応答して、スコアが最も高い候補出力シーケンスからのテキストのみを提供する。
これらの実装形態のいくつかでは、いずれの候補もしきい値を超えるスコアを有していない場合、システム100は、代わりに、ユーザのクエリに対してデフォルトのテキスト応答、たとえば「わかりません(I don't know)」または「よくわかりません(I am not sure)」を出力する。
候補出力シーケンスのスコアリングについては、図3を参照して以下に説明する。
言語モデルニューラルネットワーク114は、語彙から選択されたテキストトークンで構成される入力シーケンスを受信し、語彙からのテキストトークンで構成される出力シーケンスを自己回帰的に生成する任意の適切な言語モデルニューラルネットワークであり得る。たとえば、言語モデルニューラルネットワーク114は、トランスフォーマベースの言語モデルニューラルネットワーク、またはリカレントニューラルネットワークベースの言語モデルであってもよい。
語彙内のトークンは、1つまたは複数の自然言語内のテキスト要素を表す任意の適切なテキストトークン、たとえば、単語、単語の一部、句読点などにすることができ、また任意で、テキストのコーパスに含まれる数字または他のテキスト記号にすることもできる。一般的に、入力テキストクエリ102、自然言語識別子108、および/またはコンテキストテキストシーケンス106も、語彙から選択されたトークンのシーケンスである。
言語モデルニューラルネットワーク114は、ニューラルネットワーク114が、出力シーケンス内の特定のテキストトークンに先行する任意のトークン、すなわち、出力シーケンス内の特定のトークンの特定の位置に先行する任意の以前の位置に対してすでに生成されたトークン、および出力シーケンスのコンテキストを提供するコンテキスト入力を含む現在の入力シーケンスを条件として、出力シーケンス内の各特定のトークンを生成することによって、トークンの出力シーケンスを自己回帰的に生成するため、自己回帰ニューラルネットワークと呼ばれる。
たとえば、出力シーケンス内の任意の所与の位置においてトークンを生成する際の現在の入力シーケンスは、入力シーケンスと、出力シーケンス内の所与の位置に先行する任意の先行位置にある出力シーケンスのトークンを含むことができる。具体的な例として、現在の入力シーケンスは、入力シーケンスと、それに続く出力シーケンス内の所与の位置に先行する任意の先行位置にあるトークンを含むことができる。任意で、現在の入力シーケンス内で、入力シーケンスと出力シーケンスからのトークンは、1つまたは複数のあらかじめ定められたトークン、すなわち、現在の入力シーケンス内の語彙からの1つまたは複数のトークンの指定されたセットによって分離することができる。すなわち、入力シーケンスと出力シーケンスからのトークンの間に1つまたは複数のあらかじめ定められたトークンが存在する可能性がある。
より具体的には、出力シーケンス内の特定の位置に特定のトークンを生成するために、ニューラルネットワーク114は、トークンの語彙内の各トークンにそれぞれのスコア、たとえばそれぞれの確率を割り当てるスコア分布、たとえば確率分布を生成するために、現在の入力シーケンスを処理することができる。次いで、ニューラルネットワーク114は、スコア分布を使用して、語彙からのトークンを特定のトークンとして選択することができる。たとえば、ニューラルネットワーク114は、最も高いスコアのトークンを貪欲に選択することもでき、たとえば核サンプリングまたは別のサンプリング技法を使用して、分布からトークンをサンプリングすることもできる。
具体的な例として、言語モデルニューラルネットワーク114は、(i)それぞれが自己注意動作を適用する複数の注意ブロックと、(ii)スコア分布を生成するために最後の注意ブロックの出力を処理する出力サブネットワークを含む、自己回帰トランスフォーマベースのニューラルネットワークであり得る。
ニューラルネットワーク114は、様々なトランスフォーマベースのニューラルネットワークアーキテクチャのいずれかを有することができる。そのようなアーキテクチャの例は、J. Hoffmann、S. Borgeaud、A. Mensch、E. Buchatskaya、T. Cai、E. Rutherford、D. d. L. Casas、L. A. Hendricks、J. Welbl、A. Clarkらによる「Training compute-optimal large language models」、arXivプレプリントarXiv:2203.15556、2022年、J.W. Rae、S. Borgeaud、T. Cai、K. Millican、J. Hoffmann、H. F. Song、J. Aslanides、S. Henderson、R. Ring、S. Young、E. Rutherford、T. Hennigan、J. Menick、A. Cassirer、R. Powell、G. van den Driessche、L. A. Hendricks、M. Rauh、P. Huang、A. Glaese、J. Welbl、S. Dathathri、S. Huang、J. Uesato、J. Mellor、I. Higgins、A. Creswell、N. McAleese、A.Wu、E. Elsen、S. M. Jayakumar、E. Buchatskaya、D. Budden、E. Sutherland、K. Simonyan、M. Paganini、L. Sifre、L. Martens、X. L. Li、A. Kuncoro、A. Nematzadeh、E. Gribovskaya、D. Donato、A. Lazaridou、A. Mensch、J. Lespiau、M. Tsimpoukelli、N. Grigorev、D. Fritz、T. Sottiaux、M. Pajarskas、T. Pohlen、Z. Gong、D. Toyama、C. de Masson d'Autume、Y. Li、T. Terzi、V. Mikulik、I. Babuschkin、A. Clark、D. de Las Casas、A. Guy、C. Jones、J. Bradbury、M. Johnson、B. A. Hechtman、L. Weidinger、I. Gabriel、W. S. Isaac、E. Lockhart、S. Osindero、L. Rimell、C. Dyer、O. Vinyals、K. Ayoub、J. Stanway、L. Bennett、D. Hassabis、K. Kavukcuoglu、およびG. Irvingによる、「Scaling language models: Methods, analysis & insights from training gopher」、CoRR, abs/2112.11446, 2021年、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年に記載されているものを含む。
しかしながら、一般的に、トランスフォーマベースのニューラルネットワークは、注意ブロックのシーケンスを含み、所与の入力シーケンスの処理中に、シーケンス内の各注意ブロックは、所与の入力シーケンス内の入力トークンごとのそれぞれの入力隠れ状態を受信する。次いで、注意ブロックは、入力トークンの各々についてのそれぞれの出力隠れ状態を生成するために、自己注意を適用することによって隠れ状態の各々を少なくとも部分的に更新する。第1の注意ブロックの入力隠れ状態は、入力シーケンス内の入力トークンの埋込みであり、後続の注意ブロックごとの入力隠れ状態は、先行する注意ブロックによって生成された出力隠れ状態である。
この例では、出力サブネットワークは、スコア分布を生成するために、入力シーケンス内の最後の入力トークンのシーケンス内の最後の注意ブロックによって生成された出力隠れ状態を処理する。
一般的に、ニューラルネットワーク114は自己回帰型であるため、システム100は、たとえば、ニューラルネットワーク114によって生成されたスコア分布からのビーム検索デコーディングを使用することによって、サンプルおよびランクデコーディング戦略を使用することによって、ニューラルネットワーク114を通じて異なる実行をサンプリングする際に使用される疑似乱数ジェネレータに異なるランダムシードを使用することによって、またはニューラルネットワーク114の自己回帰特性を活用する別のデコーディング戦略を使用することによって、同じ要求に応答して複数の異なる候補出力シーケンスを生成するために同じニューラルネットワーク114を使用することができる。
いくつかの実装形態では、言語モデル114はあらかじめトレーニングされており、すなわち、ユーザの質問に応答して証拠を提供する必要のない言語モデリングタスクにおいてトレーニングされており、システム100は、入力シーケンス内の自然言語プロンプトを通じて、ニューラルネットワーク114にあらかじめ定められた構文に従って出力シーケンスを生成させる。
たとえば、システム100または別のトレーニングシステムは、言語モデルニューラルネットワーク114を言語モデリングタスク、たとえば、テキストトークンの現在のシーケンスが与えられた場合に、トレーニングデータ内の現在のシーケンスに続く次のトークンを予測する必要があるタスクについてあらかじめトレーニングする。具体的な例として、言語モデルニューラルネットワーク114は、テキスト、たとえば、インターネットまたは別のテキストコーパスから公開されているテキストの大規模なデータセットの最大尤度目標に基づいてあらかじめトレーニングすることができる。
他のいくつかの実装形態では、あらかじめトレーニングの後、システム100は、構文に従って出力シーケンスを生成する必要がある目的に基づいて、たとえば教師あり学習、強化学習、またはその両方を通じて言語モデル114を微調整する。これについては、図5を参照して以下でより詳細に説明する。
これらの実装形態のいくつかでは、システム100は、推論時、つまりトレーニング後に、言語モデル114への入力に1つまたは複数の自然言語プロンプトを依然として含む。
上述のように、自然言語プロンプトは入力と出力のペアの例であり、入力は提供することができる入力の例であり、出力は生成されることになる出力の例である。したがって、各プロンプトは、例示的なクエリである例示的な入力シーケンス、1つまたは複数のコンテキストシーケンスの例示的なセット、およびあらかじめ定められた入力構文に従って配置された1つまたは複数のコンテキストシーケンスのそれぞれの識別子を含む。各プロンプトはまた、出力構文に従って配置された、例示的なクエリへの応答である例示的な第1の出力テキストサブシーケンス、例示的なコンテキストテキストシーケンスのうちの1つに対するそれぞれの自然言語識別子のうちの1つである例示的な第2の出力テキストサブシーケンス、および例示的な第2の出力テキストサブシーケンス内の自然言語識別子によって識別される例示的なコンテキストテキストシーケンスからのテキストである例示的な第3の出力テキストサブシーケンスを含む。任意で、入力シーケンスはまた、各プロンプトを区切る語彙からの1つまたは複数のトークンと、最終プロンプトとユーザクエリを区切る1つまたは複数のトークンを含むことができる。
さらに、いくつかの実装形態では、システム100は、出力シーケンスに含めるトークンを選択する際に「制約付きサンプリング」を実行する。これにより、ニューラルネットワーク114の出力が構文に従っていること、およびシーケンスが内部的に一貫していること、すなわち、証拠が、出力シーケンス内の自然言語識別子108によって識別されるコンテキストテキストシーケンス106からの直接引用であることが保証される。
システム100が複数の候補出力シーケンスを生成する場合、制約付きサンプリングにより、システムが無効または矛盾した出力シーケンスのスコアを付ける必要がなくなり、高品質の出力を保証するために生成される必要がある候補の数が大幅に削減され、システム100の計算効率が大幅に向上し、すなわち、システム100によって消費される計算リソースの量が削減される。
制約付きサンプリングの例については、図3を参照して以下でより詳細に説明する。
図2は、入力クエリを所与とした、出力シーケンスを生成するための例示的なプロセス200のフロー図である。便宜上、プロセス200は、1つまたは複数の場所に配置された1つまたは複数のコンピュータのシステムによって実行されるものとして説明される。たとえば、本明細書に従って適切にプログラムされたシーケンス生成システム、たとえば図1に示されるシーケンス生成システム100は、プロセス200を実行することができる。
本システムは、たとえば、ユーザインターフェースを使用してユーザから入力テキストクエリを受信する(ステップ202)。
本システムは、1つまたは複数の第1のコンテキストテキストシーケンスと、第1のコンテキストテキストシーケンスの各々に対するそれぞれの自然言語識別子を取得する(ステップ204)。
たとえば、本システムは、入力テキストクエリから派生した検索クエリを検索エンジンに提出することによって1つまたは複数のコンテキストシーケンスと、第1のコンテキストシーケンスの各々に対するそれぞれの自然言語識別子を取得することができる。検索エンジンは文書のコーパスにアクセスし、検索クエリに基づいて文書のコーパスを検索するように構成されている。たとえば、検索クエリは入力テキストクエリと同じテキストであってもよく、同義語を追加したり、タイプミスまたはスペルミスを修正したりするために、システムによって修正されてもよい。
次いで、本システムは、検索クエリに応答して、検索エンジンから1つまたは複数の文書を取得することができる。1つまたは複数の文書は、たとえば、受信した検索クエリに対する品質および関連性に応じて、検索エンジンによってランク付けすることができる。
次いで、本システムは、たとえば、1つまたは複数の最高ランクの検索結果を選択することによって1つまたは複数のコンテキスト文書から1つまたは複数の第1のコンテキストシーケンスを選択することができる。本システムはまた、それぞれの第1のコンテキストシーケンスにそれぞれの自然言語識別子を関連付ける。
いくつかの実装形態では、検索エンジンはまた、対応するコンテキスト文書を識別する検索結果の一部として、対応するコンテキスト文書からスニペットを提供する。これらの実装形態のいくつかでは、本システムは、対応するコンテキスト文書からスニペットとスニペットを囲むテキストを抽出することによって、所与の文書のコンテキストシーケンスを生成することができる。たとえば、本システムは、文書の長さが様々であり、言語モデルの最大コンテキストウィンドウサイズを超えることが多いことを考慮するために、スニペットを使用してスニペットテキストを抽出することができる(以下で説明する)。
したがって、特に複数の文書を一度に提示する際の少数ショットのプロンプトの場合、本システムは、所与の入力シーケンス内で文書コンテンツに費やされるトークンの数を制限する必要があり得る。したがって、本システムは、上述のようにスニペットを使用することによって文書を切り捨てることができる。たとえば、本システムは、所与の文書を最大トークン長のフラグメントに切り捨て、そのフラグメントが関連する検索スニペットを含むようにするために、スニペットを使用することができる。
いくつかの実装形態では、本システムは、切り捨てられたフラグメントが文または段落の先頭から始まることを保証することができる。
具体的な例として、電車の運行時に、本システムは、入力の多様性を高めるために、そのような開始位置をランダムに選択することができる。推論時に、本システムはスニペットフラグメントの開始前に最大文字数、たとえば、250、500、または1000文字を許可し、その範囲内で始まる第1の文を識別して、その第1の文を切り捨てられたフラグメントの先頭として使用することができる。
検索エンジンは、システムによってアクセス可能であり、任意の適切な文書のコーパス、たとえばウェブページ、書籍、または他の文書を検索する、任意の適切な検索エンジンであり得る。たとえば、検索エンジンは、インターネットを検索して、インターネット上で入手可能な文書を参照する結果を返すインターネット検索エンジンであり得る。別の例として、検索エンジンは、プライベートな文書のコーパス、たとえば、内部ネットワーク上で入手可能な、または1つまたは複数のデータベースの集合に記憶されている文書を検索する別の検索エンジンであり得る。
たとえば、第1のコンテキストテキストシーケンスの各々に対するそれぞれの自然言語識別子は、第1のコンテキストテキストシーケンスが選択されるコンテキスト文書のタイトルであり得る。
本システムは、入力テキストクエリと、1つまたは複数の第1のコンテキストテキストシーケンスと、1つまたは複数の第1のコンテキストテキストシーケンスの各々に対するそれぞれの自然言語識別子とを含む、第1の入力シーケンスを生成する(ステップ206)。
本システムは、第1の出力テキストシーケンスを生成するために、自己回帰言語モデルニューラルネットワークを使用して第1の入力テキストシーケンスを処理する(ステップ208)。
第1の出力テキストシーケンスは、入力テキストクエリに対する応答である第1の出力テキストサブシーケンスと、第1のコンテキストテキストシーケンスに対するそれぞれの自然言語識別子のうちの1つである第2の出力テキストサブシーケンスと、第2の出力テキストサブシーケンス内の自然言語識別子によって識別される第1のコンテキストテキストシーケンスからのテキストである第3の出力テキストサブシーケンスとを含む。
本システムは、入力テキストクエリに応答して、少なくとも第1の出力テキストサブシーケンスと第3の出力テキストサブシーケンスを(たとえば、ユーザに)提供する(ステップ210)。
本システムは、クエリに応答して、第1の出力テキストサブシーケンス、第3の出力テキストサブシーケンス、および任意で第2の出力テキストサブシーケンスを提供することができる。
さらに、いくつかの実装形態では、本システムは、第2の出力テキストサブシーケンスから、第2の出力テキストサブシーケンス内の自然言語識別子によって識別される第1のコンテキストテキストシーケンスのソースを決定し、クエリに応答して第1のコンテキストテキストシーケンスのソースへの参照を提供することができる。たとえば、本システムは、第1のコンテキストテキストシーケンスのソース、たとえばウェブページにリンクするハイパーリンクとして参照を提供することができる。
システムによって生成された出力シーケンスの例示的な提示については、図4を参照して以下に説明する。
上述のように、いくつかの実装形態では、本システムは、複数の候補出力シーケンス(第1の出力テキストシーケンスを含む)のセットと、候補出力シーケンスごとのそれぞれのスコアを生成し、第1の出力テキストシーケンスが候補出力シーケンスのいずれかの中で最も高いスコアを有するという決定に応答して、第1の出力シーケンスのみを提供する。
たとえば、本システムは、第1の入力テキストシーケンスを処理する際に、言語モデルニューラルネットワークによって生成された出力から異なる候補出力シーケンスをサンプリングすることによって、セット内の候補出力シーケンスのうちの少なくとも一部を生成することができる。
さらに、いくつかの実装形態では、本システムは、言語モデルニューラルネットワークの「コンテキストウィンドウ」に収まるよりも多くのコンテキストシーケンスを生成することができる。すなわち、言語モデルニューラルネットワークは、たとえばメモリの制約のために、またはニューラルネットワークがトレーニングされたフレームワークのために、最大文字数を超えない入力シーケンスしか処理できない場合がある。いくつかの実装形態では、自然言語識別子とすべてのコンテキストシーケンスのトークンを含めると、この最大数を超える可能性がある。これらの実装形態では、本システムは、それぞれがコンテキストシーケンスのそれぞれのサブセットを含む複数の異なる入力シーケンスを生成する。
言い換えれば、本システムはまた、第1のコンテキストテキストシーケンスに加えて1つまたは複数の第2のコンテキストテキストシーケンスと、第2のコンテキストテキストシーケンスの各々に対するそれぞれの自然言語識別子を取得することと、入力テキストクエリと、1つまたは複数の第2のコンテキストテキストシーケンスと、1つまたは複数の第2のコンテキストテキストシーケンスの各々に対するそれぞれの自然言語識別子を含む、第2の入力シーケンスを生成することとを行うことができる。次いで、本システムは、(i)入力テキストクエリに対する応答である第4の出力テキストサブシーケンスと、(ii)第2のコンテキストテキストシーケンスに対するそれぞれの自然言語識別子のうちの1つである第5の出力テキストサブシーケンスと、(iii)第5の出力テキストサブシーケンス内の自然言語識別子によって識別される第2のコンテキストテキストシーケンスからのテキストである第6の出力テキストサブシーケンスと、を備える第2の出力テキストシーケンスを生成するために、自己回帰言語モデルニューラルネットワークを使用して第2の入力テキストシーケンスを処理することができる。
次いで、本システムは、セット、たとえば、第1および第2の出力テキストシーケンスを含むセット内の候補出力テキストシーケンスごとにそれぞれのスコアを生成し、第1の出力テキストシーケンスがセット内のどの出力テキストシーケンスよりも高いスコアを有することを決定する。場合によっては、学習した報酬モデルを使用して、出力テキストシーケンスの各々にスコアを付けることによって、これを実行することができる。候補出力シーケンスにスコアを付けるために、学習した報酬モデルを使用することについては、図3を参照して以下に説明する。
次いで、本システムは、第1の出力テキストシーケンスが最も高いスコアを有するという決定に応答して、入力テキストクエリに応答して、少なくとも第1の出力テキストサブシーケンスと第3の出力テキストサブシーケンスを提供することができる。
図3は、所与のテキストクエリに応答してシステムが複数の候補出力シーケンスを生成する場合のシーケンス生成システムの動作の例を示している。
図3の例において示されるように、システム100は、たとえばユーザコンピュータから質問302を受信する。
システム100は、質問302に最も関連性の高い上位k個の文書を識別するために、インターネット検索304を実行する。一般的に、kは1より大きい整数、たとえば5、10、20、または100である。たとえば、システム100は、質問302または質問302から派生したクエリをインターネット検索エンジンに提供し、インターネット検索エンジンから上位k個の文書を識別する検索結果を取得することができる。
次いで、本システムは、言語モデルニューラルネットワーク114への1つまたは複数の入力シーケンスを生成し、言語モデルニューラルネットワーク114を使用してN個の候補出力シーケンスをサンプリングする(308)ために、ジェネレータ306を使用する。いくつかの実装形態では、候補出力シーケンスの数Nは、文書の数kよりも大きい。
たとえば、ジェネレータ306は、N個の候補出力シーケンスをサンプリングするために、k個の文書すべてからのコンテキストを含む単一の入力シーケンスを生成し、次いで言語モデルニューラルネットワーク114を使用して単一の入力シーケンスを複数回処理することができる。
別の例として、ジェネレータ306は、N個の候補出力シーケンスをサンプリングするために、それぞれがk個の文書のそれぞれのサブセットからのコンテキストを含む複数の入力シーケンスを生成し、次いで言語モデルニューラルネットワーク114を使用して複数の入力シーケンスの各々を複数回処理することができる。
別の例として、ジェネレータ306は、k個の文書のうちのそれぞれからのコンテキストをそれぞれ含む複数の入力シーケンスを生成し、次いで言語モデルニューラルネットワーク114を使用して複数の入力シーケンスの各々を処理することができる。
上記の例のいずれにおいても、N個の候補出力シーケンスがサンプリングされるまで、複数の入力シーケンスがラウンドロビン順序でサンプリングされ得る。
いくつかの実装形態では、Nはkの倍数であり得る。他の実装形態では、Nはkで割り切れない場合がある。
次いで、システム100は、N個の候補出力シーケンスの各々に対して報酬モデルスコアリング310を実行する。
すなわち、システム100は、学習した報酬モデルを使用して、N個の候補出力シーケンスの各々にそれぞれのスコアを割り当てる。
学習した報酬モデル310は、入力テキストクエリと、ニューラルネットワーク114によって生成された応答および引用を入力として受信し、応答および引用の品質を表すスコアを出力として生成するモデル、たとえば、別の言語モデルニューラルネットワークである。たとえば、スコアは、ニューラルネットワーク114によって生成された同じクエリに対する他の応答(および、付随する引用)と比較して、ユーザがその応答(および、引用)を好む可能性を表すことができる。
報酬モデルのトレーニングについては、図5を参照して以下に説明する。
次いで、システム100は、最終的な出力シーケンスとして、「最良の」サンプル312、すなわち、学習した報酬モデルに従ってN個のシーケンスから最も高いスコアを有する候補出力シーケンスを選択する。
いくつかの実装形態では、いずれの候補もしきい値を超えるスコアを有していない場合、システム100は、代わりに、ユーザのクエリに対してデフォルトのテキスト応答、たとえば「わかりません」または「よくわかりません」を出力する。
上述のように、各候補出力シーケンスは、(i)入力テキストクエリに対する応答である第1の出力テキストサブシーケンスと、(ii)第1のコンテキストテキストシーケンスに対するそれぞれの自然言語識別子のうちの1つである第2の出力テキストサブシーケンスと、(iii)第2の出力テキストサブシーケンス内の自然言語識別子によって識別される第1のコンテキストテキストシーケンスからのテキストである第3の出力テキストサブシーケンスとを含む。
特に、(i)、(ii)、および(iii)は、あらかじめ定められた出力構文に従って出力シーケンス内に配置される。
図3の例において示されるように、出力構文は
%<主張>%(文書タイトル)%[文書からの引用]%
であり、上式で、"%<" ">%(" ")%["and"]%"はテンプレートトークン、すなわち、サブシーケンスの前後に挿入されるあらかじめ定められた構文トークンであり、「主張」は第1の出力テキストサブシーケンスのプレースホルダであり、「文書タイトル」は第2の出力テキストサブシーケンスのプレースホルダであり、「文書からの引用」は第3の出力テキストサブシーケンスのプレースホルダである。
しかしながら、出力シーケンス内のあらかじめ定められた場所に「主張」プレースホルダ、「文書タイトル」プレースホルダ、および「文書からの引用」プレースホルダを配置する様々な構文のいずれかを使用することができる。
いくつかの実装形態では、および上述のように、本システムは、各候補が構文を満たしている、すなわち、シーケンス内の自然言語識別子によって識別されるコンテキストシーケンスからの正確な引用を含むことを保証するために、制約付きサンプリングを使用してN個の候補の各々をサンプリングする。
すなわち、上述のように、ジェネレータ306は、出力シーケンス内の時間ステップごとに、第1の入力テキストシーケンスと、第1の出力シーケンスの時間ステップより前の任意の時間ステップにおける出力シーケンス内の任意のトークンとを条件とする語彙内のトークンごとにそれぞれのスコアを生成することによって、所与の候補出力シーケンスをサンプリングし、各時間ステップにおいて、時間ステップについてニューラルネットワークによって生成された語彙内のトークンのそれぞれのスコアを使用して、時間ステップにおけるトークンを選択する。
制約付きサンプリングを採用する場合、システムは、出力シーケンスに従って有効な次のトークンとなるトークンのみをサンプリングするようにサンプリングを制限する。
たとえば、第2の出力テキストサブシーケンスを生成する際、および第2の出力テキストサブシーケンス内の第1の時間ステップの後の、第2の出力テキストサブシーケンス内の各時間ステップにおいて、ジェネレータ306は、時間ステップにおいてニューラルネットワークによって生成されたそれぞれのスコアを受信することと、自然言語識別子のうちの1つ(または複数)において、第2の出力テキストサブシーケンス内ですでに生成されたトークンの直後のトークンにのみ非ゼロスコアを割り当てる制約付きスコア分布を生成することと、次いで、受信したスコア分布ではなく、制約付きスコア分布から時間ステップにおいてトークンをサンプリングすることとを行うことができる。すなわち、本システムは、第2の出力テキストサブシーケンス用にすでに選択されているトークンに追加された場合、対応する入力シーケンス内の自然言語識別子のうちの1つまたは複数の有効なプレフィックスを生成するトークンにのみ、非ゼロスコアを割り当てるようにサンプリングを制限する。
別の例として、場合によっては、第2の出力テキストサブシーケンスの前には、第1の出力テキストシーケンス内の1つまたは複数の第1のあらかじめ定められた構文トークンが置かれる。たとえば、図3の例では、出力構文において、第2の出力テキストサブシーケンスの前にトークン「>%(」が置かれる。
これらの場合、制約付きサンプリングを使用して出力シーケンスを生成するステップは、特定の時間ステップにおいて1つまたは複数の第1のあらかじめ定められた構文トークンが、特定の時間ステップの直前の1つまたは複数の時間ステップにおいて選択されたことを決定し、それに応じて、特定の時間ステップが第2の出力テキストサブシーケンス内の第1の時間ステップであると決定するステップを含む。たとえば、本システムはトークン「>%(」がすでにサンプリングされていると決定し、それに応じて、次のタイムステップが第2のサブシーケンス内の第1のタイムステップであると決定することができる。
この例では、本システムは、特定の時間ステップにおいてニューラルネットワークによって生成されたそれぞれのスコアを受信することと、特定の時間ステップが第2の出力テキストサブシーケンス内の第1の時間ステップであるとの決定に応答して、対応する入力シーケンス内の自然言語識別子のうちの1つにある第1のトークンにのみ非ゼロスコアを割り当てる制約付きスコア分布を生成することと、制約付きスコア分布から時間ステップにおいてトークンをサンプリングすることとを行うことができる。すなわち、本システムは、対応する入力シーケンス内の自然言語識別子のうちの1つまたは複数の第1のトークンであるトークンにのみ、非ゼロスコアを割り当てるようにサンプリングを制限する。
別の例として、制約付きサンプリングを使用する場合、第3の出力テキストサブシーケンス内の第1の時間ステップの後の、第3の出力テキストサブシーケンス内の各時間ステップにおいて、本システムは、時間ステップにおいてニューラルネットワークによって生成されたそれぞれのスコアを受信することと、第2の出力テキストサブシーケンス内の自然言語識別子によって識別される第1のコンテキストテキストシーケンス内の第3の出力テキストサブシーケンス内ですでに生成されたトークンの直後のトークンにのみ非ゼロスコアを割り当てる制約付きスコア分布を生成することとを行うことができる。次いで、本システムは制約付きスコア分布から時間ステップにおいてトークンをサンプリングする。すなわち、本システムは、第3の出力テキストサブシーケンス用にすでに選択されたトークンに追加された場合、第2の出力テキストサブシーケンス内の自然言語識別子によって識別される第1のコンテキストテキストシーケンス内のサブシーケンスに直接一致するトークンにのみ非ゼロスコアを割り当てるようにサンプリングを制限する。したがって、本システムは、第3の出力テキストサブシーケンスが、第2の出力テキストサブシーケンス内の自然言語識別子によって識別されるコンテキスト文書からの直接引用であることを保証する。
別の例として、場合によっては、第3の出力テキストサブシーケンスの前には、第1の出力テキストシーケンス内の1つまたは複数の第2のあらかじめ定められた構文トークンが置かれる。たとえば、図3の例では、出力構文において、第2の出力テキストサブシーケンスの前にトークン「)%[」が置かれる。
これらの場合、制約付きサンプリングを使用する際、本システムは、第2の特定の時間ステップにおいて1つまたは複数の第2のあらかじめ定められた構文トークンが、第2の特定の時間ステップの直前の1つまたは複数の時間ステップにおいて選択されたことを決定し、それに応じて、特定の時間ステップが第3の出力テキストサブシーケンス内の第1の時間ステップであると決定する。次いで、特定の時間ステップにおいて、ニューラルネットワークによって生成されたそれぞれのスコアを受信すると、本システムは、第2の出力テキストサブシーケンス内の自然言語識別子によって識別される第1のコンテキストテキストシーケンスに現れるトークンにのみ非ゼロスコアを割り当てる制約付きスコア分布を生成し、制約付きスコア分布から時間ステップにおいてトークンをサンプリングする。
次いで、システム100は、最良のサンプル312からのテキストのうちの少なくとも一部をユーザに提示するために提供する。たとえば、システム100は、最良のサンプル312の提示をユーザインターフェースにおいてレンダリングすることができる(314)。
図3に示されるように、提示は、「主張」のテキスト、すなわち第1のサブシーケンスのテキスト、「主張」を裏付けるコンテキスト文書からの引用、すなわち第3のサブシーケンスのテキスト、および任意で、第2のサブシーケンスからの文書識別子を含むことができる。
図4は、出力シーケンスをユーザに提示する例示的なユーザインターフェース400を示している。
図4の例において、ユーザはクエリ402「スクービードゥーはどんな動物ですか?」を提出している。
これに応答して、システム100は、(i)「グレートデーン犬」、(ii)「ウィキペディアページ:スクービードゥー」、および(iii)「スクービードゥー」というタイトルのウィキペディアページからの引用、という3つのサブシーケンスを含む出力シーケンスを生成した。
次いで、ユーザクエリ402に応答して、システムは、ユーザインターフェース400において、第1のサブシーケンス404、第2のサブシーケンス406、および第3のサブシーケンス408を提示する。
さらに、本システムは、第1のサブシーケンス404を、第3のサブシーケンス408のソースにリンクする、すなわち、スクービードゥーのウィキペディアページ、つまり「ウィキペディアページ:スクービードゥー」というタイトルのウェブページにリンクするハイパーリンクとして表示している。ユーザインターフェース400にハイパーリンクを含めると、ユーザは、たとえば、引用の正確さを検証する、または応答に関する追加のコンテキストを取得するために、第2のサブシーケンスによって示されるソースに移動することができるようになる。
図5は、言語モデルニューラルネットワーク114のトレーニングの例を示している。
図5に示されるように、システムは、あらかじめトレーニングされた言語モデルを取得する(502)。
たとえば、言語モデルは、上述のように、大規模なテキスト文書のコーパスに対する言語モデリングの目的でトレーニングされている可能性がある。
あらかじめトレーニングされた言語モデルを取得した後(502)、本システムはサンプルを生成し、生成されたサンプルを人間による評価を介して評価する(504)。
たとえば、各評価を取得するために、本システムは、質問と2つの候補回答、たとえば、数回のプロンプトを用いてあらかじめトレーニングされた言語モデルを使用して生成された2つのサンプルを、評価者ユーザに提示することができる。各候補回答は、たとえば図4を参照して上記に示したように、「主張」セクションと「裏付けとなる証拠」セクションに分割することができる。
次いで、本システムは、どちらの主張が質問に対する妥当な応答であるかどうか、その主張が添付の引用証拠によって裏付けられているかどうか、およびどちらの回答が評価者ユーザによって好まれるかを指定する、評価者ユーザからの入力を取得することができる。質問に対する妥当な応答とは、質問に対してトピックに沿った妥当な回答のことである。裏付けられている応答とは、提供された証拠が、応答の有効性を検証するために十分である応答のことである。
ユーザからの入力を取得するために使用することができるユーザインターフェースの一例が図6に示されている。
すなわち、図6は、たとえば、生成されたサンプルを人間が評価するための入力を受信することができる、生成されたサンプルを評価するための例示的なユーザインターフェース600を示している。
図6に示されるように、ユーザに、クエリ602と、クエリ602に対する2つの候補応答604および606が提示される。各候補応答604および606は、クエリに対する応答と、応答からの裏付けとなる証拠と、裏付けとなる証拠のソースの識別子とを含む。
候補応答604および606ごとに、ユーザインターフェースは、対応する選択要素608および610を提示し、ユーザは、対応する候補応答が妥当な回答であるかどうかを示す(または、ユーザが、確信が持てないことを示す)入力を提出したり、対応する候補応答が対応する裏付けとなる証拠によって裏付けられているかどうかを示す(または、ユーザが、確信が持てないことを示す)入力を提出したりすることができるようになる。
選択要素608および610はまた、それぞれ、対応する候補応答604または606がクエリ602に対する優先応答(2つの候補応答のうち)であることを示す入力をユーザが提出できるようにする。
ユーザインターフェース600はまた、ユーザが2つの応答が「同点(tied)」であることを示す入力を提出すること、またはサンプルに関するコメントを提出することを可能にする。
図5の説明に戻ると、次いで、本システムは、教師あり微調整(SFT)506を実行するために、評価されたサンプルを使用し、この微調整において、本システムは教師あり学習を通じて、評価されたサンプルに対して言語モデルをトレーニングする。
すなわち、SFTに使用されるサンプルごとに、本システムは、サンプル内の質問と、裏付けとなる証拠のテキストを有するコンテキストシーケンスを含むコンテキストシーケンスのセットが与えられた場合に、サンプル内の主張と裏付けとなる証拠を生成するように言語モデルをトレーニングする。
任意で、SFTを実行する際に、本システムは、妥当であると評価され、教師あり微調整に裏付けられているサンプルのみを使用することができる。
具体的な例として、本システムは、SFT中に所与のサンプルの入力シーケンスを次のように生成することができる。
サンプルの一定割合、たとえばデータの1/3または1/2の場合、システムはコンテキスト内の単一の文書のみを使用し、この文書は、裏付けとなる証拠が抽出された文書と同じであり、コンテキストシーケンス内に裏付けとなる証拠が存在することを強制する。
残りのサンプラについては、システムはコンテキスト内のn個の文書を使用し、たとえば、nは1から固定数、たとえば5、10、または15の間でランダムに抽出される。同様に、本システムは、ターゲット文書とそれの裏付けとなる証拠の引用がコンテキストシーケンス内に存在することを強制する。コンテキストシーケンス内の残りの文書については、本システムは、たとえば、検索エンジンによって提供される質問に対する上位n-1個の検索結果を使用することができる。
本システムは、入力シーケンスの合計トークン長が言語モデルのコンテキストウィンドウに基づく固定数を超えないように、コンテキスト文書の各々を切り捨てることができる。このトークン長の許容値は、プロンプトに含まれる文書間でランダムに分割することができるため、言語モデルは同じ入力シーケンス内の異なるコンテキスト文書から異なるサイズのコンテキストシーケンスを認識する。所与のコンテキスト文書を最大許容長に切り捨てる際、本システムは、上述のように各文書がスニペットを含むことを保証することができる。
任意で、教師あり微調整(SFT)506を実行した後、本システムは、人間による評価を介して再度評価される追加のサンプルを生成するために、SFTモデルを使用することができる。
次いで、本システムは、生成されたサンプル、たとえば、元々生成されたサンプル、または元々生成されたサンプルとSFTモデルを使用して生成された追加のサンプルに対して報酬モデル(RM)508をトレーニングする。
上述のように、学習した報酬モデルは、入力テキストクエリと、ニューラルネットワーク114によって生成された応答および引用とを入力として受信し、応答および引用の品質を表すスコアを出力として生成するモデル、たとえば、別の言語モデルニューラルネットワークである。
たとえば、本システムは、クエリと応答文字列が与えられた場合に、所与のペアにおけるどちらの例が好まれたかを示すバイナリ変数を予測する分類子として報酬モデルをトレーニングすることができる。すなわち、本システムは、ペアにおける両方の例に対して報酬モデルによって生成されたスコアを考慮して、ペアにおける第1の例が好まれた確率を計算することができる。たとえば、本システムは、ユーザの好みを真実値として、計算された確率を予測値として使用して、クロスエントロピ目標を使用して報酬モデルをトレーニングすることができる。
任意で、トレーニング中に、報酬モデルはまた、補助損失として、ペアにおける応答のバイナリの裏付けられている妥当な判断を予測する。したがって、これらの場合、最終的な損失は、たとえば、ペアワイズ嗜好予測損失と補助予測損失の平均または加重平均の組合せである。
いくつかの実装形態では、本システムは、RMトレーニングセットに、作成された(「合成」)比較のセットを追加することができる。たとえば、本システムはファクトチェックデータセットの、裏付けられ、反論された主張から作成された比較を生成することができる。そのようなデータセットの一例は、FEVERデータセット(Thorneらによる、2018年)である。これらの作成された比較を含めると、抽出されない追加の分布外質問応答モードが提供され、報酬モデルが証拠の裏付けをより適切に検証できるようになる。そのようなデータセットの例、たとえば、FEVERデータセットは、不快なテキストから抽出された文を変更することによって生成された主張を含むことができる。次いで、これらの主張は、裏付けられた、反論された、または不十分に分類され、関連付けられる証拠とともにマーク付けされる。そのような主張を、回答を比較する質問の例に変換するために、本システムは様々な技法のいずれかを使用することができる。ここで、技法のタイプのいくつかの例について説明する。
タイプA:システムは、主張からの直接テンプレート動作によって質問を生成することができる(たとえば、「{主張}?」、「{主張}は真実ですか?」、「{主張}と言うのは正しいですか?」、「{主張}。同意しますか?」)。例では、「はい」、「これは正しいです」、「それは真実です」などの肯定的な回答を裏付ける引用と組み合わせたものと、同じ引用と組み合わせた否定的な回答とを比較する。元の主張が裏付けられている場合、肯定的な回答は好ましい、裏付けられている、および妥当であるとマーク付けされる。そうでない場合、否定的な回答が好ましい、裏付けられている、および妥当であるとマーク付けされる。
タイプB:本システムは、数回のプロンプトによる、あらかじめトレーニングされた言語モデルニューラルネットワークを使用して、主張を質問に変換することができる。たとえば、「Roman Atwoodはコンテンツクリエイタである」という主張は、「Roman Atwoodは誰ですか?」に変換することができる。質問に変換された主張の比較として、本システムは、データセットからの対応する主張(裏付けられている引用付き)として1つの回答を使用し、テンプレートを介して生成された主張の直接否定(たとえば、「{主張}は真実ではありません」)を他の回答として使用することができる。元の主張が裏付けられている場合、その主張を含む回答は、好ましい、裏付けられている、および妥当であるとマーク付けされる。そうでない場合、否定された主張が好ましいとしてマーク付けされる。別の例として、元の主張が裏付けられている場合、本システムは元の主張を1つの回答として使用し、ランダムに生成された主張を比較として使用し、元の主張を好ましい、裏付けられている、および妥当であるとしてマーク付けすることができる。
上述のように、次いで本システムは、候補出力シーケンスにスコアを割り当てるために、サンプリング時に報酬モデルを使用することができる。
RM508をトレーニング後、本システムは、強化学習510を通じてSFTモデルをさらに微調整するために、トレーニングされた報酬モデルを使用することができる。すなわち、本システムは、トレーニングされたRM508によって予測される期待報酬を最大化するようにモデルをトレーニングすることによって、人間の好みからの強化学習(RLfHP)技法を実行するために、報酬モデルを使用する。
任意で、次いで本システムは、人間が評価するための追加のサンプルを生成するために、およびRMを再トレーニングするためにSFTまたはRLあるいはそれらの両方を通じてモデルを再微調整するために、あるいはそれらの両方を実行するために、さらに微調整されたモデルを使用することができる。すなわち、本システムは、言語モデルをさらに微調整するために、報酬モデルをさらに微調整するために、またはその両方を実行するために、記述されたトレーニングループを複数回繰り返すことができる。
さらに、図5の例では、本システムがSFTとRLの両方を使用して言語モデルを微調整することを説明しているが、場合によっては、本システムは両方を使用するのではなく、SFTまたはRLのみを使用する。たとえば、再ランク付けのために報酬モデルを使用する際、より多様なサンプルの再ランク付けに報酬モデルが提供されるように、SFTまたはRL(両方ではなく)のみで微調整されたモデルを使用すると、パフォーマンスが向上する可能性がある。
言語モデルニューラルネットワークによって採用され得る自己注意の説明は次のとおりである。
上記で言及した自己注意ブロックは、自己注意ブロック出力を生成するために、自己注意ブロック入力(または、層入力から派生した入力)に対して動作する注意メカニズムを含むニューラルネットワーク層である。自己注意メカニズムは因果的にマスクされる可能性があり、入力シーケンス内の任意の所与の位置は、入力シーケンス内の所与の位置以降のどの位置にも注意を払わない(たとえば、その位置からのデータを使用しない)ようにする。注意メカニズムには様々な種類が考えられる。注意メカニズムを含む自己注意層の例は、Vaswaniらによる「Attention is all you need」、第31回神経情報処理システム会議(NIPS 2017年)、米国カリフォルニア州ロングビーチ、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年に記載されている。
一般的に、注意メカニズムは、クエリと、キーと値のペアのセットとを出力にマッピングし、クエリ、キー、および値はすべてベクトルである。出力は値の加重合計として計算され、各値に割り当てられる重みは、互換性関数、たとえば、クエリと対応するキーのドット積またはスケーリングされたドット積によって計算される。
一般的に、自己注意メカニズムは、シーケンスの変換されたバージョンを出力として決定するために、同じシーケンス内の異なる位置を関連付けるように構成されている。たとえば、注意層の入力は、入力シーケンスの要素ごとのベクトルを備え得る。これらのベクトルは、自己注意メカニズムへの入力を提供し、自己注意メカニズムによって、注意層出力の同じシーケンスの新しい表現を決定するために使用され、入力シーケンスの要素ごとのベクトルを同様に備える。自己注意メカニズムの出力は、注意層の出力として使用されてもよく、注意層の出力を提供するためにフィードフォワード層、スキップ接続、または正規化動作の1つまたは複数によって処理されてもよい。
いくつかの実装形態では、注意メカニズムは、入力シーケンス内のベクトルごとのそれぞれのクエリを含むクエリ行列Q=XWQ、入力シーケンス内のベクトルごとのそれぞれのキーを含むキー行列K=XWK、および入力シーケンス内のベクトルごとのそれぞれの値を含む値行列V=XWVを導出するために、たとえば行列WQによって定義されるクエリ変換、たとえば行列WKによって定義されるキー変換、およびたとえば行列WVによって定義される値変換の各々を、注意層の入力への入力データXである注意層の入力に適用するように構成され、これらは、出力の注目シーケンスを決定するために使用される。たとえば、注意メカニズムは、値ベクトルごとのそれぞれの重みを決定するために各クエリベクトルを各キーベクトルに適用し、次いで、入力シーケンスの要素ごとの自己注意層出力を決定するためにそれぞれの重みを使用して値ベクトルを組み合わせることによって適用されるドット積注意メカニズムであり得る。自己注意層の出力は、スケーリングされたドット積注意を実装するために、スケーリング係数、たとえばクエリとキーの次元の平方根によってスケーリングされ得る。したがって、たとえば、注意メカニズムの出力は、
として決定され得、上式で、dはキー(および、値)ベクトルの次元である。別の実装形態では、注意メカニズムは、隠れ層を有するフィードフォワードネットワークを使用して互換性関数を計算する「加法注意」メカニズムを備える。注意メカニズムの出力は、1つまたは複数の完全に接続されたフィードフォワードニューラルネットワーク層によってさらに処理され得る。
注意メカニズムはマルチヘッド注意を実装し得、すなわち、複数の異なる注意メカニズムを並行して適用し得る。次いで、これらの出力は、必要に応じて元の次元に縮小するために適用された、学習した線形変換と組み合わせられ、たとえば連結され得る。
本明細書では、システムおよびコンピュータプログラムコンポーネントに関連して「構成された」という用語を使用する。1つまたは複数のコンピュータのシステムが特定の動作またはアクションを実行するように構成されるということは、動作中にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをシステムにインストールしていることを意味する。1つまたは複数のコンピュータプログラムが特定の動作またはアクションを実行するように構成されるということは、1つまたは複数のプログラムが、データ処理装置によって遂行されると、装置に、動作またはアクションを実行させる命令を含むことを意味する。
本明細書において説明されている主題および機能動作の実施形態は、本明細書において開示されている構造およびその構造的同等物を含む、デジタル電子回路、有形に具現化されたコンピュータソフトウェアまたはファームウェア、コンピュータハードウェア、またはそれらの1つまたは複数の組合せにおいて実装することができる。本明細書において説明されている主題の実施形態は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置によって遂行されるか、またはデータ処理装置の動作を制御するための、有形の非一時的ストレージ媒体上にエンコードされたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムまたはシリアルアクセスメモリデバイス、あるいはそれらの1つまたは複数の組合せであり得る。代替的または追加的に、プログラム命令は、データ処理装置による遂行のために適切なレシーバ装置に送信するための情報をエンコードするために生成される、人工的に生成された伝播信号、たとえば機械生成の電気信号、光信号、または電磁信号にエンコードすることもできる。
「データ処理装置」という用語は、データ処理ハードウェアを指し、例としてプログラム可能なプロセッサ、コンピュータ、あるいは複数のプロセッサまたはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、およびマシンを包含する。本装置はまた、専用ロジック回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)であってもよく、さらにこれらを含んでもよい。本装置は、ハードウェアに加えて、コンピュータプログラムの遂行環境、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つまたは複数の組合せを構築するコードを作成するコードを任意で含むことができる。
コンピュータプログラムは、プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれてもまたは記載されてもよく、コンパイラ型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含むあらゆる形式のプログラミング言語で記述されてもよく、また、スタンドアロンプログラムとして、またはコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、あるいは他のユニットとしてを含む、あらゆる形式で展開することができる。プログラムは、ファイルシステム内のファイルに対応する場合もあるが、必ずしも対応する必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部、たとえば、マークアップ言語文書に記憶された1つまたは複数のスクリプト、問題のプログラム専用の単一のファイル、あるいは複数の調整されたファイル、たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイルに記憶することができる。コンピュータプログラムは、1つのコンピュータ、または1つのサイトにあるか複数のサイトに分散され、データ通信ネットワークによって相互接続された複数のコンピュータ上で遂行されるように展開することができる。
本明細書では、「データベース」という用語は、あらゆるデータの集合を指すために広く使用されており、データは、特定の方法で構造化されている必要はなく、まったく構造化されている必要もなく、1つまたは複数の場所にあるストレージデバイスに記憶することができる。したがって、たとえば、インデックスデータベースは複数のデータの集合を含むことができ、データの集合の各々は異なる方法で編成およびアクセスされ得る。
同様に、本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされたソフトウェアベースのシステム、サブシステム、あるいはプロセスを指すために広義に使用されている。一般的に、エンジンは、1つまたは複数のソフトウェアモジュールあるいはコンポーネントとして実装され、1つまたは複数の場所にある1つまたは複数のコンピュータにインストールされる。場合によっては、1つまたは複数のコンピュータが特定のエンジン専用になることもあり、他の場合には、複数のエンジンを同じコンピュータにインストールして実行することもできる。
本明細書において説明されているプロセスとロジックフローは、入力データに対して動作を行い、出力を生成することによって機能を実行するために1つまたは複数のコンピュータプログラムを遂行する1つまたは複数のプログラム可能なコンピュータによって実行することができる。プロセスおよびロジックフローはまた、専用ロジック回路、たとえばFPGAまたはASICによって実行することも、専用ロジック回路と1つまたは複数のプログラムされたコンピュータの組合せによって実行することもできる。
コンピュータプログラムの遂行に適したコンピュータは、汎用または専用マイクロプロセッサ、あるいはその両方、あるいは任意の他の種類の中央処理装置に基づくことができる。一般的に、中央処理装置は、読取り専用メモリ、またはランダムアクセスメモリ、あるいはその両方から命令とデータを受信する。コンピュータの必須要素は、命令を実行または遂行するための中央処理装置と、命令とデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置とメモリは、専用ロジック回路によって補完することもでき、専用ロジック回路に組み込むこともできる。一般的に、コンピュータは、磁気ディスク、光磁気ディスク、または光ディスクなどのデータを記憶するための1つまたは複数の大容量ストレージデバイスを含むか、または、それらの記憶装置からデータを受信したり、それらの記憶装置にデータを転送したり、あるいはその両方を行うように動作的に結合される。しかしながら、コンピュータはそのようなデバイスを有する必要はない。さらに、コンピュータは、別のデバイス、たとえば、ほんの数例を挙げると、モバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)レシーバ、またはユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブルストレージデバイスに組み込むことができる。
コンピュータプログラム命令およびデータを記憶するために適したコンピュータ可読メディアは、あらゆる形式の不揮発性メモリ、メディア、およびメモリデバイスを含み、これには、例としてEPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD ROMおよびDVD-ROMディスクが含まれる。
ユーザとの対話を提供するために、本明細書において説明されている主題の実施形態は、ユーザに情報を表示するためのCRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイスと、ユーザがコンピュータに入力を提供することができるマウスまたはトラックボールなどのキーボードおよびポインティングデバイスを有するコンピュータ上で実装することができる。ユーザとの対話を提供するための他の種類のデバイスも使用することができ、たとえば、ユーザに提供されるフィードバックは、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなどの、あらゆる形式の感覚フィードバックにすることができる。また、ユーザからの入力は、音響、音声、または触覚入力など、あらゆる形式で受信することができる。さらに、コンピュータは、ユーザによって使用されるデバイスとの間で文書を送受信することによって、たとえば、ウェブブラウザから受信した要求に応じて、ユーザのデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。また、コンピュータは、たとえば、メッセージングアプリケーションを実行しているスマートフォンなどの個人用デバイスにテキストメッセージまたは他の形式のメッセージを送信し、その返信としてユーザから応答メッセージを受信することによって、ユーザと対話することができる。
機械学習モデルを実装するためのデータ処理装置はまた、たとえば、機械学習のトレーニングまたは生成の共通かつ計算集約的な部分、たとえば推論、作業負荷を処理するための専用ハードウェアアクセラレータユニットを含むことができる。
機械学習モデルは、TensorFlowフレームワークまたはJaxフレームワークなどの機械学習フレームワークを使用して実装および展開することができる。
本明細書において説明されている主題の実施形態は、たとえばデータサーバなどのバックエンドコンポーネントを含む、またはたとえばアプリケーションサーバなどのミドルウェアコンポーネントを含む、またはたとえばグラフィカルユーザインターフェース、ウェブブラウザ、またはユーザが本明細書において説明されている主題の実装形態と対話できるアプリを有するクライアントコンピュータなどのフロントエンドコンポーネントを含むコンピューティングシステム、または1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せにおいて実装することができる。システムのコンポーネントは、通信ネットワークなどのデジタルデータ通信のあらゆる形式または媒体によって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、およびワイドエリアネットワーク(WAN)、たとえばインターネットを含む。
コンピューティングシステムは、クライアントとサーバを含むことができる。クライアントとサーバは一般的に互いに離れており、通常は通信ネットワークを通じて対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行され、相互にクライアントとサーバの関係を有するコンピュータプログラムによって生じる。いくつかの実施形態では、サーバは、たとえばクライアントとして機能するデバイスと対話するユーザにデータを表示したり、ユーザからユーザ入力を受信したりする目的で、たとえばHTMLページなどのデータをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、たとえばユーザインタラクションの結果は、デバイスからサーバにおいて受信することができる。
本明細書は多くの具体的な実装形態の詳細を含んでいるが、これらは発明の範囲または請求の範囲を制限するものとして解釈されるべきではなく、特定の発明の特定の実施形態に固有であり得る特徴の説明として解釈されるべきである。本明細書において個別の実施形態の文脈において説明されている特定の特徴はまた、単一の実施形態における組合せにおいて実装することができる。逆に、単一の実施形態の文脈において説明されている様々な特徴はまた、複数の実施形態において個別に、または任意の適切なサブ組合せにおいて実装することができる。さらに、特徴は特定の組合せにおいて機能すると上記で説明され、当初はそのように請求されていたとしても、請求された組合せからの1つまたは複数の特徴が、場合によっては組合せから削除され、請求された組合せは、サブ組合せまたはサブ組合せのバリエーションに向けられる場合がある。
同様に、図面には動作が描かれ、請求項にも特定の順序で記載されているが、望ましい結果を得るために、そのような動作が示された特定の順序または連続した順序で実行されること、または示されたすべての動作が実行されることが必要であると理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利になる場合がある。さらに、上記の実施形態における様々なシステムモジュールおよびコンポーネントの分離は、すべての実施形態においてそのような分離が必要であると理解されるべきではなく、説明されているプログラムコンポーネントおよびシステムは、一般的に、単一のソフトウェア製品に統合することもでき、複数のソフトウェア製品にパッケージ化することもできると理解されるべきである。
主題の特定の実施形態について説明した。他の実施形態も以下の請求項の範囲内である。たとえば、請求項に記載されているアクションは、異なる順序で実行しても、依然として望ましい結果を得ることができる。一例として、添付の図面に示されたプロセスは、望ましい結果を得るために、必ずしも示されている特定の順序、または連続した順序に従う必要はない。場合によっては、マルチタスクおよび並列処理が有利になる場合がある。