(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】機械学習モデルの混合クライアント-サーバ連合学習
(51)【国際特許分類】
G06N 3/098 20230101AFI20240918BHJP
G06N 20/00 20190101ALI20240918BHJP
【FI】
G06N3/098
G06N20/00
(21)【出願番号】P 2023537166
(86)(22)【出願日】2021-12-13
(86)【国際出願番号】 US2021063040
(87)【国際公開番号】W WO2022191890
(87)【国際公開日】2022-09-15
【審査請求日】2023-08-16
(32)【優先日】2021-03-10
(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)【発明者】
【氏名】スワループ・インドラ・ラマスワミ
(72)【発明者】
【氏名】オム・ディパクバイ・タッカー
(72)【発明者】
【氏名】ラジヴ・マシューズ
【審査官】北川 純次
(56)【参考文献】
【文献】中国特許出願公開第112347500(CN,A)
【文献】中国特許出願公開第112232528(CN,A)
【文献】欧州特許出願公開第3648015(EP,A2)
【文献】MCMAHAN, H. Brendan et al.,Communication-Efficient Learning of Deep Networks from Decentralized Data,arXiv [online],v3,Cornell University,2017年02月28日,[検索日 2024.08.14], インターネット: <URL: https://arxiv.org/abs/1602.05629v3>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02- 3/10
G06N 20/00-20/20
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサによって実装される方法であって、前記方法が、
複数の対応するクライアントデバイスから複数のクライアント勾配を受信するステップであって、前記複数のクライアント勾配の各々が、前記複数の対応するクライアントデバイスのうちの所与の1つの対応するユーザの対応する発話の少なくとも一部を捕捉する対応するオーディオデータを処理することに基づいて、前記複数の対応するクライアントデバイスのうちの前記所与の1つにおいてローカルに生成される、ステップと、
複数のリモート勾配を生成するステップであって、前記複数のリモート勾配の各々を生成するステップが、
追加のユーザの追加の発話の少なくとも一部を捕捉する追加のオーディオデータを取得するステップと、
リモートシステムにおいてリモートに記憶されたグローバル機械学習(ML)モデルを使用し、予測出力を生成するために前記追加のオーディオデータを処理するステップと、
前記追加の予測出力を前記追加のオーディオデータに対応するグラウンドトゥルース出力と比較することに基づいて、前記複数のリモート勾配内に含めるための追加の勾配を生成するステップと
を含む、ステップと、
前記複数のクライアント勾配の中からクライアント勾配のセットを選択するステップと、
前記複数のリモート勾配の中からリモート勾配の追加のセットを選択するステップと、
前記グローバルMLモデルの重みを更新するために前記クライアント勾配のセットと前記リモート勾配の追加のセットとを利用するステップと
を含む、
方法。
【請求項2】
前記グローバルMLモデルの前記重みを更新するために前記クライアント勾配のセットと前記リモート勾配の追加のセットとを利用するステップが、
前記グローバルMLモデルの前記重みを更新するために前記クライアント勾配のセットを利用するステップと、
前記グローバルMLモデルの前記重みを更新するために前記クライアント勾配のセットを利用するステップの後に、
前記グローバルMLモデルの前記重みをさらに更新するために前記リモート勾配の追加のセットを利用するステップと
を含む、
請求項1に記載の方法。
【請求項3】
前記グローバルMLモデルの前記重みを更新するために前記クライアント勾配のセットと前記リモート勾配の追加のセットとを利用するステップが、
前記グローバルMLモデルの前記重みを更新するために前記リモート勾配の追加のセットを利用するステップと、
前記グローバルMLモデルの前記重みを更新するために前記リモート勾配の追加のセットを利用するステップの後に、
前記グローバルMLモデルの前記重みをさらに更新するために前記クライアント勾配のセットを利用するステップと
を含む、
請求項1に記載の方法。
【請求項4】
前記グローバルMLモデルの前記重みを更新するために前記クライアント勾配のセットと前記リモート勾配の追加のセットとを利用するステップが、
前記グローバルMLモデルの第1のインスタンスの第1の重みを更新するために前記クライアント勾配のセットを利用するステップと、
並行して、前記グローバルMLモデルの第2のインスタンスの第2の重みを更新するために前記リモート勾配の追加のセットを利用するステップと、
前記グローバルMLモデルの前記重みを更新するために、前記グローバルMLモデルの前記第1のインスタンスの前記更新された第1の重みと、前記グローバルMLモデルの前記第2のインスタンスの前記更新された第2の重みとを利用するステップと
を含む、
請求項1に記載の方法。
【請求項5】
前記グローバルMLモデルの前記重みを更新するために、前記グローバルMLモデルの前記第1のインスタンスの前記更新された第1の重みと、前記グローバルMLモデルの前記第2のインスタンスの前記更新された第2の重みとを利用するステップが、
前記グローバルMLモデルの前記第1のインスタンスの前記更新された第1の重みと前記グローバルMLモデルの前記第2のインスタンスの前記更新された第2の重みとの平均を決定するステップと、
前記グローバルMLモデルの前記重みを更新するために、前記更新された第1の重みと前記更新された第2の重みとの前記平均を利用するステップと
を含む、
請求項4に記載の方法。
【請求項6】
追加の勾配のしきい値量が、前記複数の対応するクライアントデバイスから受信された前記複数の
リモート勾配の量に基づく、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記クライアント勾配のセットを選択するステップが、
前記複数のクライアント勾配のうちの1つまたは複数が特定のタイプの勾配であることに基づいて、前記クライアント勾配のセット内に含めるための前記複数のクライアント勾配のうちの前記1つまたは複数を選択するステップを含む、
請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記リモート勾配の追加のセットを選択するステップが、
前記複数のリモート勾配のうちの1つまたは複数が前記特定のタイプの勾配であることに基づいて、前記リモート勾配の追加のセット内に含めるための前記複数のリモート勾配のうちの前記1つまたは複数を選択するステップを含む、
請求項7に記載の方法。
【請求項9】
前記クライアント勾配のセットを選択するステップが、
前記複数のクライアント勾配のうちの1つまたは複数が特定のタイプの勾配であることに基づいて、前記クライアント勾配のセット内に含めるための前記複数のクライアント勾配のうちの前記1つまたは複数を選択するステップを含む、
請求項1から6のいずれか一項に記載の方法。
【請求項10】
前記リモート勾配の追加のセットを選択するステップが、
前記複数のリモート勾配のうちの1つまたは複数が前記特定のタイプの勾配であることに基づいて、前記リモート勾配の追加のセット内に含めるための前記複数のリモート勾配のうちの前記1つまたは複数を選択するステップを含む、
請求項9に記載の方法。
【請求項11】
特定のタイプの勾配を識別するために、前記リモートシステムによってアクセス可能な1つまたは複数のデータベース内に記憶されたリモート勾配の分布を分析するステップをさらに含み、
生成される前記複数のリモート勾配が、前記特定のタイプの勾配に適合する、
請求項1から10のいずれか一項に記載の方法。
【請求項12】
前記特定のタイプの勾配を識別するステップが、
前記リモート勾配の分布を分析することに基づいて、前記リモート勾配の分布が前記特定のタイプの勾配のしきい値量のリモート勾配を含まないと判断するステップを含む、
請求項11に記載の方法。
【請求項13】
前記更新されたグローバルMLモデルまたは前記グローバルMLモデルの前記更新されたグローバル重みを、前記クライアントデバイスに送信するステップであって、前記グローバルMLモデルまたは前記更新されたグローバル重みを送信するステップが、前記リモートシステムが前記クライアント勾配のセットと前記リモート勾配の追加のセットとに基づいて前記グローバルMLモデルの前記グローバル重みを更新した後である、ステップをさらに含み、
前記更新されたグローバルMLモデルまたは前記更新されたグローバル重みを前記クライアントデバイスに送信するステップが、前記クライアントデバイスに、前記クライアントデバイスのローカルストレージにおいて、オンデバイスMLモデルを前記更新されたグローバルMLモデルで置き換えさせるか、または前記オンデバイスMLモデルのローカル重みを前記グローバルMLモデルの前記更新されたグローバル重みで置き換えさせる、
請求項1から12のいずれか一項に記載の方法。
【請求項14】
前記追加のオーディオデータに対応する前記グラウンドトゥルース出力が、前記追加のオーディオデータ内に捕捉された前記追加の発話に基づく、請求項1から13のいずれか一項に記載の方法。
【請求項15】
前記追加のオーディオデータ内に捕捉された前記追加の発話が、特定の単語またはフレーズを含み、前記追加のオーディオデータに対応する前記グラウンドトゥルース出力が、前記追加の発話が前記特定の単語またはフレーズを捕捉しているかどうかの指示を含む、請求項14に記載の方法。
【請求項16】
前記追加のオーディオデータ内に捕捉された前記追加の発話が、1つまたは複数の用語を含み、前記追加のオーディオデータに対応する前記グラウンドトゥルース出力が、前記1つまたは複数の用語の転写を含む、請求項14に記載の方法。
【請求項17】
クライアントデバイスの1つまたは複数のクライアントプロセッサによって、
前記クライアントデバイスの1つまたは複数のマイクロフォンを介して、前記クライアントデバイスのユーザの発話の少なくとも一部を捕捉するオーディオデータを検出するステップと、
前記クライアントデバイスにおいてローカルに記憶されたオンデバイス機械学習(ML)モデルを使用して、予測出力を生成するために前記オーディオデータを処理するステップと、
前記予測出力に基づいてクライアント勾配を生成するステップと、
前記クライアントデバイスからリモートシステムに前記クライアント勾配を送信するステップと、
前記リモートシステムの1つまたは複数のリモートプロセッサによって、
追加のユーザの追加の発話の少なくとも一部を捕捉する追加のオーディオデータを取得するステップと、
前記リモートシステムにおいてリモートに記憶されたグローバルMLモデルを使用して、追加の予測出力を生成するために前記追加のオーディオデータを処理するステップと、
前記追加の予測出力に基づいてリモート勾配を生成するステップと、
前記グローバルMLモデルの重みを更新するために、前記クライアント勾配と前記リモート勾配とを利用するステップと
を含む方法。
【請求項18】
前記グローバルMLモデルの前記重みを更新するために前記クライアント勾配と前記リモート勾配とを利用するステップが、
前記グローバルMLモデルの前記重みを更新するために、前記クライアント勾配と、対応する追加のクライアントデバイスから受信された追加のクライアント勾配とを利用するステップと、
前記グローバルMLモデルの前記重みを更新するために前記クライアント勾配と前記追加のクライアント勾配とを利用するステップの後に、
前記グローバルMLモデルの前記重みをさらに更新するために、前記リモート勾配と、前記リモートシステムにおいて生成された追加のリモート勾配とを利用するステップと
を含む、請求項17に記載の方法。
【請求項19】
前記グローバルMLモデルの前記重みを更新するために前記クライアント勾配と前記リモート勾配とを利用するステップが、
前記グローバルMLモデルの前記重みを更新するために、前記リモート勾配と、前記リモートシステムにおいて生成された追加のリモート勾配とを利用するステップと、
前記グローバルMLモデルの前記重みを更新するために前記リモート勾配と前記追加のリモート勾配とを利用するステップの後に、
前記グローバルMLモデルの前記重みをさらに更新するために、前記クライアント勾配と、対応する追加のクライアントデバイスから受信された追加のクライアント勾配とを利用するステップと
を含む、請求項17に記載の方法。
【請求項20】
前記グローバルMLモデルの前記重みを更新するために前記クライアント勾配と前記リモート勾配とを利用するステップが、
前記グローバルMLモデルの第1のインスタンスの第1の重みを更新するために、前記クライアント勾配と、対応する追加のクライアントデバイスから受信された追加のクライアント勾配とを利用するステップと、
並行して、前記グローバルMLモデルの第2のインスタンスの第2の重みを更新するために、前記リモート勾配と、前記リモートシステムにおいて生成された追加のリモート勾配とを利用するステップと、
前記グローバルMLモデルの前記重みを更新するために、前記グローバルMLモデルの前記第1のインスタンスの前記更新された第1の重みと、前記グローバルMLモデルの前記第2のインスタンスの前記更新された第2の重みとを利用するステップと
を含む、
請求項17に記載の方法。
【請求項21】
前記リモートシステムの前記
リモートプロセッサのうちの1つまたは複数によって前記追加のオーディオデータを処理することに基づいて生成された前記リモート勾配が、前記クライアントデバイスの前記
クライアントプロセッサのうちの1つまたは複数によって前記オーディオデータを処理することに基づいて生成された前記クライアント勾配に対応する同じタイプの勾配である、請求項17から20のいずれか一項に記載の方法。
【請求項22】
前記勾配のタイプが、ホットワード勾配、自動音声認識(ASR)勾配、音声区間検出(VAD)勾配、継続会話勾配、または音声識別勾配のうちの1つを含む、請求項21に記載の方法。
【請求項23】
前記リモートシステムの前記
リモートプロセッサのうちの1つまたは複数によって前記追加のオーディオデータを処理することに基づいて生成された前記リモート勾配が、前記クライアントデバイスの前記
クライアントプロセッサのうちの1つまたは複数によって前記オーディオデータを処理することに基づいて生成された前記クライアント勾配に対応する異なるタイプの勾配である、請求項17から20のいずれか一項に記載の方法。
【請求項24】
前記予測出力に基づいて前記クライアント勾配を生成するステップが、前記予測出力を前記オーディオデータに対応するグラウンドトゥルース出力と比較するステップを含み、前記追加の予測出力に基づいて前記リモート勾配を生成するステップが、前記追加の予測出力を前記追加のオーディオデータに対応する追加のグラウンドトゥルース出力と比較するステップを含む、請求項17から23のいずれか一項に記載の方法。
【請求項25】
前記クライアント勾配を送信するステップが、ネットワークを介し、前記
クライアント勾配を送信するステップが、前記オーディオデータおよび前記予測出力のうちのいずれも送信することなく、前記
クライアント勾配を送信するステップを含む、請求項17から24のいずれか一項に記載の方法。
【請求項26】
前記リモートシステムの1つまたは複数のリモートプロセッサによって、
前記更新されたグローバルMLモデルまたは前記グローバルMLモデルの前記更新されたグローバル重みを前記クライアントデバイスに送信するステップであって、前記グローバルMLモデルまたは前記更新されたグローバル重みを送信するステップが、前記リモートシステムが前記クライアント勾配と前記リモート勾配とに基づいて前記グローバルMLモデルの前記グローバル重みを更新した後である、ステップ
をさらに含む、請求項17から25のいずれか一項に記載の方法。
【請求項27】
前記クライアントデバイスの前記
クライアントプロセッサのうちの1つまたは複数によって、
前記リモートシステムから、前記更新されたグローバルMLモデルまたは前記グローバルMLモデルの前記更新されたグローバル重みを受信するステップと、
前記クライアントデバイスに、前記クライアントデバイスのローカルストレージにおいて、前記オンデバイスMLモデルを前記更新されたグローバルMLモデルで置き換えさせるか、または前記オンデバイスMLモデルのローカル重みを前記グローバルMLモデルの前記更新されたグローバル重みで置き換えさせるステップと
をさらに含む、
請求項26に記載の方法。
【請求項28】
クライアントデバイスの1つまたは複数のクライアントプロセッサによって、
ユーザの前記クライアントデバイスにおいてローカルに記憶されたテキストセグメントを識別するステップと、
前記クライアントデバイスにおいてローカルに記憶されたオンデバイステキスト読み上げ(TTS)モデルを使用して、前記テキストセグメントに対応する合成音声を含む合成音声オーディオデータを生成するために前記テキストセグメントを処理するステップと、
前記クライアントデバイスにおいてローカルに記憶されたローカル機械学習(ML)モデルを使用して、予測出力を生成するために前記合成音声オーディオデータを処理するステップと、
前記予測出力を前記テキストセグメントに対応するグラウンドトゥルース出力と比較することに基づいて勾配を生成するステップと、
前記生成された勾配を前記クライアントデバイスからリモートシステムに送信するステップと
前記リモートシステムの1つまたは複数のリモートプロセッサによって、
前記リモートシステムによってアクセス可能な追加のテキストセグメントを取得するステップと、
前記リモートシステムにおいてリモートに記憶されたグローバルTTSモデルを使用して、前記追加のテキストセグメントに対応する追加の合成音声を含む追加の合成音声オーディオデータを生成するために前記追加のテキストセグメントを処理するステップと、
前記リモートシステムにおいてリモートに記憶されたグローバルMLモデルを使用して、追加の予測出力を生成するために前記追加の合成音声オーディオデータを処理するステップと、
前記追加の予測出力を前記追加のテキストセグメントに対応する追加のグラウンドトゥルース出力と比較することに基づいて、追加の勾配を生成するステップと、
前記グローバルTTSモデルの重みを更新するために、少なくとも前記クライアントデバイスから受信された前記勾配と、前記リモートシステムにおいて生成された前記追加の勾配とを利用するステップと
を含む方法。
【請求項29】
1つまたは複数のプロセッサによって実行される方法であって、前記方法が、
複数の対応するクライアントデバイスから複数のクライアント勾配を受信するステップであって、前記複数のクライアント勾配の各々が、前記複数の対応するクライアントデバイスのうちの所与の1つの対応するユーザの対応する環境の少なくとも一部を捕捉する対応する画像データを処理することに基づいて、前記複数の対応するクライアントデバイスのうちの前記所与の1つにおいてローカルに生成される、ステップと、
複数のリモート勾配を生成するステップであって、前記複数のリモート勾配の各々を生成するステップが、
追加のユーザの追加の環境の少なくとも一部を捕捉する追加の画像データを取得するステップと、
リモートシステムにおいてリモートに記憶されたグローバル機械学習(ML)モデルを使用して、予測出力を生成するために前記追加の画像データを処理するステップと、
前記追加の予測出力を前記追加の画像データに対応するグラウンドトゥルース出力と比較することに基づいて、前記複数のリモート勾配内に含めるための追加の勾配を生成するステップと
を含む、ステップと、
前記複数のクライアント勾配の中からクライアント勾配のセットを選択するステップと、
前記複数のリモート勾配の中からリモート勾配の追加のセットを選択するステップと、
前記グローバルMLモデルの重みを更新するために、前記クライアント勾配のセットと前記リモート勾配の追加のセットとを利用するステップと
を含む、
方法。
【請求項30】
少なくとも1つのプロセッサと、
実行されると、前記少なくとも1つのプロセッサに、請求項1から29のいずれか一項に対応する動作を実行させる命令を記憶するメモリと
を備えるシステム。
【請求項31】
実行されると、少なくとも1つのプロセッサに、請求項1から29のいずれか一項に対応する動作を実行させる命令を記憶す
るコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
機械学習(ML)モデルの連合学習は、MLモデルをトレーニングするためのますます人気が高まっているML技法である。従来の連合学習において、ローカルMLモデルは、ユーザのクライアントデバイスにおいてローカルに記憶され、ローカルMLモデルのクラウドベースの対応物であるグローバルMLモデルは、リモートシステム(例えば、サーバのクラスタ)においてリモートに記憶される。クライアントデバイスは、ローカルMLモデルを使用して、予測出力を生成するために、クライアントデバイスにおいて検出されたユーザ入力を処理することができ、クライアント勾配を生成するために、予測出力をグラウンドトゥルース出力と比較することができる。さらに、クライアントデバイスは、クライアント勾配をリモートシステムに送信することができる。リモートシステムは、グローバルMLモデルの重みを更新するために、クライアント勾配と、オプションで、追加のクライアントデバイスにおいて同様の方法で生成された追加のクライアント勾配とを利用することができる。リモートシステムは、グローバルMLモデル、またはグローバルMLモデルの更新された重みをクライアントデバイスに送信することができる。次いで、クライアントデバイスは、ローカルMLモデルをグローバルMLモデルに置き換えることができ、またはローカルMLモデルの重みをグローバルMLモデルの更新された重みに置き換えることができ、それによってローカルMLモデルを更新する。
【0002】
特に、これらのグローバルMLモデルは、一般に、リモートシステムにおいてリモートに生成された複数のリモート勾配に基づいて、クライアントデバイスにおいてローカルに生成されたいかなるクライアント勾配も使用することなく、連合学習において利用する前にリモートシステムにおいて事前にトレーニングされる。この事前トレーニングは、一般に、グローバルMLモデルがクライアントデバイスにおいて展開されるときに遭遇するデータを反映しない場合があるプロキシデータまたは偏ったデータに基づく。事前トレーニングに続いて、これらのグローバルMLモデルの重みは、通常、グローバルMLモデルがクライアントデバイスにおいて展開されるときに遭遇するデータに基づいて生成されたクライアント勾配のみに基づいて、リモートシステムにおいてリモートに生成されたいかなるリモート勾配も使用せずに更新される。しかしながら、この方法でこれらのグローバルMLモデルの重みを更新することは、事前トレーニング中に学習された情報の壊滅的な忘却を引き起こす可能性がある。さらに、特定のデータ(例えば、偽陽性、偽陰性など)に基づいて生成されたクライアント勾配は、クライアントデバイスにおいて取得することが困難である場合があり、それによって、連合学習を使用してトレーニングされたMLモデルの性能を結果として低下させる。
【発明の概要】
【課題を解決するための手段】
【0003】
本明細書で開示される実装形態は、対応するクライアントデバイスおよびリモートシステムにおいて生成された勾配に基づく機械学習(ML)モデルの連合学習に向けられている。対応するクライアントデバイスのプロセッサは、対応する予測出力を生成するために、対応するオンデバイスMLモデルを使用して対応するクライアントデバイスにおいてローカルに生成されたクライアントデータを処理し、対応する予測出力に基づいて対応するクライアント勾配を生成し、対応するクライアント勾配をリモートシステムに送信することができる。リモートシステムのプロセッサは、追加の対応する予測出力を生成するために、グローバルMLモデルを使用してリモートデータベースから取得されたリモートデータを処理し、追加の対応する予測出力に基づいて対応するリモート勾配を生成することができる。さらに、リモートシステムは、グローバルMLモデルまたはその重みを更新するために、対応するクライアント勾配と対応するリモート勾配とを利用することができる。更新されたグローバルMLモデルおよび/または更新されたその重みは、対応するクライアントデバイスに返送され得る。特に、本明細書で説明するリモート勾配は、すでにトレーニングされたグローバルMLモデルを更新する際に利用される。
【0004】
例えば、「アシスタント、ロンスミスに電話して(Assistant, call Ron Smith)」という発話を捕捉したオーディオデータがユーザの所与のクライアントデバイスにおいて生成されたと仮定する。この例において、所与のクライアントデバイスは、オンデバイスホットワード検出モデルを使用し、発話の一部が自動アシスタントを呼び出すための1つまたは複数の特定の単語またはフレーズ(例えば、「アシスタント(Assistant)」、「ヘイアシスタント(Hey Assistant)」、および/または自動アシスタントを呼び出すかもしくは他の方法で制御するための任意の他の単語もしくはフレーズ)を含んでいるかどうかを示す予測出力を生成するために、オーディオデータを処理することができる。この例において、予測出力は、予測尺度(例えば、確率、バイナリ値、対数尤度値、または任意の他の予測尺度)であり得る。例えば、予測出力は、発話が自動アシスタントを呼び出すための特定の単語またはフレーズのうちの1つまたは複数を含むことを示すしきい値確率(例えば、0.75)を満たす0.80の確率であると仮定する。さらに、所与のクライアントデバイスは、予測出力(例えば、0.80の確率)を、対応するグラウンドトゥルース出力(例えば、ユーザが自動アシスタントを呼び出すことを意図していると仮定する1.0の確率)と比較することができる。所与のクライアントデバイスは、クライアント勾配、またはより具体的には、ホットワード検出モデルに関連付けられたホットワード検出クライアント勾配を生成するために、予測出力と対応するグラウンドトゥルース出力とを比較することができる。ホットワード検出クライアント勾配は、リモートシステムに送信され得、リモートシステムは、グローバルホットワード検出モデルの重みを更新するために、ホットワード検出クライアント勾配を利用することができる。
【0005】
上記の例について、ホットワード検出クライアント勾配に関して説明しているが、それは、例のためのものであり、限定であることを意味していないことが理解されるべきである。例えば、所与のクライアントデバイスは、追加的または代替的に、自動音声認識(ASR)モデルを使用して、発話に対応する用語に関連付けられた予測出力を生成するためにオーディオデータを処理することができる。この例において、予測出力は、発話に対応する複数の音声仮説(およびオプションで、複数の音声仮説のうちの1つまたは複数に関連する予測尺度)であり得る。例えば、発話の「ロン(Ron)」部分に関する予測出力が、0.55の確率に関連付けられた「ロン(Ron)」の用語仮説と、0.45の確率に関連付けられた「ドン(Don)」の用語仮説とを含むと仮定する。所与のクライアントデバイスは、予測出力(例えば、「ロン(Ron)」および「ドン(Don)」の用語仮説ならびにそれらの関連する確率)を、対応するグラウンドトゥルース出力(例えば、ユーザが「ロン(Ron)」に電話をかけることを意図していると仮定した場合の「ロン(Ron)」という用語および1.0の確率)と比較することができる。所与のクライアントデバイスは、別のクライアント勾配、またはより具体的には、ASRモデルに関連付けられたASRクライアント勾配を生成するために、予測出力と対応するグラウンドトゥルース出力とを比較することができる。同様に、ASRクライアント勾配は、リモートシステムに送信され得、リモートシステムは、グローバルASRモデルの重みを更新するために、ASRクライアント勾配を利用することができる。さらに、上記の例について、オーディオベースのMLモデルに関して説明しているが、それは、例のためのものであり、限定であることを意味しておらず、本明細書で説明する技法は、画像ベースのMLモデル、テキストベースのMLモデル、および/または他のタイプのMLモデルに関するクライアント勾配を生成するためにも利用され得ることも理解されるべきである。言い換えれば、所与のクライアントデバイスによって生成される勾配のタイプは、所与のクライアントデバイスにおいて生成または受信されるクライアントデータに基づく場合があり、追加的または代替的に、クライアントデータを処理するために利用される特定のMLモデルに基づく場合がある。
【0006】
リモートシステムは、(オプションで、対応するクライアントデバイスからクライアント勾配を受信したことに応答して)リモートデータベースからリモートデータを取得することができる。いくつかの実装形態において、リモートデータは、例えば、アクセス制限されていない(すなわち、対応するクライアントデバイスにおいてローカルに生成および/または受信されたクライアントデータのように)オンラインビデオ共有プラットフォーム、画像共有プラットフォーム、オーディオ共有プラットフォーム、および/またはテキストベースのプラットフォームから取得され得る。追加または代替の実装形態において、対応するクライアントデバイスの対応するユーザの許可を得て、リモートデータは、リモートシステムにアクセス可能な対応するユーザのアクセス制御されたデータであるデータであり得る。リモート勾配は、所与のクライアントデバイスに関して上記で説明したのと同じまたは類似の方法でリモートシステムにおいて生成され得るが、リモートデータに基づいて、リモートシステムの構成要素と、リモートシステムにアクセス可能なグローバルMLモデルとを使用して生成され得る。
【0007】
いくつかの実装形態において、リモートシステムは、対応するクライアントデバイスから受信されたクライアント勾配を分析し、クライアントデータに関連付けられたリモートデータを取得することができる。例えば、所与のクライアント勾配が、「アシスタント、ロンスミスに電話して(Assistant, call Ron Smith)」の発話を捕捉するオーディオデータに基づいて生成されるが、予測出力(例えば、偽陰性のホットワード検出クライアント勾配)に基づいて自動アシスタントが呼び出されなかったと仮定する。この例において、リモートシステムは、(例えば、「アシスタント(Assistant)」を不明瞭に話すかまたは他の方法でそれに影響を与えるようにリモートオーディオデータをフィルタリングすることによって)別の偽陽性を結果として生じる可能性があるリモートオーディオデータを取得する可能性がある。特に、連合学習フレームワークにおいて、クライアント勾配は、基礎となるクライアントデータまたは予測出力のいずれも送信することなく、サーバに送信され得る。しかしながら、リモートシステムは、勾配がオーディオデータに基づいて生成された偽陰性ホットワード検出クライアント勾配であることを知っている場合がある。対照的に、リモートシステムは、偽陽性(例えば、自動アシスタントが呼び出されたが、呼び出されるべきではなかった)を結果として生じる可能性があるリモートオーディオデータを取得する可能性があり、これは、所与のクライアントデバイスのユーザの意図が容易に確認できない場合があるので、偽陰性よりも取得するのが困難である場合がある。それにもかかわらず、リモートシステムは、グローバルホットワード検出モデルを更新するために利用される勾配が十分に多様であることを保証するために、偽陽性を結果として生じる場合があるリモートオーディオデータを取得することができる。
【0008】
それらの実装形態のいくつかのバージョンにおいて、リモートシステムは、対応するグローバルMLモデルを更新する際に利用されるべき勾配の分布を分析することができる。分布を分析する際、リモートシステムは、対応するクライアントデバイスからリモートシステムにおいて受信されたクライアント勾配のタイプ、および/またはリモートシステムにおいて生成されたリモート勾配のタイプを識別することができる。さらに、リモートシステムは、特定のタイプの勾配またはその十分な量が欠けている勾配の分布に基づいて、特定のタイプの勾配を生成する必要があると判断することができる。これらの特定のタイプの勾配を生成する必要があると判断したことに応答して、リモートシステムは、それらの特定のタイプの勾配(およびオプションでその特定の量)を生成することができる。例えば、自動アシスタントを呼び出すかまたは他の方法で制御するために、対応するクライアントデバイスの対応するユーザによって提供されるジェスチャに基づいて(例えば、手の動き、目の動き、唇の動きなどに基づいて)、対応するクライアントデバイスにおいて、複数のホットワードフリー呼び出しクライアント勾配が生成されたと仮定する。しかしながら、クライアントデバイスにおいて、(例えば、プライバシーへの配慮のため)自動アシスタントを呼び出さないホットワードフリー呼び出しクライアント勾配を取得することは困難である場合がある。この例において、リモートシステムは、自動アシスタントを呼び出すことに向けられていないジェスチャを行う人間を含むホットワードフリー呼び出しリモート勾配の必要があると判断する場合がある。したがって、リモートシステムは、グローバルホットワードフリー呼び出しモデルを更新するために利用されるホットワードフリー呼び出し勾配の間に十分な量および多様性が存在することを保証するために、自動アシスタントを呼び出さない1つまたは複数のジェスチャを行う人間のリモート画像データを取得することができる。
【0009】
さらに、リモートシステムは、対応するグローバルMLモデルを更新するために、対応するクライアントデバイスから受信されたクライアント勾配と、リモートシステムによって生成されたリモート勾配とを利用することができる。いくつかの実装形態において、リモートシステムは、更新の特定の反復のために、対応するグローバルMLモデルの重みを更新する際に利用されるべき対応するクライアント勾配のセットを選択することができる。それらの実装形態のいくつかのバージョンにおいて、リモートシステムは、1つまたは複数の基準に基づいて、対応するクライアント勾配のセットを選択することができる。1つまたは複数の基準は、例えば、リモートシステムに利用可能なクライアント勾配のタイプ、リモートシステムに利用可能なクライアント勾配のしきい値量、クライアント勾配を使用する更新のしきい値持続時間、および/または他の基準を含むことができる。例えば、リモートシステムは、オーディオベースのモデル(例えば、単一のオーディオベースのモデルまたは複数の異種のオーディオベースのモデル)を更新するために利用されるべき500のオーディオベースのクライアント勾配のセットを選択すること、ホットワードモデルを更新するために利用されるべき200のホットワードクライアント勾配のセットを選択することなどを行うことができる。別の例として、システムは、画像ベースのモデル(例えば、単一の画像ベースのモデルまたは複数の異種の画像ベースのモデル)を更新するために利用されるべき600の画像ベースのクライアント勾配のセットを選択すること、ホットワードモデルを更新するために利用されるべき300のホットワードフリー呼び出しクライアント勾配のセットを選択すること、などを行うことができる。他の実装形態において、クライアント勾配のセットは、オーディオベースのクライアント勾配、画像ベースのクライアント勾配、テキストベースのクライアント勾配、および/または任意の他のタイプのクライアント勾配(または特定のタイプのクライアント勾配)の任意の組合せを含むことができる。
【0010】
それらの実装形態のいくつかのバージョンにおいて、リモートシステムは、対応するグローバルMLモデルの重みを更新する際に利用されるべき対応するリモート勾配のセットを選択することもできる。それらの実装形態のいくつかのさらなるバージョンにおいて、リモートシステムは、対応するクライアント勾配のセット内に含まれる勾配のタイプに基づいて、対応するリモート勾配のセットを選択することができる。例えば、対応するクライアント勾配の選択されたセットが、オーディオベースの勾配(または特定のタイプのオーディオベースの勾配)のセットを含む場合、対応するリモート勾配の選択されたセットも、オーディオベースの勾配を含むことができる。それらのさらなる実装形態の追加または代替のバージョンにおいて、リモートシステムは、対応するクライアント勾配の選択されたセット内に含まれるクライアント勾配の量に基づいて、対応するリモート勾配のセットを選択することができる。例えば、対応するクライアント勾配の選択されたセットが、500のオーディオベースの勾配(または特定のタイプのオーディオベースの勾配)のセットを含む場合、対応するリモート勾配の選択されたセットも、500のオーディオベースの勾配を含むことができる。別の例として、対応するクライアント勾配の選択されたセットが、500のオーディオベースの勾配(または特定のタイプのオーディオベースの勾配)のセットを含む場合、対応するリモート勾配の選択されたセットは、比例する量のオーディオベースの勾配(例えば、150%の場合は750、50%の場合は250、20%の場合は100など)を含むこともできる。
【0011】
クライアント勾配およびリモート勾配の対応するセットが、対応するグローバルMLモデルの重みを更新するために利用される実装形態において、対応するグローバルMLモデルは、様々な方法において更新され得る。例えば、対応するMLモデルの重みは、最初に、対応するクライアント勾配の選択されたセットに基づいて更新され、その後、対応するリモート勾配の選択されたセットに基づいて更新され得る。別の例として、対応するMLモデルの重みは、最初に、対応するリモート勾配の選択されたセットに基づいて更新され、その後、対応するクライアント勾配の選択されたセットに基づいて更新され得る。さらに別の例として、対応するMLモデルの第1のインスタンスの第1の重みが、対応するクライアント勾配の選択されたセットに基づいて更新され得、並行してまたは連続して、対応するMLモデルの第2のインスタンスの第2の重みが、対応するリモート勾配の選択されたセットに基づいて更新され得る。この例において、第1の重みおよび第2の重みの平均(またはなにか他の統計的尺度)が、対応するMLモデルの更新された重みとして利用され得る。他の実装形態において、リモートシステムは、グローバルMLモデルを更新する特定の反復に勾配を割り当てることなく、対応するグローバルMLモデルを先入れ先出し(FIFO)方式において更新するために、クライアント勾配とリモート勾配とを利用することができる。
【0012】
本明細書で説明する技法を利用することによって、様々な技術的利点が達成され得る。非限定的な一例として、本明細書で説明する方法において生成されたクライアント勾配とリモート勾配の両方を利用することで、対応するグローバルMLモデルは、多様でバランスのとれたデータに基づいて更新され得、それによって、壊滅的な忘却の影響を低減し、より高い精度および/または再現率を有するより堅牢なグローバルMLモデルを結果として生じる。例えば、リモートシステムは、これらの技法がなければ、プライバシーへの配慮のため、連合学習フレームワーク内で取得できない場合がある特定のグローバルMLモデルのための特定のタイプの勾配に対する識別された必要性に基づいて、リモート勾配を生成することができる。結果として、対応するグローバルMLモデル(またはその重み)がクライアントデバイスに展開された場合、オンデバイスMLモデルも、より堅牢になり、より高い精度および/または再現率を有する。
【0013】
上記の説明は、本開示のいくつかの実装形態の概要として提供される。それらの実装形態および他の実装形態についてのさらなる説明は、以下でより詳細に記載される。
【図面の簡単な説明】
【0014】
【
図1A】様々な実装形態による、本開示の様々な態様を実証する例示的なプロセスフローを示す図である。
【
図1B】様々な実装形態による、本開示の様々な態様を実証する例示的なプロセスフローを示す図である。
【
図1C】様々な実装形態による、本開示の様々な態様を実証する例示的なプロセスフローを示す図である。
【
図1D】様々な実装形態による、本開示の様々な態様を実証する例示的なプロセスフローを示す図である。
【
図2】本明細書で開示する実装形態が実装され得る例示的な環境のブロック図である。
【
図3】様々な実装形態による、機械学習モデルを更新する際に利用されるべきクライアント勾配をクライアントデバイスにおいてローカルに生成する例示的な方法を示すフローチャートである。
【
図4】様々な実装形態による、機械学習モデルを更新する際に利用されるべきリモート勾配をリモートシステムにおいてリモートに生成する例示的な方法を示すフローチャートである。
【
図5】様々な実装形態による、グローバル機械学習モデルを更新する際に、クライアント勾配のセットとリモート勾配のセットとを混合する様々な例示的な方法を示すフローチャートである。
【
図6】様々な実装形態による、コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【0015】
図1A~
図1Dは、本開示の様々な態様を実証する例示的なプロセスフローを示す。クライアントデバイス150が、
図1Aにおいて示されており、クライアントデバイス150を示す
図1Aのボックス内に包含される構成要素を含む。オンデバイス機械学習(ML)エンジン132Aは、予測出力102を生成するために、オンデバイスMLモデルデータベース154A内に記憶されたオンデバイスMLモデルを使用して、クライアントデータ101Aを処理することができる。勾配エンジン134Aは、予測出力102に基づいてクライアント勾配103を生成することができる。いくつかの実装形態において、勾配エンジン134Aは、教師あり学習技法を使用して、予測出力102を、クライアントデータ101Aに対応するグラウンドトゥルース出力101Bと比較することに基づいて、クライアント勾配103を生成することができる。クライアントデータ101Aに対応するグラウンドトゥルース出力101Bが利用できない場合などの追加または代替の実装形態において、勾配エンジン134Aは、(例えば、
図3に関して説明する)教師ありおよび/または教師なし学習技法を使用して、クライアント勾配103を生成することができる。次いで、クライアントデバイス150は、1つまたは複数のネットワーク(例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、および/または任意の他のタイプのネットワークの任意の組合せ)を介して、ならびにオプションで、クライアントデータ101A、グラウンドトゥルース出力101B、予測出力102、および/または任意の他の個人を特定できる情報のいずれも送信せずに、クライアント勾配103をリモートシステム160に送信することができる。様々な実装形態において、クライアントデバイス150は、(例えば、
図3に関して説明する)1つまたは複数の条件が満たされたと判断したことに応答して、クライアント勾配103をリモートシステム160に送信することができる。
【0016】
いくつかの実装形態において、クライアント勾配103(および本明細書で説明する他の勾配)は、勾配が、(例えば、教師あり学習技法を使用して)グラウンドトゥルース出力101Bと予測出力102との比較から取得されるその損失関数(またはその導関数)の値を表すように、MLモデルをトレーニングするために使用される損失関数から導出され得る。例えば、グラウンドトゥルース出力101Bおよび予測出力102が一致する場合、勾配エンジン134Aは、ゼロ勾配を生成することができる。また、例えば、グラウンドトゥルース出力101Bおよび予測出力102が一致しない場合、勾配エンジン134Aは、オプションで、不一致の程度に応じた非ゼロ勾配を生成することができる。不一致の程度は、グラウンドトゥルース出力101Bと予測出力102との決定論的比較間の不一致の程度に基づくことができる。追加または代替の実装形態において、クライアント勾配103(および本明細書で説明する他の勾配)は、勾配が、(例えば、教師ありまたは半教師あり学習技法を使用して)予測出力102に基づいて決定された損失関数(またはその導関数)の値を表すように、MLモデルをトレーニングするために使用される損失関数から導出され得る。
【0017】
以下に説明するように、クライアントデータ101Aは、(例えば、
図1Bに関して説明する)クライアントデバイス150のマイクロフォンによって生成されたオーディオデータ、(例えば、
図1Cに関して説明する)クライアントデバイス150のユーザによって入力として提供されたおよび/もしくはオンデバイスメモリ内に記憶されたテキストセグメント、(例えば、
図1Dに関して説明する)クライアントデバイスの視覚構成要素によって生成された画像データ、ならびに/またはクライアントデバイス150においてローカルに生成され、MLモデルを使用して処理された任意の他のデータであり得る。いくつかの実装形態において、クライアントデータ101Aは、クライアントデータ101Aが同期的にクライアントデバイス150に生成または提供されると、勾配103を生成するために処理され得る。追加または代替の実装形態において、クライアントデータ101Aは、クライアントデータ101Aがクライアントデバイス150に生成または提供されると、クライアントデータデータベース152A内に記憶され得、その後、クライアントデータ101Aは、非同期的に勾配103を生成するために利用され得る。追加または代替の実装形態において、オンデバイスMLエンジン132Aは、予測出力102を生成するためにクライアントデータ101Aを処理することができ、予測出力102は、(オプションで、予測出力102に関連付けられたクライアントデータ101Aと関連付けて)クライアントデータデータベース152A内に記憶され得、その後、予測出力102は、非同期的に勾配103を生成するために利用され得る。クライアントデバイスデータベース152A(本明細書では、オンデバイスメモリまたはオンデバイスストレージとも呼ばれる)は、限定はしないが、オーディオデータ、画像データ、連絡先リスト、クライアントデバイス150のユーザによって送信されたもしくはクライアントデバイス150のユーザによって受信された電子メッセージ(例えば、テキストメッセージ、電子メール、ソーシャルメディアメッセージなど)、および/または任意の他のクライアントデータを含む、クライアントデバイスに生成または提供された任意のデータを含むことができる。特に、クライアントデータ101Aは、アクセス制限されたデータ、または公的には利用できないおよび/もしくはリモートシステム160には利用できないデータに対応する。
【0018】
グローバルMLエンジン132Bは、予測出力105を生成するために、グローバルMLモデルデータベース154B内に記憶されたグローバルMLモデルを使用して、リモートデータ104Aを処理することができる。リモートデータ104Aは、リモートデータデータベース152Bから取得され得る。リモートデータデータベース152Bは、限定はしないが、オーディオデータ、テキストデータ、および/または画像データを含むパブリックデータリポジトリ、ならびにプライベートデータリポジトリを含む、リモートシステム160によってアクセス可能な任意のデータを含むことができる。さらに、リモートデータデータベース152Bは、異なるデバイス特性または構成要素を有する(例えば、クライアントデバイス150および/または以下で説明する複数の追加のクライアントデバイス170とは異なる)異なるタイプのクライアントデバイスからのデータを含むことができる。例えば、リモートデータデータベース152Bは、近距離マイクロフォンによって捕捉されたオーディオデータ(例えば、クライアントデバイス150によって捕捉されたオーディオデータと同様)、および遠距離マイクロフォンによって捕捉されたオーディオデータ(例えば、他のデバイスによって捕捉されたオーディオデータ)を含むことができる。別の例として、リモートデータデータベース152Bは、RGB画像データ、RGB-D画像データ、CMYK画像データ、および/または様々な異なる視覚構成要素によって捕捉された他のタイプの画像データなどの、異なる視覚構成要素によって捕捉された画像データ(または他の視覚データ)を含むことができる。さらに、リモートシステム160は、リモートデータ104Bを修正するために、リモートデータ104Aに1つまたは複数の技法を用いることができる。これらの技法は、リモートデータ104Aがオーディオデータである場合、ノイズを追加もしくは除去するためにオーディオデータをフィルタリングすること、リモートデータ104Aが画像データである場合、画像をぼかすこと、および/またはリモートデータ104Aを操作する他の技法を含むことができる。これは、リモートシステム160が、複数の異なるクライアントデバイスによって生成されたクライアントデータをよりよく反映すること、および/または特定のタイプのデータに関する必要性を満たす(例えば、本明細書で説明するように偽陽性または偽陰性を誘導する、本明細書で説明するようにオーディオデータの十分な多様性を保証する、など)ことを可能にする。
【0019】
勾配エンジン134Bは、予測出力105に基づいてリモート勾配106を生成することができる。いくつかの実装形態において、勾配エンジン134Bは、教師あり学習技法を使用して、予測出力105を、リモートデータ104Aに対応するグラウンドトゥルース出力104Bと比較することに基づいて、リモート勾配106を生成することができる。リモートデータ104Aに対応するグラウンドトゥルース出力104Bが利用できない場合などの追加または代替の実装形態において、勾配エンジン134Bは、教師ありおよび/または教師なし学習技法を使用して、リモート勾配106を生成することができる。いくつかの実装形態において、リモートシステム160は、リモート勾配106が実際のクライアントデバイスによって生成されているように見えるように、クライアントデバイスを「カナリア」ユーザとしてシミュレートすることができる。リモート勾配106(および任意の追加のリモート勾配)は、勾配データベース185(例えば、長期メモリおよび/またはバッファなどの短期メモリ)内に、オプションで、クライアントデバイス150から受信されたクライアント勾配103および複数の追加のクライアントデバイス170(オプションで、クライアントデバイス150と同じタイプのクライアントデバイス(例えば、携帯電話、スタンドアロンの対話型スピーカ、車載コンピューティングシステムなど)に制限され得る)から受信された対応する追加の勾配107とともに記憶され得る。複数の追加のクライアントデバイス170から受信される追加の勾配107は、各々、勾配103を生成することに関して上記で説明したのと同じまたは類似の技法に基づいて生成され得るが、複数の追加のクライアントデバイス170のうちのそれぞれ1つにおいてローカルに生成または提供されるクライアントデータに基づいて生成され得る。
【0020】
上述したように、勾配103、106、および/または107は、勾配103、106、および/または107が生成および/または受信されると、勾配データベース185(または他のメモリ(例えば、バッファ))内に記憶され得る。いくつかの実装形態において、勾配103、106、および/または107は、複数の異なるタイプの勾配の中から、クライアントデータ101Aを処理した対応するオンデバイスMLモデルおよび/またはリモートデータ104Aを処理した対応するグローバルMLモデルに基づいて決定される勾配のタイプによってインデックス付けされ得る。複数の異なるタイプの勾配は、様々な粒度で定義され得る。例えば、
図1B~
図1Cおよび
図2に関して説明したように、勾配のタイプは、例えば、ホットワードモデルを使用してオーディオデータを処理することに基づいて生成されたホットワード勾配、オーディオデータを処理することに基づいて生成されたASR勾配、VADモデルを使用してオーディオデータを処理することに基づいて生成されたVAD勾配、継続会話モデルを使用してオーディオデータを処理することに基づいて生成された継続会話勾配、音声識別モデルを使用してオーディオデータを処理することに基づいて生成された音声識別勾配、顔識別モデルを使用して画像データを処理することに基づいて生成された顔識別勾配、ホットワードフリーモデルを使用して画像データを処理することに基づいて生成されたホットワードフリー勾配、物体検出モデルを使用して画像データを処理することに基づいて生成された物体検出勾配、テキスト読み上げ(TTS)モデルを使用してテキストセグメントを処理することに基づいて生成されたTTS勾配、および/または任意の他のMLモデルを使用してデータを処理することに基づいて生成され得る任意の他の勾配として、特に定義され得る。特に、勾配103、106、および/または107のうちの所与の1つが、複数の異なるタイプの勾配のうちの1つに1対1で属することができる。したがって、別の例として、勾配のタイプは、例えば、1つもしくは複数のオーディオベースのモデルを使用してオーディオデータを処理することに基づいて生成されたオーディオベースの勾配、1つもしくは複数の画像ベースのモデルを使用して画像データを処理することに基づいて生成された画像ベースの勾配、またはテキストベースのモデルを使用してテキストセグメントを処理することに基づいて生成されたテキストベースの勾配として、より一般的に定義され得る。
【0021】
リモートトレーニングエンジン136は、グローバルMLモデルデータベース154B内に記憶されたグローバルMLモデルの1つまたは複数の重みを更新するために、少なくともクライアント勾配103と、リモート勾配106と、追加の勾配107とを利用することができる。例えば、リモートトレーニングエンジン136は、その重みを更新するために、グローバルMLモデルデータベース154B内に記憶されたグローバルMLモデルのうちの特定のグローバルMLモデルを識別することができる。いくつかの実装形態において、リモートトレーニングエンジン136は、勾配データベース185内に記憶された勾配のタイプに基づいて、特定のグローバルMLモデルを識別することができる。例えば、複数のホットワード勾配が勾配データベース185内に記憶されている場合、リモートトレーニングエンジン136は、複数のホットワード勾配に基づいて更新するためのグローバルホットワードモデルを識別することができる。別の例として、複数のオーディオベースの勾配が勾配データベース185内に記憶されている場合、リモートトレーニングエンジン136は、複数のオーディオベースの勾配に基づいて更新するためのグローバルオーディオベースのモデルを識別することができる。特に、リモートトレーニングエンジン136は、所与の時間インスタンスにおいて更新されるべき単一のグローバルMLモデル、または所与の時間インスタンスにおいて並行して更新されるべき複数のグローバルMLモデルを識別することができる。
【0022】
いくつかの実装形態において、リモートシステム160は、1つまたは複数の基準に基づいて、グローバルMLモデルを更新する特定の反復に勾配103、106、および/または107を割り当てることができる。1つまたは複数の基準は、例えば、リモートトレーニングエンジン136に利用可能な勾配のタイプ、リモートトレーニングエンジン136に利用可能な勾配のしきい値量、勾配を使用する更新のしきい値持続時間、および/または他の基準を含むことができる。特に、リモートトレーニングエンジン136は、クライアントデバイス110によって生成された勾配の複数のセットもしくはサブセット、および/またはリモートシステム160によって生成されたセットを識別することができる。さらに、リモートトレーニングエンジン136は、これらの勾配のセットまたはサブセットに基づいてグローバルMLモデルを更新することができる。それらの実装形態のいくつかのさらなるバージョンにおいて、クライアント勾配のセットおよびリモート勾配のセットにおける勾配の量は、同じであるか、または変化する(例えば、互いに比例し、より多くのクライアント勾配またはより多くのリモート勾配を有する)。それらの実装形態のさらなるバージョンにおいて、クライアント勾配のサブセットの各々は、オプションで、サブセットのうちの別のものには含まれない少なくとも1つの固有のクライアントデバイスからのクライアント勾配を含むことができる。他の実装形態において、リモートシステム160は、グローバルMLモデルを更新する特定の反復に勾配103、106、および/または107を割り当てることなく、対応するグローバルMLモデルを先入れ先出し(FIFO)方式において更新するために、クライアント勾配とリモート勾配とを利用する。MLモデルを更新するために勾配103、106、および/または107を利用することについて、(例えば、
図4および
図5に関して)本明細書で説明する。
【0023】
更新分配エンジン138は、更新されたMLモデル108および/またはその重みを、クライアントデバイス150、および/または複数の追加のクライアントデバイス170のうちの1つもしくは複数に送信することができる。いくつかの実装形態において、更新分配エンジン138は、(例えば、
図3および
図4に関して説明するように)クライアントデバイス150、複数の追加のクライアントデバイス170のうちの1つもしくは複数、および/またはリモートシステムに対して1つまたは複数の条件が満たされたことに応答して、更新されたMLモデル108および/またはその重みを送信することができる。更新MLモデルおよび/またはその重みを受信すると、クライアントデバイスは、(例えば、オンデバイスMLモデルデータベース154Aにおいて)対応するオンデバイスMLモデルを更新されたMLモデル108に置き換えるか、または対応するオンデバイスMLモデルの重みを更新されたMLモデル108の重みに置き換えることができる。さらに、クライアントデバイス150は、その後、(例えば、
図2に関してさらに詳細に説明するように)クライアントデバイス150において検出されたさらなるユーザ入力に基づいて予測を行うために、更新MLモデル108および/またはその重みを使用することができる。クライアントデバイス150および複数の追加のクライアントデバイス170は、本明細書で説明する方法でさらなるクライアント勾配を生成し続け、さらなるクライアント勾配をリモートシステム160に送信し続けることができる。さらに、リモートシステム160は、本明細書で説明する方法でさらなるリモート勾配を生成し続け、さらなるクライアント勾配とさらなるリモート勾配とに基づいてグローバルMLモデルを更新し続けることができる。
【0024】
いくつかの実装形態において、ここで
図1Bを参照すると、クライアントデータ101Aは、クライアントデバイス150のマイクロフォンによって生成されたオーディオデータ109Aであり得る。オーディオデータ109Aは、クライアントデバイス150に向けられたユーザの発話、周囲の雑音もしくは周囲の会話などのクライアントデバイス150が位置する環境の環境雑音、および/またはクライアントデバイス150のマイクロフォンによって捕捉され得る任意の他の音を捕捉することができる。クライアントデータ101Aがオーディオデータ109Aである実装形態において、オンデバイスMLエンジン132Aは、1つまたは複数のオンデバイスオーディオベースのMLモデルを使用して、オーディオベースのクライアント勾配を生成するために利用される予測出力110を生成するために、オーディオデータ109Aを処理することができる。例えば、オンデバイスMLエンジン132Aは、オーディオデータ109Aが人間の発話を捕捉するかどうかを予測するためのオンデバイス音声区間検出(VAD(voice activity detection))モデル、オーディオデータ109Aが、自動アシスタントを呼び出すか、もしくは自動アシスタントにクライアントデバイス150もしくは他のデバイス(例えば、他のクライアントデバイスまたはスマートデバイス)を制御させる1つもしくは複数の特定の単語もしくはフレーズを含む発話を捕捉するかどうかを予測するためのオンデバイスホットワード検出モデル、オーディオデータ109A内に捕捉された任意の発話に基づいて認識されたテキストを生成するためのオンデバイス自動音声認識(ASR)、オーディオデータ109A内に捕捉された任意の発話が特定のユーザ(例えば、クライアントデバイス150のユーザ)からのものであるかどうかを判定するためにオーディオデータ109Aを処理することができるオンデバイス音声識別モデル、オーディオデータ109Aがクライアントデバイス150のユーザによって提供されたフォローアップ入力を捕捉するかどうかを判定するためにオーディオデータ109Aを処理することができるオンデバイス継続会話モデル、発話を提供するユーザが発話を終了するかどうかおよび/もしくはいつ終了するかを予測するためにオーディオデータ109Aを処理することができるオンデバイスエンドポイントモデル、ならびに/または任意の他のオンデバイスオーディオベースのMLモデルを使用して、オーディオデータ109Aを処理することができる。前述のオンデバイスMLモデルは、例の目的のために提供されており、限定であることを意味していないことが理解されるべきである。
【0025】
特に、予測出力110は、前述のオンデバイスMLモデルのうちの1つまたは複数にわたって生成された対応する予測出力を含むことができる。例えば、オーディオデータ109Aが、オンデバイスVADモデルとオンデバイスホットワード検出モデルとを使用して処理される場合、予測出力110は、オンデバイスVADモデルに関連付けられた対応する予測出力と、オンデバイスホットワード検出モデルに関連付けられた対応する予測出力とを含むことができる。別の例として、オーディオデータ109Aが、オンデバイス音声識別モデルと、オンデバイスホットワード検出モデルと、オンデバイスASRモデルとを使用して処理される場合、予測出力110は、オンデバイス音声識別モデルに関連付けられた対応する予測出力と、オンデバイスホットワード検出モデルに関連付けられた対応する予測出力と、オンデバイスASRモデルに関連付けられた対応する予測出力とを含むことができる。したがって、予測出力110は、オンデバイスMLモデルのうちの1つまたは複数にわたって生成された予測出力を含むことができる。したがって、任意の結果として生じるクライアント勾配は、オーディオデータ109Aを処理するために利用されるオンデバイスMLモデルに基づく特定のタイプの勾配であり得る。
【0026】
いくつかの実装形態において、勾配エンジン134Aは、(例えば、
図3に関して説明したように)教師あり学習技法を使用してクライアント勾配111を生成するために、予測出力110を対応するグラウンドトゥルース出力109Bと比較することができる。対応するグラウンドトゥルース出力109Bが利用できない場合などの追加または代替の実装形態において、勾配エンジン134Aは、(例えば、
図3に関して説明したように)クライアント勾配111を生成するために、教師なし学習技法を利用することができる。言い換えれば、勾配エンジン134Aは、オンデバイスMLモデルにわたって生成されたエラーを識別するために、モデルにわたって生成されていたはずのいくらかの実際の出力に関して、予測出力110を評価することができる。例えば、オンデバイスホットワード認識モデルにわたって生成された予測出力が、オーディオデータ109Aが自動アシスタントを呼び出すための特定の単語またはフレーズを含むかどうかを示す確率(例えば、または対数尤度、バイナリ値、もしくは他の尺度などの他の予測尺度)であると仮定する。確率が0.75であり、自動アシスタントを呼び出すためのしきい値確率が0.80であるとさらに仮定する。この例において、自動アシスタントは、呼び出されない場合がある。しかしながら、自動アシスタントが、オーディオデータ109Aを受信するしきい値時間期間内に呼び出されるとさらに仮定する。クライアントデバイス150は、自動アシスタントがオーディオデータ109A内に捕捉された発話を受信したことに応答して呼び出されたはずであること(例えば、偽陰性)を示す監視信号としてこれを利用することができる。この例において、対応するグラウンドトゥルース出力は、自動アシスタントが呼び出されるはずであることを示す1.0の確率であり得、結果として生じるクライアント勾配は、ホットワード検出モデルに関する偽陰性勾配であり得る。
【0027】
さらに、クライアント勾配111は、リモートシステム160に送信され、勾配データベース185内に記憶され得る。リモートデータ104Aは、リモートシステムデータデータベース152Bから取得されたオーディオデータ112Aであり得る。リモートシステム160は、予測出力112を生成するために、クライアントデバイス150に関して上記で説明したのと同じまたは同様の方法において、しかし、グローバルMLエンジン132Bと、グローバルMLモデルデータベース154B内に記憶された対応するオーディオベースのグローバルMLモデルとを使用して、オーディオデータ112Aを処理させることができる。さらに、勾配エンジン134Bは、オーディオベースのリモート勾配114を生成するために、予測出力113を対応するグラウンドトゥルース出力112Bと比較することができ、リモート勾配114は、勾配データベース185内に記憶され得る。
【0028】
追加または代替の実装形態において、ここで
図1Cを参照すると、クライアントデータ101Aは、クライアントデバイス150にアクセス可能なテキストセグメント115Aであり得る。テキストセグメント115Aは、クライアントデバイス150にアクセス可能な任意のテキストを含むことができる。例えば、テキストセグメント115Aは、連絡先リスト(例えば、名前、物理アドレス、電子メールアドレス、および/または他の連絡先情報)、メッセージ(例えば、テキストメッセージ、電子メールメッセージ、および/または任意の他の電子メッセージ)、カレンダもしくはタスクのエントリ、文書、リマインダー、および/またはクライアントデバイス150において利用可能な他のテキストから取得された1つまたは複数の用語を含むことができる。クライアントデータ101Aがテキストセグメントである実装形態において、オンデバイスMLエンジン132Aは、1つまたは複数のオンデバイステキストベースのMLモデルを使用して、テキストベースのクライアント勾配を生成するために利用される予測出力117を生成するために、テキストセグメント115Aを処理することができる。例えば、オンデバイスMLエンジン132Aは、オンデバイスTTSエンジン132A1に、オンデバイスMLモデルデータベース154A内に記憶されたオンデバイスTTSモデルを使用して、テキストセグメント115Aに対応する合成音声を含む合成音声オーディオデータ116を生成するためにテキストセグメント115Aを処理させることができる。さらに、オンデバイスMLエンジン132Aは、オンデバイスASRエンジン132A2に、オンデバイスMLモデルデータベース154A内に記憶されたオンデバイスASRモデルを使用して、予測出力117を生成するために合成音声オーディオデータ116を処理させることができる。
【0029】
いくつかの実装形態において、オンデバイスASRモデルは、文字単位(または別のトークン単位)で予測テキストを生成するために使用されるエンドツーエンドモデルであり得る。文字単位で予測テキストを生成するために使用されるそのようなエンドツーエンドモデルの非限定的な一例は、リカレントニューラルネットワークトランスデューサ(RNN-T(recurrent neural network transducer))である。RNN-Tモデルは、アテンションメカニズムを用いないシーケンスツーシーケンスモデルの形式である。典型的には、予測出力116として予測テキストセグメントの出力を生成するために、入力シーケンス全体(例えば、オーディオデータ波形、またはメル周波数ケプストラム係数(MFCC(mel-frequency cepstral coefficient))、または他の表現)を処理する必要があるほとんどのシーケンスツーシーケンスモデルとは異なり、RNN-Tモデルは、入力サンプルを連続的に処理し、出力記号(例えば、アルファベットの文字)をストリーミングするために使用され得る。他の実装形態において、オンデバイスASRモデルは、エンドツーエンド音声認識モデルではない。それらの他の実装形態において、オンデバイスASRエンジン132A2は、代わりに予測音素(および/または他の表現)を生成することができる。例えば、そのようなモデルでは、次いで、予測音素(および/または他の表現)は、音素のシーケンスに適合する予測テキストセグメントを予測出力117として決定するために、オンデバイスASRエンジン132A2によって利用される。そうする際、オンデバイスASRエンジン132A2は、復号グラフ、レキシコン、および/または他のリソースをオプションで用いることができる。
【0030】
特に、
図1Cの例における予測出力117は、オンデバイスASRモデルにわたって生成されたテキストセグメント115A、および/または合成音声オーディオデータ116(および/またはその音響特徴)に関する複数の音声仮説を含むことができる。例えば、オンデバイスMLエンジン132Aを使用して処理されたテキストセグメント115Aは、クライアントデバイスの連絡先エントリに関連付けられた名前として取得された「ロンスミス(Ron Smith)」というテキストセグメントに対応する場合。この例において、オンデバイスTTSエンジン132A1は、「ロンスミス(Ron Smith)」の連絡先エントリに対応する合成音声を含む合成音声オーディオデータを生成するために、テキストセグメントを処理することができる。さらに、「ロンスミス(Ron Smith)」に対応する合成音声(またはその音響特徴)は、予測出力117として利用され得、その後、オンデバイスTTSモデルを更新するためのテキストベースの勾配を生成する際に利用され得、複数の音声仮説は、予測出力117として利用され得、その後、オンデバイスASRモデルを更新するためのASR勾配を生成する際に利用され得る。例えば、勾配エンジン134Aは、テキストベースのクライアント勾配118を生成するために、「ロンスミス(Ron Smith)」に対応する合成音声の音響特徴(例えば、メルフィルタバンク特徴、オーディオ波形、韻律特性、MFCC、および/または他の音響特徴)を、クライアントデバイス150のユーザによって提供された「ロンスミス(Ron Smith)」の発話のオーディオデータ(例えば、対応するグラウンドトゥルース出力115B)と比較することができる。さらに、勾配エンジン134Aは、ASRクライアント勾配118を生成するために、「ロンスミス(Ron Smith)」に関する複数の音声仮説を、「ロンスミス(Ron Smith)」の実際のテキストセグメント110(例えば、対応するグラウンドトゥルース出力115B)と比較することができる。
【0031】
さらに、クライアント勾配118は、リモートシステム160に送信され、勾配データベース185内に記憶され得る。リモートデータ104Aは、リモートシステムデータデータベース152Bから取得されたテキストセグメント119Aであり得る。リモートシステム160は、予測出力121を生成するために、クライアントデバイス150に関して上記で説明したのと同じまたは同様の方法において、しかし、グローバルMLエンジン132B(例えば、予測出力121の一部として、合成音声オーディオデータ120を生成するグローバルTTSエンジン132A1、および予測テキストセグメントを生成するグローバルASRエンジン132A2)と、グローバルMLモデルデータベース154B内に記憶された対応するオーディオベースのグローバルMLモデルとを使用して、テキストセグメント112Aを処理させることができる。さらに、勾配エンジン134Bは、リモート勾配122を生成するために、予測出力121を対応するグラウンドトゥルース出力119Bと比較することができ、リモート勾配122は、勾配データベース185内に記憶され得る。
【0032】
追加または代替の実装形態において、ここで
図1Dを参照すると、クライアントデータ101Aは、クライアントデバイス150の視覚構成要素によって生成された画像データ124Aであり得る。画像データ124Aは、例えば、人間、物体、および/または画像データ124A内に捕捉され得る環境内のその他のものを含む、クライアントデバイス150がある環境の1つまたは複数の部分を捕捉することができる。画像データと呼ばれるが、これは、静止画像、および画像のシーケンス(例えば、ビデオ)を含み得ることが理解されるべきである。クライアントデータ101Aが画像データ124Aである実装形態において、オンデバイスMLエンジン132Aは、1つまたは複数のオンデバイス画像ベースのMLモデルを使用して、画像ベースのクライアント勾配を生成するために利用される予測出力125を生成するために画像データ124Aを処理することができる。例えば、オンデバイスMLエンジン132Aは、クライアントデバイス150の環境内で捕捉された物体またはその特徴を検出するために画像データ124Aを処理することができるオンデバイス物体検出モデル、クライアントデバイス150の環境内で捕捉された物体の分類を予測するために画像データ124Aを処理することができるオンデバイス物体分類モデル、環境内で捕捉された任意の人間が特定のユーザ(例えば、クライアントデバイス150のユーザ)に対応するかどうかを判定するために画像データ124Aを処理することができるオンデバイス顔識別モデル、および/または任意の他のオンデバイス画像ベースのMLモデルを使用して、画像データ124Aを処理することができる。前述のオンデバイスMLモデルは、例の目的のために提供されており、限定であることを意味していないことが理解されるべきである。
【0033】
特に、予測出力110は、前述のオンデバイスMLモデルのうちの1つまたは複数にわたって生成された対応する予測出力を含むことができる。例えば、画像データ109Aが、オンデバイス物体検出モデルとオンデバイス物体分類モデルとを使用して処理される場合、予測出力125は、オンデバイス物体検出モデルに関連付けられた対応する予測出力と、オンデバイス物体分類モデルに関連付けられた対応する予測出力とを含むことができる。したがって、予測出力125は、オンデバイスMLモデルのうちの1つまたは複数にわたって生成された予測出力を含むことができる。したがって、任意の結果として生じるクライアント勾配は、画像データ124Aを処理するために利用されるオンデバイスMLモデルに基づく特定のタイプの勾配であり得る。
【0034】
いくつかの実装形態において、勾配エンジン134Aは、(例えば、
図3に関して説明したように)教師あり学習技法を使用してクライアント勾配126を生成するために、予測出力125を対応するグラウンドトゥルース出力124Bと比較することができる。対応するグラウンドトゥルース出力124Bが利用できない場合などの追加または代替の実装形態において、勾配エンジン134Aは、(例えば、
図3に関して説明したように)クライアント勾配126を生成するために、教師なし学習技法を利用することができる。言い換えれば、勾配エンジン134Aは、オンデバイスMLモデルにわたって生成されたエラーを識別するために、モデルにわたって生成されたはずのいくらかの実際の出力に関して、予測出力125を評価することができる。例えば、オンデバイスホットワード認識モデルにわたって生成された予測出力が、画像データ124Aがクライアントデバイス150に関連付けられたユーザを含むかどうかを示す確率(例えば、または対数尤度、バイナリ値、もしくは他の尺度などの他の予測尺度)であると仮定する。確率が0.65であり、人間をクライアントデバイス150のユーザとして分類するためのしきい値確率が0.85であるとさらに仮定する。この例において、クライアントデバイス150のユーザは、そのように認識されない場合がある。しかしながら、自動アシスタントが、クライアントデバイス150のためのパスコードなどの別の認証手段を介して、画像データ124Aを受信するしきい値時間期間内に呼び出されるとさらに仮定する。クライアントデバイス150は、画像データ124A内に捕捉された人間が実際にはクライアントデバイス150のユーザであること(例えば、偽陰性)を示す監視信号としてこれを利用することができる。この例において、対応するグラウンドトゥルース出力は、画像データ124Aがクライアントデバイス150のユーザを含むことを示す1.0の確率であり得、結果として生じるクライアント勾配は、顔識別モデルに関する偽陰性勾配であり得る。
【0035】
さらに、クライアント勾配126は、リモートシステム160に送信され、勾配データベース185内に記憶され得る。リモートデータ104Aは、リモートシステムデータデータベース152Bから取得された画像データ127Aであり得る。リモートシステム160は、予測出力128を生成するために、クライアントデバイス150に関して上記で説明したのと同じまたは同様の方法において、しかし、グローバルMLエンジン132Bと、グローバルMLモデルデータベース154B内に記憶された対応するオーディオベースのグローバルMLモデルとを使用して、画像データ127Aを処理させることができる。さらに、勾配エンジン134Bは、画像ベースのリモート勾配129を生成するために、予測出力128を対応するグラウンドトゥルース出力127Bと比較することができ、リモート勾配129は、勾配データベース185内に記憶され得る。
【0036】
図1Aに戻ると、様々な実装形態において、リモートトレーニングエンジン136は、勾配の分布を分析することができる。分布を分析する際に、リモートトレーニングエンジン136は、クライアントデバイス150および/もしくは追加のクライアントデバイス170からリモートシステム160において受信されたクライアント勾配のタイプ、ならびに/またはリモートシステム160において生成されたリモート勾配のタイプを識別することができる。さらに、リモートトレーニングエンジン136は、特定タイプの勾配またはその十分な量を欠いている勾配の分布に基づいて、特定のタイプの勾配を生成する必要があると判断することができる。これらの特定のタイプの勾配を生成する必要があると判断したことに応答して、リモートトレーニング136は、リモートシステム160にそれらの特定のタイプの勾配(およびオプションでそれらの特定の量)を生成させることができる。例えば、自動アシスタントを呼び出すために、クライアントデバイス150のユーザによって提供されるジェスチャに基づいて(例えば、手の動き、目の動き、唇の動きなどに基づいて)、クライアントデバイス150において、複数のホットワードフリー呼び出しクライアント勾配が生成されたと仮定する。しかしながら、クライアントデバイス150において、(例えば、プライバシーへの配慮のため)自動アシスタントを呼び出さないホットワードフリー呼び出しクライアント勾配を取得することは困難である場合がある。この例において、リモートトレーニングエンジン136は、自動アシスタントを呼び出すことに向けられていないジェスチャを行う人間を含む勾配の必要があると判断する場合がある。したがって、リモートシステム160は、グローバルホットワードフリー呼び出しモデルを更新するために利用される勾配の間に十分な量および多様性が存在することを保証するために、自動アシスタントを呼び出さないジェスチャを行う人間の画像データであるリモートデータを取得することができる。
【0037】
言い換えれば、リモートシステム160において生成されたリモート勾配は、取得することが困難なクライアントデータに関するプロキシとして機能することができる。このデータは、例えば、予測を行うためにトレーニングされたMLモデル(例えば、ホットワード検出モデル、ホットワードフリー呼び出しモデル、音声識別モデル、顔識別モデルなど)に関する偽陽性および偽陰性を含むことができる。さらに、リモートシステム160において生成されるリモート勾配は、本明細書で説明する様々なMLモデルに対して問題およびエラーを共通に引き起こすリモートトレーニングエンジン136によって識別された特定の単語またはフレーズに基づいて生成され得る。例えば、同音異義語は、ASRモデルおよびホットワード検出モデルについてエラーを引き起こす可能性がある。リモートシステム160は、MLモデルを強化し、壊滅的な忘却を回避するために、これらのモデルにおいてエラーを共通に引き起こす同音異義語の単語またはフレーズに基づいてリモート勾配を生成することができる。
【0038】
本明細書で説明する技法を使用することによって、様々な技術的利点が達成され得る。非限定的な一例として、本明細書で説明する方法において生成されたクライアント勾配とリモート勾配の両方を利用することで、対応するグローバルMLモデルは、多様でバランスのとれたデータに基づいて更新され得、それによって、壊滅的な忘却の影響を低減し、より高い精度および/または再現率を有するより堅牢なグローバルMLモデルを結果として生じる。例えば、リモートシステムは、これらの技法がなければ、プライバシーへの配慮のため、連合学習フレームワーク内で取得できない場合がある特定のグローバルMLモデルのための特定のタイプの勾配に対する識別された必要性に基づいて、リモート勾配を生成することができる。結果として、対応するグローバルMLモデル(またはその重み)がクライアントデバイスに展開された場合、オンデバイスMLモデルも、より堅牢になり、より高い精度および/または再現率を有する。
【0039】
ここで
図2を参照すると、様々なオンデバイスMLエンジンが自動アシスタントクライアント240の一部として含まれる(または自動アシスタントクライアント240と通信する)実装形態において、クライアントデバイス250が示されている。それぞれのMLモデルも、様々なオンデバイスMLエンジンとインターフェースして示されている。クライアントデバイス250の他の構成要素は、簡単にするために
図2には示されていない。
図2は、様々なアクションを実行する際に、様々なオンデバイスMLエンジンおよびそれらのそれぞれのMLモデルが自動アシスタントによってどのように利用され得るかの一例を示す。
【0040】
図2におけるクライアントデバイス250は、1つまたは複数のマイクロフォン211、1つまたは複数のスピーカ212、1つまたは複数の視覚構成要素213、およびディスプレイ214(例えば、タッチ感応ディスプレイ)とともに示されている。クライアントデバイス250は、1つまたは複数のマイクロフォン211によって捕捉されたオーディオデータに加えて他のセンサデータを生成するために利用される圧力センサ、近接センサ、加速度計、磁力計、および/または他のセンサをさらに含み得る。クライアントデバイス250は、自動アシスタントクライアント240を少なくとも選択的に実行する。自動アシスタントクライアント240は、
図2の例において、ホットワード検出エンジン222と、ホットワードフリー呼び出しエンジン224と、継続会話エンジン226と、ASRエンジン228と、物体検出エンジン230と、物体分類エンジン232と、音声識別エンジン234と、顔識別エンジン236とを含む。自動アシスタントクライアント240は、音声捕捉エンジン216と、視覚捕捉エンジン218とをさらに含む。
図2に示すMLエンジンおよびMLモデルは、例の目的のために提供されており、限定であることを意味していないことが理解されるべきである。例えば、自動アシスタントクライアント240は、TTSエンジンおよびそれぞれのTTSモデル、VADエンジンおよびそれぞれのVADモデル、エンドポイント検出器エンジンおよびそれぞれのエンドポイント検出器モデル、唇動作エンジンおよびそれぞれの唇動作モデル、ならびに/または関連する機械学習モデルを有する他のエンジンなどの、追加および/または代替エンジンをさらに含むことができる。さらに、単一のエンジンおよび/またはモデルが本明細書で説明する複数のエンジンおよび/またはモデルの機能を実行することができるように、本明細書で説明するエンジンおよび/またはモデルのうちの1つまたは複数が組み合わされ得ることが理解されるべきである。
【0041】
1つまたは複数のクラウドベースの自動アシスタント構成要素270が、299によって全体的に示されているように、
図1A~
図1Dに関して説明したネットワークのうちの1つまたは複数を介してクライアントデバイス250に通信可能に結合された1つまたは複数のコンピューティングシステム(集合的に「クラウド」コンピューティングシステムと呼ばれる)上にオプションで実装され得る。クラウドベースの自動アシスタント構成要素270は、例えば、高性能サーバのクラスタを介して実装され得る。様々な実装形態において、自動アシスタントクライアント240のインスタンスは、1つまたは複数のクラウドベースの自動アシスタント構成要素270との対話によって、ユーザの視点から、ユーザが人間とコンピュータとの対話(例えば、口頭の対話、ジェスチャベースの対話、および/またはタッチベースの対話)において関与し得る、295によって全体的に示されるような自動アシスタントの論理インスタンスであるように見えるものを形成し得る。
【0042】
クライアントデバイス250は、例えば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、携帯電話コンピューティングデバイス、ユーザの車両のコンピューティングデバイス(例えば、車載通信システム、車載エンターテインメントシステム、車載ナビゲーションシステム)、スタンドアロン対話型スピーカ、スマートテレビ(または自動アシスタント機能を有するネットワークドングルを備える標準的なテレビ)などのスマート家電、および/またはコンピューティングデバイスを含むユーザのウェアラブル装置(例えば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザの眼鏡、仮想現実または拡張現実コンピューティングデバイス)であり得る。追加および/または代替のクライアントデバイスが提供され得る。
【0043】
1つまたは複数の視覚構成要素213は、単眼カメラ、立体カメラ、LIDAR構成要素(または他のレーザベースの構成要素)、レーダ構成要素などの、様々な形態をとることができる。1つまたは複数の視覚構成要素213は、例えば、視覚捕捉エンジン218によって、クライアントデバイス250が配置されている環境の視覚フレーム(例えば、画像フレーム、レーザベースの視覚フレーム)に対応する画像データを捕捉するために使用され得る。いくつかの実装形態において、そのような視覚フレームは、ユーザがクライアントデバイス250の近くに存在するかどうか、および/またはクライアントデバイス250に対するユーザ(例えば、ユーザの顔)の距離を決定するために利用され得る。そのような決定は、例えば、
図2に示す様々なオンデバイス機械学習エンジン、および/または他のエンジンを起動するかどうかを決定する際に利用され得る。さらに、音声捕捉エンジン216は、マイクロフォン211のうちの1つまたは複数を介して捕捉されたユーザの発話および/または他のオーディオデータを捕捉するように構成され得る。
【0044】
本明細書で説明するように、そのようなオーディオデータおよび他の非マイクロフォンセンサデータ(クライアントデータとも呼ばれる)は、
図1A~
図1Dに関して上記で説明した方法において生成された対応するMLモデル(更新されたグローバルMLモデルおよび/または更新されたその重みを含む)を使用して、クライアントデバイス250において予測を行うために、
図2に示す様々なエンジンによって処理され得る。
【0045】
ある非限定的な例として、ホットワード検出エンジン222は、オーディオデータが、自動アシスタント295または自動アシスタント295の特定の機能を呼び出すための1つまたは複数の特定の単語またはフレーズ(例えば、「オーケーグーグル(Ok Google)」「ヘイグーグル(Hey Google)」、「グーグル、天気はどうですか(What is the weather Google?)」など)を含むかどうかを予測するために、ホットワード検出モデル222Aを利用することができ、ホットワードフリー呼び出しエンジン224は、非マイクロフォンセンサデータ(例えば、画像データ)が、(例えば、ユーザの視線に基づいて、およびオプションで、ユーザの口の動きにさらに基づいて)自動アシスタント295を呼び出すためのジェスチャまたは合図を含むかどうかを予測するために、ホットワードフリー呼び出しモデル224Aを利用することができ、継続会話エンジン226は、さらなるオーディオデータが自動アシスタント295に向けられている(例えば、またはクライアントデバイス250の環境内の追加のユーザに向けられている)かどうかを予測するために、継続会話モデル226Aを利用することができ、ASRエンジン228は、認識されたテキストを生成するか、またはクライアントデバイス250において検出されたオーディオデータに対応する音素および/もしくはトークンを予測し、音素および/またはトークンに基づいて、認識されたテキストを生成するために、ASRモデル228Aを利用することができ、物体検出エンジン230は、クライアントデバイス250において捕捉された画像の画像データ内に含まれる物体の位置を予測するために、物体検出モデル230Aを利用することができ、物体分類エンジン232は、クライアントデバイス250において捕捉された画像の画像データ内に含まれる物体の物体分類を予測するために、物体分類モデル232Aを利用することができ、音声識別エンジン234は、(例えば、クライアントデバイス250のユーザのうちの1人または複数に関する対応する実際の埋め込みと比較され得る、話者埋め込みまたは他の表現を生成することによって)オーディオデータがクライアントデバイス250の1人または複数のユーザの発話を捕捉するかどうかを予測するために、音声識別モデル234Aを利用することができ、顔識別エンジン236は、(例えば、クライアントデバイス250のユーザの1人または複数に関する対応する画像埋め込みと比較され得る、画像埋め込みまたは他の表現を生成することによって)画像データがクライアントデバイス250の環境内のユーザのうちの1人または複数を捕捉するかどうかを予測するために、顔識別モデルを利用することができる。
【0046】
いくつかの実装形態において、クライアントデバイス250は、自然言語理解(NLU(natural language understanding))エンジン238とフルフィルメントエンジン240とをさらに含み得る。NLUエンジン238は、NLUデータを生成するために、NLUモデル238Aを利用して、ASRエンジン228によって生成された認識されたテキスト、予測された音素、および/または予測されたトークンに対してオンデバイス自然言語理解を実行し得る。NLUデータは、例えば、発話に対応する意図、およびオプションで、意図に関するパラメータに関するスロット値を含むことができる。さらに、フルフィルメントエンジン240は、オンデバイスフルフィルメントモデル240Aを利用し、NLUデータを処理することに基づいて、フルフィルメントデータを生成することができる。このフルフィルメントデータは、クライアントデバイス250のユーザによって提供された発話に対するローカルおよび/もしくはリモート応答(例えば、解答)、発話に基づいてローカルにインストールされたアプリケーションで実行する対話、発話に基づいて(直接または対応するリモートシステムを介して)インターネットオブシングス(IoT(Internet-of-things))デバイスに送信するコマンド、ならびに/または発話に基づいて実行する他の解決アクションを定義することができる。次いで、フルフィルメントデータは、発話を解決するために、決定されたアクションのローカルおよび/またはリモートの履行/実行のために提供される。実行は、例えば、ローカルおよび/もしくはリモート応答をレンダリングすること(例えば、(オプションでオンデバイスTTSモジュールを利用して)視覚的および/または聴覚的にレンダリングすること)、ローカルにインストールされたアプリケーションと対話すること、コマンドをIoTデバイスに送信すること、ならびに/または他のアクションを含むことができる。他の実装形態において、NLUエンジン234およびフルフィルメントエンジン240は、省略され得、ASRエンジン228は、オーディオデータに直接基づいてフルフィルメントデータを生成することができる。例えば、ASRエンジン228が、ASRモデル228Aを使用して、「電灯をつけて(turn on the lights)」の発話を処理すると仮定する。この例において、ASRエンジン228は、次いで、電灯が点灯されるべきことを示す、電灯に関連するソフトウェアアプリケーションに送信されるおよび/または電灯に直接送信されるセマンティック出力を生成することができる。
【0047】
特に、クラウドベースの自動アシスタント構成要素270は、
図2に関して本明細書で説明するエンジンおよびモデルに対するクラウドベースの対応物を含む。しかしながら、様々な実装形態において、
図1A~
図1Dに関して上記で説明したように、エンジンおよびモデルは、クライアントデバイス250に直接送信され、クライアントデバイス250においてローカルに実行され得るので、これらのエンジンおよびモデルは、呼び出されない場合がある。それにもかかわらず、ローカルまたはリモートで生成されたNLUデータおよび/またはフルフィルメントデータに基づいてリモート実行を実行するリモート実行モジュールも、オプションで含められ得る。追加および/または代替のリモートエンジンが含まれ得る。本明細書で説明するように、様々な実装形態において、オンデバイス音声処理、オンデバイス画像処理、オンデバイスNLU、オンデバイスフルフィルメント、および/またはオンデバイス実行は、少なくとも、発話を解決するときにそれらが提供する待ち時間および/またはネットワーク使用量の削減のために(発話を解決するためにクライアント-サーバラウンドトリップが必要とされないために)優先され得る。しかしながら、1つまたは複数のクラウドベースの自動アシスタント構成要素280が、少なくとも選択的に利用され得る。例えば、そのような構成要素は、オンデバイス構成要素と並行して利用され得、ローカル構成要素が故障したときに、そのような構成要素からの出力が利用され得る。例えば、オンデバイスエンジンおよび/またはモデルのいずれかが故障した場合(例えば、クライアントデバイス150の比較的制限されたリソースのため)、クラウドのより堅牢なリソースが利用され得る。
【0048】
ここで
図3を参照すると、機械学習モデルを更新する際に利用されるべきクライアント勾配をクライアントデバイスにおいてローカルに生成する例示的な方法300を示すフローチャートが示されている。便宜上、方法300の動作について、動作を実行するシステムを参照して説明する。方法300のシステムは、クライアントデバイス(例えば、
図1のクライアントデバイス150、
図2のクライアントデバイス250、
図6のコンピューティングデバイス610、および/または他のクライアントデバイス)の1つまたは複数のプロセッサおよび/または他の構成要素を含む。さらに、方法300の動作は、特定の順序において示されているが、これは、限定であることを意味しない。1つまたは複数の動作が、並べ替えられ、省略され、または追加され得る。
【0049】
ブロック352において、システムは、クライアントデバイスにおいて、クライアントデータを識別する。いくつかの実装形態において、ブロック352は、オプションのサブブロック352Aを含む。オプションのサブブロック352Aにおいて、システムは、クライアントデバイスの1つまたは複数のマイクロフォンを介して、クライアントデバイスの環境内の発話を捕捉するオーディオデータを検出する。オーディオデータは、クライアントデバイスのユーザの発話の少なくとも一部を捕捉し得る。他の実装形態において、ブロック352は、オプションのサブブロック352Bを含む。オプションのサブブロック352Bにおいて、システムは、クライアントデバイスの非マイクロフォンセンサを介して非マイクロフォンセンサデータを検出する。非マイクロフォンセンサデータは、例えば、クライアントデバイスの視覚構成要素を介してクライアントデバイスの環境を捕捉する画像データ、および/またはテキストセグメントを含み得る。
【0050】
ブロック354において、システムは、クライアントデバイスにおいてローカルに記憶されたオンデバイスMLモデルを使用して、予測出力を生成するためにクライアントデータを処理する。オンデバイスMLモデルを使用して生成された予測出力は、ブロック352において識別されたクライアントデータと、ブロック354においてクライアントデータを処理するために利用されたオンデバイスMLモデルとに基づき得る。例えば、クライアントデータがオーディオデータに対応する実装形態において、対応する予測出力を生成するためにクライアントデータを処理するために、1つまたは複数のオーディオベースのモデルが利用され得る。例えば、オーディオデータが、自動アシスタントを呼び出すための特定の単語またはフレーズを含むかどうかに関連する予測出力を生成するために、オーディオデータを処理するためにホットワードモデルが利用され得、オーディオデータに関する予測テキストに関連する予測出力を生成するために、オーディオデータを処理するためにASRモデルが利用され得る、などである。別の例として、クライアントデータが画像データに対応する実装形態において、対応する予測出力を生成するために、クライアントデータを処理するために1つまたは複数の画像ベースのモデルが利用され得る。例えば、画像データが自動アシスタントを呼び出すためのジェスチャまたは口の動きを含むかどうかに関連する予測出力を生成するために、画像データを処理するためにホットワードフリー呼び出しモデルが利用され得、画像データ内に捕捉された1つまたは複数の物体の分類に関連する予測出力を生成するために、画像データを処理するために物体認識モデルが利用され得る、などである。
【0051】
ブロック356において、システムは、予測出力に基づいて勾配を生成する。いくつかの実装形態において、ブロック356は、オプションのサブブロック356Aを含む。オプションのサブブロック356Aにおいて、システムは、クライアントデバイスにおいてローカルに教師あり学習を使用して勾配を生成した。これらの実装形態において、システムは、予測出力を対応するグラウンドトゥルース出力と比較することができる。システムは、1つまたは複数の監視信号を、対応するグラウンドトゥルース出力として利用することができる。例えば、クライアントデバイスが、自動アシスタントを呼び出すための特定の単語またはフレーズを捕捉するオーディオデータを生成するが、予測出力が、オーディオデータが自動アシスタントを呼び出すための特定の単語またはフレーズを含まないことを示すホットワードモデルを生成したと仮定する。ユーザがその後、(例えば、自動アシスタントを呼び出すための追加の発話または他のユーザ入力(例えば、クライアントデバイスの握り込み、または自動アシスタントグラフィカル要素に向けられたタッチ入力)を介して)自動アシスタントを呼び出したとさらに仮定する。この例において、システムは、自動アシスタントが発話に基づいて呼び出されたはずである(例えば、偽陰性)と判断することができ、予測出力に関する対応するグラウンドトゥルース出力は、自動アシスタントが呼び出されたはずであることを示す。
【0052】
別の例として、クライアントデバイスが、自動アシスタントを呼び出すための特定の単語またはフレーズを捕捉するオーディオデータを生成し、予測出力が、オーディオデータが自動アシスタントを呼び出すための特定の単語またはフレーズを含むことを示すホットワードモデルを生成したと仮定する。ユーザがその後、(例えば、自動アシスタントを呼び出すための追加の発話または他のユーザ入力(例えば、クライアントデバイスの握り込み、または自動アシスタントグラフィカル要素に向けられたタッチ入力)を介して)自動アシスタントの呼び出しをキャンセルしたとさらに仮定する。この例において、システムは、自動アシスタントが発話に基づいて呼び出されたはずはない(例えば、偽陽性)と判断することができ、予測出力に関する対応するグラウンドトゥルース出力は、自動アシスタントが呼び出されたはずはないことを示す。ブロック356について、ホットワードモデルに関する監視信号に関して説明しているが、これは、例の目的のためであり、限定であることを意味しておらず、ユーザフィードバックに基づいて生成されたおよび/またはシステムによって推論された任意の監視信号が利用され得ることが理解されるべきである。例えば、ASRモデルがオーディオデータを処理し、1つまたは複数のASR音声仮説の転写がユーザに提示される場合、転写に対する任意の変更が監視信号として利用され得る。また、例えば、音声識別モデルが、ユーザの身元を認証するためにオーディオデータを処理するが、ユーザが認識されず、その後ユーザがパスワードまたは他の認証情報を提供した場合、この他の認証情報は、監視信号として利用され得る。
【0053】
他の実装形態において、ブロック356は、オプションのサブブロック356Bを含む。オプションのサブブロック356Bにおいて、システムは、クライアントデバイスにおいてローカルに教師なし学習(または半教師あり学習)を使用して勾配を生成した。特に、これらの実装形態において、システムが勾配を生成する際に利用するための監視信号が存在しない。例えば、クライアントデバイスにおいて識別されたクライアントデータが、クライアントデバイスの視覚構成要素を介して捕捉された画像データであり、オンデバイス画像ベースのMLモデルが、画像データの符号化に基づいて画像データを再構築しようとし、結果として予測画像データを生じると仮定する。この例において、システムは、画像データと予測画像データとの間の差を決定するために、これらを比較することができ、システムは、決定された差に基づいて勾配を生成することができる。別の例として、クライアントデバイスにおいて検出されたクライアントデータが、クライアントデバイスのマイクロフォンを介して捕捉された、第1の部分と第1の部分に続く第2の部分とを含むオーディオデータであり、オンデバイスMLモデルが、オーディオデータの第1の部分の符号化に基づいてオーディオデータの第2の部分を予測しようとし、結果としてオーディオデータの予測された第2の部分を生じると仮定する。この例において、システムは、オーディオデータの第2の部分とオーディオデータの予測された第2の部分との間の差を決定するために、これらを比較することができ、システムは、決定された差に基づいて勾配を生成することができる。
【0054】
ブロック358において、システムは、ブロック356において生成された勾配を送信するための条件が満たされるかどうかを判断する。条件は、例えば、クライアントデバイスが充電中であること、クライアントデバイスが少なくともしきい値の充電状態を有すること、(1つまたは複数のオンデバイス温度センサに基づく)クライアントデバイスの温度がしきい値未満であること、クライアントデバイスがユーザによって保持されていないこと、クライアントデバイスに関連付けられた時間的条件(例えば、特定の時間期間の間、Nが正の整数であるとしてN時間ごと、および/またはクライアントデバイスに関連付けられた他の時間的条件)、しきい値数の勾配がクライアントデバイスによって生成されたかどうか、および/または他の条件を含むことができる。ブロック358の反復において、システムが、ブロック356において生成された勾配を送信するための条件が満たされていないと判断した場合、システムは、ブロック358において条件が満たされているかどうかを継続的に監視することができる。特に、システムがブロック358において条件の充足を監視するとき、システムは、方法300のブロック352~356に従って、追加の勾配を生成し続けることができる。ブロック358の反復において、システムが、ブロック356において生成された勾配を送信するための条件が満たされていると判断した場合、システムは、ブロック360に進むことができる。
【0055】
ブロック360において、システムは、リモートシステムにおいてリモートに記憶されたグローバルMLモデルの重みを更新するために、リモートシステムに生成された勾配を利用させるために、生成された勾配をクライアントデバイスからリモートシステムに送信する。さらに、複数の追加のクライアントデバイスが、方法300に従って追加の勾配を生成することができ、追加のクライアントデバイス(例えば、
図1の追加のクライアントデバイス170)においてそれぞれの条件が満たされたとき、追加の勾配をリモートシステムに送信することができる。
【0056】
ブロック362において、システムは、クライアントデバイスにおいて、リモートシステムから、更新されたMLモデルおよび/または更新されたその重みを受信する。特に、ブロック360および362は、矢印によって接続されていない。これは、リモートシステムが、クライアントデバイスおよび/またはリモートシステムにおける1つまたは複数の条件の充足に基づいて、更新されたMLモデルおよび/または更新された重みをクライアントデバイスに送信すると決定したときに、更新されたMLモデルおよび/または更新されたその重みがクライアントデバイスにおいて受信されることを示す。クライアントデバイスは、ローカルメモリにおいて、対応するオンデバイスMLモデルおよび/またはその対応する重みを、更新されたMLモデルおよび/または更新されたその重みで置き換えることができる。
【0057】
ブロック364において、システムは、クライアントデバイスにおいて識別された追加のクライアントデータに基づいて少なくとも1つの予測を行うために、更新されたMLモデルを使用する。クライアントデバイスにおいて行われる予測は、ブロック362においてリモートシステムから受信された更新されたMLモデルに依存し得る。
【0058】
図3の方法300について、オーディオベースのモデルに関して一般に説明しているが、それは、例のためのものであり、限定であることを意味していないことが理解されるべきである。例えば、本明細書で説明する技法は、画像ベースのモデル、テキストベースのモデル、および/または任意の他のMLモデルを更新するために、クライアント勾配を生成し、クライアント勾配をリモートシステムに送信するためにも利用され得る。さらに、様々な勾配を生成し、および/または様々な勾配をリモートシステムに送信するために、
図3の方法300の複数のインスタンスが、並行して、ユーザおよび/または他のユーザのクライアントデバイスおよび/または追加のクライアントデバイスにおいて実行され得る。
【0059】
ここで
図4を参照すると、機械学習モデルを更新する際に利用されるべきリモート勾配をリモートシステムにおいてリモートに生成する例示的な方法400を示すフローチャートが示されている。便宜上、方法400の動作について、動作を実行するシステムを参照して説明する。方法400のシステムは、リモートシステム(例えば、
図1のリモートシステム160、
図6のコンピューティングデバイス610、および/または任意の他のコンピューティングデバイス)の1つまたは複数のプロセッサおよび/または他の構成要素を含む。さらに、方法400の動作は、特定の順序において示されているが、これは、限定であることを意味しない。1つまたは複数の動作が、並べ替えられ、省略され、または追加され得る。
【0060】
ブロック452において、システムは、リモートシステムにおいて、複数のクライアントデバイスから、対応するクライアントデータに基づいて複数のクライアントデバイスにおいてローカルに生成された複数のクライアント勾配を受信する。複数のクライアント勾配の各々は、
図3の方法300に関して説明したのと同じまたは同様の方法において、複数のクライアントデバイスにおいて生成され得る。
【0061】
ブロック454において、システムは、複数のリモート勾配を生成する。ブロック454は、例えば、リモート勾配を生成するために、サブブロック454A、454B、および454Cの動作を実行することができる。サブブロック454Aにおいて、システムは、リモートシステムにアクセス可能なリモートデータを取得する。いくつかの実装形態において、リモートデータは、クライアントデバイスのうちの対応する1つにおいてローカルに生成されたクライアントデータおよび/またはクライアントデバイスのうちの対応する1つにおいてローカルに受信されたクライアントデータと同様にアクセス制限されていない、オンラインビデオ共有プラットフォーム、画像共有プラットフォーム、オーディオ共有プラットフォーム、および/またはテキストベースのプラットフォームから取得され得る。追加または代替の実装形態において、複数のクライアントデバイスのうちの対応する1つの対応するユーザの許可を得て、リモートデータは、リモートシステムにアクセス可能なアクセス制限されたデータであるデータであり得る。さらに、リモートデータは、異なる特性を有するデバイス(例えば、異なるタイプのマイクロフォン、異なるタイプの視覚構成要素など)によって生成されたデータに対応することができる。サブブロック454Bにおいて、システムは、グローバルMLモデルを使用して、予測出力を生成するためにリモートデータを処理する。サブブロック454Cにおいて、システムは、予測出力に基づいて、複数のリモート勾配内に含めるためのリモート勾配を生成する。システムは、追加の勾配を生成するために追加のリモートデータを取得するためにサブブロック454Aに戻ることができ、および/または同じリモートデータに基づいて追加の予測出力を生成するためにサブブロック454Bに戻ることができる。システムは、
図3の方法300のブロック354に関して説明したのと同じまたは類似の方法において、しかし、オンデバイスMLモデルの代わりにグローバルMLモデルを使用して、予測出力を生成するためにリモートデータを処理することができる。さらに、システムは、
図3の方法のブロック356に関して説明したのと同じまたは類似の方法において、しかし、リモートデータに基づいて生成された予測出力に基づいて、予測出力に基づいてリモート勾配を生成することができる。
【0062】
いくつかの実装形態において、システムは、しきい値量のリモート勾配が生成されるまで、リモート勾配を生成するこのプロセスを繰り返すことができる。例えば、システムは、勾配の量が、複数のクライアントデバイスから受信されたクライアント勾配の量、開発者によって定義されたしきい値量、またはなにか他の量的しきい値と一致するまで、リモート勾配を生成し続けることができる。それらの実装形態のいくつかのバージョンにおいて、リモートシステムによって生成されるリモート勾配のしきい値量は、複数のクライアントデバイスから受信されるクライアント勾配の対応するタイプに基づくことができる。例えば、1000のクライアント勾配が複数のクライアントデバイスから受信されると仮定し、1000のクライアント勾配のうちの500のクライアント勾配がオーディオベースのクライアント勾配であり、1000のクライアント勾配のうちの他の500が画像ベースのクライアント勾配であると仮定する。この例において、システムは、オーディオベースのリモートデータを取得し、予測出力を生成するために、様々なオーディオベースのグローバルMLモデルを使用してオーディオベースのリモートデータを処理し、オーディオベースのリモート勾配を生成するために予測出力を処理することができる。このプロセスは、500のオーディオベースのリモート勾配が存在するまで繰り返され得る。さらに、それらの500のオーディオベースのクライアント勾配のうち、オーディオベースのクライアント勾配のうちの300がクライアントホットワード勾配であり、オーディオベースのクライアント勾配のうちの他の200がクライアントASR勾配であると仮定する。この例において、システムは、300のリモートホットワード勾配を生成するために、グローバルホットワードモデルを使用してリモートオーディオデータを処理することができ、200のリモートASR勾配を生成するために、ASRモデルを使用してリモートオーディオデータを処理することができる。
【0063】
ブロック456において、システムは、ブロック452において受信された複数のクライアント勾配の中からクライアント勾配のセットを選択する。いくつかの実装形態において、システムは、1つまたは複数の基準に基づいてクライアント勾配のセットを選択することができる。1つまたは複数の基準は、例えば、システムに利用可能なクライアント勾配のタイプ、システムに利用可能なクライアント勾配のしきい値量、クライアント勾配を使用する更新のしきい値持続時間、および/または他の基準を含むことができる。例えば、システムは、オーディオベースのモデル(例えば、単一のオーディオベースのモデルまたは複数の異種のオーディオベースのモデル)を更新するために利用されるべき500のオーディオベースのクライアント勾配のセットを選択することができ、ホットワードモデルを更新するために利用されるべき200のホットワードクライアント勾配のセットを選択することができる、などである。別の例として、システムは、画像ベースのモデル(例えば、単一の画像ベースのモデルまたは複数の異種の画像ベースのモデル)を更新するために利用されるべき600の画像ベースのクライアント勾配のセットを選択することができ、ホットワードフリー呼び出しモデルを更新するために利用されるべき300のホットワードクライアント勾配のセットを選択することができる、などである。他の実装形態において、クライアント勾配のセットは、オーディオベースのクライアント勾配、画像ベースのクライアント勾配、テキストベースのクライアント勾配、および/または任意の他のタイプのクライアント勾配(または特定のタイプのクライアント勾配)の任意の組合せを含むことができる。
【0064】
ブロック458において、システムは、複数のリモート勾配の中からリモート勾配のセットを選択する。いくつかの実装形態において、ブロック458は、オプションのサブブロック458Aを含む。オプションのサブブロック458Aにおいて、システムは、クライアント勾配のセット内に含まれる勾配のタイプに基づいて、リモート勾配のセットを選択する。例えば、ブロック456において選択されたクライアント勾配のセットが、オーディオベースの勾配(または特定のタイプのオーディオベースの勾配)のセットを含む場合、ブロック458において選択されたリモート勾配のセットも、オーディオベースの勾配を含むことができる。追加または代替の実装形態において、ブロック458は、オプションのサブブロック458Bを含む。オプションのサブブロック458Bにおいて、システムは、クライアント勾配のセット内に含まれるクライアント勾配の量に基づいて、リモート勾配のセットを追加的または代替的に選択する。例えば、ブロック456において選択されたクライアント勾配のセットが、500のオーディオベースの勾配(または特定のタイプのオーディオベースの勾配)のセットを含む場合、ブロック458において選択されたリモート勾配のセットも、500のオーディオベースの勾配を含むことができる。別の例として、ブロック456において選択されたクライアント勾配のセットが、500のオーディオベースの勾配(または特定のタイプのオーディオベースの勾配)のセットを含む場合、ブロック458において選択されたリモート勾配のセットは、比例する量のオーディオベースの勾配(例えば、50%の場合は250、20%の場合は100など)を含むこともできる。他の実装形態において、リモート勾配のセットは、オーディオベースのリモート勾配、画像ベースのリモート勾配、テキストベースのリモート勾配、および/または任意の他のタイプのリモート勾配(または特定のタイプのリモート勾配)の任意の組合せを含むことができる。
【0065】
ブロック460において、システムは、グローバルMLモデルの重みを更新するために、クライアント勾配のセットとリモート勾配のセットとを利用する。特に、システムは、クライアント勾配のセットおよび/またはリモート勾配のセット内に含まれる勾配に基づいて、対応するMLモデルの重みを更新することができる。例えば、
図5を簡単に参照すると、
図4のブロック460においてグローバル機械学習モデルを更新する際にクライアント勾配のセットとリモート勾配のセットとを混合する様々な例示的な方法が示されている。
【0066】
いくつかの実装形態において、
図5の方法460Aによって示されるように、システムは、ブロック552AにおいてグローバルMLモデルの重みを更新するためにクライアント勾配のセットを利用し、その後、グローバルMLモデルの重みをさらに更新するためにリモート勾配のセットを利用することができる。例えば、クライアント勾配のセットが複数のASRクライアント勾配を含むと仮定し、リモート勾配のセットが複数のASRリモート勾配を含むと仮定する。この例において、システムは、複数のASRクライアント勾配に基づいて1つまたは複数のグローバルASRモデルの重みを更新し、次いで、その後、複数のASRリモート勾配に基づいて1つまたは複数のグローバルASRモデルの重みを更新することができる。
【0067】
他の実装形態において、
図5の方法460Bによって示すように、システムは、ブロック552BにおいてグローバルMLモデルの重みを更新するためにリモート勾配のセットを利用し、その後、グローバルMLモデルの重みをさらに更新するためにクライアント勾配のセットを利用することができる。例えば、クライアント勾配のセットが複数のASRクライアント勾配を含むと仮定し、リモート勾配のセットが複数のASRリモート勾配を含むと仮定する。この例において、システムは、複数のASRリモート勾配に基づいて1つまたは複数のグローバルASRモデルの重みを更新し、次いで、その後、複数のASRクライアント勾配に基づいて1つまたは複数のグローバルASRモデルの重みを更新することができる。
【0068】
さらに他の実装形態において、
図5の方法460Cによって示すように、システムは、ブロック552C1において、グローバルMLモデルの第1のインスタンスの第1の重みを更新するためにクライアント勾配のセットを利用し、並行してまたは連続して、ブロック552C2においてグローバルMLモデルの第2のインスタンスの第2の重みを更新するために第2の勾配のセットを利用することができる。さらに、システムは、その後、グローバルMLモデルの重みを更新するために、第1の重みと第2の重みとを利用することができる。例えば、クライアント勾配のセットが複数のASRクライアント勾配を含むと仮定し、リモート勾配のセットが複数のASRリモート勾配を含むと仮定する。この例において、システムは、複数のASRクライアント勾配に基づいて、1つまたは複数のグローバルASRモデルの1つまたは複数の第1のインスタンスの第1の重みを更新し、並行してまたは連続して、複数のASRリモート勾配に基づいて、1つまたは複数のグローバルASRモデルの第2のインスタンスの第2の重みを更新することができる。さらに、システムは、更新された第1の重みと更新された第2の重みとを分析し、グローバルASRモデルのうちの1つまたは複数を更新するために、更新された第1の重みおよび更新された第2の重みの何らかの組合せを利用することができる。例えば、システムは、更新された第1の重みと更新された第2の重みの平均を決定し、平均重みをグローバルASRモデルのうちの1つまたは複数に関する更新された重みとして利用することができる。
【0069】
図5の方法460A、460B、および460Cについて、1つまたは複数のグローバルASRモデルを更新するために利用されるASR勾配に関して説明しているが、それは、例のためのものであり、限定であることを意味していないことが理解されるべきである。例えば、本明細書で説明する技法は、様々なグローバルMLモデルに関連付けられた対応する勾配に基づいて、様々なグローバルMLモデルまたはその重みを更新するために利用され得る。
【0070】
図4に戻って参照すると、いくつかの代替実装形態において、システムは、ブロック456およびブロック458の動作を実行することなく、グローバルMLモデルの重みを更新するために、ブロック452において受信された複数のクライアント勾配と、ブロック456において生成された複数のリモート勾配454とを利用することができる。これらの実装形態において、システムは、複数のクライアント勾配と複数のリモート勾配とをFIFO方式において処理することができる。例えば、システムは、受信されたクライアント勾配のタイプおよび/または生成されたリモート勾配のタイプを識別し、クライアント勾配および/またはリモート勾配のタイプに関連付けられた対応するグローバルMLモデルを識別し、勾配がリモートシステムにおいて受信および/またはリモートシステムによって生成されると、対応するグローバルMLモデルを更新することができる。
【0071】
特に、システムは、グローバルMLモデルの更新が完了するまで、ブロック452~460(または単に452、454、および460)の動作を繰り返すことができる。システムは、例えば、グローバルMLモデルの更新に費やされている時間のしきい値持続時間量、グローバルMLモデルの重みが最後に更新されてからの勾配(リモート勾配および/またはクライアント勾配)のしきい値量、グローバルMLモデルに対する測定された改善、および/もしくはグローバルMLモデルが最後にトレーニングされてからのしきい値持続時間の経過、ならびに/または他の基準に基づいて、グローバルMLモデルの更新が完了したと判断することができる。グローバルMLモデルが更新されると、システムは次いで、ブロック458に進み得る。
【0072】
ブロック462において、システムは、ブロック460におけるグローバルMLモデルおよび/またはその重みを送信するための条件が満たされているかどうかを判断する。条件は、クライアントデバイスが、グローバルMLモデルおよび/またはその重みを受信する準備ができているかどうか(例えば、
図3のブロック358に関して上記で説明した条件と同じ)、性能しきい値を満たすグローバルMLモデルの性能に基づく、グローバルMLモデルが勾配のしきい値量に基づいて更新されることに基づくなどの、リモートシステムに固有の他の条件、および/またはこれらの条件の何らかの組合せに基づくことができる。ブロック462の反復において、システムが、ブロック460において更新されたグローバルMLモデルおよび/またはその重みを送信するための条件が満たされていないと判断した場合、システムは、ブロック462において条件が満たされているかどうかを継続的に監視することができる。特に、システムがブロック462において条件の充足を監視するとき、システムは、方法400のブロック452~460に従ってグローバルMLモデルを更新し続けることができる。ブロック462の反復において、システムが、ブロック460において更新されたグローバルMLモデルおよび/またはその重みを送信するための条件が満たされていると判断した場合、システムは、ブロック464に進むことができる。
【0073】
ブロック464において、システムは、リモートシステムから複数のクライアントデバイスのうちの1つまたは複数に、更新されたグローバルMLモデルおよび/またはその重みを送信する。システムは、更新されたグローバルMLモデルおよび/またはその重みを、クライアント勾配をリモートシステムに送信した複数のクライアントデバイスの各々、クライアント勾配をリモートシステムに送信したクライアントデバイス以外の追加のクライアントデバイス、またはクライアント勾配をリモートシステムに送信したそれらのクライアントデバイスのサブセットに送信することができる。
【0074】
様々な実装形態において、更新されたグローバルMLモデルおよび/またはその重みは、複数のクライアントデバイスまたは複数のクライアントデバイスのユーザの地理的領域および/または他の特性(例えば、一次言語)に基づいて、クライアントデバイスに送信され得る。例えば、更新されるグローバルMLモデルは、所与の言語に関するN個の利用可能な機械学習モデル(例えば、Nは、正の整数)のうちの1つであり得るが、特定の地理的領域に固有であり、主に特定の地理的領域内に位置するクライアントデバイスに提供されるクライアント勾配に基づいて更新され得る。これは、例えば、グローバルASRモデルのインスタンスが、特定の領域に固有であり、様々なアクセントおよび方言を考慮して更新され得るクライアントASR勾配に基づいてトレーニングされることを可能にする。
【0075】
図4の方法400について、オーディオベースのモデルに関して一般的に説明しているが、それは、例のためのものであり、限定であることを意味していないことが理解されるべきである。例えば、本明細書で説明する技法は、画像ベースのモデル、テキストベースのモデル、および/または任意の他のMLモデルを更新するために、クライアント勾配を生成し、クライアント勾配をリモートシステムに送信するためにも利用され得る。さらに、様々なリモート勾配を生成するためおよび/または様々なグローバルMLモデルを更新するために、
図4の方法400の複数のインスタンスがリモートシステムによって並行して実行され得る。
【0076】
ここで
図6を参照すると、本明細書で説明する技法の1つまたは複数の態様を実行するためにオプションで利用され得る例示的なコンピューティングデバイス610のブロック図が示されている。いくつかの実装形態において、クライアントデバイス、クラウドベースの自動アシスタント構成要素、および/または他の構成要素のうちの1つまたは複数は、例示的なコンピューティングデバイス610の1つまたは複数の構成要素を備え得る。
【0077】
コンピューティングデバイス610は、典型的には、バスサブシステム612を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ614を含む。これらの周辺デバイスは、例えば、メモリサブシステム625およびファイル記憶サブシステム626を含む記憶サブシステム624と、ユーザインターフェース出力デバイス620と、ユーザインターフェース入力デバイス622と、ネットワークインターフェースサブシステム616とを含み得る。入力デバイスおよび出力デバイスは、ユーザがコンピューティングデバイス610と対話することを可能にする。ネットワークインターフェースサブシステム616は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイス内の対応するインターフェースデバイスに結合される。
【0078】
ユーザインターフェース入力デバイス622は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイクロフォン、および/または他のタイプの入力デバイスを含み得る。一般に、「入力デバイス」という用語の使用は、コンピューティングデバイス610または通信ネットワークに情報を入力するためのすべての可能なタイプのデバイスおよび方法を含むことを意図している。
【0079】
ユーザインターフェース出力デバイス620は、ディスプレイサブシステム、プリンタ、ファックス機、またはオーディオ出力デバイスなどの非視覚的ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または可視画像を作成するための何らかの他のメカニズムを含み得る。ディスプレイサブシステムはまた、オーディオ出力デバイスを介するなどして、非視覚的表示を提供し得る。一般に、「出力デバイス」という用語の使用は、コンピューティングデバイス610からユーザまたは別の機械もしくはコンピューティングデバイスに情報を出力するためのすべての可能なタイプのデバイスおよび方法を含むことを意図している。
【0080】
記憶サブシステム624は、本明細書で説明するモジュールのうちのいくつかまたはすべての機能を提供するプログラミング構造およびデータ構造を記憶する。例えば、記憶サブシステム624は、本明細書で開示する方法の選択された態様を実行するため、ならびに
図1A~
図1Dに示す様々な構成要素を実装するためのロジックを含み得る。
【0081】
これらのソフトウェアモジュールは、一般に、プロセッサ614単独で、または他のプロセッサと組み合わせて実行される。記憶サブシステム624内で使用されるメモリ625は、プログラム実行中の命令およびデータの記憶のためのメインランダムアクセスメモリ(RAM)630と、固定命令が記憶される読み取り専用メモリ(ROM)632とを含むいくつかのメモリを含むことができる。ファイル記憶サブシステム626は、プログラムおよびデータファイルのための永続的なストレージを提供することができ、ハードディスクドライブ、関連するリムーバブルメディアを伴うフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、またはリムーバブルメディアカートリッジを含み得る。特定の実装形態の機能を実装するモジュールは、記憶サブシステム624内のファイル記憶サブシステム626によって、またはプロセッサ614によってアクセス可能な他の機械内に記憶され得る。
【0082】
バスサブシステム612は、コンピューティングデバイス610の様々な構成要素およびサブシステムを意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム612は、単一のバスとして概略的に示されているが、バスサブシステムの代替実装形態は、複数のバスを使用し得る。
【0083】
コンピューティングデバイス610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む様々なタイプのものであり得る。コンピュータおよびネットワークの絶えず変化する性質のために、
図6に示すコンピューティングデバイス610の説明は、いくつかの実装形態を説明する目的のための特定の例としてのみ意図されている。コンピューティングデバイス610の他の多くの構成は、
図6に示すコンピューティングデバイスよりも多いまたは少ない構成要素を有することが可能である。
【0084】
本明細書で説明するシステムがユーザに関する個人情報を収集もしくは他の方法で監視するか、または個人情報および/もしくは監視情報を利用する可能性がある状況において、ユーザは、プログラムまたは機能がユーザ情報(例えば、ユーザのソーシャルネットワーク、社会的行為もしくは活動、職業、ユーザの好み、またはユーザの現在の地理的位置に関する情報)を収集するかどうかを制御する機会、またはユーザにより関連性がある可能性があるコンテンツサーバからのコンテンツを受信するかどうかおよび/もしくはどのように受信するかを制御する機会を提供され得る。また、特定のデータは、個人を特定し得る情報が除去されるように、それが記憶または使用される前に1つまたは複数の方法で処理され得る。例えば、ユーザの身元は、個人を特定し得る情報がユーザに関して決定され得ないように処理され得、またはユーザの地理的位置は、ユーザの特定の地理的位置が特定され得ないように、地理的位置情報が取得される場所(都市、郵便番号、または州レベルなど)で一般化され得る。したがって、ユーザは、情報がユーザに関してどのように収集および/または使用されるかについて制御し得る。
【0085】
いくつかの実装形態において、クライアントデバイスの1つまたは複数のプロセッサによって実行される方法が提供され、この方法は、複数の対応するクライアントデバイスから複数のクライアント勾配を受信するステップを含む。複数のクライアント勾配の各々は、複数の対応するクライアントデバイスのうちの所与の1つの対応するユーザの対応する発話の少なくとも一部を捕捉する対応するオーディオデータを処理することに基づいて、複数の対応するクライアントデバイスのうちの所与の1つにおいてローカルに生成される。方法は、複数のリモート勾配を生成するステップをさらに含む。複数のリモート勾配の各々を生成するステップは、追加のユーザの追加の発話の少なくとも一部を捕捉する追加のオーディオデータを取得するステップと、リモートシステムにおいてリモートに記憶されたグローバル機械学習(ML)モデルを使用し、予測出力を生成するために追加のオーディオデータを処理するステップと、追加の予測出力を追加のオーディオデータに対応するグラウンドトゥルース出力と比較することに基づいて、複数のリモート勾配内に含めるための追加の勾配を生成するステップとを含む。方法は、複数のクライアント勾配の中からクライアント勾配のセットを選択するステップと、複数のリモート勾配の中からリモート勾配の追加のセットを選択するステップと、グローバルMLモデルの重みを更新するためにクライアント勾配のセットとリモート勾配の追加のセットとを利用するステップとをさらに含む。
【0086】
本技術のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を含むことができる。
【0087】
いくつかの実装形態において、グローバルMLモデルの重みを更新するためにクライアント勾配のセットとリモート勾配の追加のセットとを利用するステップは、グローバルMLモデルの重みを更新するためにクライアント勾配のセットを利用するステップと、グローバルMLモデルの重みを更新するためにクライアント勾配のセットを利用するステップの後に、グローバルMLモデルの重みをさらに更新するためにリモート勾配の追加のセットを利用するステップとを含むことができる。
【0088】
いくつかの実装形態において、グローバルMLモデルの重みを更新するためにクライアント勾配のセットとリモート勾配の追加のセットとを利用するステップは、グローバルMLモデルの重みを更新するためにリモート勾配の追加のセットを利用するステップと、グローバルMLモデルの重みを更新するためにリモート勾配の追加のセットを利用するステップの後に、グローバルMLモデルの重みをさらに更新するためにクライアント勾配のセットを利用するステップとを含むことができる。
【0089】
いくつかの実装形態において、グローバルMLモデルの重みを更新するためにクライアント勾配のセットとリモート勾配の追加のセットとを利用するステップは、グローバルMLモデルの第1のインスタンスの第1の重みを更新するためにクライアント勾配のセットを利用するステップと、並行して、グローバルMLモデルの第2のインスタンスの第2の重みを更新するためにリモート勾配の追加のセットを利用するステップと、グローバルMLモデルの重みを更新するために、グローバルMLモデルの第1のインスタンスの更新された第1の重みと、グローバルMLモデルの第2のインスタンスの更新された第2の重みとを利用するステップとを含むことができる。それらの実装形態のいくつかのバージョンにおいて、グローバルMLモデルの重みを更新するために、グローバルMLモデルの第1のインスタンスの更新された第1の重みと、グローバルMLモデルの第2のインスタンスの更新された第2の重みとを利用するステップは、グローバルMLモデルの第1のインスタンスの更新された第1の重みとグローバルMLモデルの第2のインスタンスの更新された第2の重みとの平均を決定するステップと、グローバルMLモデルの重みを更新するために、更新された第1の重みと更新された第2の重みとの平均を利用するステップとを含むことができる。
【0090】
いくつかの実装形態において、追加の勾配のしきい値量は、複数の対応するクライアントデバイスから受信された複数の勾配の量に基づくことができる。
【0091】
いくつかの実装形態において、クライアント勾配のセットを選択するステップは、複数のクライアント勾配のうちの1つまたは複数が特定のタイプの勾配であることに基づいて、クライアント勾配のセット内に含めるための複数のクライアント勾配のうちの1つまたは複数を選択するステップを含むことができる。それらの実装形態のいくつかのバージョンにおいて、リモート勾配の追加のセットを選択するステップは、複数のリモート勾配のうちの1つまたは複数が特定のタイプの勾配であることに基づいて、リモート勾配の追加のセット内に含めるための複数のリモート勾配のうちの1つまたは複数を選択するステップを含むことができる。
【0092】
いくつかの実装形態において、クライアント勾配のセットを選択するステップは、複数のクライアント勾配のうちの1つまたは複数が特定のタイプの勾配であることに基づいて、クライアント勾配のセット内に含めるための複数のクライアント勾配のうちの1つまたは複数を選択するステップを含むことができる。それらの実装形態のいくつかのバージョンにおいて、リモート勾配の追加のセットを選択するステップは、複数のリモート勾配のうちの1つまたは複数が特定のタイプの勾配であることに基づいて、リモート勾配の追加のセット内に含めるための複数のリモート勾配のうちの1つまたは複数を選択するステップを含むことができる。
【0093】
いくつかの実装形態において、方法は、特定のタイプの勾配を識別するために、リモートシステムによってアクセス可能な1つまたは複数のデータベース内に記憶されたリモート勾配の分布を分析するステップをさらに含むことができる。生成される複数のリモート勾配は、特定のタイプの勾配に適合することができる。それらの実装形態のいくつかのバージョンにおいて、特定のタイプの勾配を識別するステップは、リモート勾配の分布を分析することに基づいて、リモート勾配の分布が特定のタイプの勾配のしきい値量のリモート勾配を含まないと判断するステップを含むことができる。
【0094】
いくつかの実装形態において、方法は、更新されたグローバルMLモデルまたはグローバルMLモデルの更新されたグローバル重みを、クライアントデバイスに送信するステップをさらに含むことができる。グローバルMLモデルまたは更新されたグローバル重みを送信するステップは、リモートシステムがクライアント勾配のセットとリモート勾配の追加のセットとに基づいてグローバルMLモデルのグローバル重みを更新した後であり得る。さらに、更新されたグローバルMLモデルまたは更新されたグローバル重みをクライアントデバイスに送信するステップは、クライアントデバイスに、クライアントデバイスのローカルストレージにおいて、オンデバイスMLモデルを更新されたグローバルMLモデルで置き換えさせるか、またはオンデバイスMLモデルのローカル重みをグローバルMLモデルの更新されたグローバル重みで置き換えさせることができる。
【0095】
いくつかの実装形態において、追加のオーディオデータに対応するグラウンドトゥルース出力は、追加のオーディオデータ内に捕捉された追加の発話に基づくことができる。それらの実装形態のいくつかのバージョンにおいて、追加のオーディオデータ内に捕捉された追加の発話は、特定の単語またはフレーズを含むことができ、追加のオーディオデータに対応するグラウンドトゥルース出力は、追加の発話が特定の単語またはフレーズを捕捉しているかどうかの指示を含むことができる。それらの実装形態の追加または代替のバージョンにおいて、追加のオーディオデータ内に捕捉された追加の発話は、1つまたは複数の用語を含むことができ、追加のオーディオデータに対応するグラウンドトゥルース出力は、1つまたは複数の用語の転写を含むことができる。
【0096】
いくつかの実装形態において、クライアントデバイスの1つまたは複数のプロセッサによって実行される方法が提供され、この方法は、クライアントデバイスの1つまたは複数のクライアントプロセッサによって、クライアントデバイスの1つまたは複数のマイクロフォンを介して、クライアントデバイスのユーザの発話の少なくとも一部を捕捉するオーディオデータを検出するステップと、クライアントデバイスにおいてローカルに記憶されたオンデバイス機械学習(ML)モデルを使用して、予測出力を生成するためにオーディオデータを処理するステップと、予測出力に基づいてクライアント勾配を生成するステップと、クライアントデバイスからリモートシステムにクライアント勾配を送信するステップとを含む。方法は、リモートシステムの1つまたは複数のリモートプロセッサによって、追加のユーザの追加の発話の少なくとも一部を捕捉する追加のオーディオデータを取得するステップと、リモートシステムにおいてリモートに記憶されたグローバルMLモデルを使用して、追加の予測出力を生成するために追加のオーディオデータを処理するステップと、追加の予測出力に基づいてリモート勾配を生成するステップと、グローバルMLモデルの重みを更新するために、クライアント勾配とリモート勾配とを利用するステップとをさらに含む。
【0097】
本技術のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を含むことができる。
【0098】
いくつかの実装形態において、グローバルMLモデルの重みを更新するためにクライアント勾配とリモート勾配とを利用するステップは、グローバルMLモデルの重みを更新するために、クライアント勾配と、対応する追加のクライアントデバイスから受信された追加のクライアント勾配とを利用するステップと、グローバルMLモデルの重みを更新するためにクライアント勾配と追加のクライアント勾配とを利用するステップの後に、グローバルMLモデルの重みをさらに更新するために、リモート勾配と、リモートシステムにおいて生成された追加のリモート勾配とを利用するステップとを含むことができる。
【0099】
いくつかの実装形態において、グローバルMLモデルの重みを更新するためにクライアント勾配とリモート勾配とを利用するステップは、グローバルMLモデルの重みを更新するために、リモート勾配と、リモートシステムにおいて生成された追加のリモート勾配とを利用するステップと、グローバルMLモデルの重みを更新するためにリモート勾配と追加のリモート勾配とを利用するステップの後に、グローバルMLモデルの重みをさらに更新するために、クライアント勾配と、対応する追加のクライアントデバイスから受信された追加のクライアント勾配とを利用するステップとを含むことができる。
【0100】
いくつかの実装形態において、グローバルMLモデルの重みを更新するためにクライアント勾配とリモート勾配とを利用するステップは、グローバルMLモデルの第1のインスタンスの第1の重みを更新するために、クライアント勾配と、対応する追加のクライアントデバイスから受信された追加のクライアント勾配とを利用するステップと、並行して、グローバルMLモデルの第2のインスタンスの第2の重みを更新するために、リモート勾配と、リモートシステムにおいて生成された追加のリモート勾配とを利用するステップと、グローバルMLモデルの重みを更新するために、グローバルMLモデルの第1のインスタンスの更新された第1の重みと、グローバルMLモデルの第2のインスタンスの更新された第2の重みとを利用するステップとを含むことができる。
【0101】
いくつかの実装形態において、リモートシステムのプロセッサのうちの1つまたは複数によって追加のオーディオデータを処理することに基づいて生成されたリモート勾配は、クライアントデバイスのプロセッサのうちの1つまたは複数によってオーディオデータを処理することに基づいて生成されたクライアント勾配に対応する同じタイプの勾配であり得る。それらの実装形態のいくつかのバージョンにおいて、勾配のタイプは、ホットワード勾配、自動音声認識(ASR)勾配、音声区間検出(VAD)勾配、継続会話勾配、または音声識別勾配のうちの1つを含むことができる。
【0102】
いくつかの実装形態において、リモートシステムのプロセッサのうちの1つまたは複数によって追加のオーディオデータを処理することに基づいて生成されたリモート勾配は、クライアントデバイスのプロセッサのうちの1つまたは複数によってオーディオデータを処理することに基づいて生成されたクライアント勾配に対応する異なるタイプの勾配であり得る。
【0103】
いくつかの実装形態において、予測出力に基づいてクライアント勾配を生成するステップは、予測出力をオーディオデータに対応するグラウンドトゥルース出力と比較するステップを含むことができ、追加の予測出力に基づいてリモート勾配を生成するステップは、追加の予測出力を追加のオーディオデータに対応する追加のグラウンドトゥルース出力と比較するステップを含むことができる。
【0104】
いくつかの実装形態において、クライアント勾配を送信するステップは、ネットワークを介して行うことができ、オーディオデータおよび予測出力のうちのいずれも送信することなく、勾配を送信するステップを含むことができる。
【0105】
いくつかの実装形態において、方法は、リモートシステムの1つまたは複数のリモートプロセッサによって、更新されたグローバルMLモデルまたはグローバルMLモデルの更新されたグローバル重みをクライアントデバイスに送信するステップをさらに含む。グローバルMLモデルまたは更新されたグローバル重みを送信するステップは、リモートシステムがクライアント勾配とリモート勾配とに基づいてグローバルMLモデルのグローバル重みを更新した後であり得る。それらの実装形態のいくつかのバージョンにおいて、方法は、クライアントデバイスのプロセッサのうちの1つまたは複数によって、リモートシステムから、更新されたグローバルMLモデルまたはグローバルMLモデルの更新されたグローバル重みを受信するステップと、クライアントデバイスに、クライアントデバイスのローカルストレージにおいて、オンデバイスMLモデルを更新されたグローバルMLモデルで置き換えさせるか、またはオンデバイスMLモデルのローカル重みをグローバルMLモデルの更新されたグローバル重みで置き換えさせるステップとをさらに含むことができる。
【0106】
いくつかの実装形態において、クライアントデバイスの1つまたは複数のプロセッサによって実行される方法が提供され、この方法は、クライアントデバイスの1つまたは複数のクライアントプロセッサによって、ユーザのクライアントデバイスにおいてローカルに記憶されたテキストセグメントを識別するステップと、クライアントデバイスにおいてローカルに記憶されたオンデバイステキスト読み上げ(TTS)モデルを使用して、テキストセグメントに対応する合成音声を含む合成音声オーディオデータを生成するためにテキストセグメントを処理するステップと、クライアントデバイスにおいてローカルに記憶されたローカル機械学習(ML)モデルを使用して、予測出力を生成するために合成音声オーディオデータを処理するステップと、予測出力をテキストセグメントに対応するグラウンドトゥルース出力と比較することに基づいて勾配を生成するステップと、生成された勾配をクライアントデバイスからリモートシステムに送信するステップとを含む。方法は、リモートシステムの1つまたは複数のリモートプロセッサによって、リモートシステムによってアクセス可能な追加のテキストセグメントを取得するステップと、リモートシステムにおいてリモートに記憶されたグローバルTTSモデルを使用して、追加のテキストセグメントに対応する追加の合成音声を含む追加の合成音声オーディオデータを生成するために追加のテキストセグメントを処理するステップと、リモートシステムにおいてリモートに記憶されたグローバルMLモデルを使用して、追加の予測出力を生成するために追加の合成音声オーディオデータを処理するステップと、追加の予測出力を追加のテキストセグメントに対応する追加のグラウンドトゥルース出力と比較することに基づいて、追加の勾配を生成するステップと、グローバルTTSモデルの重みを更新するために、少なくともクライアントデバイスから受信された勾配と、リモートシステムにおいて生成された追加の勾配とを利用するステップとをさらに含む。
【0107】
いくつかの実装形態において、クライアントデバイスの1つまたは複数のプロセッサによって実行される方法が提供され、この方法は、複数の対応するクライアントデバイスから複数のクライアント勾配を受信するステップを含む。複数のクライアント勾配の各々は、複数の対応するクライアントデバイスのうちの所与の1つの対応するユーザの対応する環境の少なくとも一部を捕捉する対応する画像データを処理することに基づいて、複数の対応するクライアントデバイスのうちの所与の1つにおいてローカルに生成される。方法は、複数のリモート勾配を生成するステップをさらに含む。複数のリモート勾配の各々を生成するステップは、追加のユーザの追加の環境の少なくとも一部を捕捉する追加の画像データを取得するステップと、リモートシステムにおいてリモートに記憶されたグローバル機械学習(ML)モデルを使用して、予測出力を生成するために追加の画像データを処理するステップと、追加の予測出力を追加の画像データに対応するグラウンドトゥルース出力と比較することに基づいて、複数のリモート勾配内に含めるための追加の勾配を生成するステップとを含む。方法は、複数のクライアント勾配の中からクライアント勾配のセットを選択するステップと、複数のリモート勾配の中からリモート勾配の追加のセットを選択するステップと、グローバルMLモデルの重みを更新するために、クライアント勾配のセットとリモート勾配の追加のセットとを利用するステップとをさらに含む。
【0108】
様々な実装形態は、本明細書で説明する方法のうちの1つまたは複数などの方法を実行するために1つまたは複数のプロセッサ(例えば、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、および/またはテンソル処理ユニット(TPU))によって実行可能な命令を記憶する非一時的なコンピュータ可読記憶媒体を含むことができる。他の実装形態は、本明細書で説明する方法のうちの1つまたは複数などの方法を実行するために記憶された命令を実行するように動作可能なプロセッサを含む自動アシスタントクライアントデバイス(例えば、少なくとも、クラウドベースの自動アシスタント構成要素とインターフェースするための自動アシスタントインターフェースを含むクライアントデバイス)を含むことができる。さらに他の実装形態は、本明細書で説明する方法のうちの1つまたは複数などの方法を実行するために記憶された命令を実行するように動作可能な1つまたは複数のプロセッサを含む1つまたは複数のサーバのシステムを含むことができる。
【符号の説明】
【0109】
101A クライアントデータ
101B グラウンドトゥルース出力
102 予測出力
103 クライアント勾配、勾配
104A リモートデータ
104B リモートデータ、グラウンドトゥルース出力
105 予測出力
106 リモート勾配、勾配
107 追加の勾配、勾配
108 更新されたMLモデル、更新MLモデル
109A オーディオデータ
109B グラウンドトゥルース出力
110 予測出力、「ロンスミス(Ron Smith)」の実際のテキストセグメント
111 クライアント勾配
112 予測出力
112A オーディオデータ、テキストセグメント
112B グラウンドトゥルース出力
113 予測出力
114 リモート勾配
115A テキストセグメント
115B グラウンドトゥルース出力
116 合成音声オーディオデータ、予測出力
117 予測出力
118 テキストベースのクライアント勾配、ASRクライアント勾配、クライアント勾配
119A テキストセグメント
119B グラウンドトゥルース出力
120 合成音声オーディオデータ
121 予測出力
122 リモート勾配
124A 画像データ
124B グラウンドトゥルース出力
125 予測出力
126 クライアント勾配
127A 画像データ
127B グラウンドトゥルース出力
128 予測出力
129 リモート勾配
132A オンデバイス機械学習(ML)エンジン、オンデバイスMLエンジン
132A1 オンデバイスTTSエンジン、グローバルTTSエンジン
132A2 オンデバイスASRエンジン、グローバルASRエンジン
132B グローバルMLエンジン
134A 勾配エンジン
134B 勾配エンジン
136 リモートトレーニングエンジン、リモートトレーニング
138 更新分配エンジン
150 クライアントデバイス
152A クライアントデータデータベース、クライアントデバイスデータベース
152B リモートデータデータベース、リモートシステムデータデータベース
154A オンデバイスMLモデルデータベース
154B グローバルMLモデルデータベース
160 リモートシステム
170 追加のクライアントデバイス
185 勾配データベース
211 マイクロフォン
212 スピーカ
213 視覚構成要素
214 ディスプレイ
216 音声捕捉エンジン
218 視覚捕捉エンジン
222 ホットワード検出エンジン
222A ホットワード検出モデル
224 ホットワードフリー呼び出しエンジン
224A ホットワードフリー呼び出しモデル
226 継続会話エンジン
226A 継続会話モデル
228 ASRエンジン
228A ASRモデル
230 物体検出エンジン
230A 物体検出モデル
232 物体分類エンジン
232A 物体分類モデル
234 音声識別エンジン
234A 音声識別モデル
236 顔識別エンジン
238 自然言語理解(NLU)エンジン、NLUエンジン
238A NLUモデル
240 自動アシスタントクライアント、フルフィルメントエンジン
240A オンデバイスフルフィルメントモデル
250 クライアントデバイス
270 クラウドベースの自動アシスタント構成要素
280 クラウドベースの自動アシスタント構成要素
295 自動アシスタント
610 コンピューティングデバイス
612 バスサブシステム
614 プロセッサ
616 ネットワークインターフェースサブシステム
620 ユーザインターフェース出力デバイス
622 ユーザインターフェース入力デバイス
624 記憶サブシステム
625 メモリサブシステム、メモリ
626 ファイル記憶サブシステム
630 メインランダムアクセスメモリ(RAM)
632 読み取り専用メモリ(ROM)