(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-06-18
(54)【発明の名称】言語モデルを使うマルチモーダル入力の処理
(51)【国際特許分類】
G06N 3/045 20230101AFI20240611BHJP
G06N 3/0475 20230101ALI20240611BHJP
【FI】
G06N3/045
G06N3/0475
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023561364
(86)(22)【出願日】2022-06-08
(85)【翻訳文提出日】2023-12-08
(86)【国際出願番号】 EP2022065502
(87)【国際公開番号】W WO2022258666
(87)【国際公開日】2022-12-15
(32)【優先日】2021-06-08
(33)【優先権主張国・地域又は機関】GR
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】517030789
【氏名又は名称】ディープマインド テクノロジーズ リミテッド
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】マリア・ラフィリア・ツィンプーケリ
(72)【発明者】
【氏名】ジェイコブ・リー・メニック
(72)【発明者】
【氏名】セルカン・カビ
(72)【発明者】
【氏名】フェリクス・ジョージ・ヒル
(72)【発明者】
【氏名】セイエド・モハマダリ・エスラミ
(72)【発明者】
【氏名】オリオル・ビニャルズ
(57)【要約】
言語モデルを使ってマルチモーダル入力を処理するための、コンピュータ記憶媒体において符号化されたコンピュータプログラムを含む、方法、システム、および装置。具体的には、入力は画像を含み、画像は、画像を表す画像埋込みのシーケンスを生成するように、画像エンコーダニューラルネットワークによって符号化される。画像埋込みのシーケンスは、言語モデルニューラルネットワークによって処理される入力シーケンスの少なくとも一部として与えられる。
【特許請求の範囲】
【請求項1】
1つまたは複数のコンピュータによって実施される方法であって、
入力画像を取得するステップと、
前記入力画像を処理するようにトレーニングされている画像エンコーダニューラルネットワークを使って前記入力画像を処理して、前記入力画像を特徴付ける画像埋込みベクトルの画像シーケンスを生成するステップと、
前記画像埋込みベクトルの画像シーケンスを含む、入力埋込みベクトルの入力シーケンスを生成するステップと、
トレーニングされた言語モデルニューラルネットワークを使って、前記画像埋込みベクトルの画像シーケンスを含む、前記入力埋込みベクトルの入力シーケンスを処理して、前記入力埋込みベクトルの入力シーケンスへのテキスト応答を表す、テキストトークンの出力シーケンスを出力として生成するステップであって、
前記出力シーケンス中の各テキストトークンは、テキストトークンの語彙から選択され、
前記トレーニングされた言語モデルニューラルネットワークは、前記テキストトークンの語彙からのテキストトークンを表す、テキスト埋込みベクトルのトレーニング用入力シーケンスに対して言語モデリングタスクを実施するようにトレーニングされており、
前記画像埋込みベクトルの画像シーケンス中の各画像埋込みベクトルは、前記テキストトークンの語彙からの前記テキストトークンを表す前記テキスト埋込みベクトルと同じ次元数を有する、ステップとを含む方法。
【請求項2】
前記画像エンコーダニューラルネットワークは、前記トレーニングされた言語モデルニューラルネットワークを通して、前記画像エンコーダニューラルネットワークのパラメータに関する損失関数の勾配を逆伝播することによってトレーニングされており、
前記損失関数は、前記トレーニングされた言語モデルニューラルネットワークを使って、トレーニング画像から前記画像エンコーダニューラルネットワークによって生成されたトレーニング画像埋込みベクトルのシーケンスを含むトレーニング入力を処理することによって、複数のテキストトークンを含むトレーニング出力テキストシーケンスを生成することを求めるマルチモーダルタスクのための損失関数である、請求項1に記載の方法。
【請求項3】
前記マルチモーダルタスクは画像キャプショニングタスクであり、前記トレーニング出力テキストシーケンスは、前記トレーニング画像用のテキストキャプションの少なくとも一部分である、請求項2に記載の方法。
【請求項4】
前記トレーニングされた言語モデルニューラルネットワークは、前記マルチモーダルタスクのための前記損失関数での、前記画像エンコーダニューラルネットワークの前記トレーニング中はトレーニングされず、
前記画像エンコーダニューラルネットワークの前記トレーニングは、前記言語モデルニューラルネットワークのパラメータを調節せずに、前記損失関数の前記勾配を、前記トレーニングされた言語モデルニューラルネットワークを通して、および前記画像エンコーダニューラルネットワークの中へ逆伝播することを含む、請求項2または請求項3に記載の方法。
【請求項5】
前記損失関数は、前記トレーニング入力を処理した結果として、前記トレーニングされた言語モデルニューラルネットワークによって生成された前記テキストトークンの語彙の中の前記テキストトークンにわたるスコア分布によって前記マルチモーダルタスク用のグランドトゥルーステキスト出力の中のテキストトークンに割り当てられたそれぞれの尤度を測定する、請求項2から4のいずれか一項に記載の方法。
【請求項6】
前記トレーニングされた言語モデルニューラルネットワークは、前記マルチモーダルタスクのための前記損失関数での、前記画像エンコーダニューラルネットワークの前記トレーニングに先立って、前記言語モデリングタスクでトレーニングされている、請求項2から5のいずれか一項に記載の方法。
【請求項7】
前記言語モデルニューラルネットワークは、(i)前記出力シーケンス中の各特定のテキストトークンに先行するいずれかのテキストトークンのテキスト埋込みベクトルが後に続く、前記入力埋込みベクトルの入力シーケンス、を含む現在の入力シーケンスを条件とした、前記出力シーケンス中の前記各特定のテキストトークンを生成することによって、前記テキストトークンの出力シーケンスを自己回帰によって生成する自己回帰ニューラルネットワークである、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記トレーニングされた言語モデルニューラルネットワークは、自己注意動作を各々が適用する複数の層を含む自己回帰トランスフォーマベースのニューラルネットワークである、請求項7に記載の方法。
【請求項9】
前記トレーニングされた言語モデルニューラルネットワークは、前記複数の層を使って前記入力シーケンスを処理するのに先立って、前記入力シーケンスに相対位置符号化を適用するように構成される、請求項8に記載の方法。
【請求項10】
前記画像エンコーダニューラルネットワークは畳み込みニューラルネットワークを含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記畳み込みニューラルネットワークは、前記入力画像を処理して、前記入力画像を特徴付ける出力テンソルを生成するように構成され、前記画像エンコーダニューラルネットワークは、前記出力テンソルを、前記画像埋込みベクトルの画像シーケンスにマップするように構成される、請求項10に記載の方法。
【請求項12】
前記テキストトークンの出力シーケンスは、前記入力画像用の予測テキストキャプションの少なくとも一部分を表す、請求項1から11のいずれか一項に記載の方法。
【請求項13】
前記入力埋込みベクトルの入力シーケンスは、(i)それぞれのテキストシーケンスを各々が表す、テキスト埋込みベクトルの1つもしくは複数のシーケンス、(ii)別の入力画像を各々が特徴付ける、画像埋込みベクトルの1つもしくは複数の他のシーケンス、または(iii)両方も含む、請求項1から12のいずれか一項に記載の方法。
【請求項14】
前記入力埋込みベクトルの入力シーケンスは、前記画像埋込みベクトルの画像シーケンスと、前記入力画像についての質問を表す、テキスト埋込みベクトルのシーケンスとを含み、前記テキストトークンの出力シーケンスは、前記入力画像についての前記質問への予測テキスト回答を表す、請求項13に記載の方法。
【請求項15】
前記入力埋込みベクトルの入力シーケンスは、(i)画像埋込みベクトルの1つまたは複数の他のシーケンスと、(ii)画像埋込みベクトルの各他のシーケンスに対して、前記画像埋込みベクトルの他のシーケンスによって特徴付けられる前記他の画像についての分類を表す、テキスト埋込みベクトルのそれぞれのシーケンスとを含み、前記テキストトークンの出力シーケンスは、前記入力画像についての予測分類を表す、請求項13に記載の方法。
【請求項16】
前記入力埋込みベクトルの入力シーケンスは、(i)それぞれの追加入力画像を各々が特徴付ける、画像埋込みベクトルの1つまたは複数の他のシーケンスと、(ii)画像埋込みベクトルの各他のシーケンスに対して、前記画像埋込みベクトルの他のシーケンスによって特徴付けられる前記追加画像について尋ねられたときの質問への回答を表す、テキスト埋込みベクトルのそれぞれのシーケンスとを含み、前記テキストトークンの出力シーケンスは、前記入力画像について尋ねられたときの前記質問への予測回答を表す、請求項13に記載の方法。
【請求項17】
前記入力埋込みベクトルの入力シーケンスは、(i)それぞれの追加入力画像を各々が特徴付ける、画像埋込みベクトルの1つまたは複数の他のシーケンスと、(ii)画像埋込みベクトルの各他のシーケンスに対して、前記画像埋込みベクトルの他のシーケンスによって特徴付けられる前記追加画像についての特定のタイプの情報を提供する、テキスト埋込みベクトルのそれぞれのシーケンスと、(iii)前記画像埋込みベクトルの画像シーケンスに対して、前記入力画像についての前記特定のタイプの情報を提供するためのテキストプロンプトを表す、テキスト埋込みの部分的シーケンスとを含み、前記テキストトークンの出力シーケンスは、前記入力画像についての前記特定のタイプの情報を提供する前記テキストプロンプトの予測完結を表す、請求項13に記載の方法。
【請求項18】
前記入力埋込みベクトルの入力シーケンスは、前記出力シーケンスによって表される前記テキスト応答によって実施されるべきタスクを記述するテキストシーケンスを表す、テキスト埋込みベクトルの第1のシーケンスを含む、請求項13から17のいずれか一項に記載の方法。
【請求項19】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から18のいずれか一項に記載のそれぞれの動作を実施させる命令を記憶している1つまたは複数の記憶デバイスと、を備えるシステム。
【請求項20】
命令を記憶している1つまたは複数のコンピュータ可読記憶媒体であって、前記命令は、1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から18のいずれか一項に記載の方法のそれぞれの動作を実施させる、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年6月8日に出願されたギリシャ国内特許出願第GR20210100374号の優先権を主張する。先行出願の開示内容は、本出願の開示内容の一部と見なされるとともに、参照によって組み込まれる。
【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 preprint 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 preprint arXiv:2005.14165、2020年
【非特許文献4】Vaswaniら、「Attention is all you need」、31st Conference on Neural Information Processing Systems (NIPS 2017)、米国カリフォルニア州ロングビーチ
【発明の概要】
【課題を解決するための手段】
【0005】
本明細書は、画像エンコーダニューラルネットワークおよび言語モデルニューラルネットワークを使ってマルチモーダルタスクを実施する、1つまたは複数の場所にある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装されるシステムについて記載する。言語モデルニューラルネットワークは事前トレーニングされ、たとえば、画像エンコーダニューラルネットワークのトレーニング中にはトレーニングされない。
【0006】
一態様では、方法のうちの1つは、入力画像を取得するステップと、入力画像を処理するようにトレーニングされている画像エンコーダニューラルネットワークを使って入力画像を処理して、入力画像を特徴付ける画像埋込みベクトルの画像シーケンスを生成するステップと、画像埋込みベクトルの画像シーケンスを含む、入力埋込みベクトルの入力シーケンスを生成するステップと、トレーニングされた言語モデルニューラルネットワークを使って、画像埋込みベクトルの画像シーケンスを含む、入力埋込みベクトルの入力シーケンスを処理して、入力埋込みベクトルの入力シーケンスへのテキスト応答を表す、テキストトークンの出力シーケンスを出力として生成するステップであって、出力シーケンス中の各テキストトークンは、テキストトークンの語彙から選択され、トレーニングされた言語モデルニューラルネットワークは、テキストトークンの語彙からのテキストトークンを表す、テキスト埋込みベクトルのトレーニング用入力シーケンスに対して言語モデリングタスクを実施するようにトレーニングされており、画像埋込みベクトルの画像シーケンス中の各画像埋込みベクトルは、テキストトークンの語彙からのテキストトークンを表すテキスト埋込みベクトルと同じ次元数を有する、ステップとを含む。
【0007】
したがって、画像エンコーダニューラルネットワークは、画像を埋込みのシーケンスとして表すために使われ、そうすることによって、このシーケンスを含む入力(「プリフィックス」とも呼ばれる)でプロンプトされた、事前トレーニングされた言語モデルが、対応するマルチモーダルタスク用に適切な出力を生成する。
【0008】
いくつかの実装形態では、画像エンコーダニューラルネットワークは、トレーニングされた言語モデルニューラルネットワークを通して、画像エンコーダニューラルネットワークのパラメータに関する損失関数の勾配を逆伝播することによってトレーニングされており、損失関数は、トレーニングされた言語モデルニューラルネットワークを使って、トレーニング画像から画像エンコーダニューラルネットワークによって生成されたトレーニング画像埋込みベクトルのシーケンスを含むトレーニング入力を処理することによって、複数のテキストトークンを含むトレーニング出力テキストシーケンスを生成することを求めるマルチモーダルタスクのための損失関数である。これにより、画像エンコーダは、トレーニングされた言語モデルニューラルネットワークが、テキストを表す埋込みを処理するようにトレーニングされているとしても、タスクを実施するために有効に使われ得る埋込みを生成することを学習することができ、画像エンコーダによって生成された埋込みは画像を表す。
【0009】
これらの実装形態のうちのいくつかにおいて、マルチモーダルタスクは画像キャプショニングタスクであり、トレーニング出力テキストシーケンスは、トレーニング画像用のテキストキャプションの少なくとも一部分である。
【0010】
いくつかの実装形態では、トレーニングされた言語モデルニューラルネットワークは、マルチモーダルタスクのための損失関数での画像エンコーダニューラルネットワークのトレーニング中にはトレーニングされず、画像エンコーダニューラルネットワークのトレーニングは、言語モデルニューラルネットワークのパラメータを調節せずに、損失関数の勾配を、トレーニングされた言語モデルニューラルネットワークを通して、および画像エンコーダニューラルネットワークの中へ逆伝播することを含む。つまり、言語モデルニューラルネットワークは、画像エンコーダニューラルネットワークのトレーニング中は「凍結」され、画像エンコーダニューラルネットワークがトレーニングされた後、様々なマルチモーダルタスクのいずれにおいても高品質性能を保証するように微調整される必要がない。結果として得られる組合せモデルは、大規模言語モデルの能力すべてを保持するが、非常に様々なマルチモーダルタスクを実施するためのどの任意のシーケンスにおいても、テキストおよび画像入力を処理することもできる。
【0011】
いくつかの実装形態では、損失関数は、トレーニング入力を処理した結果として、トレーニングされた言語モデルニューラルネットワークによって生成されたテキストトークンの語彙の中のテキストトークンにわたるスコア分布によって、マルチモーダルタスクのためのグランドトゥルーステキスト出力の中でテキストトークンに割り当てられたそれぞれの尤度を測定する。
【0012】
いくつかの実装形態では、トレーニングされた言語モデルニューラルネットワークは、マルチモーダルタスクのための損失関数での画像エンコーダニューラルネットワークのトレーニングに先立って、言語モデリングタスクでトレーニングされている。
【0013】
いくつかの実装形態では、言語モデルニューラルネットワークは、(i)出力シーケンスの中で特定のテキストトークンに先行するいずれかのテキストトークンのテキスト埋込みベクトルが後に続く、入力埋込みベクトルの入力シーケンスを含む現在の入力シーケンスを条件とした、出力シーケンス中の各特定のテキストトークンを生成することによって、テキストトークンの出力シーケンスを自己回帰によって生成する自己回帰ニューラルネットワークである。
【0014】
いくつかの実装形態では、トレーニングされた言語モデルニューラルネットワークは、自己注意動作を各々が適用する複数の層を含む自己回帰トランスフォーマベースのニューラルネットワークである。したがって、記載する手法は、大規模な、事前トレーニングされたトランスフォーマベースの言語モデルに符号化された「知識」を活用して、ゼロショットおよびフューショット(few shot)設定の両方において、非常に様々なマルチモーダルタスクを実施することができる組合せモデルを生成する。
【0015】
いくつかの実装形態では、トレーニングされた言語モデルニューラルネットワークは、複数の層を使って、入力シーケンスを処理するのに先立って、入力シーケンスに相対位置符号化を適用するように構成される。
【0016】
いくつかの実装形態では、画像エンコーダニューラルネットワークは畳み込みニューラルネットワークを含む。
【0017】
いくつかの実装形態では、畳み込みニューラルネットワークは、入力画像を処理して、入力画像を特徴付ける出力テンソルを生成するように構成され、画像エンコーダニューラルネットワークは、出力テンソルを、画像埋込みベクトルの画像シーケンスにマップするように構成される。
【0018】
いくつかの実装形態では、テキストトークンの出力シーケンスは、入力画像用の予測テキストキャプションの少なくとも一部分を表す。
【0019】
いくつかの実装形態では、入力埋込みベクトルの入力シーケンスは、(i)それぞれのテキストシーケンスを各々が表す、テキスト埋込みベクトルの1つもしくは複数のシーケンス、(ii)別の入力画像を各々が特徴付ける、画像埋込みベクトルの1つもしくは複数の他のシーケンス、または(iii)両方、も含む。
【0020】
いくつかの実装形態では、入力埋込みベクトルの入力シーケンスは、画像埋込みベクトルの画像シーケンスと、入力画像についての質問を表す、テキスト埋込みベクトルのシーケンスとを含み、テキストトークンの出力シーケンスは、入力画像についての質問への予測テキスト回答を表す。
【0021】
いくつかの実装形態では、入力埋込みベクトルの入力シーケンスは、(i)画像埋込みベクトルの1つまたは複数の他のシーケンスと、(ii)画像埋込みベクトルの各他のシーケンスに対して、画像埋込みベクトルの他のシーケンスによって特徴付けられる他の画像についての分類を表す、テキスト埋込みベクトルのそれぞれのシーケンスとを含み、テキストトークンの出力シーケンスは、入力画像についての予測分類を表す。
【0022】
いくつかの実装形態では、入力埋込みベクトルの入力シーケンスは、(i)それぞれの追加入力画像を各々が特徴付ける、画像埋込みベクトルの1つまたは複数の他のシーケンスと、(ii)画像埋込みベクトルの各他のシーケンスに対して、画像埋込みベクトルの他のシーケンスによって特徴付けられる追加画像について尋ねられると質問への回答を表す、テキスト埋込みベクトルのそれぞれのシーケンスとを含み、テキストトークンの出力シーケンスは、入力画像について尋ねられたときの質問への予測回答を表す。
【0023】
いくつかの実装形態では、入力埋込みベクトルの入力シーケンスは、(i)それぞれの追加入力画像を各々が特徴付ける、画像埋込みベクトルの1つまたは複数の他のシーケンスと、(ii)画像埋込みベクトルの各他のシーケンスに対して、画像埋込みベクトルの他のシーケンスによって特徴付けられる追加画像についての特定のタイプの情報を提供する、テキスト埋込みベクトルのそれぞれのシーケンスと、(iii)画像埋込みベクトルの画像シーケンスに対して、入力画像についての特定のタイプの情報を提供するためのテキストプロンプトを表す、テキスト埋込みの部分的シーケンスとを含み、テキストトークンの出力シーケンスは、入力画像についての特定のタイプの情報を提供するテキストプロンプトの予測完結を表す。
【0024】
いくつかの実装形態では、入力埋込みベクトルの入力シーケンスは、出力シーケンスによって表されるテキスト応答によって実施されるべきタスクを記述するテキストシーケンスを表す、テキスト埋込みベクトルの第1のシーケンスを含む。
【0025】
本明細書において説明される主題は、以下の利点のうちの1つまたは複数を実現するために特定の実施形態で実装され得る。
【0026】
十分なスケールでトレーニングされると、言語モデル、たとえば、自己注意を使って自己回帰によって出力を生成するトランスフォーマベースの言語モデルは、わずか数例でプロンプトされた後で新たな言語タスクを学習する注目すべき能力を呈する。記載する技法は、このフューショット学習能力を、画像を連続埋込みのシーケンスとして表すための視覚エンコーダを使うことによってマルチモーダル設定に移し、そうすることによって、このシーケンスを含む「プリフィックス」でプロンプトされた、事前トレーニングされた凍結言語モデルが、対応するマルチモーダルタスクのための適切な出力を生成する。結果として得られるシステムは、マルチモーダルフューショット学習器であり、任意の数のインターリーブされた画像およびテキスト埋込みのシーケンスとして表される例を条件とすると、様々な新たなタスクを学習する驚くべき能力をもつ。具体例として、結果として得られるシステムは、新たなオブジェクトおよび新規の視覚カテゴリに関する単語を迅速に「学習」し、少ない数の例のみで視覚的質問回答を行い、画像エンコーダがトレーニングされた後、いかなる追加トレーニングも微調整もなしで、外部知識を利用することができる。したがって、結果として得られるシステムは、(i)言語モデルが、テキストデータにのみ作用する言語モデリングタスクでトレーニングされただけであっても、および(ii)画像エンコーダニューラルネットワークが、まったく異なるマルチモーダルタスクを実施する間にトレーニングされた場合であっても、マルチモーダルタスクを効果的に実施することができる。
【0027】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。本主題の他の特徴、態様および利点は、説明、図面および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0028】
【
図2】画像エンコーダニューラルネットワークのトレーニングを示す図である。
【
図3】マルチモーダルタスクを実施するための例示的プロセスの流れ図である。
【
図4】視覚的質問回答タスクを実施するのに使われる画像エンコーダニューラルネットワークおよび言語モデルニューラルネットワークの例を示す図である。
【
図5】kショット外部知識視覚的質問回答タスクを実施するのに使われる画像エンコーダニューラルネットワークおよび言語モデルニューラルネットワークの例を示す図である。
【
図6】kショット画像分類タスクを実施するのに使われる画像エンコーダニューラルネットワークおよび言語モデルニューラルネットワークの例を示す図である。
【発明を実施するための形態】
【0029】
様々な図面における同じ参照番号および名称は、同様の要素を示す。
【0030】
本明細書は、1つまたは複数のマルチモーダルタスクを実施する、1つまたは複数の場所にある1つまたは複数のコンピュータ上のコンピュータプログラムとして実装されるシステムについて記載する。
【0031】
図1は、例示的マルチモーダルシステム100の図である。マルチモーダルシステム100は、以下で説明するシステム、構成要素、および技法が実装される、1つまたは複数の場所にある1つまたは複数のコンピュータ上でコンピュータプログラムとして実装され得るシステムの例である。
【0032】
マルチモーダルシステム100は、画像エンコーダニューラルネットワーク110および言語モデルニューラルネットワーク120を使って、1つまたは複数のマルチモーダルタスクを実施するように構成される。
【0033】
マルチモーダルタスクとは、本明細書において使われる場合、画像104(たとえば、カメラによって取り込まれた現実世界の画像)を含むネットワーク入力102を処理して、テキストトークン154のシーケンスを含むネットワーク出力152を生成することを求めるタスクである。いくつかの場合には、ネットワーク入力102は、テキスト、1つもしくは複数の他の画像、または両方を含むこともできる。
【0034】
マルチモーダルタスクの例について、以下でより詳しく説明する。
【0035】
画像エンコーダニューラルネットワーク110は、画像を受信するように、および画像を処理して、たとえば、画像のピクセルの強度値を処理して、画像を特徴付ける画像埋込みベクトルの画像シーケンスを生成するように構成されているニューラルネットワークである。
【0036】
「埋込みベクトル」とは、本明細書において使われる場合、所定の次元数を有する、たとえば、所定の数の値を有する、数値、たとえば、浮動小数点または他のタイプの数値のベクトルである。
【0037】
画像エンコーダニューラルネットワーク110は概して、画像を埋込みのシーケンスにマップする、どの適切なアーキテクチャも有することができる。埋込みのシーケンスは、所定の数、たとえば、1、2、4または8個の埋込みを有することができる。
【0038】
たとえば、画像エンコーダニューラルネットワーク110は、畳み込みニューラルネットワークを含み得る。
【0039】
具体例として、畳み込みニューラルネットワークは、画像を処理して、入力画像を特徴付ける出力テンソルを生成するように構成されてよく、画像エンコーダニューラルネットワーク110は、出力テンソルを、画像埋込みベクトルの画像シーケンスにマップするように構成されてよい。つまり、ニューラルネットワーク110は、(i)畳み込みニューラルネットワークと、(ii)出力テンソルを画像シーケンスにマップする追加構成要素とを含み得る。たとえば、追加構成要素は、線形変換を適用して、出力テンソルをD*n個のチャネルに線形マップし、次いで、その結果を、各々が次元数Dをもつn個の埋込みのシーケンスとして成形し直すことができる。
【0040】
別の例として、画像エンコーダニューラルネットワーク110は、ビジョントランスフォーマニューラルネットワークであってよい。ビジョントランスフォーマとは、画像の複数の画像パッチを取得し、各画像パッチのそれぞれの埋込みを生成し、次いで、それぞれの埋込みを、1つまたは複数の自己注意層ブロック(たとえば、最終自己注意層ブロック以外の各自己注意層ブロックの出力が、シーケンスの後続自己注意層ブロックの入力となるようにシーケンスに並べられた)を使って更新するニューラルネットワークである。この例では、埋込みのシーケンスは、最終自己注意層ブロックによって生成されたパッチの一部または全部のための、更新された埋込みであってよい。
【0041】
言語モデルニューラルネットワーク120は、入力埋込みベクトルのシーケンスを入力として受信するように、および入力を処理して、テキストトークンの出力シーケンスを出力として生成するように構成されているニューラルネットワークである。
【0042】
各入力埋込みベクトルは、画像エンコーダニューラルネットワーク110によって生成される画像埋込みベクトルと同じ次元数を有する。
【0043】
後でより詳しく論じるように、言語モデルニューラルネットワーク120のトレーニング中、入力埋込みベクトルはテキストトークンを表し、トレーニングの後、およびマルチモーダルタスクを実施する間、入力埋込みベクトルのうちの少なくともいくつかは画像埋込みベクトルである。
【0044】
より詳細には、システム100はテキスト埋込み器も含むことができ、これは、トークンの語彙の中の各トークンを、入力埋込みと同じ次元数を有するそれぞれのテキスト埋込みに独立して変換する埋込み関数である。テキスト埋込みは、固定される、たとえば、事前に決定されてよく、または言語モデルニューラルネットワーク120のトレーニング中に学習されてもよい。
【0045】
語彙の中のトークンは、1つまたは複数の自然言語でのテキストの要素と、任意選択で、テキストのコーパスに見られる数および他のテキストシンボルとを表す、たとえば、単語、単語断片、句読点など、任意の適切なテキストトークンであってよい。たとえば、システムは、トークナイザ、たとえば、SentencePieceトークナイザまたは別のトークナイザを適用して、シーケンスを語彙からトークンに分割することによって、単語の所与のシーケンスをトークン化することができる。
【0046】
言語モデルニューラルネットワーク120は、(i)入力埋込みベクトルの入力シーケンスと、それに続く(ii)出力シーケンスの中で特定のテキストトークンに先行するいずれかのテキストトークンのテキスト埋込みベクトル(テキスト埋込み器によって生成された)とを含む現在の入力シーケンスを条件として、出力シーケンス中の各特定のテキストトークンを生成することによって、テキストトークンの出力シーケンスを自己回帰によって生成する自己回帰ニューラルネットワークであってよい。
【0047】
より詳細には、特定のテキストトークンを生成するために、ニューラルネットワーク120は、現在の入力シーケンスを処理して、それぞれのスコア、たとえば、それぞれの確率を、テキストトークンの語彙の中の各トークンに割り当てるスコア分布、たとえば、確率分布を生成することができる。ニューラルネットワーク120は次いで、スコア分布を使って、特定のテキストトークンとして、語彙からテキストトークンを選択することができる。たとえば、ニューラルネットワーク120は、最高スコアのトークンを貪欲に選択することもでき、たとえば、核サンプリングまたは別のサンプリング技法を使って、分布からトークンをサンプリングすることもできる。
【0048】
具体例として、トレーニングされた言語モデルニューラルネットワーク120は、自己注意動作を各々が適用する複数の層を含む、自己回帰トランスフォーマベースのニューラルネットワークであってよい。ニューラルネットワーク120は、様々なトランスフォーマベースのニューラルネットワークアーキテクチャのどれを有してもよい。そのようなアーキテクチャの例は、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 preprint 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 preprint arXiv:2005.14165、2020年に記載されているものを含む。
【0049】
任意選択で、言語モデルニューラルネットワーク120は、複数の層を使って入力シーケンス(または現在の入力シーケンス)を処理するのに先立って、入力シーケンス(または現在の入力シーケンス)に相対位置符号化を適用することができる。入力シーケンスに、相対位置符号化を適用することは、たとえば、どの自己注意動作を適用するのにも先立って、埋込みの位置についての情報を注入するために、入力シーケンスの埋込みの位置に基づいて、入力シーケンスの中の各埋込みを修正することを指す。たとえば、ニューラルネットワーク120は、各入力埋込みを、入力シーケンスの中の入力埋込みの位置に対応する位置埋込みと組み合わせる、たとえば、加える、または連結することができる。
【0050】
1つまたは複数のマルチモーダルタスクを実施するために画像エンコーダニューラルネットワーク110および言語モデルニューラルネットワーク120を使うのに先立って、ニューラルネットワーク110および120は、たとえば、システム100によって、1つもしくは複数の他のシステムによって、または部分的にシステム100によって、および部分的に1つもしくは複数の他のシステムによってトレーニングされる。
【0051】
具体的には、システム100または他のシステムのうちの1つが、言語モデリングタスク、たとえば、テキストトークンの現在のシーケンスを与えられると、トレーニングデータの中で現在のシーケンスに続く次のトークンを予測することを求めるタスクで、言語モデルニューラルネットワーク120を事前トレーニングする。具体例として、言語モデルニューラルネットワーク120は、テキスト、たとえば、インターネットまたは別のテキストコーパスから公に利用可能なテキストの大規模データセットに対する最尤関数で事前トレーニングされてよい。
【0052】
したがって、この事前トレーニング中、ニューラルネットワーク120の入力シーケンスは、語彙からのテキストトークンのテキスト埋込みのみを含む。
【0053】
事前トレーニングのために使われるテキストは、ラベル付けされる必要がないので、また、大量のラベルなしテキストが、たとえば、インターネットから、または他の大規模スケールのテキストコーパスにおいて容易に利用可能なので、言語モデルニューラルネットワーク120は、トレーニングデータの大きいセットで事前トレーニングされてよく、トレーニングされた言語モデルニューラルネットワーク120はしたがって、大量のテキストベースの知識を符号化することができる。
【0054】
言語モデルニューラルネットワーク120をトレーニングした後、システム100または別のシステムは、言語モデルニューラルネットワーク120を「凍結」させたまま、マルチモーダルタスク用のトレーニングデータで画像エンコーダニューラルネットワーク110をトレーニングする。つまり、このトレーニング中、画像エンコーダニューラルネットワーク110のパラメータは調節されるが、言語モデルニューラルネットワーク120のパラメータは固定されたままである。
【0055】
画像エンコーダニューラルネットワーク110のこのトレーニングについては、以下で
図2を参照してより詳しく説明する。
【0056】
トレーニングの後、マルチモーダルタスクを実施するために、システム100は、入力画像104を含む入力102を取得し、画像エンコーダニューラルネットワーク110を使って、入力画像104を処理する。
【0057】
上述したように、画像エンコーダニューラルネットワーク110は、入力画像104を処理して、入力画像104を特徴付ける画像埋込みベクトル112の画像シーケンスを生成するようにトレーニングされている。
【0058】
入力102が1つまたは複数の他の入力画像も含む場合、システム100は、画像エンコーダニューラルネットワーク110を使って、各他の入力画像も処理して、各他の入力画像についての画像埋込みベクトルのそれぞれのシーケンスを生成する。
【0059】
システム100は次いで、画像埋込みベクトル112の画像シーケンスを含む、入力埋込みベクトル114の入力シーケンスを生成する。
【0060】
具体的には、システム100が実施しているマルチモーダルタスクに依存して、入力シーケンスは、画像埋込みベクトル112の画像シーケンスのみを含んでもよく、あるいは(i)それぞれのテキストシーケンスを各々が表す、テキスト埋込みベクトルの1つもしくは複数のシーケンス、(ii)別の入力画像を各々が特徴付ける、画像埋込みベクトルの1つもしくは複数の他のシーケンス、または(iii)両方を含み得る。つまり、各入力埋込みベクトル114は、画像埋込みベクトル112と同じ次元数を有するが、いくつかのタスク用には、埋込みベクトル114は、画像埋込みベクトル112に加え、他のテキストまたは画像埋込みも含む。
【0061】
つまり、画像エンコーダニューラルネットワーク110が、単一のマルチモーダルタスク用にのみトレーニングされるとしても、システム100は、入力シーケンスを適切に生成することによって、トレーニング後に複数の異なるマルチモーダルタスクを実施することができる。
【0062】
システム100は、トレーニングされた言語モデルニューラルネットワーク120を使って、画像埋込みベクトル112の画像シーケンスを含む、入力埋込みベクトル114の入力シーケンスを処理して、ネットワーク出力152の少なくとも一部分として、入力埋込みベクトル114の入力シーケンスへのテキスト応答を表す、テキストトークン154の出力シーケンスを生成する。
【0063】
具体的には、上述したように、出力シーケンスの中の各テキストトークン154はテキストトークンの語彙から選択され、トレーニングされた言語モデルニューラルネットワーク120は、テキストトークンの語彙からのテキストトークンを表すテキスト埋込みベクトルのトレーニング用入力シーケンスに対して言語モデリングタスクを実施するようにトレーニングされている。そうすることによって、システム100は、言語モデル120を入力画像104の表現で効果的に条件づけ、画像埋込みベクトル112の画像シーケンスの中の各画像埋込みベクトル112は、テキストトークンの語彙からのテキストトークンを表すテキスト埋込みベクトルと同じ次元数を有する。
【0064】
したがって、言語モデルニューラルネットワーク110が、テキスト入力シーケンスでのみトレーニングされたとしても、推論時に、システム100は言語モデルニューラルネットワーク110を、マルチモーダルタスクを効果的に実施するために使う。
【0065】
図2は、画像エンコーダニューラルネットワーク110のトレーニングを示す。
【0066】
上述したように、言語モデルニューラルネットワーク120が言語モデリングタスクで事前トレーニングされた後、画像エンコーダニューラルネットワーク110は、マルチモーダルタスクでトレーニングされる。
【0067】
マルチモーダルタスク用のトレーニングデータは複数のトレーニング例を含み、各トレーニング例は、(i)1つまたは複数の画像を含む、タスク用のトレーニング入力と、(ii)トレーニング入力のためのグランドトゥルーステキスト、たとえば、トレーニング入力に対してマルチモーダルタスクを実施することによって生成されるべきテキストとを含む。
【0068】
たとえば、マルチモーダルタスクは、入力画像向けのテキストキャプションを生成することを求める画像キャプショニングタスクであってよく、各トレーニング入力は単一の画像を含むことができ、トレーニング入力用のグランドトゥルーステキストは、単一の画像向けのグランドトゥルーステキストキャプション(の少なくとも一部分)であってよい。
【0069】
具体的には、マルチモーダルタスクは、トレーニングされた言語モデルニューラルネットワーク120を使って、トレーニング画像202から画像エンコーダニューラルネットワーク110によって生成されたトレーニング画像埋込みベクトル206のシーケンスを含むトレーニング入力204を処理することによって、複数のテキストトークンを含むトレーニング出力テキストシーケンスを生成することを求める。マルチモーダルタスクが画像キャプショニングタスクであるとき、トレーニング出力シーケンスは、トレーニング画像202用のテキストキャプション(の少なくとも一部分)であってよい。
【0070】
画像エンコーダニューラルネットワーク110をマルチモーダルタスクでトレーニングするために、システムは、画像エンコーダニューラルネットワーク110のパラメータに関するマルチモーダルタスク用の損失関数の勾配を、トレーニングされた言語モデルニューラルネットワーク120を通して逆伝播する。画像エンコーダニューラルネットワーク110のパラメータは、重みと、いくつかの場合には、画像エンコーダニューラルネットワーク110の層のバイアス、たとえば、ネットワーク110中の任意の畳み込み層のカーネル、ネットワーク110中の任意の全結合層の重み行列などを含む。
【0071】
具体的には、システムは、複数のトレーニング反復の各々において、トレーニングデータ用のトレーニング例をサンプリングし、サンプリングされたトレーニング例を使って、たとえば、トレーニングされた言語モデルニューラルネットワーク120の中を逆伝播することによって、画像エンコーダニューラルネットワーク110のパラメータに関して、マルチモーダルタスクのための損失関数の勾配を計算することができる。システムは次いで、更新を生成するために、計算された勾配にオプティマイザを適用すること、および次いで、パラメータの現在の値に更新を追加するか、またはそこから更新を差し引くことによって、画像エンコーダニューラルネットワーク110のパラメータを更新することができる。
【0072】
具体例として、マルチモーダルタスクのための損失関数は、トレーニング入力を処理した結果として、トレーニングされた言語モデルニューラルネットワーク120によって生成されたテキストトークンの語彙の中のテキストトークンにわたるスコア分布によって、マルチモーダルタスクのためのグランドトゥルーステキスト出力の中でテキストトークンに割り当てられたそれぞれの尤度を測定することができる。
【0073】
たとえば、言語モデルニューラルネットワーク120が、上述したように自己回帰ニューラルネットワークであるとき、損失関数は、所与のトレーニング入力向けのグランドトゥルーステキスト出力の中の各特定のトークンについて、(i)所与のトレーニング入力、および(ii)グランドトゥルーステキスト出力の中の特定のトークンに先行する任意のトークン、の埋込みを含む入力シーケンスを処理することによってニューラルネットワーク120によって生成されたスコア分布によって特定のトークンに割り当てられた確率の負の対数を測定する、負の対数尤度損失であり得る。
【0074】
図2は、(i)トレーニング画像202と、(ii)トレーニング画像202用のキャプションの冒頭部分204とを含む、画像キャプショニングタスク用のトレーニング入力での、画像エンコーダニューラルネットワーク(「視覚エンコーダ」)110のトレーニングの例を示す。
【0075】
図2に示すように、システムは、(i)テキストトークンを受信し、テキストトークンの各々の、それぞれの埋込みを生成するテキスト埋込み器210と、(ii)言語モデルニューラルネットワーク120とを利用し、ネットワーク120は、
図2の例では、トランスフォーマベースのニューラルネットワーク、たとえば、上で、およびより詳しくは以下で説明するように、(因果的にマスクされた)自己注意を適用する1つまたは複数の自己注意層のセットを含むニューラルネットワークである。
【0076】
図2の例では、トレーニング画像202は赤いボートの画像であり、キャプションの冒頭部分204は「A small red boat」であり、タスクは、キャプションを完結する出力を生成するよう、たとえば、完結206「on the water」を生成するよう、ニューラルネットワーク120に求める。
【0077】
図2に示すように、システムは、画像エンコーダ110を使ってトレーニング画像202を処理して、2つの画像埋込み222を含む画像埋込みのシーケンスを生成する。
【0078】
システムは次いで、埋込み222および224と、それに続く、冒頭部分204のテキスト埋込みを含むトレーニング用入力シーケンスを処理して、完結206の中のトークンの各々についてのそれぞれの損失、たとえば、トークン「on」232、トークン「the」234、およびトークン「water」236についてのそれぞれの損失の組合せ、たとえば、合計である損失関数を評価する。
【0079】
所与のトークンについての損失はたとえば、(i)所与のトレーニング入力と、(ii)グランドトゥルーステキスト出力の中の所与のトークンに先行する任意のトークンとの埋込みを含む入力シーケンスを処理することによって、ニューラルネットワーク120によって生成されたスコア分布によって所与のトークンに割り当てられた確率の負の対数であり得る。
【0080】
システムは次いで、画像埋込み222および224の各々に関してそれぞれの勾配を計算するために言語モデルニューラルネットワーク120(およびテキスト埋込み器210)を凍結させたまま、言語モデルニューラルネットワーク120を通して損失を逆伝播する。システムは次いで、画像エンコーダニューラルネットワーク110を通して勾配を逆伝播して、ニューラルネットワーク110のパラメータに関して勾配を判断することができる。
【0081】
したがって、
図2に示すように、トレーニングされた言語モデルニューラルネットワーク120は、マルチモーダルタスクのための損失関数での、画像エンコーダニューラルネットワーク110のトレーニング中はトレーニングされず(テキスト埋込み器210もトレーニングされない)、システムは、言語モデルニューラルネットワーク120のパラメータを調節せずに、損失関数の勾配を、トレーニングされた言語モデルニューラルネットワーク120を通して、および画像エンコーダニューラルネットワーク110の中へ逆伝播する。
【0082】
図2の例は単一のトレーニング例のための処理を示すが、実際には、システムは、所与のトレーニングステップにおいて、複数のトレーニング例を並行して処理することができ、トレーニングステップのために計算される全体的勾配は、トレーニング例の各々についてのそれぞれの勾配の合計であり得る。
【0083】
トークンは、上述したように、
図2では単語として示されるが、トークンは、たとえば、単語、単語断片、句読点など、どの適切なテキストトークンであってもよい。たとえば、システムは、トークナイザ、たとえば、SentencePieceトークナイザまたは別のトークナイザを適用して、シーケンスを語彙からトークンに分割することによって、単語の所与のシーケンスをトークン化することができる。
【0084】
図3は、マルチモーダルタスクを実施するための例示的プロセス300の流れ図である。便宜上、プロセス300は、1つまたは複数の場所にある1つまたは複数のコンピュータからなるシステムによって実施されるものとして記載される。たとえば、本明細書に従って適切にプログラムされたマルチモーダルシステム、たとえば、
図1に示すマルチモーダルシステム100が、プロセス300を実施することができる。
【0085】
システムは、入力画像を取得する(ステップ302)。
【0086】
システムは、入力画像を処理するようにトレーニングされている画像エンコーダニューラルネットワークを使って入力画像を処理して、入力画像を特徴付ける画像埋込みベクトルの画像シーケンスを生成する(ステップ304)。
【0087】
システムは、画像埋込みベクトルの画像シーケンスを含む、入力埋込みベクトルの入力シーケンスを生成する(ステップ306)。
【0088】
システムが入力シーケンスを生成するやり方は、システムが実施しているマルチモーダルタスクに依存する。
【0089】
概して、少なくともいくつかのタスク向けに、画像埋込みベクトルの画像シーケンスに加え、入力シーケンスは、テキスト埋込みベクトルの、1つまたは複数の「プロンプト」シーケンスをも含むことができる。テキスト埋込みベクトルのプロンプトシーケンスは、出力シーケンスによるテキスト応答によって実施されるべきタスクを記述する、たとえば、画像埋込みベクトルを使って、どのようなタスクが実施されるべきかについての情報を言語モデルニューラルネットワークに提供するテキストシーケンスを表す。
【0090】
たとえば、画像キャプショニングタスクまたは単一の画像に対して作用する他のマルチモーダルタスク向けに、入力シーケンスは、(i)画像埋込みベクトルの画像シーケンスのみ、または(ii)出力シーケンスによって表されるテキスト応答によって実施されるべきタスクを記述するテキストシーケンスを表す、テキスト埋込みベクトルの「プロンプト」シーケンスがその後に続くか、もしくはそれが先行する、画像埋込みベクトルの画像シーケンス、を含み得る。画像キャプショニングタスクの例では、プロンプトシーケンスは、たとえば、「Caption this」または「Caption:」を表すことができる。
【0091】
別の例として、画像キャプション完結タスク、視覚的質問回答タスクまたは単一の画像およびその画像に関連したテキストに対して作用する他のマルチモーダルタスク向けに、入力シーケンスは、(i)画像埋込みベクトルの画像シーケンス、および画像に関連したテキストシーケンスのテキスト埋込みのみ、または(ii)画像埋込みベクトルの画像シーケンス、および出力シーケンスによって表されるテキスト応答によって実施されるべきタスクを記述するテキストシーケンスを表す、テキスト埋込みベクトルの1つもしくは複数の「プロンプト」シーケンスがその後に続き、それが先行し、もしくは両方である、画像に関連したテキストシーケンスのテキスト埋込み、を含み得る。視覚的質問回答タスクの例では、テキスト埋込みには、「Q:」または「Question」を表す第1のプロンプトシーケンスが先行してよく、たとえば、「A:」または「Answer:」を表す第2のプロンプトシーケンスが続いてよい。
【0092】
他のマルチモーダルタスクおよびそれらのタスクのための入力シーケンスの例について、
図4~
図6を参照して以下で説明する。
【0093】
システムは、トレーニングされた言語モデルニューラルネットワークを使って、入力埋込みベクトルの入力シーケンスを処理して、入力埋込みベクトルの入力シーケンスへのテキスト応答を表す、テキストトークンの出力シーケンスを出力として生成する(ステップ308)。
【0094】
図4は、視覚的質問回答タスクを実施するのに使われる画像エンコーダニューラルネットワーク110および言語モデルニューラルネットワーク120の例を示す。
【0095】
視覚的質問回答タスクでは、入力埋込みベクトルの入力シーケンスは、入力画像用の画像埋込みベクトルの画像シーケンスと、入力画像についての質問を表す、テキスト埋込みベクトルのシーケンスとを含み、テキストトークンの出力シーケンスは、入力画像についての質問への予測テキスト回答を表す。
【0096】
図4の例では、システムは、車の画像と、画像についての質問(「what colour is the car?」)とを受信する。システムは次いで、受信された画像の画像埋込みベクトルの画像シーケンスと、入力画像についての質問を表す、テキスト埋込みベクトルのシーケンスとを含む入力シーケンスを生成する。
図4の例では、入力シーケンスは、どのようなタスクが実施されているかについての情報をニューラルネットワーク120に与える2つのプロンプトシーケンスも含み、そうすることによって、たとえば、テキスト埋込みベクトルの全体的シーケンスは、テキスト「Question: What colour is the car? Answer:」の埋込みを含む。
【0097】
システムは次いで、入力シーケンスを処理して、入力画像についての質問への予測テキスト回答(「Blue」)を表す、テキストトークンの出力シーケンスを生成する。
図4の例では、出力シーケンスは、出力がユーザに与えられる前に削除することができる、指定されたシーケンス終了(「EOS」)トークンも含む。
【0098】
図5は、kショット外部知識視覚的質問回答タスクを実施するのに使われる画像エンコーダニューラルネットワーク110および言語モデルニューラルネットワーク120の例を示す。
図5の例では、kは1に等しいが、より全般的には、kは、任意の正の整数、たとえば、1以上の任意の整数に等しくてよい。
【0099】
このタスクでは、入力埋込みベクトルの入力シーケンスは、入力画像の埋込みに加え、(i)それぞれの追加入力画像を各々が特徴付ける、画像埋込みベクトルのk個の他のシーケンスと、(ii)画像埋込みベクトルの各他のシーケンスに対して、画像埋込みベクトルの他のシーケンスによって特徴付けられる追加画像について尋ねられたときの質問への回答を表す、テキスト埋込みベクトルのそれぞれのシーケンスとを含む。
【0100】
図5の例では、入力シーケンスは、飛行機の画像の埋込みと、画像についての質問および回答、たとえば、「Q: Who invented this? A: The Wright brothers.」を表すテキストシーケンスの埋込みとを含む。入力シーケンスはまた、入力画像、たとえば、モバイルフォンの画像と、入力画像についての質問「Q: Who invented this? A:」を表すテキストシーケンスとを含む。
【0101】
システムは、入力シーケンスを処理して、入力画像について尋ねられたときの質問への予測回答を表すテキストトークンの出力シーケンスを生成する。
図5の例では、回答は「Steve Jobs」である。
【0102】
図5の例では、出力シーケンスは、出力がユーザに与えられる前に削除することができる、指定されたシーケンス終了(「EOS」)トークンも含む。
【0103】
代替として、質問および回答としてのタスクを提示するのではなく、システムは、コンテキストテキストシーケンスを、ステートメント、たとえば、「This was invented by the Wright brothers」として提示することができ、質問を表すテキストシーケンスは、不完全なステートメント、たとえば、ニューラルネットワークの出力によって完結されるべき必要がある「This was invented by」として提示され得る。
【0104】
図5におけるタスクは、「外部知識」タスクと呼ばれるが、それは、質問への回答が画像には示されず、タスクはしたがって、正しい回答を判断するための、事前トレーニングの結果として符号化された情報を使うように、言語モデルニューラルネットワーク120に求めるからである。
【0105】
図6は、kショット画像分類タスクを実施するのに使われる画像エンコーダニューラルネットワーク110および言語モデルニューラルネットワーク120の例を示す。
図6の例では、kは2に等しいが、より全般的には、kは、任意の正の整数、たとえば、1以上の任意の整数に等しくてよい。
【0106】
このタスクでは、入力埋込みベクトルの入力シーケンスは、入力画像の埋込みに加え、(i)それぞれの追加入力画像を各々が特徴付ける、画像埋込みベクトルのk個の他のシーケンスと、(ii)画像埋込みベクトルの各他のシーケンスに対して、他の画像についてのテキスト分類(「テキストラベル」)を表す、テキスト埋込みベクトルのそれぞれのシーケンスとを含む。
【0107】
図6の例では、入力シーケンスは、第1の果物の第1の画像、およびその第1の画像についてのラベルの埋込み(「This is a dax.」)と、第2の果物の第2の画像、およびその第2の画像についてのラベルの埋込み(「This is a blicket.」)とを含む。入力シーケンスはまた、入力画像、たとえば、第3の果物の画像と、分類タスクについてのプロンプトテキストシーケンス「Question: What is this? Answer:」とを含む。
【0108】
システムは、入力シーケンスを処理して、入力画像についての予測分類を表す、テキストトークンの出力シーケンスを生成する。
図6の例では、回答は「This is a dax.」である。
【0109】
図6の例では、出力シーケンスは、出力がユーザに与えられる前に削除することができる、指定されたシーケンス終了(「EOS」)トークンも含む。
【0110】
より全般的には、
図6の例における分類タスクは、1つまたは複数の追加画像についての特定のタイプの情報を提供し、入力画像についての同じタイプの情報を提供するよう、ニューラルネットワークに求めるタスクとしてフレーム化されてよい。
【0111】
つまり、こうしたタイプのタスク向けに、入力埋込みベクトルの入力シーケンスは、(i)それぞれの追加入力画像を各々が特徴付ける、画像埋込みベクトルの1つまたは複数の他のシーケンスと、(ii)画像埋込みベクトルの各他のシーケンスに対して、画像埋込みベクトルの他のシーケンスによって特徴付けられる追加画像についての特定のタイプの情報を提供する、テキスト埋込みベクトルのそれぞれのシーケンスと、(iii)画像埋込みベクトルの画像シーケンスに対して、入力画像についての特定のタイプの情報を提供するためのテキストプロンプトを表す、テキスト埋込みの部分的シーケンスとを含む。出力シーケンスは、次いで、入力画像についての特定のタイプの情報を提供するテキストプロンプトの予測完結を表す。
【0112】
図4~
図6はマルチモーダルタスクの例を示すが、これらは、システムが、こうしたタイプのタスク用のトレーニングデータで画像エンコーダまたは言語モデルニューラルネットワークをトレーニングし直す必要なしで実施することができる、様々なタイプのフューショットまたはゼロショットのマルチモーダルタスクの例にすぎない。
【0113】
図1のマルチモーダルシステム100には、いくつかの技術的適用例がある。たとえば、入力102の画像104は、カメラによって取り込まれた現実世界の画像であってよく、テキストデータ154は、現実世界を記述するテキストであってよい。具体的には、テキスト154は、入力102の中に含まれるテキストによって提示される、現実世界についての質問に回答してよい。したがって、マルチモーダルシステム100の1つの技術的適用例は、視覚障害のあるユーザによって、画像104についての情報を取得するために使われることである。たとえば、マルチモーダルシステム100は、(たとえば、コンピュータシステムのカメラを使って)画像104を取得するコンピュータシステムの一部であってよい。ユーザは、(たとえば、データ入力デバイスを制御することによって、またはコンピュータシステムによってテキストにコンバートされるコマンド、たとえば、文字列または音素を表すトークンを話すことによって)入力102のテキストを供給することができる。マルチモーダルシステム100は次いで、出力テキスト154を、たとえば、スピーカデバイスによってユーザにブロードキャストされる音信号にコンバートされるトークン列として生成することができる。このコンピュータシステムの有用な特徴は、その柔軟性であり、というのは、ユーザは、クエリ処理システムが画像104から抽出するべき情報を自由に定義してよいからである。
【0114】
任意選択で、コンピュータシステムは、ユーザに、各々が同じ画像104を含むが、それぞれのテキストが異なる、ひと続きの複数の入力102を生成させるように構成されてよい。たとえば、第1の入力102のテキストは、「What is shown in the picture?」であってよい。クエリ処理システムが、第1の入力102に応答して、対応する出力テキスト154(たとえば、「A bus」)を生成した場合、人は、同じ画像104を含むとともに新たなテキスト(たとえば、「What destination is on the front of the bus?」)をもつ第2の入力102を定義することが可能であってよい。
【0115】
任意選択で、ひと続きの入力102の中の各入力102は、ひと続きの第1の入力102を除いて、ひと続きの中の前の入力102のうちの1つまたは複数からの、入力テキストおよび出力テキスト154を含み得る。このようにして、人は、画像104(通常、ひと続きの中の入力102すべてに含まれる)についてのマルチモーダルシステム100との明快な議論に関わってよく、各段階において、マルチモーダルシステム100は、議論の初期部の合理的継続である出力テキスト154を生成する。
【0116】
マルチモーダルシステム100の別の技術的適用例は、画像104のためのキャプショニングシステムである。入力102のテキストは、「何が起きているかを説明するキャプションを提供する」などの画像処理タスクを定義してよく、この場合、出力テキスト154は、画像104の中で示されるイベントまたはアクションを記述するキャプションを含んでよい。
【0117】
別の技術的適用例では、画像104はテキストを含み、コンピュータシステムは、画像104からテキストを抽出して、入力102の中の何らかのテキストの少なくとも一部を生成するためのOCR(光学式文字認識)システムを含んでもよい。たとえば、画像104が、命令をもつ標識を含むシーンの画像である(たとえば、画像が、テキストを含む道路標識を含む道路の画像であり得る)場合、OCRは、画像の中の命令に基づいて入力102のテキストを生成してよい。この場合、出力テキスト154は、シーンの残りを与えられると、命令の重要度を示し得る(たとえば、空き駐車場の画像である画像104、およびこの時点で駐車が可能であることを示す標識の場合、出力テキスト154は、「Please park here」であってよい)。
【0118】
別の技術的適用例では、入力102は、コンピュータシステムのプロセッサによって実行可能なコードを、出力テキスト154として生成するよう、マルチモーダルシステム100に命令し得る。たとえば、入力102は、「実行されると、画像の中に示されるオブジェクトのビデオ画像を生成するHTMLコードを生成せよ」というテキストを含み得る。
【0119】
自己注意層とは、上で言及されたように、自己注意層入力(または層入力から導出された入力)に対して作用して、自己注意層出力を生成する注意機構を含むニューラルネットワーク層である。自己注意機構は、入力シーケンスの中の任意の所与の位置が、入力シーケンスの中のその所与の位置の後の位置にはいずれも注意を払わない(たとえば、そこからのデータを使わない)ように因果的にマスクされ得る。多くの異なる可能な注意機構がある。注意機構を含む自己注意層のいくつかの例が、Vaswaniら、「Attention is all you need」、31st Conference on Neural Information Processing Systems (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 preprint 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 preprint arXiv:2005.14165、2020年に記載されている。
【0120】
概して、注意機構は、クエリおよび鍵と値のペアのセットを出力にマップし、クエリ、鍵、および値はすべてベクトルである。出力は、値の加重和として計算され、各値に割り当てられた重みは、クエリと対応する鍵の互換性関数、たとえば、ドット積またはスケーリングされたドット積によって計算される。
【0121】
概して、自己注意機構は、同じシーケンスの中の異なる位置を関連させて、シーケンスの変換バージョンを出力として判断するように構成される。たとえば、注意層入力は、入力シーケンスの各要素についてのベクトルを含み得る。これらのベクトルは、自己注意機構に入力を与え、自己注意機構によって、注意層出力のための同じシーケンスの新たな表現を判断するのに使われ、出力は同様に、入力シーケンスの各要素についてのベクトルを含む。自己注意機構の出力は、注意層出力として使われてよく、またはフィードフォワード層、スキップ接続、もしくは正規化演算のうちの1つもしくは複数によって、注意層出力を与えるように処理されてよい。
【0122】
いくつかの実装形態では、注意機構は、たとえば、行列WQによって定義されるクエリ変換、たとえば、行列WKによって定義される鍵変換、およびたとえば、行列WVによって定義される値変換の各々を、注意層への入力データXである注意層入力に適用して、入力シーケンスの中の各ベクトルについてのそれぞれのクエリを含むクエリ行列Q=XWQ、入力シーケンスの中の各ベクトルについてのそれぞれの鍵を含む鍵行列K=XWK、および入力シーケンスの中の各ベクトルについてのそれぞれの値を含む値行列V=XWVを導出するように構成され、これらは、出力用の注意シーケンスを判断するのに使われる。たとえば、注意機構は、各鍵ベクトルに各クエリベクトルを適用して、各値ベクトルについてのそれぞれの重みを判断し、次いで、それぞれの重みを使って値ベクトルを組み合わせて、入力シーケンスの各要素向けの自己注意層出力を判断することによって適用されるドット積注意機構であってよい。自己注意層出力は、スケーリングされたドット積注意を実装するために、スケーリング因子によって、たとえば、クエリおよび鍵の次元の平方根によってスケーリングされ得る。したがって、たとえば、注意機構の出力は、
【0123】
【0124】
として判断されてよく、ここでdは、鍵(および値)ベクトルの次元である。別の実装形態では、注意機構は、隠れ層をもつフィードフォワードネットワークを使って互換性関数を計算する「加法注意」機構を含んでよい。注意機構の出力は、1つまたは複数の全結合された、フィードフォワードニューラルネットワーク層によってさらに処理されてよい。
【0125】
注意機構は、多重ヘッド注意を実装してよく、つまり、複数の異なる注意機構を並行して適用してよい。これらの機構の出力は次いで、必要な場合は元の次元数を削減するために適用される、学習された線形変換と組み合わされる、たとえば、連結されてよい。
【0126】
本明細書は、「構成される」という用語を、システムおよびコンピュータプログラム構成要素との関連で使っている。1つまたは複数のコンピュータからなるシステムが特定の動作またはアクションを実施するように構成されることは、システムが、動作の際にシステムに動作またはアクションを実施させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをインストールしたことを意味する。1つまたは複数のコンピュータプログラムが、特定の動作またはアクションを実施するように構成されることは、1つまたは複数のプログラムが、データ処理装置によって実行されると、装置に動作またはアクションを実施させる命令を含むことを意味する。
【0127】
本明細書に記載する主題および機能的動作の実施形態は、デジタル電子回路機構で、または有形に実施されるコンピュータソフトウェアもしくはファームウェアで、本明細書において開示した構造およびそれらの構造的等価物を含むコンピュータハードウェアで、またはそれらのうちの1つもしくは複数の、組合せで実装することができる。本明細書において説明される主題の実施形態は、1つまたは複数のコンピュータプログラムとして、たとえば、データ処理装置によって実行するか、またはデータ処理装置の動作を制御するための、有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして、実装することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つもしくは複数の、組合せであってよい。代替または追加として、プログラム命令は、データ処理装置による実行のために、適切な受信機装置への送信用の情報を符号化するように生成される、人工的に生成された伝搬信号、たとえば、機械生成された電気、光学、または電磁信号上で符号化されてよい。
【0128】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラム可能プロセッサ、1つのコンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するための、あらゆる種類の装置、デバイス、および機械を包含する。装置は、特殊目的論理回路機構、たとえば、FPGA(フィールドプログラム可能ゲートアレイ)またはASIC(特定用途向け集積回路)であるか、またはそれらをさらに含んでもよい。装置は、任意選択で、ハードウェアに加え、コンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つもしくは複数の、組合せを構成するコードを含むことができる。
【0129】
コンピュータプログラムは、プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるか、またはそれらとして書かれる場合もあり、コンパイル型もしくはインタープリタ型言語、または宣言型もしくは手続き型言語を含む、どの形のプログラミング言語で書かれてもよく、スタンドアロンプログラムとして、またはモジュール、構成要素、サブルーチン、もしくはコンピューティング環境における使用に適した他の単位として、を含む、どの形でも展開することができる。プログラムが、ファイルシステム内のファイルに対応してよいが、そうである必要はない。プログラムは、他のプログラムもしくはデータ、たとえば、マークアップ言語ドキュメントに記憶された1つもしくは複数のスクリプトを保持するファイル部分に、問題になっているプログラムに専用の単一のファイルに、または複数の協調ファイル、たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの部分を記憶するファイルに記憶することができる。コンピュータプログラムは、1つの場所に位置する1つのコンピュータ上または複数のコンピュータ上で実行されるように展開されても、複数の場所に分布され、データ通信ネットワークによって相互接続されてもよい。
【0130】
本明細書では、「データベース」という用語は、データのどの集合体も指すように広く使われるが、データは、どの特定のやり方で構造化される必要も、またはまったく構造化される必要もなく、1つまたは複数の場所にある記憶デバイス上に記憶することができる。したがって、たとえば、インデックスデータベースは、異なるやり方で各々が編成されアクセスされ得る、データの複数の集合体を含み得る。
【0131】
同様に、本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実施するようにプログラムされる、ソフトウェアベースのシステム、サブシステム、またはプロセスを指すように広く使われる。概して、エンジンは、1つまたは複数のソフトウェアモジュールまたは構成要素として実装され、1つまたは複数の場所にある1つまたは複数のコンピュータ上にインストールされることになる。いくつかのケースでは、1つまたは複数のコンピュータは、特定のエンジンに専用となり、他のケースでは、複数のエンジンが、同じコンピュータまたは複数のコンピュータ上でインストールされ、稼動中であることが可能である。
【0132】
本明細書に記載したプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって機能を実施するための1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能コンピュータによって実施され得る。プロセスおよび論理フローは、特殊目的論理回路機構、たとえば、FPGA、もしくはASICによって、または特殊目的論理回路機構と1つもしくは複数のプログラムされたコンピュータの組合せによって実施されてもよい。
【0133】
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは特殊目的マイクロプロセッサもしくは両方、またはどの他の種類の中央処理ユニットに基づいてもよい。概して、中央処理ユニットは、読取り専用メモリもしくはランダムアクセスメモリまたは両方から、命令およびデータを受信することになる。コンピュータの本質的要素は、命令を実施または実行するための中央処理ユニット、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理ユニットおよびメモリは、特殊目的論理回路要素によって補完することも、その中に組み込むこともできる。概して、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気、光磁気ディスク、または光ディスクも含み、あるいは大容量記憶デバイスからデータを受信し、もしくはデータを転送し、または両方を行うように大容量記憶デバイスに動作可能に結合される。ただし、コンピュータは、そのようなデバイスを有する必要はない。その上、コンピュータは、別のデバイス、たとえば、ほんのいくつかの例を挙げれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶デバイス、たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブに組み込むことができる。
【0134】
コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスと、磁気ディスク、たとえば、内部ハードディスクまたは取外し可能ディスクと、光磁気ディスクと、CD ROMおよびDVD-ROMディスクとを含む、あらゆる形の不揮発性メモリ、媒体およびメモリデバイスを含む。
【0135】
ユーザとの対話を提供するために、本明細書に記載される主題の実施形態は、ユーザに情報を表示するための、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタなどのディスプレイデバイス、ならびにキーボードおよび、ユーザがコンピュータに入力を提供することができる、たとえば、マウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもでき、たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形で受信することができる。さらに、コンピュータは、ユーザによって使われるデバイスへドキュメントを送信し、デバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのデバイス上のウェブブラウザへウェブページを送信することによってユーザと対話することができる。また、コンピュータは、パーソナルデバイス、たとえば、メッセージングアプリケーションを稼動しているスマートフォンにテキストメッセージまたは他の形のメッセージを送信し、ユーザから引き換えに応答メッセージを受信することによって、ユーザと対話することができる。
【0136】
機械学習モデルを実装するためのデータ処理装置は、たとえば、機械学習トレーニングまたは生産、すなわち、推論、作業負荷の共通および数値計算部分を処理するための特殊目的ハードウェアアクセラレータユニットも含むことができる。
【0137】
機械学習モデルは、機械学習フレームワーク、たとえば、TensorFlowフレームワークを使って実装し、展開することができる。
【0138】
本明細書に記載する主題の実施形態は、バックエンド構成要素を、たとえば、データサーバとして含む、もしくはミドルウェア構成要素、たとえば、アプリケーションサーバを含む、もしくはフロントエンド構成要素、たとえば、本明細書に記載する主題の実装形態とユーザが対話し得るためのグラフィカルユーザインターフェースもしくはウェブブラウザ、またはアプリを有するクライアントコンピュータ、または1つもしくは複数のそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素のどの組合せも含むコンピューティングシステムで実装することができる。システムの構成要素は、どの形または媒体のデジタルデータ通信、たとえば、通信ネットワークによっても相互接続されることが可能である。通信ネットワークの例には、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、たとえば、インターネットがある。
【0139】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントとサーバは概して、互いから離れており、通常、通信ネットワークを通して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で稼動するとともに互いとのクライアントサーバ関係を有するコンピュータプログラムにより発生する。いくつかの実施形態では、サーバが、データ、たとえば、HTMLページを、ユーザデバイスへ、たとえば、クライアントとして作用するデバイスと対話するユーザにデータを表示し、ユーザからユーザ入力を受信する目的のために送信する。ユーザデバイスにおいて生成されたデータ、たとえば、ユーザ対話の結果が、デバイスからサーバにおいて受信され得る。
【0140】
本明細書は、多くの具体的な実装形態詳細を含むが、これらは、任意の発明の範囲において、または特許請求され得るものの範囲において、限定と解釈されるべきではなく、特定の発明の特定の実施形態に特有であり得る特徴の記述として解釈されるべきである。また、別個の実施形態の文脈において本明細書で説明したいくつかの特徴は、単一の実施形態において組み合わせて実装することができる。逆に、単一の実施形態の文脈において記載される様々な特徴はまた、複数の実施形態において別々に、またはどの適切な部分組合せでも実装することができる。さらに、特徴は、いくつかの組合せで働くものとして上記で説明され、初めにそのように請求される場合さえあるが、請求項からの1つまたは複数の特徴は、場合によってはその組合せから削除することができ、請求される組合せは、部分組合せ、または部分組合せの変形形態を対象とすることができる。
【0141】
同様に、動作は、特定の順序において図面に示され、請求項に具陳されているが、これは、そのような動作が図示された特定の順序において、もしくは順次に実施されることを必要とするか、または、所望の結果を達成するためにすべての示された動作が実施されることを必要とするものと理解されるべきではない。いくつかの状況では、マルチタスキングおよび並列処理が有利であり得る。その上、上述した実施形態における様々なシステムモジュールおよび構成要素の分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではなく、記載したプログラム構成要素およびシステムは概して、単一のソフトウェア製品に一緒に統合されるか、または複数のソフトウェア製品にパッケージングされることが可能であることを理解されたい。
【0142】
本主題の特定の実施形態について記載した。他の実施形態は、以下の特許請求の範囲内である。たとえば、請求項に具陳されるアクションは、異なる順序で実施され、依然として望ましい結果を達成することができる。一例として、添付の図面に示されるプロセスは、望ましい結果を達成するのに、図示される特定の順序、または順番を必ずしも求めない。いくつかのケースでは、マルチタスキングおよび並列処理が有利な場合がある。
【符号の説明】
【0143】
100 マルチモーダルシステム、システム
110 画像エンコーダニューラルネットワーク、ニューラルネットワーク、視覚エンコーダ、画像エンコーダ
120 言語モデルニューラルネットワーク、ニューラルネットワーク、言語モデル
210 テキスト埋込み器
【手続補正書】
【提出日】2023-12-08
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
1つまたは複数のコンピュータによって実施される方法であって、
入力画像を取得するステップと、
前記入力画像を処理するようにトレーニングされている画像エンコーダニューラルネットワークを使って前記入力画像を処理して、前記入力画像を特徴付ける画像埋込みベクトルの画像シーケンスを生成するステップと、
前記画像埋込みベクトルの画像シーケンスを含む、入力埋込みベクトルの入力シーケンスを生成するステップと、
トレーニングされた言語モデルニューラルネットワークを使って、前記画像埋込みベクトルの画像シーケンスを含む、前記入力埋込みベクトルの入力シーケンスを処理して、前記入力埋込みベクトルの入力シーケンスへのテキスト応答を表す、テキストトークンの出力シーケンスを出力として生成するステップであって、
前記出力シーケンス中の各テキストトークンは、テキストトークンの語彙から選択され、
前記トレーニングされた言語モデルニューラルネットワークは、前記テキストトークンの語彙からのテキストトークンを表す、テキスト埋込みベクトルのトレーニング用入力シーケンスに対して言語モデリングタスクを実施するようにトレーニングされており、
前記画像埋込みベクトルの画像シーケンス中の各画像埋込みベクトルは、前記テキストトークンの語彙からの前記テキストトークンを表す前記テキスト埋込みベクトルと同じ次元数を有する、ステップとを含む方法。
【請求項2】
前記画像エンコーダニューラルネットワークは、前記トレーニングされた言語モデルニューラルネットワークを通して、前記画像エンコーダニューラルネットワークのパラメータに関する損失関数の勾配を逆伝播することによってトレーニングされており、
前記損失関数は、前記トレーニングされた言語モデルニューラルネットワークを使って、トレーニング画像から前記画像エンコーダニューラルネットワークによって生成されたトレーニング画像埋込みベクトルのシーケンスを含むトレーニング入力を処理することによって、複数のテキストトークンを含むトレーニング出力テキストシーケンスを生成することを求めるマルチモーダルタスクのための損失関数である、請求項1に記載の方法。
【請求項3】
前記マルチモーダルタスクは画像キャプショニングタスクであり、前記トレーニング出力テキストシーケンスは、前記トレーニング画像用のテキストキャプションの少なくとも一部分である、請求項2に記載の方法。
【請求項4】
前記トレーニングされた言語モデルニューラルネットワークは、前記マルチモーダルタスクのための前記損失関数での、前記画像エンコーダニューラルネットワークの前記トレーニング中はトレーニングされず、
前記画像エンコーダニューラルネットワークの前記トレーニングは、前記言語モデルニューラルネットワークのパラメータを調節せずに、前記損失関数の前記勾配を、前記トレーニングされた言語モデルニューラルネットワークを通して、および前記画像エンコーダニューラルネットワークの中へ逆伝播することを含む、請求項2または請求項3に記載の方法。
【請求項5】
前記損失関数は、前記トレーニング入力を処理した結果として、前記トレーニングされた言語モデルニューラルネットワークによって生成された前記テキストトークンの語彙の中の前記テキストトークンにわたるスコア分布によって前記マルチモーダルタスク用のグランドトゥルーステキスト出力の中のテキストトークンに割り当てられたそれぞれの尤度を測定する、請求項2から4のいずれか一項に記載の方法。
【請求項6】
前記トレーニングされた言語モデルニューラルネットワークは、前記マルチモーダルタスクのための前記損失関数での、前記画像エンコーダニューラルネットワークの前記トレーニングに先立って、前記言語モデリングタスクでトレーニングされている、請求項2から5のいずれか一項に記載の方法。
【請求項7】
前記言語モデルニューラルネットワークは、(i)前記出力シーケンス中の各特定のテキストトークンに先行するいずれかのテキストトークンのテキスト埋込みベクトルが後に続く、前記入力埋込みベクトルの入力シーケンス、を含む現在の入力シーケンスを条件とした、前記出力シーケンス中の前記各特定のテキストトークンを生成することによって、前記テキストトークンの出力シーケンスを自己回帰によって生成する自己回帰ニューラルネットワークである、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記トレーニングされた言語モデルニューラルネットワークは、自己注意動作を各々が適用する複数の層を含む自己回帰トランスフォーマベースのニューラルネットワークである、請求項7に記載の方法。
【請求項9】
前記トレーニングされた言語モデルニューラルネットワークは、前記複数の層を使って前記入力シーケンスを処理するのに先立って、前記入力シーケンスに相対位置符号化を適用するように構成される、請求項8に記載の方法。
【請求項10】
前記画像エンコーダニューラルネットワークは畳み込みニューラルネットワークを含む、請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記畳み込みニューラルネットワークは、前記入力画像を処理して、前記入力画像を特徴付ける出力テンソルを生成するように構成され、前記画像エンコーダニューラルネットワークは、前記出力テンソルを、前記画像埋込みベクトルの画像シーケンスにマップするように構成される、請求項10に記載の方法。
【請求項12】
前記テキストトークンの出力シーケンスは、前記入力画像用の予測テキストキャプションの少なくとも一部分を表す、請求項1から11のいずれか一項に記載の方法。
【請求項13】
前記入力埋込みベクトルの入力シーケンスは、(i)それぞれのテキストシーケンスを各々が表す、テキスト埋込みベクトルの1つもしくは複数のシーケンス、(ii)別の入力画像を各々が特徴付ける、画像埋込みベクトルの1つもしくは複数の他のシーケンス、または(iii)両方も含む、請求項1から12のいずれか一項に記載の方法。
【請求項14】
前記入力埋込みベクトルの入力シーケンスは、前記画像埋込みベクトルの画像シーケンスと、前記入力画像についての質問を表す、テキスト埋込みベクトルのシーケンスとを含み、前記テキストトークンの出力シーケンスは、前記入力画像についての前記質問への予測テキスト回答を表す、請求項13に記載の方法。
【請求項15】
前記入力埋込みベクトルの入力シーケンスは、(i)画像埋込みベクトルの1つまたは複数の他のシーケンスと、(ii)画像埋込みベクトルの各他のシーケンスに対して、前記画像埋込みベクトルの他のシーケンスによって特徴付けられる前記他の画像についての分類を表す、テキスト埋込みベクトルのそれぞれのシーケンスとを含み、前記テキストトークンの出力シーケンスは、前記入力画像についての予測分類を表す、請求項13に記載の方法。
【請求項16】
前記入力埋込みベクトルの入力シーケンスは、(i)それぞれの追加入力画像を各々が特徴付ける、画像埋込みベクトルの1つまたは複数の他のシーケンスと、(ii)画像埋込みベクトルの各他のシーケンスに対して、前記画像埋込みベクトルの他のシーケンスによって特徴付けられる前記追加
入力画像について尋ねられたときの質問への回答を表す、テキスト埋込みベクトルのそれぞれのシーケンスとを含み、前記テキストトークンの出力シーケンスは、前記入力画像について尋ねられたときの前記質問への予測回答を表す、請求項13に記載の方法。
【請求項17】
前記入力埋込みベクトルの入力シーケンスは、(i)それぞれの追加入力画像を各々が特徴付ける、画像埋込みベクトルの1つまたは複数の他のシーケンスと、(ii)画像埋込みベクトルの各他のシーケンスに対して、前記画像埋込みベクトルの他のシーケンスによって特徴付けられる前記追加
入力画像についての特定のタイプの情報を提供する、テキスト埋込みベクトルのそれぞれのシーケンスと、(iii)前記画像埋込みベクトルの画像シーケンスに対して、前記入力画像についての前記特定のタイプの情報を提供するためのテキストプロンプトを表す、テキスト埋込みの部分的シーケンスとを含み、前記テキストトークンの出力シーケンスは、前記入力画像についての前記特定のタイプの情報を提供する前記テキストプロンプトの予測完結を表す、請求項13に記載の方法。
【請求項18】
前記入力埋込みベクトルの入力シーケンスは、前記出力シーケンスによって表される前記テキスト応答によって実施されるべきタスクを記述するテキストシーケンスを表す、テキスト埋込みベクトルの第1のシーケンスを含む、請求項13から17のいずれか一項に記載の方法。
【請求項19】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から18のいずれか一項に記載のそれぞれの動作を実施させる命令を記憶している1つまたは複数の記憶デバイスと、を備えるシステム。
【請求項20】
命令を記憶している1つまたは複数のコンピュータ可読記憶媒体であって、前記命令は、1つまたは複数のコンピュータによって実行されると、前記1つまたは複数のコンピュータに、請求項1から18のいずれか一項に記載の方法のそれぞれの動作を実施させる、コンピュータ可読記憶媒体。
【国際調査報告】