(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-09
(45)【発行日】2024-12-17
(54)【発明の名称】言語タスクのための対照事前トレーニング
(51)【国際特許分類】
G06F 40/216 20200101AFI20241210BHJP
【FI】
G06F40/216
【外国語出願】
(21)【出願番号】P 2024001862
(22)【出願日】2024-01-10
(62)【分割の表示】P 2022519013の分割
【原出願日】2020-09-21
【審査請求日】2024-02-08
(32)【優先日】2019-09-25
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】タン・ミン・ルオン
(72)【発明者】
【氏名】クォク・ヴィー・レ
(72)【発明者】
【氏名】ケヴィン・ステファン・クラーク
【審査官】成瀬 博之
(56)【参考文献】
【文献】米国特許出願公開第2019/0114348(US,A1)
【文献】国際公開第2018/085728(WO,A1)
【文献】William Fedus 他2名,MaskGAN: Better Text Generation via Filling in the______[online],2018年03月01日,[2023年06月22日検索],URL:https://arxiv.org/pdf/1801.07736
【文献】Jacob Devlin 他3名,BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding[online],2018年10月11日,[2023年06月22日検索],URL:https://arxiv.org/abs/1810.04805v1
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-40/58
(57)【特許請求の範囲】
【請求項1】
機械学習済み言語エンコーダモデルにより推論を行うためのコンピュータ実装方法であって、
前記機械学習済み言語エンコーダモデルにより入力を処理し、出力を生成するステップを含み、
前記機械学習済み言語エンコーダモデルが、1つまたは複数のトレーニング反復に対して事前にトレーニングされており、前記1つまたは複数のトレーニング反復の各々が、
複数の元の入力トークンを含む元の言語入力を取得するステップと、
1つまたは複数のマスキングされたトークンとして働くように、前記複数の元の入力トークンの1つまたは複数を選択するステップと、
1つまたは複数の置換トークンを生成するステップであって、前記1つまたは複数の置換トークンが代替自然言語トークンを含む、ステップと、
前記元の言語入力における前記1つまたは複数のマスキングされたトークンを前記1つまたは複数の置換トークンでそれぞれ置換し、更新後の複数
の入力トークンを含むノイズのある言語入力を形成す
るステップであって、前記
更新後の複
数の入力トークンが、前記1つまたは複数の置換トークンと、マスキングされたトークンとして働くように選択されなかった前記元の入力トークンとの混合を含む、ステップと、
前記
更新後の複数
の入力トークンに含まれる各更新
後の入力トークンについて、それぞれの予測を生成するために、
前記1つまたは複数のマスキングされたトークンで置換された前記元の言語入力を用いずに、前記機械学習済み言語エンコーダモデルにより前記ノイズのある言語入力を処理するステップであって、各更新
後の入力トークンについて、前記機械学習済み言語エンコーダモデルにより生成される予測は、そのような更新
後の入力トークンが、前記元の入力トークンのうちの1つであるか、または前記置換トークンのうちの1つであるかを予測する、ステップと、
前記機械学習済み言語エンコーダモデルにより生成された複数の前記予測を評価する損失関数に少なくとも部分的に基づいて、機械学習済み言語エンコーダモデルをトレーニングするステップと
を含む、コンピュータ実装方法。
【請求項2】
前記1つまたは複数の置換トークンを生成するステップが、機械学習済み言語ジェネレータモデルを使用して、前記1つまたは複数の置換トークンを生成するステップを含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記機械学習済み言語ジェネレータモデルが、前記1つまたは複数のマスキングされたトークンを予測するようにトレーニングされているマスキングされた言語モデルを含む、請求項2に記載のコンピュータ実装方法。
【請求項4】
各トレーニング反復が、
前記1つまたは複数の置換トークンと、マスキングされたトークンとして働くように選択された前記1つまたは複数の元のトークンとの間の差を評価する第2の損失関数に少なくとも部分的に基づいて、前記機械学習済み言語ジェネレータモデルをトレーニングするステップ
をさらに含む、請求項2に記載のコンピュータ実装方法。
【請求項5】
前記第2の損失関数が、最尤度推定関数を含む、請求項4に記載のコンピュータ実装方法。
【請求項6】
前記機械学習済み言語ジェネレータモデルおよび前記機械学習済み言語エンコーダモデルは、前記損失関数および前記第2の損失関数の組合せを含む組み合わせられた損失関数に基づいて、ジョイントトレーニングされている、請求項4に記載のコンピュータ実装方法。
【請求項7】
前記1つまたは複数のトレーニング反復の前に、前記機械学習済み言語ジェネレータモデルは前記第2の損失関数でトレーニングされており、
前記機械学習済み言語ジェネレータモデルを個別にトレーニングした後に、前記機械学習済み言語エンコーダモデルが、前記機械学習済み言語ジェネレータモデルに基づく重み値で初期化されている、請求項4に記載のコンピュータ実装方法。
【請求項8】
前記機械学習済み言語ジェネレータモデルが、機械学習済み言語ジェネレータモデルにより生成された前記置換トークンについて前記機械学習済み言語エンコーダモデルにより生成された前記予測を評価する第2の目的関数に基づいて、強化学習スキームにおいてトレーニングされている、請求項2に記載のコンピュータ実装方法。
【請求項9】
1つまたは複数の重みが、前記機械学習済み言語ジェネレータモデルおよび前記機械学習済み言語エンコーダモデルの間で共有されている、請求項2に記載のコンピュータ実装方法。
【請求項10】
前記1つまたは複数の置換トークンを生成するステップが、前記1つまたは複数の置換トークンをノイズ分布からサンプリングするステップを含む、請求項1に記載のコンピュータ実装方法。
【請求項11】
前記機械学習済み言語エンコーダモデルが、トランスフォーマネットワークテキストエンコーダを含む、請求項1に記載のコンピュータ実装方法。
【請求項12】
前記置換トークンのうちの1つが、それが置換する前記元のトークンに等しいとき、前記損失関数は、そのような置換トークンを、それが前記元の入力トークンに含まれているかのように評価する、請求項1に記載のコンピュータ実装方法。
【請求項13】
前記1つまたは複数のトレーニング反復が、1つまたは複数の事前トレーニング反復を含み、
前記コンピュータ実装方法が、前記1つまたは複数の事前トレーニング反復の後に、1つまたは複数の微調整トレーニング反復を行うステップを含み、前記1つまたは複数の微調整トレーニング反復では、前記機械学習済み言語エンコーダモデルが
特定の言語タスクを実行するようにトレーニングされる、請求項1に記載のコンピュータ実装方法。
【請求項14】
前記複数の元の入力トークが、複数の元の単語を含む、請求項1に記載のコンピュータ実装方法。
【請求項15】
コンピューティングシステムであって、
1つまたは複数のプロセッサと、
機械学習済み言語エンコーダモデルと、前記1つまたは複数のプロセッサによって実行されたときに、1つまたは複数の微調整トレーニング反復を前記コンピューティングシステムに実行させる命令とを記録する1つまたは複数の非一時的コンピュータ可読媒体と
を備え、
前記機械学習済み言語エンコーダモデルは、事前トレーニング動作の実行により事前にトレーニングされており、前記事前トレーニング動作が、
複数の元の入力トークンを含む元の言語入力を取得するステップと、
1つまたは複数のマスキングされたトークンとして働くように、前記複数の元の入力トークンの1つまたは複数を選択するステップと、
1つまたは複数の置換トークンを生成するステップであって、前記1つまたは複数の置換トークンが代替自然言語トークンを含む、ステップと、
前記元の言語入力における前記1つまたは複数のマスキングされたトークンを前記1つまたは複数の置換トークンでそれぞれ置換し、更新後の複数の入力トークンを含むノイズのある言語入力を形成するステップであって、前記
更新後の複数の入力トークンが、前記1つまたは複数の置換トークンと、マスキングされたトークンとして働くように選択されなかった前記元の入力トークンとの混合を含む、ステップと、
前記
更新後の複数
の入力トークンに含まれる各更新
後の入力トークンについて、それぞれの予測を生成するために、
前記1つまたは複数のマスキングされたトークンで置換された前記元の言語入力を用いずに、前記機械学習済み言語エンコーダモデルにより前記ノイズのある言語入力を処理するステップであって、各更新
後の入力トークンについて、前記機械学習済み言語エンコーダモデルにより生成される予測は、そのような更新
後の入力トークンが、前記元の入力トークンのうちの1つであるか、または前記置換トークンのうちの1つであるかを予測する、ステップと、
前記機械学習済み言語エンコーダモデルにより生成された複数の前記予測を評価する損失関数に少なくとも部分的に基づいて、機械学習済み言語エンコーダモデルをトレーニングするステップと
を含み、
前記1つまたは複数の微調整トレーニング反復では、前記機械学習済み言語エンコーダモデルが
特定の言語タスクを実行するようにトレーニングされる、コンピューティングシステム。
【請求項16】
前記1つまたは複数の非一時的コンピュータ可読媒体が、前記事前トレーニング動作を実行するための命令をさらに記録する、請求項15に記載のコンピューティングシステム。
【請求項17】
前記1つまたは複数の非一時的コンピュータ可読媒体が、前記機械学習済み言語ジェネレータモデルをさらに記録する、請求項15に記載のコンピューティングシステム。
【請求項18】
機械学習済み言語エンコーダモデルを記録する1つまたは複数の非一時的コンピュータ可読媒体であって、
前記機械学習済み言語エンコーダモデルは、動作の実行によりトレーニングされており、前記動作が、
複数の元の入力トークンを含む元の言語入力を取得するステップと、
1つまたは複数のマスキングされたトークンとして働くように、前記複数の元の入力トークンの1つまたは複数を選択するステップと、
1つまたは複数の置換トークンを生成するステップであって、前記1つまたは複数の置換トークンが代替自然言語トークンを含む、ステップと、
前記元の言語入力における前記1つまたは複数のマスキングされたトークンを前記1つまたは複数の置換トークンでそれぞれ置換し、更新後の複数
の入力トークンを含むノイズのある言語入力を形成す
るステップであって、前記
更新後の複数
の入力トークンが、前記1つまたは複数の置換トークンと、マスキングされたトークンとして働くように選択されなかった前記複数の元の入力トークンとを含む、ステップと、
前記
更新後の複数
の入力トークンに含まれる各更新
後の入力トークンについて、それぞれの予測を生成するために、
前記1つまたは複数のマスキングされたトークンで置換された前記元の言語入力を用いずに、前記機械学習済み言語エンコーダモデルにより前記ノイズのある言語入力を処理するステップであって、各更新
後の入力トークンについて、前記機械学習済み言語エンコーダモデルにより生成される予測は、そのような更新
後の入力トークンが、前記元の入力トークンのうちの1つであるか、または前記置換トークンのうちの1つであるかを予測する、ステップと、
前記機械学習済み言語エンコーダモデルにより生成された複数の前記予測を評価する損失関数に少なくとも部分的に基づいて、機械学習済み言語エンコーダモデルをトレーニングするステップと
を含む、1つまたは複数の非一時的コンピュータ可読媒体。
【請求項19】
前記1つまたは複数の置換トークンを生成するステップが、機械学習済み言語ジェネレータモデルを使用して、前記1つまたは複数の置換トークンを生成するステップを含む、請求項18に記載の1つまたは複数の非一時的コンピュータ可読媒体。
【請求項20】
前記機械学習済み言語ジェネレータモデルが、前記1つまたは複数のマスキングされたトークンを予測するようにトレーニングされているマスキングされた言語モデルを含む、請求項18に記載の1つまたは複数の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本出願は、その全体が参照により本明細書に組み込まれる、2019年9月25日に出願された米国仮特許出願第62/905,602号の優先権および利益を主張する。
【0002】
本開示は、一般に、自然言語処理(NLP)に関する。より詳細には、本開示は、機械学習済み言語符号化モデルを事前トレーニングするための技法に関する。
【背景技術】
【0003】
事前トレーニングテキストエンコーダに関する初期の研究では、言語モデリング目的を使用した。これらの方法の欠点は、結果として得られるモデルが単方向性であり、現在のトークンの表現を生成するとき、モデルが将来のトークンを見ないことである。したがって、現在の最先端技術の事前トレーニング方法は、主にマスキングされた言語モデリング(MLM)に依拠する。これらのアプローチは、入力の小さいサブセット(典型的には、約15%)を選択し、トークンの識別またはそれらのトークンへの注意をマスキングし、次いで、元の入力を回復するようにモデルをトレーニングする。結果として双方向モデルが得られるが、これらの目的は、かなりの計算コストがかかる。一例として、かなりの計算コストは、モデルが1例当たりのトークンの15%からしか学習しないという事実に部分的に起因し得る。
【0004】
したがって、自己教師ありの事前トレーニングは、多くのNLPタスクについて強い結果をもたらすが、これらの方法はまた、効果的であるために大量の計算を必要とし、コストおよびアクセス可能性についての懸念が生じる。より多くの計算を伴う事前トレーニングは、ほとんど常に、より良好な精度をもたらすので、事前トレーニング方法の重要な考慮事項は、絶対的な下流の精度ではなく、計算効率であるべきであることを、本開示は認識する。この観点から、事前トレーニングアルゴリズムは、実質的により計算効率が良く、パラメータ効率が良いことが望ましい。
【発明の概要】
【課題を解決するための手段】
【0005】
本開示の実施形態の態様および利点が、以下の記述において部分的に説明され、または記述から学ぶことができ、または実施形態の実践を通して知ることができる。
【0006】
本開示の1つの例示的態様は、機械学習済み言語エンコーダモデルをトレーニングするためのコンピュータ実装方法を対象とする。方法は、1つまたは複数のトレーニング反復の各々について実行することができる。コンピュータ実装方法は、1つまたは複数のコンピューティングデバイスを含むコンピューティングシステムによって、複数の元の入力トークンを含む元の言語入力を取得するステップを含む。コンピュータ実装方法はまた、コンピューティングシステムによって、1つまたは複数のマスキングされたトークンとして働くように複数の元の入力トークンのうちの1つまたは複数を選択するステップも含む。コンピュータ実装方法はまた、コンピューティングシステムによって、1つまたは複数の置換トークンを生成するステップも含む。コンピュータ実装方法はまた、複数の更新された入力トークンを含むノイズのある言語入力を形成するために、コンピューティングシステムによって、元の言語入力内の1つまたは複数のマスキングされたトークンを、1つまたは複数の置換トークンでそれぞれ置換するステップも含む。たとえば、複数の更新された入力トークンは、1つまたは複数の置換トークンと、マスキングされたトークンとして働くように選択されなかった複数の元の入力トークンとの混合を含むことができる。コンピュータ実装方法はまた、複数の更新された入力トークンについて複数の予測をそれぞれ生成するために、コンピューティングシステムによって、機械学習済み言語エンコーダモデルによりノイズのある言語入力を処理するステップであり、各更新された入力トークンについて機械学習済み言語エンコーダモデルによって生成された予測が、そのような更新された入力トークンが元の入力トークンのうちの1つであるか、置換入力トークンのうちの1つであるかを予測する、処理するステップも含む。コンピュータ実装方法はまた、コンピューティングシステムによって、機械学習済み言語エンコーダモデルによって生成された複数の予測を評価する損失関数に少なくとも部分的に基づいて、機械学習済み言語エンコーダモデルをトレーニングするステップも含む。この態様の他の実施形態は、各々が方法のアクションを実行するように構成された、1つまたは複数のコンピュータ記憶デバイス上に記録された、対応するコンピュータシステム、装置、およびコンピュータプログラムを含む。
【0007】
例示的実装形態は、以下の特徴のうちの1つまたは複数を含み得る。
【0008】
いくつかの実装形態では、コンピューティングシステムによって、1つまたは複数の置換トークンを生成するステップは、機械学習済み言語ジェネレータモデルを使用して、コンピューティングシステムによって、1つまたは複数の置換トークンを生成するステップを含む。
【0009】
いくつかの実装形態では、機械学習済み言語ジェネレータモデルは、1つまたは複数のマスキングされたトークンを予測するようにトレーニングされたマスキングされた言語モデルを含む。
【0010】
いくつかの実装形態では、コンピュータ実装方法は、コンピューティングシステムによって、1つまたは複数の置換トークンと、1つまたは複数のマスキングされたトークンとの間の差を評価する第2の損失関数に少なくとも部分的に基づいて、機械学習済み言語ジェネレータモデルをトレーニングするステップをさらに含む。
【0011】
いくつかの実装形態では、第2の損失関数は、最尤度推定関数を含む。
【0012】
いくつかの実装形態では、方法は、コンピューティングシステムによって、機械学習済み言語ジェネレータモデルによって生成された置換トークンについて機械学習済み言語エンコーダモデルによって生成された予測を評価する第2の目的関数に基づいて、強化学習スキームにおける機械学習済み言語ジェネレータモデルをトレーニングするステップをさらに含む。
【0013】
いくつかの実装形態では、方法は、コンピューティングシステムによって、損失関数と第2の損失関数との組合せを含む組み合わせられた損失関数に基づいて、機械学習済み言語ジェネレータモデルと機械学習済み言語エンコーダモデルとのジョイントトレーニングを行うステップを含む。
【0014】
いくつかの実装形態では、1つまたは複数の重みが、機械学習済み言語ジェネレータモデルと機械学習済み言語エンコーダモデルとの間で共有される。いくつかの実装形態では、機械学習済み言語エンコーダモデルは、トランスフォーマネットワークテキストエンコーダを含む。
【0015】
いくつかの実装形態では、置換トークンのうちの1つが、それが置換する元のトークンに等しいとき、損失関数は、そのような置換トークンを、それが元の入力トークンに含まれているかのように評価する。
【0016】
いくつかの実装形態では、1つまたは複数のトレーニング反復は、1つまたは複数の事前トレーニング反復を含み、方法は、1つまたは複数の事前トレーニング反復の後、機械学習済み言語エンコーダモデルが言語タスクを実行するようにトレーニングされる、1つまたは複数の微調整トレーニング反復を実行するステップをさらに含む。
【0017】
いくつかの実装形態では、複数の元の入力トークンは、複数の元の単語を含む。
【0018】
いくつかの実装形態では、方法は、1つまたは複数のトレーニング反復の前に、コンピューティングシステムによって、第2の損失関数に関する機械学習済み言語ジェネレータモデルを個別にトレーニングするステップと、コンピューティングシステムによって、機械学習済み言語ジェネレータモデルを個別にトレーニングした後、コンピューティングシステムによって、機械学習済み言語ジェネレータモデルに基づいて、機械学習済み言語エンコーダモデルを重み値で初期化するステップとをさらに含む。
【0019】
いくつかの実装形態では、コンピューティングシステムによって、1つまたは複数の置換トークンを生成するステップは、コンピューティングシステムによって、ノイズ分布から1つまたは複数の置換トークンをサンプリングするステップを含む。
【0020】
別の一般的な態様は、1つまたは複数のプロセッサを含むコンピューティングシステムを含む。コンピューティングシステムはまた、請求項のいずれか一項に記載の方法の実行を介して生成された機械学習済み言語エンコーダモデルを記憶する1つまたは複数の非一時的コンピュータ可読媒体も含む。この態様の他の実施形態は、各々が方法のアクションを実行し、および/または方法のアクションを介して生成されたモデルを記憶するように構成された、1つまたは複数のコンピュータ記憶デバイス上に記録された、対応するコンピュータシステム、装置、およびコンピュータプログラムを含む。本開示の他の態様は、様々なシステム、装置、非一時的コンピュータ可読媒体、ユーザインターフェース、および電子デバイスを対象とする。
【0021】
本開示の様々な実施形態のこれらおよび他の特徴、態様、および利点は、以下の説明および添付の特許請求の範囲を参照してより良く理解されよう。添付の図面は、本明細書に組み込まれるとともにその一部を成し、本開示の例示的実施形態を示し、記述とともに、関連原理を説明するのに役立つ。
【0022】
当業者を対象とする、実施形態の詳細な考察が本明細書において説明され、本明細書は、添付の図面を参照する。
【図面の簡単な説明】
【0023】
【
図1】本開示の例示的実施形態による例示的事前トレーニングプロセスにおけるデータフローである。
【
図2A】本開示の例示的実施形態による例示的コンピューティングシステムのブロック図である。
【
図2B】本開示の例示的実施形態による例示的コンピューティングデバイスのブロック図である。
【
図2C】本開示の例示的実施形態による例示的コンピューティングデバイスのブロック図である。
【発明を実施するための形態】
【0024】
複数の図面にわたって繰り返される参照番号は、様々な実装形態において同じ特徴を識別することを意図している。
【0025】
概要
一般に、本開示は、対照学習タスクを使用して機械学習言語符号化モデルをトレーニングするシステムおよび方法を対象とする。特に、本開示は、エンコーダが、入力トークンを妥当と思われる代替から区別することを学習する対照学習タスクについて説明する。いくつかの実装形態では、各トレーニング例において、提案された方法は、元の入力トークンの一部のサブセット(たとえば、15%)をマスクアウトし、マスキングされたトークンを「ジェネレータ」(たとえば、小さいマスキングされた言語モデルであってもよい)からのサンプルで置き換え、次いで、各トークンが元のデータから来たか、ジェネレータによって生成された置換であるかを予測するようにエンコーダをトレーニングする。米国仮特許出願第62/905,602号に含まれる例示的実験は、このタスクが、マスクアウトされたサブセットのみではなく、すべての入力トークンから損失が生じるので、マスキングされた言語モデリングよりも効率的なサンプルであることを示している。提案されたアプローチはまた、よりパラメータ効率が良く、収束するようにトレーニングされたときにより良い結果を生成する。
【0026】
米国仮特許出願第62/905,602号に含まれる例示的実験データによって示されるように、提案されたアプローチの例示的実装形態によってトレーニングされた例示的モデルは、同じモデルサイズ、データ、および計算が与えられた場合、BERTおよびXLNetなどの方法よりも実質的に優れている。このアプローチは、小さいモデルでは特に有益であるが、本開示による例示的モデルが、計算の1/4未満を使用しながら、現在の最先端技術の事前トレーニングされた変圧器であるRoBERTaの性能に一致することを示す、米国仮特許出願第62/905,602号の例示的実験結果によって示されるように、大きい規模でも動作する。
【0027】
本開示のシステムおよび方法は、いくつかの技術的効果および利益を提供する。1つの例示的な技術的効果および利点として、本開示のシステムおよび方法は、言語エンコーダモデルのより効率的なトレーニングを可能にする。特に、既存のマスキングされた言語モデリング技法と比較して、主表現学習タスクは、マスクアウトされたサブセットだけでなく、すべてのトークンにわたって提示され、より計算効率的になる。したがって、各トレーニング例について、エンコーダモデルは、マスクアウトされた小さい割合(たとえば、~15%)だけでなく、入力トークンの100%から学習することができる。これにより、モデルは、より速く、より少ないトレーニング反復で学習(たとえば、収束)することができる。モデルをトレーニングするために、より少ないトレーニング反復を使用することにより、プロセス使用量、メモリ使用量、ネットワーク帯域幅などのコンピューティングリソースが節約される。
【0028】
別の例示的な技術的効果および利点として、提案された技法は、モデル性能の改善をもたらす。特に、提案された技法は、モデルが、微調整/テスト中ではなく、事前トレーニング中に人工的な[MASK]トークンを見る、既存のマスキングされた言語モデリング技法に導入されたミスマッチを解決する。このミスマッチを軽減することにより、モデル性能(たとえば、精度)が改善される。
【0029】
ここで図面を参照して、本開示の例示的実施形態についてさらに詳しく論じる。
【0030】
例示的トレーニングプロセス
図1は、本開示の例示的実施形態による、機械学習済み言語エンコーダモデル12の例示的事前トレーニングプロセスにおけるデータフローを示す。
【0031】
プロセスは、1つまたは複数のコンピューティングデバイスを含むコンピューティングシステムによって、複数の元の入力トークン18(「the」、「artist」、「sold」、「the」、「painting」)を含む元の言語入力を取得することを含むことができる。
【0032】
プロセスはまた、コンピューティングシステムによって、1つまたは複数のマスキングされたトークンとして働くように複数の元の入力トークン18のうちの1つまたは複数を選択することも含む。図示の例では、元のトークン「the」および「painting」は、20aおよび20bに示すように、マスキングされたトークンとして働くように選択されている。
【0033】
プロセスはまた、コンピューティングシステムによって、1つまたは複数の置換トークン23aおよび23bを生成することも含む。プロセスはまた、複数の更新された入力トークン22を含むノイズのある言語入力を形成するために、コンピューティングシステムによって、元の言語入力内の1つまたは複数のマスキングされたトークン20aおよび20bを、1つまたは複数の置換トークン23aおよび23bでそれぞれ置換することも含み、複数の更新された入力トークン22は、1つまたは複数の置換トークン23aおよび23bと、マスキングされたトークンとして働くように選択されなかった複数の元の入力トークン18とを含む。
【0034】
プロセスはまた、複数の更新された入力トークン22について複数の予測24をそれぞれ生成するために、コンピューティングシステムによって、機械学習済み言語エンコーダモデル12によりノイズのある言語入力を処理することであり、各更新された入力トークン22について機械学習済み言語エンコーダモデルによって生成された予測24が、そのような更新された入力トークンが元の入力トークン18のうちの1つであるか、置換入力トークン23aおよび23bのうちの1つであるかを予測する、処理することも含む。
【0035】
プロセスはまた、コンピューティングシステムによって、機械学習済み言語エンコーダモデル12によって生成された複数の予測24を評価する損失関数26に少なくとも部分的に基づいて、機械学習済み言語エンコーダモデル12をトレーニングすることも含む。
【0036】
いくつかの実装形態では、機械学習済み言語ジェネレータモデル14は、1つまたは複数のマスキングされたトークン20aおよび20bを予測するようにトレーニングされたマスキングされた言語モデルを含む。
【0037】
いくつかの実装形態では、プロセスは、コンピューティングシステムによって、1つまたは複数の置換トークン23aおよび23bと、(たとえば、「the」および「painting」など)マスキングされたトークンとして働くように選択された1つまたは複数のトークンとの間の差を評価する第2の損失関数28に少なくとも部分的に基づいて、機械学習済み言語ジェネレータモデル14をトレーニングすることをさらに含む。
【0038】
いくつかの実装形態では、第2の損失関数28は、最尤度推定関数を含む。
【0039】
いくつかの他の実装形態(図示せず)では、プロセスは、コンピューティングシステムによって、機械学習済み言語ジェネレータモデル14によって生成された置換トークン23aおよび23bについて機械学習済み言語エンコーダモデル12によって生成された予測24を評価する第2の目的関数28に基づいて、強化学習スキームにおける機械学習済み言語ジェネレータモデル14をトレーニングすることをさらに含む。たとえば、ジェネレータモデル14は、エンコーダモデル12を「騙す」ことに対する報酬を受けることができる。
【0040】
いくつかの実装形態では、プロセスは、コンピューティングシステムによって、損失関数26と第2の損失関数28との組合せを含む組み合わせられた損失関数に基づいて、機械学習済み言語ジェネレータモデル14と機械学習済み言語エンコーダモデル12とのジョイントトレーニングを行うことを含む。
【0041】
いくつかの実装形態では、1つまたは複数の重みが、機械学習済み言語ジェネレータモデル14と機械学習済み言語エンコーダモデル12との間で共有される。いくつかの実装形態では、機械学習済み言語エンコーダモデル12は、Vaswani et al., 2017に記載されているようなトランスフォーマネットワークテキストエンコーダを含む。
【0042】
いくつかの実装形態では、置換トークン(たとえば、23a「the」)のうちの1つが、(たとえば、18からの「the」など)それが置換する元のトークンに等しいとき、損失関数26は、そのような置換トークン23aを、それが元の入力トークン18に含まれているかのように評価する。たとえば、「the」23aに対する「リアル」の予測24は、正しいと考えられる。
【0043】
いくつかの実装形態では、
図1に示すトレーニングプロセスに続いて、機械学習言語エンコーダモデル12を微調整して、言語処理タスクを実行することができる。例として、言語処理タスクは、質問回答、次の単語または文の完了または予測、翻訳、エンティティ認識、言語分類、および他の言語タスクを含むことができる。
【0044】
したがって、本開示の例示的態様は、対照事前トレーニングのためのシステムおよび方法を対象とする。
図1に示すように、1つの例示的アプローチは、2つのモデル(たとえば、ニューラルネットワーク)、ジェネレータG14および弁別器D12をトレーニングする。各々は、たとえば、入力トークンx=[x
1;x
2;...;x
n]上のシーケンスをコンテキスト化されたベクトル表現h(x)=[h
1;h
2;...;h
n]のシーケンスに変換するエンコーダとすることができ、またはそれを含むことができる。一例として、各エンコーダは、自己注意を含むトランスフォーマネットワークまたは他のネットワークとすることができ、またはそれを含むことができる。
【0045】
いくつかの実装形態では、所与の位置t(たとえば、x
t=[MASK]の位置)について、ジェネレータ14は、特定のトークンx
tを生成する確率を出力する(たとえば、ソフトマックス層を使用して)。
【数1】
式中、eは、トークン埋込みを表す。所与の位置tについて、弁別器12は、トークンx
tが「リアル」であるかどうか、すなわち、それがジェネレータ分布(たとえば、ノイズ分布)ではなくデータ分布から来ることを予測する。1つの例示的弁別器は、次の通りである。
D(x,t)=sigmoid(w
Th
D(x)
t)
式中、wは、弁別器の学習された重みに対応する。
【0046】
ジェネレータ14は、マスキングされた言語モデリングを実行するようにトレーニングすることができる。入力x=[x1;x2;...;xn]が与えられると、マスキングされた言語モデリングは、最初に、m=[m1;...;mk]をマスクアウトするために位置のランダムなセット(1とnとの間の整数)を選択する。選択された位置のトークンは、[MASK]トークンで置き換えられ、これは、xmasked=REPLACE(x;m;[MASK])と表すことができる。次いで、ジェネレータ14は、マスクアウトされたトークンの尤度を最大にすることを学習することができる。弁別器12は、データ内のトークンをジェネレータ14からサンプリングされたトークンと区別するようにトレーニングされ得る。より具体的には、マスクアウトされたトークン20aおよび20bをジェネレータサンプルで置き換えることによって、「ノイズのある」例示的xnoised22が作成され得る。次いで、弁別器12は、xnoised22内のどのトークンが元の入力x18と一致しないかを予測するようにトレーニングされ得る。形式的には、入力(最初の3つの式)ならびにジェネレータ損失および弁別器損失(最後の2つの式)の例示的式は、次の通りである。
i=1~kの場合、mi~unif{1,n}
xmasked=REPLACE(x,m,[MASK])
【0047】
i∈mの場合
【数2】
【数3】
GANのトレーニング目的と類似しているが、いくつかの重要な違いがある。第1に、ジェネレータ14がたまたま正しいトークンを生成した場合、そのトークンは「フェイク」ではなく「リアル」と見なされる。この定式化により、下流タスクの結果が改善されることがわかった。より重要なことには、いくつかの実装形態では、ジェネレータ14は、弁別器12を騙すように敵対的にトレーニングされるのではなく、最尤度でトレーニングされる。ジェネレータ12を敵対的にトレーニングすることは、ジェネレータ14からのサンプリングを介して逆伝播することが不可能であるので、困難である。最後に、ジェネレータ14は、コンテキストを入力として受け取るだけであり、GANは、通常、GANジェネレータにノイズベクトルも供給する。
【0048】
したがって、1つの例示的学習目的は、生テキストの大きいコーパスXにわたって、組み合わせられた損失を最小限に抑えることである。
【数4】
いくつかの実装形態では、損失の期待値は、単一のサンプルで近似することができる。
【0049】
さらなる例示的実装形態は、次の通りである。
【0050】
重みの共有: いくつかの例示的実装形態は、ジェネレータと弁別器との間で重みを共有することによって、事前トレーニングの効率を改善することができる。ジェネレータおよび弁別器が同じサイズである場合、すべてのエンコーダ重みの一部または全部を結び付けることができる。しかしながら、小さいジェネレータを有することが特に効率的であることがわかっており、その場合、たとえば、ジェネレータおよび弁別器のトークン埋込みのみが共有される。この場合、弁別器の隠れ状態のサイズであるトークン埋込みを使用することができ、次いで、線形投影層を追加して、ジェネレータの隠れ状態サイズに低減することができる。ジェネレータの「入力」および「出力」の埋込みは、BERTにおけるように結び付けることができる。マスキングされた言語モデリングが、トークン表現を学習する際に特に効果的であるので、結び付けられたトークン埋込みは、有益であり得、弁別器は、入力に存在する、またはジェネレータによってサンプリングされるトークンのみを更新するが、語彙に対するジェネレータのソフトマックスは、すべてのトークン埋込みを密に更新する。
【0051】
小さいジェネレータ: ジェネレータと弁別器とが同じサイズである場合、モデルのトレーニングは、通常、マスキングされた言語モデリングのみによるトレーニングと比べて、ステップ当たり約2倍の計算を要する。したがって、いくつかの例示的実装形態は、ジェネレータをトレーニングする計算コストを低減するために、より小さいジェネレータを使用する。モデルは、他のすべてのハイパーパラメータを一定に保ちながら、隠れ層/埋込みサイズを減少させることによって、より小さくすることができる。興味深いことに、より小さいジェネレータを使用することは、計算の差を無視しても、より大きいジェネレータよりも良好に動作することができる。この挙動の1つの可能な理由は、ジェネレータが強すぎると、弁別器にとって非常に難しいタスクを引き起こし、弁別器が効果的に学習することを妨げる可能性があることである。
【0052】
トレーニングアルゴリズム: いくつかの例示的トレーニング目的は、ジェネレータおよび弁別器のジョイントトレーニングを行う。他の例示的トレーニングアルゴリズムは、以下の2段階トレーニングプロセスを有する。1. ジェネレータのみをLMLMでnステップトレーニングする。2.ジェネレータの重みで弁別器の重みを初期化する。次いで、ジェネレータの重みを凍結したまま、LDiscにより弁別器をnステップトレーニングする。
【0053】
この手順における重みの初期化は、ジェネレータおよび弁別器について同じサイズを有することを必要とすることに留意されたい。重みの初期化がなければ、おそらくジェネレータがそのような説得力のあるフェイクを生成したので、弁別器が大多数のクラスを超えて学習することができないことがあることがわかっている。一方、ジョイントトレーニングは、当然、ジェネレータが最初は弱く、トレーニングを通じてより良くなる識別器のためのカリキュラムを提供する。別の可能なアプローチは、GANにおけるように、ジェネレータからのサンプリングの離散的な動作に適応するために強化学習を使用して、ジェネレータを敵対的にトレーニングする。
【0054】
トレーニング後、提案されたモデルは、多数の異なるタスクに使用することができる。例として、たとえば、感情分析などの分類タスクを実行することができる(たとえば、モデルの出力の上に分類層を追加することによって)。別の例示的タスクは、モデルを含むシステムがテキストシーケンスに関する質問を受信し、シーケンス内の回答にマークを付けることが要求される質問回答である。一例では、Q&Aモデルは、回答の開始および終了をマーキングする2つの余分なベクトルを学習することによってトレーニングすることができる。名前付きエンティティ認識(NER)では、モデルを含むシステムは、テキストシーケンスを受信し、テキストに現れる様々なタイプのエンティティ(人、組織、日付など)をマーキングすることができる。一例では、NERモデルは、各トークンの出力ベクトルを、NERラベルを予測する分類層に供給することによってトレーニングすることができる。自然言語生成は、(たとえば、提案された検索クエリまたは次の単語予測の生成を促進するために)実行することができる別の例示的タスクである。
【0055】
したがって、分類、質問回答、または自然言語生成などの自然言語処理タスクを実行するために、トレーニングされた言語エンコーダモデルの出力を、1つまたは複数のニューラルネットワーク層に入力することができる。次いで、1つまたは複数のニューラルネットワーク層は、自然言語タスクの結果(たとえば、分類)を出力することができる。特定の自然言語タスクのための自然言語モデルは、事前トレーニングされた言語エンコーダモデルを微調整することによってトレーニングされ得る。事前トレーニングされた言語エンコーダモデルのパラメータを、初期化時にトレーニングされていない自然言語モデル(たとえば、分類モデル)に入力することができる。次いで、自然言語モデルを、その特定の(下流の)自然言語処理タスクについて(たとえば、教師ありまたは教師なし学習を使用して)トレーニングすることができる。したがって、事前トレーニングされた言語エンコーダモデルを活用して、自然言語モデルをより容易かつ効率的にトレーニングすることができる(たとえば、トレーニング計算および必要な量のトレーニングデータを低減し、精度を向上させる)。自然言語モデルのトレーニングは、自然言語モデルのパラメータのすべてまたはいくつかをトレーニングすることができる。たとえば、トレーニングは、トレーニングされた言語エンコーダモデルのパラメータを含むすべてのパラメータを更新することができ、またはトレーニングされた言語エンコーダモデルの上に追加される追加のパラメータのみをトレーニングすることができる。
【0056】
例示的デバイスおよびシステム
図2Aは、本開示の例示的実施形態による例示的コンピューティングシステム100のブロック図を示す。システム100は、ネットワーク180を介して通信可能に結合されている、ユーザコンピューティングデバイス102、サーバコンピューティングシステム130、およびトレーニング用コンピューティングシステム150を含む。
【0057】
ユーザコンピューティングデバイス102は、たとえば、パーソナルコンピューティングデバイス(たとえば、ラップトップもしくはデスクトップ)、モバイルコンピューティングデバイス(たとえば、スマートフォンもしくはタブレット)、ゲーム機もしくはコントローラ、装着可能コンピューティングデバイス、埋め込み型コンピューティングデバイス、または任意の他のタイプのコンピューティングデバイスなど、どのタイプのコンピューティングデバイスであってもよい。
【0058】
ユーザコンピューティングデバイス102は、1つまたは複数のプロセッサ112およびメモリ114を含む。1つまたは複数のプロセッサ112は、どの適切な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であってもよく、1つのプロセッサまたは動作可能に接続されている複数のプロセッサであってよい。メモリ114は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せのような、1つまたは複数の非一時的コンピュータ可読記憶媒体を含み得る。メモリ114は、データ116と、ユーザコンピューティングデバイス102に動作を実施させるようにプロセッサ112によって実行される命令118とを記憶することができる。
【0059】
いくつかの実装形態では、ユーザコンピューティングシステム102は、1つまたは複数の機械学習済みモデル120を記憶するか、または含むことができる。たとえば、機械学習済みモデル120は、ニューラルネットワーク(たとえば、ディープニューラルネットワーク)または非線形モデルおよび/もしくは線形モデルを含む他のタイプの機械学習済みモデルなど、様々な機械学習済みモデルであってよく、またはそうでなければ、それらの機械学習済みモデルを含むことができる。ニューラルネットワークは、フィードフォワードニューラルネットワーク、回帰型ニューラルネットワーク(たとえば、長短期メモリ回帰型ニューラルネットワーク)、畳み込みニューラルネットワーク、または他の形のニューラルネットワークを含み得る。例示的機械学習済みモデル120については、
図1を参照して論じる。
【0060】
いくつかの実装形態では、1つまたは複数の機械学習済みモデル120は、ネットワーク180を介してサーバコンピューティングシステム130から受信され、ユーザコンピューティングデバイスメモリ114に記憶され、次いで、1つまたは複数のプロセッサ112によって使われ、またはそうでなければ実装され得る。いくつかの実装形態では、ユーザコンピューティングデバイス102は、(たとえば、言語トークンの複数のインスタンスにわたって並列言語符号化/処理を実行するために)単一機械学習済みモデル120の複数の並列インスタンスを実装することができる。
【0061】
追加または代替として、1つまたは複数の機械学習済みモデル140は、クライアント-サーバ関係に従ってユーザコンピューティングデバイス102と通信するサーバコンピューティングシステム130に含まれ、またはそうでなければ、サーバコンピューティングシステム130によって記憶され、実装され得る。たとえば、機械学習済みモデル140は、ウェブサービス(たとえば、言語処理サービス)の一部分として、サーバコンピューティングシステム130によって実装され得る。したがって、1つまたは複数のモデル120が、ユーザコンピューティングデバイス102において記憶され、実装されてよく、かつ/または1つもしくは複数のモデル140が、サーバコンピューティングシステム130において記憶され、実装されてよい。
【0062】
ユーザコンピューティングデバイス102は、ユーザ入力を受信する1つまたは複数のユーザ入力構成要素122も含み得る。たとえば、ユーザ入力構成要素122は、ユーザ入力オブジェクト(たとえば、指またはスタイラス)のタッチに敏感な、タッチ感応構成要素(たとえば、タッチ感応表示画面またはタッチパッド)であってよい。タッチ感応構成要素は、仮想キーボードを実装するのに役立ち得る。他の例示的ユーザ入力構成要素は、マイクロフォン、従来のキーボード、またはユーザがユーザ入力を与えることができる他の手段を含む。
【0063】
サーバコンピューティングシステム130は、1つまたは複数のプロセッサ132およびメモリ134を含む。1つまたは複数のプロセッサ132は、どの適切な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であってもよく、1つのプロセッサまたは動作可能に接続されている複数のプロセッサであってよい。メモリ134は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せのような、1つまたは複数の非一時的コンピュータ可読記憶媒体を含み得る。メモリ134は、データ136と、サーバコンピューティングシステム130に動作を実施させるようにプロセッサ132によって実行される命令138とを記憶することができる。
【0064】
いくつかの実装形態では、サーバコンピューティングシステム130は、1つまたは複数のサーバコンピューティングデバイスを含むか、またはそうでなければ、1つまたは複数のサーバコンピューティングデバイスによって実装される。サーバコンピューティングシステム130が複数のサーバコンピューティングデバイスを含む事例では、そのようなサーバコンピューティングデバイスは、順次コンピューティングアーキテクチャ、並列コンピューティングアーキテクチャ、またはそれらの何らかの組合せに従って動作することができる。
【0065】
上述したように、サーバコンピューティングシステム130は、1つまたは複数の機械学習済みモデル140を記憶するか、またはそうでなければ含むことができる。たとえば、モデル140は、様々な機械学習済みモデルであってよく、または、そうでなければそれらを含んでよい。例示的機械学習済みモデルは、ニューラルネットワークまたは他のマルチレイヤ非線形モデルを含む。例示的ニューラルネットワークは、フィードフォワードニューラルネットワーク、ディープニューラルネットワーク、回帰型ニューラルネットワーク、および畳み込みニューラルネットワークを含む。例示的モデル140については、
図1を参照して論じる。
【0066】
ユーザコンピューティングデバイス102および/またはサーバコンピューティングシステム130は、ネットワーク180を介して通信可能に結合されるトレーニング用コンピューティングシステム150との対話により、モデル120および/または140をトレーニングすることができる。トレーニング用コンピューティングシステム150は、サーバコンピューティングシステム130とは別個であってよく、またはサーバコンピューティングシステム130の一部分であってよい。
【0067】
トレーニング用コンピューティングシステム150は、1つまたは複数のプロセッサ152およびメモリ154を含む。1つまたは複数のプロセッサ152は、どの適切な処理デバイス(たとえば、プロセッサコア、マイクロプロセッサ、ASIC、FPGA、コントローラ、マイクロコントローラなど)であってもよく、1つのプロセッサまたは動作可能に接続されている複数のプロセッサであってよい。メモリ154は、RAM、ROM、EEPROM、EPROM、フラッシュメモリデバイス、磁気ディスクなど、およびそれらの組合せのような、1つまたは複数の非一時的コンピュータ可読記憶媒体を含み得る。メモリ154は、データ156と、トレーニング用コンピューティングシステム150に動作を実施させるようにプロセッサ152によって実行される命令158とを記憶することができる。いくつかの実装形態では、トレーニング用コンピューティングシステム150は、1つまたは複数のサーバコンピューティングデバイスを含むか、またはそうでなければ、1つまたは複数のサーバコンピューティングデバイスによって実装される。
【0068】
トレーニング用コンピューティングシステム150は、ユーザコンピューティングデバイス102および/またはサーバコンピューティングシステム130において記憶された機械学習済みモデル120および/または140を、たとえば、誤差逆伝播など、様々なトレーニングまたは学習技法を使ってトレーニングするモデル訓練器160を含み得る。たとえば、損失関数は、(たとえば、損失関数の勾配に基づいて)モデルの1つまたは複数のパラメータを更新するために、モデルを通して逆伝搬され得る。平均2乗誤差、尤度損失、交差エントロピー損失、ヒンジ損失、および/または様々な他の損失関数など、様々な損失関数が使用され得る。勾配降下技法は、いくつかのトレーニング反復に対してパラメータを反復的に更新するために使用され得る。
【0069】
いくつかの実装形態では、誤差逆伝播を実行することは、短縮された時通的誤差逆伝播を実行することを含み得る。モデル訓練器160は、トレーニングされるモデルの汎化能力を向上するために、いくつかの汎化技法(たとえば、重み減衰、ドロップアウトなど)を実施することができる。
【0070】
特に、モデル訓練器160は、トレーニングデータのセット162に基づいて、機械学習済みモデル120および/または140をトレーニングすることができる。トレーニングデータ162は、たとえば、例示的入力トークンのセットを含むことができる。
【0071】
いくつかの実装形態では、ユーザが承諾を与えた場合、トレーニング例は、ユーザコンピューティングデバイス102によって提供され得る。したがって、そのような実装形態では、ユーザコンピューティングデバイス102に提供されるモデル120は、ユーザコンピューティングデバイス102から受信されるユーザ固有データに対してトレーニングコンピューティングシステム150によってトレーニングされ得る。場合によっては、このプロセスは、モデルの個人化と呼ばれることがある。
【0072】
モデル訓練器160は、所望の機能性を提供するのに使用されるコンピュータ論理を含む。モデル訓練器160は、汎用プロセッサを制御するハードウェア、ファームウェア、および/またはソフトウェアで実装することができる。たとえば、いくつかの実装形態では、モデル訓練器160は、記憶デバイス上に記憶され、メモリにロードされ、1つまたは複数のプロセッサによって実行されるプログラムファイルを含む。他の実装形態では、モデル訓練器160は、RAMハードディスクまたは光学もしくは磁気媒体などの有形コンピュータ可読記憶媒体に記憶されるコンピュータ実行可能命令の1つまたは複数のセットを含む。
【0073】
ネットワーク180は、ローカルエリアネットワーク(たとえば、イントラネット)、ワイドエリアネットワーク(たとえば、インターネット)、またはそれらの何らかの組合せなど、どのタイプの通信ネットワークであってもよく、任意の数のワイヤードまたはワイヤレスリンクを含み得る。概して、ネットワーク180を介した通信は、非常に様々な通信プロトコル(たとえば、TCP/IP、HTTP、SMTP、FTP)、符号化もしくはフォーマット(たとえば、HTML、XML)、および/または保護方式(たとえば、VPN、セキュアHTTP、SSL)を使って、どのタイプのワイヤードおよび/またはワイヤレス接続を介しても搬送することができる。
【0074】
図2Aは、本開示を実装するために使用され得る1つの例示的コンピューティングシステムを示す。他のコンピューティングシステムが同様に使用されてもよい。たとえば、いくつかの実装形態では、ユーザコンピューティングデバイス102は、モデル訓練器160およびトレーニングデータセット162を含み得る。そのような実装形態では、モデル120は、ユーザコンピューティングデバイス102においてローカルにトレーニングされることと使われることの両方が可能である。そのような実装形態のいくつかでは、ユーザコンピューティングデバイス102は、ユーザ固有データに基づいて、モデル訓練器160を実装して、モデル120を個人化し得る。
【0075】
図2Bは、本開示の例示的実施形態に従って実行する例示的コンピューティングデバイス10のブロック図を示す。コンピューティングデバイス10は、ユーザコンピューティングデバイスまたはサーバコンピューティングデバイスであってよい。
【0076】
コンピューティングデバイス10は、いくつかのアプリケーション(たとえば、アプリケーション1~N)を含む。各アプリケーションは、それ自体の機械学習ライブラリおよび機械学習済みモデルを含む。たとえば、各アプリケーションは、機械学習済みモデルを含み得る。例示的アプリケーションは、テキストメッセージングアプリケーション、eメールアプリケーション、ディクテーションアプリケーション、仮想キーボードアプリケーション、ブラウザアプリケーションなどを含む。
【0077】
図2Bに示すように、各アプリケーションは、コンピューティングデバイスのいくつかの他の構成要素、たとえば、1つもしくは複数のセンサー、コンテキストマネージャ、デバイス状態構成要素、および/または追加構成要素などと通信することができる。いくつかの実装形態では、各アプリケーションは、API(たとえば、パブリックAPI)を使って、各デバイス構成要素と通信することができる。いくつかの実装形態では、各アプリケーションによって使用されるAPIは、そのアプリケーションに固有である。
【0078】
図2Cは、本開示の例示的実施形態に従って実行する例示的コンピューティングデバイス50のブロック図を示す。コンピューティングデバイス50は、ユーザコンピューティングデバイスまたはサーバコンピューティングデバイスであってよい。
【0079】
コンピューティングデバイス50は、いくつかのアプリケーション(たとえば、アプリケーション1~N)を含む。各アプリケーションは、中央インテリジェンスレイヤと通信する。例示的アプリケーションは、テキストメッセージングアプリケーション、eメールアプリケーション、ディクテーションアプリケーション、仮想キーボードアプリケーション、ブラウザアプリケーションなどを含む。いくつかの実装形態では、各アプリケーションは、API(たとえば、すべてのアプリケーションにわたる共通API)を使って、中央インテリジェンスレイヤ(およびその中に記憶されるモデル)と通信することができる。
【0080】
中央インテリジェンスレイヤは、いくつかの機械学習済みモデルを含む。たとえば、
図2Cに示すように、それぞれの機械学習済みモデル(たとえば、モデル)が、各アプリケーションに与えられ、中央インテリジェンスレイヤによって管理され得る。他の実装形態では、2つ以上のアプリケーションが、単一の機械学習済みモデルを共有することができる。たとえば、いくつかの実装形態では、中央インテリジェンスレイヤは、アプリケーションすべてに単一モデル(たとえば、単一モデル)を提供することができる。いくつかの実装形態では、中央インテリジェンスレイヤは、コンピューティングデバイス50のオペレーティングシステムに含まれるか、またはそうでなければ、オペレーティングシステムによって実装される。
【0081】
中央インテリジェンスレイヤは、中央デバイスデータレイヤと通信することができる。中央デバイスデータレイヤは、コンピューティングデバイス50向けのデータの集中型リポジトリであってよい。
図2Cに示すように、中央デバイスデータレイヤは、コンピューティングデバイスのいくつかの他の構成要素、たとえば、1つまたは複数のセンサー、コンテキストマネージャ、デバイス状態構成要素、および/または追加構成要素などと通信することができる。いくつかの実装形態では、中央デバイスデータレイヤは、API(たとえば、プライベートAPI)を使用して、各デバイス構成要素と通信することができる。
【0082】
追加開示
本明細書において論じた技術は、サーバ、データベース、ソフトウェアアプリケーション、および他のコンピュータベースのシステム、ならびに行われるアクションおよびそのようなシステムとの間で送られる情報を参照する。コンピュータベースのシステムの固有柔軟性により、構成要素の間でのタスクおよび機能性の非常に様々な可能構成、組合せ、および分割ができるようになる。たとえば、本明細書において論じるプロセスは、組合せで動く、単一のデバイスもしくは構成要素または複数のデバイスもしくは構成要素を使って実装することができる。データベースおよびアプリケーションは、単一のシステム上で実装されるか、または複数のシステムに分散されてよい。分散構成要素は、順次、または並行して動作することができる。
【0083】
1つまたは複数のコンピュータのシステムは、動作中に、システムにアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せをシステムにインストールすることによって、特定の動作またはアクションを実行するように構成され得る。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されると、装置にアクションを実行させる命令を含むことによって、特定の動作またはアクションを実行するように構成され得る。説明した技法の実装形態は、ハードウェア、方法またはプロセス、あるいはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含み得る。
【0084】
本主題を、その様々な具体的な例示的実施形態に関して詳しく記載したが、各例は、本開示の限定ではなく、説明として与えられている。当業者は、上記内容を理解すると、そのような実施形態に対する改変、変形、および等価物を容易に生じることができる。したがって、本開示は、当業者には容易に明らかであろうように、本主題へのそのような修正、変形および/または追加を含めることを排除しない。たとえば、一実施形態の一部として示され、または記載される特徴は、またさらなる実施形態をもたらすために、別の実施形態とともに使われてよい。したがって、本開示は、そのような改変、変形、および等価物をカバーすることが意図される。
【符号の説明】
【0085】
10 コンピューティングデバイス
12 機械学習済み言語エンコーダモデル
14 機械学習済み言語ジェネレータモデル
18 元の入力トークン
20a マスキングされたトークン
20b マスキングされたトークン
22 更新された入力トークン
23a 置換トークン
23b 置換トークン
24 予測
26 損失関数
28 第2の損失関数
50 コンピューティングデバイス
100 コンピューティングシステム
102 ユーザコンピューティングデバイス
112 プロセッサ
114 メモリ
116 データ
118 命令
120 機械学習済みモデル
122 ユーザ入力構成要素
130 サーバコンピューティングシステム
132 プロセッサ
134 メモリ
136 データ
138 命令
140 機械学習済みモデル
150 トレーニング用コンピューティングシステム
152 プロセッサ
154 メモリ
156 データ
158 命令
160 モデル訓練器
162 トレーニングデータのセット
180 ネットワーク