(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-29
(54)【発明の名称】観測されたクエリパターンに基づくターゲットデバイスへの蒸留
(51)【国際特許分類】
G10L 15/30 20130101AFI20241022BHJP
G10L 15/22 20060101ALI20241022BHJP
G10L 15/16 20060101ALI20241022BHJP
【FI】
G10L15/30
G10L15/22 300Z
G10L15/16
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024522377
(86)(22)【出願日】2021-12-15
(85)【翻訳文提出日】2024-06-11
(86)【国際出願番号】 US2021063513
(87)【国際公開番号】W WO2023063966
(87)【国際公開日】2023-04-20
(32)【優先日】2021-10-13
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】マシュー・シャリフィ
(72)【発明者】
【氏名】ヴィクター・カルブネ
(57)【要約】
方法(400)は、クラウドベースアシスタントサービス(120)に向けられたユーザクエリ(119)を受信するステップを含む。方法はまた、受信された各ユーザクエリについて、ユーザクエリから1つまたは複数の属性(121)を抽出するステップと、抽出された1つまたは複数の属性に基づいてユーザクエリを複数のカテゴリバケット(210)のうちの1つまたは複数にログ記録するステップとを含む。方法はまた、複数のカテゴリバケットのうちの少なくとも1つが、少なくとも1つのカテゴリバケットにログ記録された閾値数のユーザクエリを含むときを判断することと、複数のカテゴリバケットのうちの少なくとも1つが閾値数のユーザクエリを含むときに、クラウドベースアシスタントサービスの蒸留モデル(350)を生成することとを含む。クラウドベースアシスタントサービスの蒸留モデルは、1つまたは複数のターゲットクライアントデバイス(102)上で実行するように構成される。
【特許請求の範囲】
【請求項1】
データ処理ハードウェア上で実行されると、前記データ処理ハードウェア(112)に動作を実施させる、コンピュータにより実施される方法(400)であって、前記動作は、
それぞれのユーザに各々が関連付けられた複数のクライアントデバイス(102)から、前記データ処理ハードウェア(112)上で実行するクラウドベースアシスタントサービス(120)に向けられたユーザクエリ(119)を受信することと、
前記クラウドベースアシスタントサービス(120)に向けられた、受信された各ユーザクエリ(119)について、
前記ユーザクエリ(119)から1つまたは複数の属性(121)を抽出し、
前記ユーザクエリ(119)から抽出された前記1つまたは複数の属性(121)に基づいて、前記ユーザクエリ(119)を、複数のカテゴリバケット(210)のうちの1つまたは複数にログ記録することと、
前記複数のカテゴリバケット(210)のうちの少なくとも1つが、前記少なくとも1つのカテゴリバケット(210)にログ記録された閾値数の前記ユーザクエリ(119)を含むときを判断することと、
前記複数のカテゴリバケット(210)のうちの前記少なくとも1つが、前記閾値数の前記ユーザクエリ(119)を含むときに、前記クラウドベースアシスタントサービス(120)の蒸留モデル(350)を生成することであって、前記クラウドベースアシスタントサービス(120)の前記蒸留モデル(350)は、前記複数のクライアントデバイス(102)のうちの1つまたは複数のターゲットクライアントデバイス(102)上で実行するように構成される、生成することとを含む、コンピュータにより実施される方法(400)。
【請求項2】
前記ユーザクエリ(119)から抽出された前記1つまたは複数の属性(121)は、
前記ユーザクエリ(119)がそこから受信された前記クライアントデバイス(102)に関連付けられたデバイスカテゴリおよび/もしくはデバイスタイプ、
前記ユーザクエリ(119)について識別されたクエリバーティカルタイプ、
前記ユーザクエリ(119)を発話したユーザに関連付けられた言語および/もしくは場所、
前記ユーザクエリ(119)を含むオーディオデータ(118)の中でのバックグラウンドノイズレベル、
前記ユーザクエリ(119)の遂行後に前記クラウドベースアシスタントサービス(120)によって生成されたテキスト・トゥ・スピーチ応答、または
前記ユーザクエリ(119)のトランスクリプション(123)のうちの少なくとも1つを含む、請求項1に記載の、コンピュータにより実施される方法(400)。
【請求項3】
前記動作は、前記クラウドベースアシスタントサービス(120)に向けられた、受信された各ユーザクエリ(119)について、
前記クラウドベースアシスタントサービス(120)の自動音声認識(ASR)モデル(122)を使用して、前記ユーザクエリ(119)のトランスクリプション(123)を生成するために前記ユーザクエリ(119)を特徴づけるオーディオデータ(118)を処理することをさらに含み、
前記ユーザクエリ(119)から前記1つまたは複数の属性(121)を抽出することは、前記ユーザクエリ(119)についてのクエリバーティカルタイプを識別するために前記ユーザクエリ(119)の前記トランスクリプション(123)に対してクエリ解釈を実施することを含み、
前記ユーザクエリ(119)をログ記録することは、前記ユーザクエリ(119)を、前記ユーザクエリ(119)について識別された前記クエリバーティカルタイプに関連付けられた前記複数のカテゴリバケット(210)のうちの対応する1つにログ記録することを含む、請求項1または2に記載の、コンピュータにより実施される方法(400)。
【請求項4】
前記動作は、
前記生成された蒸留モデル(350)を、前記1つまたは複数のターゲットクライアントデバイス(102)上での実行用に受諾するよう、前記クラウドベースアシスタントサービス(120)のデベロッパ(190)を促すことと、
前記デベロッパ(190)が前記生成された蒸留モデル(350)を受諾するときに、前記蒸留モデル(350)を、前記ターゲットクライアントデバイス(102)のうちの前記1つまたは複数に展開することとをさらに含む、請求項1から3のいずれか一項に記載の、コンピュータにより実施される方法(400)。
【請求項5】
前記動作は、
評価データセット(335)に対する、前記生成された蒸留モデル(350)の精度が、前記評価データセット(335)に対する、教師モデル(380)の精度の閾範囲内であるかどうかを判断することをさらに含み、
前記クラウドベースアシスタントサービス(120)の前記デベロッパ(190)を促すことは、前記評価データセット(335)に対する前記生成された蒸留モデル(350)の前記精度が、前記評価データセット(335)に対する前記教師モデル(380)の前記精度の前記閾範囲内であるときに、前記クラウドベースアシスタントサービス(120)の前記デベロッパ(190)を促すことを含む、請求項4に記載の、コンピュータにより実施される方法(400)。
【請求項6】
前記クラウドベースアシスタントサービス(120)の前記蒸留モデル(350)を生成することは、前記1つまたは複数のターゲットクライアントデバイス(102)の各々のメモリおよび/または処理制約を満足する、前記蒸留モデル(350)用のモデル構成(315)を選択することを含む、請求項1から5のいずれか一項に記載の、コンピュータにより実施される方法(400)。
【請求項7】
前記クラウドベースアシスタントサービス(120)の前記蒸留モデル(350)を生成することは、
前記閾値数の前記ユーザクエリ(119)を含む前記複数のカテゴリバケット(210)のうちの前記少なくとも1つに関連付けられた属性(121)を有するトレーニング用クエリ(325)のセットを取得することと、
前記クラウドベースアシスタントサービス(120)の教師モデル(380)を使用して、トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)のための対応するトレーニング用ラベルを生成することと、
トレーニング用クエリ(325)の前記セット、およびトレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)のために生成された前記対応するトレーニング用ラベルで、前記蒸留モデル(350)をトレーニングすることとを含む、請求項1から6のいずれか一項に記載の、コンピュータにより実施される方法(400)。
【請求項8】
トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)の少なくとも一部分は、前記複数のカテゴリバケット(210)のうちの前記少なくとも1つの各々にログ記録された前記閾値数の前記ユーザクエリ(119)の中から選択された以前のユーザクエリ(119)を含む、請求項7に記載の、コンピュータにより実施される方法(400)。
【請求項9】
トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)の少なくとも一部分は、前記閾値数の前記ユーザクエリ(119)を含む前記複数のカテゴリバケット(210)のうちの前記少なくとも1つに関連付けられた前記属性(121)を有する新着クエリを含む、請求項7または8に記載の、コンピュータにより実施される方法(400)。
【請求項10】
トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)の少なくとも一部分は、前記閾値数の前記ユーザクエリ(119)を含む前記複数のカテゴリバケット(210)のうちの前記少なくとも1つに関連付けられた前記属性(121)を有するオフラインデータサンプルから選択される、請求項7から9のいずれか一項に記載の、コンピュータにより実施される方法(400)。
【請求項11】
前記動作は、前記生成された蒸留モデル(350)を、前記1つまたは複数のターゲットデバイス(102)の各々上での実行用に展開した後、
前記蒸留モデル(350)を実行する各ターゲットクライアントデバイス(102)から、対応するターゲットクライアントデバイス(102)上で実行する前記蒸留モデル(350)によって処理された新着クエリに関連付けられた属性(121)を示す連合分析を受信することと、
前記連合分析に基づいて、前記新着クエリを、前記複数のカテゴリバケット(210)のうちの1つまたは複数にログ記録することと、
前記複数のカテゴリバケット(210)のうちの少なくとも別の1つが、閾値数の前記ユーザクエリ(119)および新たなユーザクエリ(119)を含むときを判断することと、
前記複数のカテゴリバケット(210)のうちの前記少なくとも別の1つが、前記閾値数の前記ユーザクエリ(119)および前記新たなユーザクエリ(119)を含むときに、前記クラウドベースアシスタントサービス(120)の別の蒸留モデル(350)を生成することであって、前記クラウドベースアシスタントサービス(120)の前記別の蒸留モデル(350)は、前記複数のクライアントデバイス(102)のうちの1つまたは複数のターゲットクライアントデバイス(102)上で実行するように構成される、生成することとをさらに含む、請求項1から10のいずれか一項に記載の、コンピュータにより実施される方法(400)。
【請求項12】
前記動作は、前記生成された蒸留モデル(350)を、前記1つまたは複数のターゲットデバイス(102)の各々上での実行用に展開した後、
前記蒸留モデル(350)を実行する各ターゲットクライアントデバイス(102)から、対応するターゲットクライアントデバイス(102)上で実行する前記蒸留モデル(350)によって処理された新着クエリに関連付けられた属性(121)を示す連合分析を受信することと、
前記蒸留モデル(350)を実行する各ターゲットデバイスから受信された前記連合分析に基づいて、前記蒸留モデル(350)のパラメータを更新することによって、更新蒸留モデル(350)を生成することと、
前記更新蒸留モデル(350)を、前記1つまたは複数のターゲットクライアントデバイス(102)の各々における実行用に展開することとをさらに含む、請求項1から11のいずれか一項に記載の、コンピュータにより実施される方法(400)。
【請求項13】
前記連合分析は、前記蒸留モデル(350)によって処理された前記新着クエリのいずれかを特徴づけるオーディオデータ(118)を受信することなく、および前記蒸留モデル(350)によって処理された前記新着クエリのトランスクリプションを受信することなく、各ターゲットクライアントデバイス(102)から受信される、請求項12に記載の、コンピュータにより実施される方法(400)。
【請求項14】
前記蒸留モデル(350)は音声認識モデルを含む、請求項1から13のいずれか一項に記載の、コンピュータにより実施される方法(400)。
【請求項15】
前記蒸留モデル(350)はテキスト・トゥ・スピーチモデルを含む、請求項1から13のいずれか一項に記載の、コンピュータにより実施される方法(400)。
【請求項16】
前記蒸留モデル(350)は自然言語理解(NLU)モデルを含む、請求項1から13のいずれか一項に記載の、コンピュータにより実施される方法(400)。
【請求項17】
データ処理ハードウェア(112)と、
前記データ処理ハードウェア(112)と通信しているメモリハードウェア(114)とを備えるシステム(100)であって、前記データ処理ハードウェア(112)上で実行されると、前記データ処理ハードウェア(112)に動作を行わせる命令を記憶し、前記動作は、
それぞれのユーザに各々が関連付けられた複数のクライアントデバイス(102)から、前記データ処理ハードウェア(112)上で実行するクラウドベースアシスタントサービス(120)に向けられたユーザクエリ(119)を受信することと、
前記クラウドベースアシスタントサービス(120)に向けられた、受信された各ユーザクエリ(119)について、
前記ユーザクエリ(119)から1つまたは複数の属性(121)を抽出し、
前記ユーザクエリ(119)から抽出された前記1つまたは複数の属性(121)に基づいて、前記ユーザクエリ(119)を、複数のカテゴリバケット(210)のうちの1つまたは複数にログ記録することと、
前記複数のカテゴリバケット(210)のうちの少なくとも1つが、前記少なくとも1つのカテゴリバケット(210)にログ記録された閾値数の前記ユーザクエリ(119)を含むときを判断することと、
前記複数のカテゴリバケット(210)のうちの前記少なくとも1つが、前記閾値数の前記ユーザクエリ(119)を含むときに、前記クラウドベースアシスタントサービス(120)の蒸留モデル(350)を生成することであって、前記クラウドベースアシスタントサービス(120)の前記蒸留モデル(350)は、前記複数のクライアントデバイス(102)のうちの1つまたは複数のターゲットクライアントデバイス(102)上で実行するように構成される、生成することとを含む、システム(100)。
【請求項18】
前記ユーザクエリ(119)から抽出された前記1つまたは複数の属性(121)は、
前記ユーザクエリ(119)がそこから受信された前記クライアントデバイス(102)に関連付けられたデバイスカテゴリおよび/もしくはデバイスタイプ、
前記ユーザクエリ(119)について識別されたクエリバーティカルタイプ、
前記ユーザクエリ(119)を発話したユーザに関連付けられた言語および/もしくは場所、
前記ユーザクエリ(119)を含むオーディオデータ(118)の中でのバックグラウンドノイズレベル、
前記ユーザクエリ(119)の遂行後に前記クラウドベースアシスタントサービス(120)によって生成されたテキスト・トゥ・スピーチ応答、または
前記ユーザクエリ(119)のトランスクリプション(123)のうちの少なくとも1つを含む、請求項17に記載のシステム(100)。
【請求項19】
前記動作は、前記クラウドベースアシスタントサービス(120)に向けられた、受信された各ユーザクエリ(119)について、
前記クラウドベースアシスタントサービス(120)の自動音声認識(ASR)モデル(122)を使用して、前記ユーザクエリ(119)のトランスクリプション(123)を生成するために前記ユーザクエリ(119)を特徴づけるオーディオデータ(118)を処理することをさらに含み、
前記ユーザクエリ(119)から前記1つまたは複数の属性(121)を抽出することは、前記ユーザクエリ(119)についてのクエリバーティカルタイプを識別するために前記ユーザクエリ(119)の前記トランスクリプション(123)に対してクエリ解釈を実施することを含み、
前記ユーザクエリ(119)をログ記録することは、前記ユーザクエリ(119)を、前記ユーザクエリ(119)について識別された前記クエリバーティカルタイプに関連付けられた前記複数のカテゴリバケット(210)のうちの対応する1つにログ記録することを含む、請求項17または18に記載のシステム(100)。
【請求項20】
前記動作は、
前記生成された蒸留モデル(350)を、前記1つまたは複数のターゲットクライアントデバイス(102)上での実行用に受諾するよう、前記クラウドベースアシスタントサービス(120)のデベロッパ(190)を促すことと、
前記デベロッパ(190)が前記生成された蒸留モデル(350)を受諾するときに、前記蒸留モデル(350)を、前記ターゲットクライアントデバイス(102)のうちの前記1つまたは複数に展開することとをさらに含む、請求項17から19のいずれか一項に記載のシステム(100)。
【請求項21】
前記動作は、
評価データセット(335)に対する、前記生成された蒸留モデル(350)の精度が、前記評価データセット(335)に対する、教師モデル(380)の精度の閾範囲内であるかどうかを判断することをさらに含み、
前記クラウドベースアシスタントサービス(120)の前記デベロッパ(190)を促すことは、前記評価データセット(335)に対する、前記生成された蒸留モデル(350)の前記精度が、前記評価データセット(335)に対する、前記教師モデル(380)の前記精度の前記閾範囲内であるときに、前記クラウドベースアシスタントサービス(120)の前記デベロッパ(190)を促すことをさらに含む、請求項20に記載のシステム(100)。
【請求項22】
前記クラウドベースアシスタントサービス(120)の前記蒸留モデル(350)を生成することは、前記1つまたは複数のターゲットクライアントデバイス(102)の各々のメモリおよび/または処理制約を満足する、前記蒸留モデル(350)用のモデル構成(315)を選択することを含む、請求項17から21のいずれか一項に記載のシステム(100)。
【請求項23】
前記クラウドベースアシスタントサービス(120)の前記蒸留モデル(350)を生成することは、
前記閾値数の前記ユーザクエリ(119)を含む前記複数のカテゴリバケット(210)のうちの前記少なくとも1つに関連付けられた属性(121)を有するトレーニング用クエリ(325)のセットを取得することと、
前記クラウドベースアシスタントサービス(120)の教師モデル(380)を使用して、トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)のための対応するトレーニング用ラベルを生成することと、
トレーニング用クエリ(325)の前記セット、およびトレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)のために生成された前記対応するトレーニング用ラベルで、前記蒸留モデル(350)をトレーニングすることとを含む、請求項17から22のいずれか一項に記載のシステム(100)。
【請求項24】
トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)の少なくとも一部分は、前記複数のカテゴリバケット(210)のうちの前記少なくとも1つの各々にログ記録された前記閾値数の前記ユーザクエリ(119)の中から選択された以前のユーザクエリ(119)を含む、請求項23に記載のシステム(100)。
【請求項25】
トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)の少なくとも一部分は、前記閾値数の前記ユーザクエリ(119)を含む前記複数のカテゴリバケット(210)のうちの前記少なくとも1つに関連付けられた前記属性(121)を有する新着クエリを含む、請求項23または24に記載のシステム(100)。
【請求項26】
トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)の少なくとも一部分は、前記閾値数の前記ユーザクエリ(119)を含む前記複数のカテゴリバケット(210)のうちの前記少なくとも1つに関連付けられた前記属性(121)を有するオフラインデータサンプルから選択される、請求項23から25のいずれか一項に記載のシステム(100)。
【請求項27】
前記動作は、前記生成された蒸留モデル(350)を、前記1つまたは複数のターゲットデバイス(102)の各々上での実行用に展開した後、
前記蒸留モデル(350)を実行する各ターゲットクライアントデバイス(102)から、対応するターゲットクライアントデバイス(102)上で実行する前記蒸留モデル(350)によって処理された新着クエリに関連付けられた属性(121)を示す連合分析を受信することと、
前記連合分析に基づいて、前記新着クエリを、前記複数のカテゴリバケット(210)のうちの1つまたは複数にログ記録することと、
前記複数のカテゴリバケット(210)のうちの少なくとも別の1つが、閾値数の前記ユーザクエリ(119)および新たなユーザクエリ(119)を含むときを判断することと、
前記複数のカテゴリバケット(210)のうちの前記少なくとも別の1つが、前記閾値数の前記ユーザクエリ(119)および前記新たなユーザクエリ(119)を含むときに、前記クラウドベースアシスタントサービス(120)の別の蒸留モデル(350)を生成することであって、前記クラウドベースアシスタントサービス(120)の前記別の蒸留モデル(350)は、前記複数のクライアントデバイス(102)のうちの1つまたは複数のターゲットクライアントデバイス(102)上で実行するように構成される、生成することとをさらに含む、請求項17から26のいずれか一項に記載のシステム(100)。
【請求項28】
前記動作は、前記生成された蒸留モデル(350)を、前記1つまたは複数のターゲットデバイス(102)の各々上での実行用に展開した後、
前記蒸留モデル(350)を実行する各ターゲットクライアントデバイス(102)から、対応するターゲットクライアントデバイス(102)上で実行する前記蒸留モデル(350)によって処理された新着クエリに関連付けられた属性(121)を示す連合分析を受信することと、
前記蒸留モデル(350)を実行する各ターゲットデバイスから受信された前記連合分析に基づいて、前記蒸留モデル(350)のパラメータを更新することによって、更新蒸留モデル(350)を生成することと、
前記更新蒸留モデル(350)を、前記1つまたは複数のターゲットクライアントデバイス(102)の各々における実行用に展開することとをさらに含む、請求項17から27のいずれか一項に記載のシステム(100)。
【請求項29】
前記連合分析は、前記蒸留モデル(350)によって処理された前記新着クエリのいずれかを特徴づけるオーディオデータ(118)を受信することなく、および前記蒸留モデル(350)によって処理された前記新着クエリのトランスクリプションを受信することなく、各ターゲットクライアントデバイス(102)から受信される、請求項28に記載のシステム(100)。
【請求項30】
前記蒸留モデル(350)は音声認識モデルを含む、請求項17から29のいずれか一項に記載のシステム(100)。
【請求項31】
前記蒸留モデル(350)はテキスト・トゥ・スピーチモデルを含む、請求項17から29のいずれか一項に記載のシステム(100)。
【請求項32】
前記蒸留モデル(350)は自然言語理解(NLU)モデルを含む、請求項17から29のいずれか一項に記載のシステム(100)。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、モデルをターゲットデバイスに蒸留するためのクエリパターンの観測に関する。
【背景技術】
【0002】
ユーザは、電話、時計、およびスマートスピーカー/ディスプレイなどのスマートデバイス上のボイス対応アシスタントインターフェースと頻繁に対話する。これらのアシスタントインターフェースは、ユーザが物事をやり終え、ユーザが抱くかもしれない疑問に対する答えを見つけることを、その間ずっと、自然な会話型の対話を通して可能にする。デベロッパは、ボイス対応アシスタントインターフェースを活用するアシスタントサービスを作成している。たとえば、自動音声認識(ASR:automatic speech recognition)モデルは、ユーザによって発話されたクエリを認識することができ、テキスト・トゥ・スピーチ(TTS:text-to-speech)モデルは、発話されたクエリへの応答を伝える、ユーザへの出力用の合成音声を生成することができる。概して、これらのアシスタントサービスは、柔軟性をもたらすとともに広範なクエリ処理能力を提供するクラウドコンピューティング環境の中で実行する。クラウドベースのアシスタントサービスの欠点としては、発話されたクエリを特徴づけるオーディオデータがユーザデバイスからクラウドベースサービスへ転送されなければならないので、ネットワーク帯域幅の消費、レイテンシの増大、およびプライバシーの低下がある。
【発明の概要】
【課題を解決するための手段】
【0003】
本開示の一態様は、データ処理ハードウェア上で実行されると、データ処理ハードウェアに、それぞれのユーザに各々が関連付けられた複数のクライアントデバイスから、データ処理ハードウェア上で実行するクラウドベースのアシスタントサービスに向けられたユーザクエリを受信することを含む動作を実施させる、コンピュータにより実施される方法を提供する。クラウドベースのアシスタントサービスに向けられた、受信された各ユーザクエリについて、動作は、ユーザクエリから1つまたは複数の属性を抽出し、ユーザクエリから抽出された1つまたは複数の属性に基づいて、ユーザクエリを、複数のカテゴリバケットのうちの1つまたは複数にログ記録することも含む。動作は、複数のカテゴリバケットのうちの少なくとも1つが、少なくとも1つのカテゴリバケットにログ記録された閾値数(threshold number)のユーザクエリを含むときを判断し、複数のカテゴリバケットのうちの少なくとも1つが閾値数のユーザクエリを含むときに、クラウドベースのアシスタントサービスの蒸留モデルを生成することも含む。ここで、クラウドベースのアシスタントサービスの蒸留モデルは、複数のクライアントデバイスのうちの1つまたは複数のターゲットクライアントデバイス上で実行するように構成される。
【0004】
本開示の実装形態は、以下の任意選択の特徴のうちの1つまたは複数を含み得る。いくつかの実装形態では、動作は、生成された蒸留モデルを、1つまたは複数のターゲットクライアントデバイス上での実行用に受諾するよう、クラウドベースのアシスタントサービスのデベロッパを促し、生成された蒸留モデルをデベロッパが受諾したときに、蒸留モデルを、ターゲットクライアントデバイスのうちの1つまたは複数に展開することをさらに含む。これらの実装形態では、動作は、評価データセットに対する、生成された蒸留モデルの精度が、評価データセットに対する、教師モデルの精度の閾範囲(threshold range)内であるかどうかを判断することも含み得る。ここで、クラウドベースのアシスタントサービスのデベロッパを促すことは、評価データセットに対する、生成された蒸留モデルの精度が、評価データセットに対する、教師モデルの精度の閾範囲内であるときに、クラウドベースのアシスタントサービスのデベロッパを促すことを含み得る。
【0005】
いくつかの例では、動作は、クラウドベースのアシスタントサービスに向けられた、受信された各ユーザクエリについて、クラウドベースのアシスタントサービスの自動音声認識(ASR)モデルを使用して、ユーザクエリのトランスクリプション(transcription)を生成するためにユーザクエリを特徴づけるオーディオデータを処理することも含む。これらの例では、ユーザクエリから1つまたは複数の属性を抽出することは、ユーザクエリについてのクエリバーティカルタイプ(query vertical type)を識別するためにユーザクエリのトランスクリプションに対してクエリ解釈を実施することを含み、ユーザクエリをログ記録することは、ユーザクエリを、ユーザクエリについて識別されたクエリバーティカルタイプに関連付けられた、複数のカテゴリバケットのうちの対応する1つにログ記録することを含む。ユーザクエリから抽出された1つまたは複数の属性は、ユーザクエリがそこから受信されたクライアントデバイスに関連付けられたデバイスカテゴリおよび/またはデバイスタイプ、ユーザクエリについて識別されたクエリバーティカルタイプ、ユーザクエリを発話したユーザに関連付けられた言語および/もしくは場所、ユーザクエリの遂行後にクラウドベースのアシスタントサービスによって生成されたテキスト・トゥ・スピーチ応答(text-to-speech response)、またはユーザクエリのトランスクリプションのうちの少なくとも1つを含み得る。
【0006】
いくつかの実装形態では、クラウドベースのアシスタントサービスの蒸留モデルを生成することは、1つまたは複数のターゲットクライアントデバイスの各々のメモリおよび/または処理制約を満足する、蒸留モデル用のモデル構成を選択することを含む。いくつかの追加実装形態では、クラウドベースのアシスタントサービスの蒸留モデルを生成することは、閾値数のユーザクエリを含む複数のカテゴリバケットのうちの少なくとも1つに関連付けられた属性を有するトレーニング用クエリのセットを取得することと、クラウドベースのアシスタントサービスの教師モデルを使用して、トレーニング用クエリのセットの中のトレーニング用クエリのための対応するトレーニング用ラベルを生成することと、トレーニング用クエリのセット、およびトレーニング用クエリのセットの中のトレーニング用クエリのために生成された対応するトレーニング用ラベルで、蒸留モデルをトレーニングすることとを含み得る。ここで、トレーニング用クエリのセットの中のトレーニング用クエリの少なくとも一部分は、複数のカテゴリバケットのうちの少なくとも1つの各々にログ記録された閾値数のユーザクエリの中から選択された、以前のユーザクエリを含み得る。任意選択で、トレーニング用クエリのセットの中のトレーニング用クエリの少なくとも一部分は、閾値数のユーザクエリを含む複数のカテゴリバケットのうちの少なくとも1つに関連付けられた属性を有する新着クエリを含み得る。その上、トレーニング用クエリのセットの中のトレーニング用クエリの少なくとも一部分は、閾値数のユーザクエリを含む複数のカテゴリバケットのうちの少なくとも1つに関連付けられた属性を有するオフラインデータサンプルから選択されてよい。
【0007】
いくつかの例では、生成された蒸留モデルを、1つまたは複数のターゲットデバイスの各々上での実行用に展開した後、動作は、蒸留モデルを実行する各ターゲットクライアントデバイスから、対応するターゲットクライアントデバイス上で実行する蒸留モデルによって処理された新着クエリに関連付けられた属性を示す連合分析(federated analytics)を受信することと、連合分析に基づいて、新着クエリを、複数のカテゴリバケットのうちの1つまたは複数にログ記録することと、複数のカテゴリバケットのうちの少なくとも別の1つが、閾値数のユーザクエリおよび新たなユーザクエリを含むときを判断することと、複数のカテゴリバケットのうちの少なくとも別の1つが、閾値数のユーザクエリおよび新たなユーザクエリを含むときに、クラウドベースのアシスタントサービスの別の蒸留モデルを生成することであって、クラウドベースのアシスタントサービスの別の蒸留モデルは、複数のクライアントデバイスのうちの1つまたは複数のターゲットクライアントデバイス上で実行するように構成される、生成することとをさらに含む。
【0008】
いくつかの実装形態では、生成された蒸留モデルを、1つまたは複数のターゲットデバイスの各々上での実行用に展開した後、動作は、蒸留モデルを実行する各ターゲットクライアントデバイスから、対応するターゲットクライアントデバイス上で実行する蒸留モデルによって処理された新着クエリに関連付けられた属性を示す連合分析を受信することと、蒸留モデルを実行する各ターゲットデバイスから受信された連合分析に基づいて、蒸留モデルのパラメータを更新することによって、更新蒸留モデルを生成することと、更新蒸留モデルを、1つまたは複数のターゲットクライアントデバイスの各々における実行用に展開することとをさらに含む。これらの実装形態では、連合分析は、蒸留モデルによって処理された新着クエリのいずれかを特徴づけるオーディオデータを受信することなく、および蒸留モデルによって処理された新着クエリのトランスクリプションを受信することなく、各ターゲットクライアントデバイスから受信され得る。蒸留モデルは、音声認識モデル、テキスト・トゥ・スピーチモデル、または自然言語理解(NLU:natural language understanding)モデルを含み得る。
【0009】
本開示の別の態様は、データ処理ハードウェアと、データ処理ハードウェアと通信しているメモリハードウェアとを含むシステムを提供する。メモリハードウェアは命令を記憶し、命令は、データ処理ハードウェア上で実行されると、データ処理ハードウェアに、それぞれのユーザに各々が関連付けられた複数のクライアントデバイスから、データ処理ハードウェア上で実行するクラウドベースのアシスタントサービスに向けられたユーザクエリを受信することを含む動作を実施させる。クラウドベースのアシスタントサービスに向けられた、受信された各ユーザクエリについて、動作は、ユーザクエリから1つまたは複数の属性を抽出し、ユーザクエリから抽出された1つまたは複数の属性に基づいて、ユーザクエリを、複数のカテゴリバケットのうちの1つまたは複数にログ記録することも含む。動作は、複数のカテゴリバケットのうちの少なくとも1つが、少なくとも1つのカテゴリバケットにログ記録された閾値数のユーザクエリを含むときを判断し、複数のカテゴリバケットのうちの少なくとも1つが閾値数のユーザクエリを含むときに、クラウドベースのアシスタントサービスの蒸留モデルを生成することも含む。ここで、クラウドベースのアシスタントサービスの蒸留モデルは、複数のクライアントデバイスのうちの1つまたは複数のターゲットクライアントデバイス上で実行するように構成される。
【0010】
本態様は、以下の任意選択の特徴のうちの1つまたは複数を含み得る。いくつかの実装形態では、動作は、生成された蒸留モデルを、1つまたは複数のターゲットクライアントデバイス上での実行用に受諾するよう、クラウドベースのアシスタントサービスのデベロッパを促し、生成された蒸留モデルをデベロッパが受諾したときに、蒸留モデルを、ターゲットクライアントデバイスのうちの1つまたは複数に展開することをさらに含む。これらの実装形態では、動作は、評価データセットに対する、生成された蒸留モデルの精度が、評価データセットに対する、教師モデルの精度の閾範囲内であるかどうかを判断することも含み得る。ここで、クラウドベースのアシスタントサービスのデベロッパを促すことは、評価データセットに対する、生成された蒸留モデルの精度が、評価データセットに対する、教師モデルの精度の閾範囲内であるときに、クラウドベースのアシスタントサービスのデベロッパを促すことを含み得る。
【0011】
いくつかの例では、動作は、クラウドベースのアシスタントサービスに向けられた、受信された各ユーザクエリについて、クラウドベースのアシスタントサービスの自動音声認識(ASR)モデルを使用して、ユーザクエリのトランスクリプションを生成するためにユーザクエリを特徴づけるオーディオデータを処理することも含む。これらの例では、ユーザクエリから1つまたは複数の属性を抽出することは、ユーザクエリについてのクエリバーティカルタイプを識別するためにユーザクエリのトランスクリプションに対してクエリ解釈を実施することを含み、ユーザクエリをログ記録することは、ユーザクエリを、ユーザクエリについて識別されたクエリバーティカルタイプに関連付けられた、複数のカテゴリバケットのうちの対応する1つにログ記録することを含む。ユーザクエリから抽出された1つまたは複数の属性は、ユーザクエリがそこから受信されたクライアントデバイスに関連付けられたデバイスカテゴリおよび/またはデバイスタイプ、ユーザクエリについて識別されたクエリバーティカルタイプ、ユーザクエリを発話したユーザに関連付けられた言語および/もしくは場所、ユーザクエリの遂行後にクラウドベースのアシスタントサービスによって生成されたテキスト・トゥ・スピーチ応答、またはユーザクエリのトランスクリプションのうちの少なくとも1つを含み得る。
【0012】
いくつかの実装形態では、クラウドベースのアシスタントサービスの蒸留モデルを生成することは、1つまたは複数のターゲットクライアントデバイスの各々のメモリおよび/または処理制約を満足する、蒸留モデル用のモデル構成を選択することを含む。いくつかの追加実装形態では、クラウドベースのアシスタントサービスの蒸留モデルを生成することは、閾値数のユーザクエリを含む複数のカテゴリバケットのうちの少なくとも1つに関連付けられた属性を有するトレーニング用クエリのセットを取得することと、クラウドベースのアシスタントサービスの教師モデルを使用して、トレーニング用クエリのセットの中のトレーニング用クエリのための対応するトレーニング用ラベルを生成することと、トレーニング用クエリのセットおよびトレーニング用クエリのセットの中のトレーニング用クエリのために生成された対応するトレーニング用ラベルで蒸留モデルをトレーニングすることとを含み得る。ここで、トレーニング用クエリのセットの中のトレーニング用クエリの少なくとも一部分は、複数のカテゴリバケットのうちの少なくとも1つの各々にログ記録された閾値数のユーザクエリの中から選択された、以前のユーザクエリを含み得る。任意選択で、トレーニング用クエリのセットの中のトレーニング用クエリの少なくとも一部分は、閾値数のユーザクエリを含む複数のカテゴリバケットのうちの少なくとも1つに関連付けられた属性を有する新着クエリを含み得る。その上、トレーニング用クエリのセットの中のトレーニング用クエリの少なくとも一部分は、閾値数のユーザクエリを含む複数のカテゴリバケットのうちの少なくとも1つに関連付けられた属性を有するオフラインデータサンプルから選択されてよい。
【0013】
いくつかの例では、生成された蒸留モデルを、1つまたは複数のターゲットデバイスの各々上での実行用に展開した後、動作は、蒸留モデルを実行する各ターゲットクライアントデバイスから、対応するターゲットクライアントデバイス上で実行する蒸留モデルによって処理された新着クエリに関連付けられた属性を示す連合分析を受信することと、連合分析に基づいて、新着クエリを、複数のカテゴリバケットのうちの1つまたは複数にログ記録することと、複数のカテゴリバケットのうちの少なくとも別の1つが、閾値数のユーザクエリおよび新たなユーザクエリを含むときを判断することと、複数のカテゴリバケットのうちの少なくとも別の1つが、閾値数のユーザクエリおよび新たなユーザクエリを含むときに、クラウドベースのアシスタントサービスの別の蒸留モデルを生成することであって、クラウドベースのアシスタントサービスの別の蒸留モデルは、複数のクライアントデバイスのうちの1つまたは複数のターゲットクライアントデバイス上で実行するように構成される、生成することとをさらに含む。
【0014】
いくつかの実装形態では、生成された蒸留モデルを、1つまたは複数のターゲットデバイスの各々上での実行用に展開した後、動作は、蒸留モデルを実行する各ターゲットクライアントデバイスから、対応するターゲットクライアントデバイス上で実行する蒸留モデルによって処理された新着クエリに関連付けられた属性を示す連合分析を受信することと、蒸留モデルを実行する各ターゲットデバイスから受信された連合分析に基づいて、蒸留モデルのパラメータを更新することによって、更新蒸留モデルを生成することと、更新蒸留モデルを、1つまたは複数のターゲットクライアントデバイスの各々における実行用に展開することとをさらに含む。これらの実装形態では、連合分析は、蒸留モデルによって処理された新着クエリのいずれかを特徴づけるオーディオデータを受信することなく、および蒸留モデルによって処理された新着クエリのトランスクリプションを受信することなく、各ターゲットクライアントデバイスから受信され得る。蒸留モデルは、音声認識モデル、テキスト・トゥ・スピーチモデル、または自然言語理解(NLU)モデルを含み得る。
【0015】
本開示の1つまたは複数の実装形態の詳細が、添付の図面および以下の説明に記載される。他の態様、特徴、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0016】
【
図1】クラウドベースアシスタントサービスに向けられたユーザクエリに基づいて、アシスタントモデルをクライアントデバイスに蒸留するための例示的システムの概略図である。
【
図2】ユーザクエリから抽出された属性に基づく、1つまたは複数のカテゴリバケットへのユーザクエリをログ記録する概略図である。
【
図3】
図1のクラウドベースアシスタントサービス用の1つまたは複数の蒸留アシスタントモデルを生成するための例示的な蒸留モデル生成プロセスの概略図である。
【
図4】クラウドベースアシスタントサービスに向けられたユーザクエリに基づいて、アシスタントモデルをクライアントデバイスに蒸留する方法のための動作の例示的な並びのフローチャートである。
【
図5】本明細書に記載するシステムおよび方法を実装するのに使うことができる例示的コンピューティングデバイスの概略図である。
【発明を実施するための形態】
【0017】
様々な図面における同様の参照符号は、同様の要素を示す。
【0018】
ユーザは、電話、時計、およびスマートスピーカー/ディスプレイなどのスマートデバイス上のボイス対応アシスタントインターフェースと頻繁に対話する。これらのアシスタントインターフェースは、ユーザが物事をやり終え、ユーザが抱くかもしれない疑問に対する答えを見つけることを、その間ずっと、自然な会話型の対話を通して可能にする。デベロッパは、ボイス対応アシスタントインターフェースを活用するアシスタントサービスを作成している。たとえば、自動音声認識(ASR)モデルは、ユーザによって発話されたクエリを認識することができ、テキスト・トゥ・スピーチ(TTS)モデルは、発話されたクエリへの応答を伝える、ユーザへの出力用の合成音声を生成することができる。概して、これらのアシスタントサービスは、柔軟性をもたらすとともに広範なクエリ処理能力を提供するクラウドコンピューティング環境の中で実行する。クラウドベースアシスタントサービスの欠点としては、発話されたクエリを特徴づけるオーディオデータがユーザデバイスからクラウドベースサービスへ転送されなければならないので、ネットワーク帯域幅の消費、レイテンシの増大、およびプライバシーの低下がある。
【0019】
本明細書における実装形態は、クライアントデバイスからのユーザクエリを集約するとともに、ユーザクエリの中で識別されたパターン/属性に基づいて、クラウドベースアシスタントサービスのいずれかの構成要素/モデルが、クライアントデバイスの一部または全部に存在することが可能であるときを検出することが可能なクラウドベースアシスタントサービスを対象とする。たとえば、ユーザクエリの圧倒的多数が特定のクエリバーティカルタイプに属すことを、ユーザクエリが明らかにしたとき、クラウドベースアシスタントサービスは、そのクエリバーティカルタイプ内でクエリを認識および/または解釈するように最適化される、蒸留音声認識モデルおよび/または蒸留自然言語理解(NLU)モジュールを生成することを判断してよい。説明のために、デベロッパが、スマートウォッチ製品上で稼動するようにあつらえられたボイスおよびクラウドベースアシスタントサービスを作成する場合があり、それによって、スマートウォッチによってキャプチャされた発話クエリが、クラウドベース音声認識モデルにより認識される。クラウドベースアシスタントサービスによって受信され、処理されたクエリから属性を抽出することによって、クラウドベースアシスタントサービスは、クエリのほぼすべてがフィットネス関連である(たとえば、フィットネスクエリバーティカルタイプに属す)ことを学習し得る。したがって、サービスは、フィットネス関連クエリを認識し、理解するためにあつらえられたカスタム音声認識およびNLUモデルを蒸留してよい。したがって、サービスは、これらの蒸留カスタムモデルを直接、デベロッパの顧客/ユーザのための、レイテンシおよびプライバシーの向上につながるように、スマートウォッチでの実行のために展開すればよい。
【0020】
またさらに、モデルがその上で実行する異なるそれぞれのクライアントデバイスタイプ(特定の型/モデルのスマートフォン)に適した構成を各々が有する、複数の蒸留音声認識モデルが生成されてよい。クラウドベースアシスタントサービスへのクエリを発行するクライアントデバイスに関連付けられたクライアントデバイスタイプおよびカテゴリ(たとえば、電話、スマートスピーカー、スマートウォッチなど)が、クエリの属性として抽出され得る。蒸留音声認識モデルを現在実行しているクライアントデバイスは、レイテンシ、帯域幅使用、およびプライバシーにおいて、ユーザエクスペリエンスの向上をもたらすが、というのは、クエリを特徴づける、高次元および高感度であり得るオーディオデータが現在、クエリを処理するために、クラウドベースアシスタントサービスに関連付けられたクラウドベース音声認識モデルを使う必要なく、クライアントデバイス上でローカルに処理することができるからである。本明細書で使用する限り、クライアントデバイスは、クラウドベースアシスタントサービスの顧客の、どのユーザコンピューティングデバイスならびに構内デバイスも含み得る。
【0021】
図1を参照すると、いくつかの実装形態では、例示的システム100は、1人または複数のユーザ10に関連付けられるとともに、ネットワーク104を介して、リモートシステム111上で実行するクラウドベースアシスタントサービス120と通信する複数のクライアントデバイス102を含む。クライアントデバイス102は、ユーザコンピューティングデバイス102Ua~bおよびエッジデバイス102Eに対応し得る。各ユーザコンピューティングデバイス102Uは、モバイルフォン、コンピュータ(ラップトップまたはデスクトップ)、タブレット、スマートスピーカー/ディスプレイ、スマートアプライアンス、スマートヘッドフォン、ウェアラブル、車両インフォテインメントシステムなどを含んでよく、データ処理ハードウェア103およびメモリハードウェア105を装備する。各ユーザコンピューティングデバイス102Uは、それぞれのユーザ10からの発声をキャプチャするための1つまたは複数のマイクロフォン106を含むか、またはそれらと通信する。各エッジデバイス102Eは、ネットワークを介してリモートシステム111へのアクセスをユーザコンピューティングデバイス102Uに提供する企業またはエンティティに関連付けられた、どの構内デバイス(たとえば、ルータ、ルーティングスイッチ、統合型アクセスデバイス、マルチプレクサ、プライベートサーバなど)も含み得る。リモートシステム111は、スケーラブル/順応性(elastic)計算リソース112(たとえば、データ処理ハードウェア)および/または記憶リソース114(たとえば、メモリハードウェア)を有する、単一のコンピュータ、複数のコンピュータ、または分散型システム(たとえば、クラウド環境)であってよい。
【0022】
クラウドベースアシスタントサービス120は、クライアントデバイス102によってキャプチャされたユーザクエリ119によって指定されたアクションを実施するための、クライアントデバイス102へのデジタルアシスタントインターフェースを提供する。本明細書における例は、クライアントデバイス102のマイクロフォン106によってストリーミングオーディオの中でキャプチャされた、発話された発声としてのユーザクエリ119について記載するが、ユーザクエリ119のいくつかは、本開示の範囲から逸脱することなく、それぞれのユーザによってクライアントデバイスに入力されるテキストクエリを同様に含んでよい。ここで、ユーザ10によって発話されたクエリ119は、ストリーミングオーディオの中でクライアントデバイス102によってキャプチャされ、クラウドベースアシスタントサービス120が実施するべきアクション/動作/タスクを指定し得る。この意味で、ユーザ10は、計算活動を実施するため、または質問に対する答えを見つけるために、リモートシステム上で実行するクラウドベースアシスタントサービス120との会話型対話をすればよい。
【0023】
クラウドベースアシスタントサービス120は概して、ユーザコンピューティングデバイス102Uのマイクロフォン106によってキャプチャされた、発話クエリ119に対応するオーディオデータ118を受信すること、オーディオデータ118に対する音声処理を調整すること、アクションを実施するためのクエリ119を識別するためにオーディオデータ118に対して意味論的解釈を実施すること、およびアクションを遂行することを容易にする。デバイス102のマイクロフォン106が、ストリーミングオーディオの中の発声をキャプチャし、そのオーディオをオーディオデータ118に変換するときには、ユーザクエリに対応するオーディオデータ118が、ネットワーク104を介して、発話された発声において伝えられるクエリ119を識別し、最終的には遂行するための、音声認識および意味論的解釈を実施するためのクラウドベースアシスタントサービス120へ送信される。図示した例において、アシスタントサービス120は、ユーザ10によって発話されたクエリ119を特徴づける、受信されたオーディオデータ118に対する音声認識結果を生成するように構成された音声認識(ASR)モデル122と、音声認識結果に対して意味論的解釈を実施してクエリ119を識別するように構成された自然言語理解(NLU)モデル124と、アシスタントサービス120によって遂行されたクエリ119への応答130を伝える合成音声表現を、入力テキストから生成するように構成されたテキスト・トゥ・スピーチ(TTS)モデル126とを実行する。ユーザデバイス102Uは、オーディオデータ118および/またはトランスクリプション(transcription)がどの特定のユーザデバイス102Uまたはそれに関連付けられたユーザにも起因しないように、クエリ119を特徴づけるオーディオデータ118および/またはトランスクリプションを集約する連合分析を共有し得る。
【0024】
いくつかの実装形態では、デベロッパ190が、デバイス102上の、またはデバイス102にアクセス可能な1つまたは複数のアプリケーションとインターフェースをとるデジタルアシスタントインターフェースを提供するために、クラウドベースアシスタントサービス120を作成する。アプリケーションは概して、デバイス102上で稼動するように構成された、どのアプリケーションも指す。いくつかのタイプのアプリケーションは、メディアアプリケーション(たとえば、ビデオストリーミングアプリケーション、オーディオストリーミングアプリケーション、メディアプレーヤアプリケーション、メディアギャラリーアプリケーションなど)、文書処理アプリケーション、ナビゲーションアプリケーション、ソーシャルメディアアプリケーション、通信アプリケーション(たとえば、メッセージングアプリケーション、eメールアプリケーションなど)、金融アプリケーション、組織アプリケーション(たとえば、アドレス帳アプリケーション)、小売アプリケーション、娯楽アプリケーション(たとえば、ニュースアプリケーション、天気アプリケーション、スポーツアプリケーション)、キャスティングアプリケーションなどを含む。アシスタントサービス120は、これらのアプリケーションと統合されて、ユーザ10が自分の声を使用してデバイス110上でアプリケーションを制御することを可能にし得る。たとえば、アシスタントサービス120は、アプリケーションの機能性を実行するように構成された、アプリケーションプログラミングインターフェース(API)またはどの他のタイプのプログラムもしくはアプリケーションも提供し得る。
【0025】
図示した例において、デベロッパ190は、歯科医院用のクラウドベースアシスタントサービス120を作成し、ここで、クラウドベースアシスタントサービス120は、歯科医院用の予約確定アシスタントインターフェースを提供する。ここで、ユーザ10、10a~nの少なくとも一部は、歯科医院の患者に対応し、これらの患者は、クラウドベースアシスタントサービス120にアクセスして、歯科医院での手続きのための歯科関連予約をスケジュールするために、自分の対応するクライアントデバイス102、102Ua~Unを使う。ユーザコンピューティングデバイス102Uは、ユーザ10が自分のデバイス102Uにダウンロードした、対応するアプリケーション、デバイスに事前インストールされた一般的なアシスタントアプリケーション、または歯科医院に関連付けられたユニフォームリソースロケータ(URL)を入れることによって、ウェブベースアプリケーションを介して、クラウドベースアシスタントサービス120にアクセスし得る。いくつかの例では、ユーザ10の一部は、患者10によって確定された予約を再考/確認し、かつ/またはセキュアなメッセージを患者と通信するためにアシスタントサービス120にやはりアクセスする歯科医院の従業員/スタッフに対応する。したがって、エッジデバイス102Eは、クラウドベースアシスタントサービス120へのアクセスを得るために従業員/スタッフが接続する、歯科医院のプライベートサーバ/コンピュータに対応してよい。
【0026】
この例を続けると、第1の患者10aが、「2月にDr. Zematolとの根管治療をスケジュールして」というクエリ119aを発話し(または任意選択で、タイプし)、これが、クライアントデバイス102Uaのマイクロフォン106によってストリーミングオーディオの中でキャプチャされ、対応するオーディオデータ118に変換され、これを、クライアントデバイス102Uaがネットワーク104を介してクラウドベースアシスタントサービス120へ送信する。任意選択で、エッジデバイス102Eは、最初に、オーディオデータ118を受信し、アシスタントサービス120への、オーディオデータ118の送信を容易にし得る。したがって、クラウドベースASRモデル122は、オーディオデータ118に対して音声認識を実施して、トランスクリプション123を生成し、NLUモデル124は、トランスクリプション123に対して意味論的解釈を実施して、クエリ119aを識別し、より具体的には、アシスタントサービス120が実施するようにクエリ119aが指定するアクションを識別する。当然ながら、NLUモデル124は、ASRモデル122を必要とせずにユーザによって直接入力されたテキストクエリ119を受信してもよい。ここで、NLUモデル124は、歯科医「Dr. Zematol」のスケジュールに、根管治療を実施するための空きが2月にあるかどうかを特定の患者10aが知りたがっていることを示す第1のクエリ119aを識別する。アシスタントサービス120は、それによって、歯科医のスケジュールにアクセスし、根管処置を実施するための、2月中の予約可能時間帯を取り出し、Dr. Zematolが有している、根管治療を実施するための、2月中の予約可能時間帯を示す応答130を、患者10aのクライアントデバイス102Uaに返し得る。応答130は、予約可能時間帯を伝え、時間帯のうちの1つを選択するよう患者10aを促す合成音声として、クライアントデバイス102Uaが(音響スピーカー108を介して)出力するテキスト・トゥ・スピーチ応答を含み得る。このシナリオでは、TTSモデル126は、応答130用の入力テキストを合成音声表現に変換してよく、アシスタントサービス120は、合成音声表現を、対応するオーディオファイルとして、スピーカー108を介した可聴出力用に、クライアントデバイス102Uaへ送信してよい。追加または代替として、応答130は、根管治療予約を確定するために、予約可能時間帯のうちの1つを患者10aが選択することを可能にする、クライアントデバイス102のグラフィカルユーザインターフェース上にグラフィカルに表示されるテキスト表現を含み得る。
【0027】
図1はまた、別の患者10nが、「Dr. Zematolとの歯科検査を3月23日にスケジュール変更する必要がある」という別のクエリ119nを発話するのを示し、このクエリは、クライアントデバイス102Unのマイクロフォン106によってストリーミングオーディオ中でキャプチャされ、対応するオーディオデータ118に変換され、これを、クライアントデバイス102Unが、ネットワーク104を介してクラウドベースアシスタントサービスへ送信する。クラウドベースアシスタントサービス120は、クラウドベースASRおよびNLUモデル122、124を同様に実行して、オーディオデータ118を転写し、別の患者10nがDr. Zematolとの歯科検査を3月23日にスケジュールしたいことを示す別のクエリ119nを識別する。このシナリオでは、アシスタントサービス120は、患者10nが3月23日にDr. Zematolとしている現存の予約をキャンセルし、予約がキャンセルされたことを確認する、対応する応答130を与えてよい。応答130は、患者10nが、歯科医、すなわちDr. Zematolとの歯科検査をスケジュール変更するために選択するべき予約可能日付/時刻をさらに含み得る。
【0028】
受信された各ユーザクエリ119について、クラウドベースアシスタントサービス120は、ユーザクエリ119から1つまたは複数の属性121を抽出し、1つまたは複数の抽出された属性121に基づいて、ユーザクエリ119を、データストレージ170上に記憶された複数のカテゴリバケット210のうちの1つまたは複数にログ記録する。データストレージ170は、リモートシステム111の記憶リソース(たとえば、メモリハードウェア)上に存在し得る。ユーザクエリ119から抽出された属性121は、クエリ119を特徴づけるオーディオデータ118、クエリ119のトランスクリプション123、クエリ119用に識別されたクエリバーティカルタイプ、および/またはクエリ119に関連付けられた1つもしくは複数の他のプロパティを含み得る。たとえば、NLUモデル124は、ASRモデル122によって生成されたクエリ119のトランスクリプション123に対して意味論的解釈を実施して、ユーザクエリについてのクエリバーティカルタイプを識別し得る。その結果、ユーザクエリ119をログ記録することは、ユーザクエリ119を、ユーザクエリ119用に識別されたクエリバーティカルタイプに関連付けられた、複数のカテゴリバケット210のうちの対応する1つにログ記録することを含む。この例では、クエリ119a、119nの各々から抽出されたクエリバーティカルタイプ属性121は、予約/スケジューリング確定に関連付けられたバーティカルを示し、バーティカルが、歯科医訪問予約をスケジュールすることに関連付けられることを示すように、より具体的であってもよい。
【0029】
各クエリから抽出された属性121は、ユーザクエリがそこから受信されたクライアントデバイスに関連付けられたデバイスカテゴリおよび/またはデバイスタイプをさらに含み得る。たとえば、クエリ119nがそこから受信されたクライアントデバイス102Unに関連付けられたデバイスカテゴリは、スマートスピーカーを含む場合があり、第1のクエリ119aがそこから受信されたクライアントデバイス102に関連付けられたデバイスカテゴリは、スマートフォンを含む場合がある。その上、属性121は、クライアントデバイスの型/モデルを示すデバイスタイプを指定し得る。たとえば、ユーザ10aがクエリ119aを発行するのに使ったタイプのスマートフォンの型およびモデルが、デバイスタイプ属性121によって指定され得る。
【0030】
いくつかの例では、クエリ119から抽出された1つまたは複数の属性121は、ユーザクエリ119を発話したユーザ10に関連付けられた言語および/または場所を含む。ここで、言語および/または場所は、オーディオデータ118、トランスクリプション123、または発話されたクエリ119の言語および/もしくは場所を示す何らかの識別子の、どの組合せから抽出されてもよい。追加の例では、フロントエンドオーディオ処理構成要素および/またはASRモデル122が、クエリ属性121の1つとして、ユーザクエリ119を含むオーディオ118から、バックグラウンドノイズレベルを抽出する。
【0031】
クエリ属性121は、ユーザクエリ119の遂行後にアシスタントサービスによって生成されたTTS応答130に関連付けられた属性をさらに含み得る。TTS応答130に関連付けられた属性121は、TTSモデル126によって対応する合成音声表現に変換されるべき応答130を伝えるテキスト入力、合成音声表現のオーディオファイル、または合成音声表現を生成するためにTTSモデル126が条件としていた韻律/スタイル特徴、言語もしくはボイス特性などのTTSモデリングパラメータのうちの少なくとも1つを含み得る。
【0032】
着信ユーザクエリ119が、対応するカテゴリバケット210にログ記録されると、アシスタントサービス120は、カテゴリバケット210の各々にログ記録されたいくつかのクエリ119を含むクエリカテゴリ化ログ312を維持する。蒸留モデル生成プロセス300が、クエリカテゴリ化ログ312を分析して、複数のクライアントデバイス102のうちの1つまたは複数のターゲットクライアントデバイス上で実行するための1つまたは複数の蒸留アシスタントモデル350を機会主義的に生成するために、ユーザクエリ119の中のパターン/類似を識別する。いくつかの例では、新たなクエリ119が1つまたは複数のカテゴリバケット210にログ記録されるたびに、クエリから抽出された属性121に基づいてログ312が動的に更新すると、蒸留モデル生成プロセス300は、クエリカテゴリ化ログ312を継続的に絶えず分析する。他の例では、プロセス300は、クエリカテゴリ化ログ312を定期的に(たとえば、毎時間、毎日、毎週など)分析する。
【0033】
本明細書における実装形態は、クエリカテゴリ化ログ312を検査して、複数のカテゴリバケット210のうちの少なくとも1つが、少なくとも1つのカテゴリバケット210にログ記録された閾値数のユーザクエリ119を含むときを判断する蒸留モデル生成プロセス300を対象とする。複数のカテゴリバケット210のうちの少なくとも1つが、閾値数のユーザクエリ119を含むとき、蒸留モデル生成プロセス300は、クラウドベースアシスタントサービス120の1つまたは複数の蒸留モデル350を生成してよい。たとえば、プロセス300は、クエリバーティカルタイプ(たとえば、予約確定)に関連付けられた共通用語/フレーズならびに/またはアシスタントサービスの顧客(たとえば、歯科医院)に関連付けられた語彙(たとえば、歯科医用語)および固有名詞(たとえば、Dr. Zematol)を認識するようにトレーニングされた蒸留ASRモデル350を生成してよい。ユーザクエリ119の閾値数が条件として使われるが、指定された時間ウィンドウにわたるクエリの閾値数またはクエリの一部など、他のメトリックが使われてもよい。いくつかの例では、プロセス300は、蒸留モデル350を実行するターゲットクライアントデバイス102に関連付けられたデバイスカテゴリおよび/またはデバイスタイプのためのメモリおよび/または処理制約を満足するそれぞれのモデル構成を各々が有する複数の蒸留ASRモデル350を生成し得る。たとえば、プロセス300は、スマートフォンを含むターゲットクライアントデバイス用の第1のモデル構成を有する第1の蒸留ASRモデル350を生成し、スマートスピーカーを含むターゲットクライアントデバイス用の異なる第2のモデル構成を有する第2の蒸留ASRモデル350を生成し得る。
【0034】
いくつかのシナリオでは、蒸留モデル生成プロセス300は、蒸留アシスタントモデル350を生成する前に、デベロッパ190に対して承認を要求する蒸留要求332を、デベロッパ190へ送信する。他のシナリオでは、プロセス300は、蒸留アシスタントモデル350を生成した後、デベロッパ190へ蒸留要求332を送信し、それによって、蒸留要求332は、生成された蒸留アシスタントモデル350を、1つまたは複数のターゲットクライアントデバイス102上での実行のために受諾するよう、クラウドベースアシスタントサービス120のデベロッパ190を促す。ここで、デベロッパ190は、生成された蒸留アシスタントモデル350を、蒸留要求332の中で指定されたターゲットクライアントデバイス102上での実行のためにデベロッパが受諾することを示す蒸留承認334を戻し得る。同じ概念によって、デベロッパ190は、生成された蒸留アシスタントモデル350を、ターゲットデバイス上での実行のために展開することを拒絶してもよい。
【0035】
蒸留アシスタントモデル350が蒸留ASRモデルを含むときのシナリオでは、各ターゲットクライアントデバイス102は、クラウドベースASRモデル122による処理のためにネットワーク104を超えてオーディオデータを送信する必要なく、クライアントデバイス102のそれぞれのユーザ10によって発話されたクエリを特徴づけるオーディオデータに対して音声認識を実施してよい。レイテンシの向上および帯域幅削減に加え、ターゲットクライアントデバイス102の各々において蒸留ASRモデル350を実行すると、ユーザ10の高感度であり得るオーディオ記録がネットワーク104を超えては送信されず、クラウドベースアシスタントサービス120と共有されないので、ユーザプライバシーも保たれる。クラウドベースアシスタントサービス120が、ユーザクエリを処理するためのクラウドベースASR、NLU、および/またはTTSモデル122、124、126を実行する必要をなくし得るために、蒸留NLUおよびTTSモデルが、ターゲットクライアントデバイス102上での実行のために生成され、展開されてもよい。いくつかのシナリオでは、ターゲットクライアントデバイス上で実行する蒸留モデル350が、着信ユーザクエリを処理することができないとき、ターゲットクライアントデバイス102は、クエリ119を処理するために、よりはるかに大きいクラウドベースモデル122、124、126を稼動することが可能なクラウドベースアシスタントサービス120に、クエリ119をハンドオフして(すなわち、ユーザクエリのオーディオデータ118および/またはトランスクリプション123を送信して)よい。
【0036】
いくつかの例では、生成された蒸留モデル350を、1つまたは複数のターゲットデバイス102の各々における実行のために展開した後、クラウドベースアシスタントサービス120は、蒸留アシスタントモデル350を実行する各ターゲットクライアントデバイス102から、対応するターゲットクライアントデバイス102上で実行する蒸留アシスタントモデル350によって処理された新着クエリ119に関連付けられた属性を示す連合分析を受信する。ここで、連合分析は、上述したようにクエリ119から抽出された属性121と同じ、新たなクエリ119から抽出された属性を示し得る。ただし、各ターゲットデバイスから受信された連合分析は、オーディオデータおよびトランスクリプションが、ターゲットデバイスに関連付けられたどの特定のユーザにも起因しないように、蒸留モデルによって処理された新着クエリのいずれかを特徴づけるオーディオデータおよびトランスクリプションを集約する。アシスタントサービス120はここで、連合分析に基づいて、新着クエリを複数のカテゴリバケット210のうちの1つまたは複数にログ記録してよく、蒸留モデル生成プロセス300は、クエリカテゴリ化ログ312を分析して、複数のカテゴリバケット210のうちの少なくとも別の1つが、閾値数のユーザクエリおよび新たなユーザクエリを含むときを判断してよい。前述したように、蒸留モデル生成プロセス300は、クラウドベースアシスタントサービス120の別の蒸留モデル350を、複数のクライアントデバイス102のうちの1つまたは複数のターゲットクライアントデバイス上での実行用に生成し得る。
【0037】
クラウドベースアシスタントサービス120は追加または代替として、ターゲットクライアントデバイスから受信された連合分析を、蒸留モデルのパラメータを更新することによって、更新蒸留モデルを生成するために使用してよい。ここで、連合分析は、ターゲットクライアントデバイス102の実行中に、蒸留アシスタントモデルのための性能メトリックをさらに含み得る。これらのシナリオにおいて、クラウドベースアシスタントサービス120は、各ターゲットクライアントデバイスによって共有される連合分析を収集し、蒸留モデルを更新/向上することができるときを判断してよい。したがって、アシスタントサービス120は、更新蒸留モデルを、1つまたは複数のターゲットクライアントデバイスの各々における実行用に展開してよい。いくつかの例では、アシスタントサービス120は、パラメータ更新を、ターゲットクライアントデバイスの各々へ送り、ターゲットクライアントデバイス102は、その上で実行する蒸留モデルのパラメータを更新するのにパラメータ更新を使うことによって、更新蒸留モデルをローカルに生成する。
【0038】
図2は、例示的なクエリ119を、クエリ119から抽出された1つまたは複数のクエリ属性121に基づいて1つまたは複数のカテゴリバケット210、210a~nにログ記録する概略図を示す。カテゴリバケット210は、事前投入され、デベロッパ190によって定義され、着信ユーザクエリが受信されたときに観測されたパターンに基づいて、アシスタントサービス120によって動的に生成されるか、またはそれらの何らかの組合せであってよい。上述したように、ユーザクエリ119から抽出された1つまたは複数のクエリ属性は、以下の可能属性タイプ、すなわち、クエリがそこから受信されたクライアントデバイス102に関連付けられたデバイスカテゴリおよび/もしくはデバイスタイプ、ユーザクエリについて識別されたクエリバーティカルタイプ、ユーザクエリを発話したユーザに関連付けられた言語および/もしくは場所、ユーザクエリ119を含むオーディオデータ118におけるバックグラウンドノイズレベル、ユーザクエリ119の遂行後にクラウドベースアシスタントサービス120によって生成されたTTS応答130、ユーザクエリを特徴づけるオーディオデータ118、またはユーザクエリのトランスクリプション123のうちの少なくとも1つを含み得る。
【0039】
複数のカテゴリバケット210a~nの中の各カテゴリバケット210は、ユーザクエリから抽出することができる、異なる可能属性タイプのうちのそれぞれのカテゴリを表すだけでなく、それぞれのカテゴリ内の特定の分類も表す。たとえば、
図2の最上行に沿って示されるカテゴリバケット210の第1のグループは、スマートフォン、スマートスピーカー、スマートウォッチ、エッジデバイス、スマートヘッドフォン(図示せず)、または車両インフォテインメントデバイス(図示せず)などだが、それらに限定されない、異なるデバイスカテゴリを表すカテゴリバケット210を含む。さらに、このグループにおけるカテゴリバケット210のうちのいくつかは、すべて同じデバイスカテゴリ(たとえば、スマートフォン)に分けられる、異なる型/モデルのスマートフォン(たとえば、電話Aから電話N)を示す特定のデバイスタイプに関連付けられ、そうすることによって、クラウドベースアシスタントサービス120によって受信されたユーザクエリ119をログ記録するための、より細かい分類を提供する。その上、特定のデバイスタイプは、特定のオペレーティングシステムまたはオペレーティングシステムのバージョンをさらに分類してもよい。各デバイスカテゴリは、利用可能計算/メモリリソースに対する異なる制約に関連付けられてよい。同様に、所与のデバイスカテゴリ内の特定のデバイスタイプが、ディスク空間、メモリ、および/または処理容量に関して異なる制約を有する場合がある。後でより詳細に記載するように、ターゲットクライアントデバイス上で実行するために蒸留アシスタントモデル350を生成するには、クライアントターゲットデバイスのメモリおよび/または処理制約に基づいて、蒸留アシスタントモデル350用のモデル構成(すなわち、モデルアーキテクチャ、モデルに割り当てられる重み/パラメータの数、など)を選択することを要する。
【0040】
引き続き
図2を参照すると、
図2の上から2番目の行に沿って示される、カテゴリバケット210の第2のグループは、異なるクエリバーティカルタイプに関連付けられたカテゴリバケット210を含む。たとえば、この第2のグループ内のカテゴリバケット210は、メディア関連である、アシスタントサービス120に向けられたユーザクエリ(たとえば、「アシスタント、私の音楽プレイリストをストリーミングして」または「アシスタント、映画を一時停止して」)をログ記録するためのバケット、ならびにフィットネス関連であるユーザクエリをログ記録するため、およびスケジューリングに関連したユーザクエリをログ記録するための他のバケットを含み得る。異なるクエリバーティカルタイプを表すいくつかのカテゴリバケットは、非限定的であり、いくつか例を挙げると、ナビゲーション(たとえば、「カリフォルニア州セバストポルのJohnおじさんの家までナビゲートして」)、文書処理、メッセージング(たとえば、「「遅くなる」というメッセージをママに送って」)、およびショッピング(たとえば、「水出しコーヒーを配達用に再注文して」)に関連したクエリバーティカルタイプに関連付けられたバケットを含み得る。デベロッパ190は、着信ユーザクエリをログ記録するための、デベロッパ190にとって特に興味があり得る、デベロッパによって定義されたカスタムクエリバーティカルタイプに基づいて、追加カスタムカテゴリバケットをさらに作成してよい。同じ概念によって、アシスタントサービス120は、カスタムクエリバーティカルタイプをオンザフライで動的に作成してよい。たとえば、クエリバーティカルタイプのスケジューリング/予約確定に関連したカテゴリバケットにクエリをログ記録する間、アシスタントサービス120は、これらのクエリの大部分におけるトランスクリプション123が、歯科用語ならびに珍しい固有名詞(たとえば、「Dr. Zematol」という名前)を含むことを観測し得る。実際、アシスタントサービス120は、クエリ119すべてについてのトランスクリプション123を単に、言語モデルに通して、用語/固有名詞の頻度を確かめ、高頻度である、アシスタントサービス120にとって一意の特定の用語/フレーズ/固有名詞を識別すればよい。したがって、アシスタントサービス120は、学習されたクエリバーティカルタイプおよび/またはアシスタントサービス120にとって一意の用語に関連付けられた1つまたは複数のカスタムカテゴリバケットを動的に作成し得る。
【0041】
図2の上から3番目の行に沿って示される、カテゴリバケット210の第3のグループは、クラウドベースアシスタントサービスに向けられた着信ユーザクエリ119を発話したユーザに関連付けられた、異なる言語および/またはアクセントを表すカテゴリバケット210を含む。たとえば、第3のグループは、異なる言語A~N、ならびに異なる言語の各々における異なるアクセント/方言用のカテゴリバケットを含み得る。たとえば、英語に対応する言語Aを表す複数のカテゴリバケット210を含んでよく、それによって、各カテゴリバケット210は、英語の特定のアクセント/方言(たとえば、アメリカ英語、南部アクセントのアメリカ英語、イギリス英語、マンチェスターアクセントのイギリス英語、など)を表す。
【0042】
図2の最下行に沿って表されるカテゴリバケット210の第4のグループは、ユーザクエリ119を含むオーディオデータ118における異なるバックグラウンドノイズレベルを表すカテゴリバケット210を含む。たとえば、カテゴリバケット210のこの第4のグループは、着信クエリにおけるバックグラウンドノイズレベルを、低、中、または高として分類するための3つのバケットを含み得る。つまり、低バックグラウンドノイズレベルを表すカテゴリバケットは、バックグラウンドノイズレベルが最小ノイズレベル閾未満のオーディオデータを有するどのユーザクエリ119を含んでもよく、高バックグラウンドノイズレベルを表すカテゴリバケットは、バックグラウンドノイズレベルが最大ノイズレベル閾よりも大きいオーディオデータを有するどのユーザクエリ119を含んでもよい。ここで、最大ノイズレベル閾は、最小ノイズレベル閾よりも大きい。同様に、中バックグラウンドノイズレベルを表すカテゴリバケットは、バックグラウンドノイズレベルが最小ノイズレベル閾以上および最大ノイズレベル閾以下であるオーディオデータを有するどのユーザクエリ119を含んでもよい。異なる範囲のバックグラウンドノイズレベルを表すための、3よりも多い/少ないカテゴリバケットが存在してもよい。
【0043】
図2は、クラウドベースアシスタントサービス120によって受信され、クエリから抽出されたクエリ属性121を有するユーザクエリ119を示し、クエリ属性は、オーディオデータ118と、クラウドベースASRモデル122によって生成されたトランスクリプション123と、クエリ119がそこから受信されたクライアントデバイスの型/モデルを示すデバイスタイプインジケータと、ユーザクエリを発話したユーザに関連付けられた言語および/またはアクセントを示す言語/アクセント識別子(たとえば、イギリス英語)と、クエリバーティカルタイプを示すクエリタイプバーティカルインジケータ(たとえば、スケジューリングバーティカル)と、クライアントデバイス102によってキャプチャされたユーザクエリ119を含むオーディオデータ118のバックグラウンドノイズレベルを(たとえば、デシベル(Db)で)示すノイズレベルインジケータとを含む。抽出されたクエリ属性121に基づいて、アシスタントサービス120は、ユーザクエリ119から抽出された異なる属性タイプの中のそれぞれのカテゴリ内の特定の分類を各々が表す複数のカテゴリバケット210に、ユーザクエリ119をログ記録する。たとえば、クエリ119は、以下のカテゴリバケット、すなわち、電話Aのデバイスタイプを表すカテゴリバケット、スケジューリング/予約確定に関連したクエリバーティカルタイプを表すカテゴリバケット、イギリス英語話者に関連付けられた言語A/アクセントNを表すカテゴリバケット、および中バックグラウンドノイズレベルを表すカテゴリバケットの各々にログ記録する。留意すべきこととして、電話Aのデバイスタイプを表すカテゴリバケットは、スマートフォンのデバイスカテゴリも表し、イギリス英語を表すカテゴリバケットは、広くは英語クエリも表す。各カテゴリバケット210内の実線矩形は、ログ記録されたクエリ119を示してよく、破線矩形は、クエリをログ記録するのに利用可能なスロットを示してよい。すべてが実線の矩形をもつバケットは、そのカテゴリバケットが閾値数のクエリ119を含むことを示し得る。
【0044】
図3は、1つまたは複数のターゲットクライアントデバイス102上での実行用に1つまたは複数の蒸留アシスタントモデル350を生成するための、
図1の蒸留モデル生成プロセス300の例を示す。プロセス300は、蒸留モデル候補識別段階(「候補識別段階」)310、蒸留モデルトレーニング段階(「トレーニング段階」)320、および評価段階330を含む。
【0045】
識別段階310の間、プロセス300は、複数のカテゴリバケット210の中の各対応するカテゴリバケットにログ記録される、アシスタントサービス120によって受信されたいくつかのユーザクエリ119の数を示すクエリカテゴリ化ログ312を、データストレージ170から受信する。たとえば、
図3は、対応するカテゴリバケット210にログ記録されたクエリ119の数を示す、各カテゴリバケットについてのクエリカウントインジケータ313を有するクエリカテゴリ化ログ312を示す。プロセス300は、クエリカテゴリ化ログ312を分析/検査して、複数のカテゴリバケット210のうちの少なくとも1つが、対応する少なくとも1つのカテゴリバケット210にログ記録された閾値数のユーザクエリ119を含むときを判断する。全体が陰影付きのクエリカウントインジケータ313は、閾値数のクエリが、対応するカテゴリバケット210にログ記録されたことを示し、まったく陰影のないクエリカウントインジケータ313は、ゼロ個のクエリが、対応するカテゴリバケット210にログ記録されたことを示す。図示した例において、クエリカテゴリ化ログ312は、デバイスタイプNを表すカテゴリバケット210、スケジューリング/予約確定に関連したクエリバーティカルタイプ、および発話されたクエリ言語Aが各々、全体陰影付きクエリカウントインジケータ313によって示されるように、閾値数のクエリを含むことを示す。留意すべきこととして、メディアクエリバーティカルタイプおよび言語Nを表すカテゴリバケット210用のまったく陰影のないクエリカウントインジケータ313は、クラウドベースアシスタントサービスにおいて受信されたユーザクエリ119のうちのどれも、言語Nでは発話されず、またはメディア関連クエリを含んでいなかったことを明らかにする。
【0046】
デバイスタイプN、スケジューリング/予約確定に関連したクエリバーティカルタイプ、および発話されたクエリ言語Aを表すカテゴリバケット210が各々、閾値数のクエリ119を含むとプロセス300が判断したことに基づいて、蒸留モデル候補識別段階310は、クラウドベースアシスタントサービス120の1つまたは複数の蒸留アシスタントモデル候補315、315a~nを識別する。識別段階310中に識別された蒸留アシスタントモデル候補315は、1つもしくは複数の蒸留ASRモデル候補、1つもしくは複数のNLUモデル候補、1つもしくは複数のTTSモデル候補、またはクエリ処理パイプライン中のクラウドベースアシスタントプロセスによって使われる、どの他のタイプのモデルもしくは構成要素のどの組合せも含み得る。たとえば、ターゲットデバイスに蒸留させることができる他のタイプのモデル/構成要素は、バックグラウンドノイズレベルおよび/またはノイズ取消しを処理するための言語モデルおよび/または音声処理モデルを含み得る。
【0047】
識別段階310は、同じタイプのモデル(たとえば、ASRモデル)に関連した複数の蒸留アシスタントモデル候補を識別することができ、ここで、各候補は、それぞれのデバイスカテゴリまたは特定のデバイスタイプに関連付けられたターゲットデバイスのそれぞれのセットにおける使用に適応される。任意選択で、同じタイプのモデルに関連し、ターゲットデバイスの同じセットにおける使用を意図された複数の候補が識別され、最終的には、ターゲットクライアントデバイスへの蒸留のための最上位候補を選択するように評価され得る。したがって、識別段階は、蒸留モデル候補315を実行することを意図された1つまたは複数のターゲットクライアントデバイスの各々のメモリおよび/または処理制約を満足する、各蒸留アシスタントモデル候補315用のそれぞれのモデル構成を選択すればよい。たとえば、識別段階310は、デバイスタイプN向けのメモリおよび/または処理制約を取得(たとえば、ルックアップ)し、デバイスタイプN上で実行することを意図された蒸留アシスタントモデル候補315用のモデル構成を選択すればよい。ここで、モデル構成の選択は、デバイスタイプNの利用可能メモリに基づいて、いくつかのモデル重みを、対応するモデル候補315に割り当てること、および/またはデバイスタイプNの処理容量に基づいて、対応するモデル候補315によって実施することができるいくつかの動作を割り当てることを含み得る。追加または代替として、ターゲットデバイスに蒸留されるべきモデル候補315用のモデル構成を選択することは、ターゲットデバイス向けの利用可能メモリおよび/または処理制約に対する最小公分母に基づいて、モデル重みおよび/または動作制約を割り当てることを含み得る。
【0048】
トレーニング段階320中、蒸留モデル生成プロセス300は、識別段階310中に識別された各蒸留アシスタントモデル候補315用の対応する蒸留アシスタントモデル350を生成する。いくつかの実装形態では、各蒸留アシスタントモデル候補315用に、プロセス300は、閾値数のクエリ119を含むカテゴリバケット210のうちの1つまたは複数に関連付けられたクエリ属性121を有するトレーニング用クエリ325のセットを取得する。たとえば、蒸留アシスタントモデル候補315が、スケジューリング/確定に関連し、言語Aで発話された用語/フレーズを認識するために適応された蒸留ASRモデル候補を含むとき、トレーニング段階320は、言語Aで発話され、スケジューリング/予約確定に関連したクエリバーティカルタイプに属す、データストレージ170上に記憶されたトレーニング用クエリ325のセットを取り出すためのデータ取出し要求332を発行し得る。ここで、トレーニング用クエリ325のセットの中のトレーニング用クエリの少なくとも一部分は、スケジューリング/予約確定に関連したクエリバーティカルタイプを表すカテゴリバケット210の各々にログ記録された閾値数のユーザクエリの中から選択された、以前のユーザクエリと、言語Aで発話されたクエリとを含み得る。トレーニング用クエリ325のセットの中のトレーニング用クエリの少なくとも一部分は、追加または代替として、閾値数のクエリ119を含むカテゴリバケット210のうちの1つまたは複数に関連付けられたクエリ属性121を有する、クラウドベースアシスタントサービス120において受信された新着クエリを含み得る。例として、およびこの例を続けると、トレーニング段階320は、スケジューリング/予約確定に関連したクエリバーティカルタイプに属し、言語Aで発話された新着クエリ119をフィルタアウトすることによって、トレーニング用クエリ325のセットの中のトレーニング用クエリの少なくとも一部分を取得し得る。さらに、トレーニング用クエリ325のセットの中で取得されたトレーニング用クエリの少なくとも一部分が、閾値数のクエリ119を含むカテゴリバケット210のうちの1つまたは複数に関連付けられた属性121を有するデータストレージ170上に記憶されたオフラインデータサンプルから選択されてよい。
【0049】
トレーニング用クエリ325のセットの中の各トレーニング用クエリは、それぞれのユーザによって発話されたトレーニング用クエリを特徴づける、対応するオーディオデータを含み得る。アシスタントサービスによって処理された以前のクエリ119に関連付けられた各トレーニング用クエリ325は、アシスタントサービス120のクラウドベースASRモデル122によって生成された対応するトランスクリプション123とペアにすることができる。したがって、トレーニング段階320は、クラウドベースASRモデル122を、トレーニング用クエリのセットの中のトレーニング用クエリを特徴づけるオーディオデータの各サンプル用の対応するトレーニング用ラベル(すなわち、グランドトゥルーストランスクリプション)を生成するための教師モデルとして使い得る。同様に、アシスタントサービスによって処理された、以前のクエリ119に関連付けられた各トレーニング用クエリ325は、クラウドベースTTSモデル126への入力テキストまたはクラウドベースTTSモデル126によって生成された合成音声表現のうちの少なくとも1つを含む、対応するTTS応答130とペアにすることができる。
【0050】
トレーニング用クエリのセットおよび対応するトレーニング用ラベルが取得/生成されると、トレーニング段階320は、対応する蒸留アシスタントモデル350を、トレーニング用クエリのセットおよびトレーニング用クエリのセットの中のトレーニング用クエリ向けに生成された対応するトレーニング用ラベルでトレーニングする。トレーニングは、特定の時間量のトレーニング、指定された数のトレーニングステップをもつトレーニング、トレーニング用クエリのセットの中の指定された数のトレーニング用クエリでのトレーニング、および/またはモデルをトレーニングするためのトレーニング損失が安定するまでを含み得る。留意すべきこととして、蒸留アシスタントモデル350が蒸留ASRモデルを含む例では、蒸留ASRモデルは、対応するクラウドベースASRモデル322と比較して、サイズおよび処理要件の徹底的な削減を含むことができ、というのは、蒸留ASRモデル350が、言語Aで発話されたクエリを認識し、スケジューリング/予約確定に関連した用語/フレーズを含むためにカスタマイズされるからである。クラウドベースASRモデルは、多数の異なる言語での音声を認識するようにトレーニングされるとともに多数の異なるクエリバーティカルタイプにわたる、非常に大規模な多言語モデルを含み得る。ただし、クエリカテゴリ化ログ312は、共通属性121を共有する閾値数のクエリを識別するので、蒸留ASRモデルは、属性の限定セットを有するクエリを処理するのに適した構成およびパラメータを有する縮小サイズカスタムモデルとしてトレーニングされ得る。トレーニング段階320は、これらのステップを繰り返して、識別段階310中に識別された各蒸留アシスタントモデル候補315用の対応する蒸留アシスタントモデル候補をトレーニングし、生成する。
【0051】
トレーニング段階320が各蒸留アシスタントモデル350を生成し、トレーニングした後、評価段階330は、各蒸留アシスタントモデル350を、対応する教師モデル380に関して評価してよい。いくつかの例では、教師モデル380は、蒸留アシスタントモデル350に関連したクラウドベースアシスタントサービス120の対応するクラウドベースモデルを含む。たとえば、蒸留ASRモデルを含むどの蒸留アシスタントモデル350に対しても、評価段階330は、アシスタントサービス120のクラウドベースASRモデル122を、蒸留ASRモデルの各々を評価するための教師モデル380として使う。
【0052】
いくつかの実装形態では、評価段階330は、評価データセット335に対する、生成された蒸留アシスタントモデル350の精度が、評価データセット335に対する、対応する教師モデル380の精度の閾範囲内であるかどうかを判断する。これらの実装形態では、評価段階は、評価データセットに対する、生成された蒸留モデル350の精度が、対応する教師モデル350の精度の閾範囲内であるとき、1つまたは複数のターゲットクライアントデバイス102上での実行用に、生成された蒸留アシスタントモデル350を受諾するよう、クラウドベースアシスタントサービス120のデベロッパ190を促す。いくつかの例では、評価セット335は、着信クエリのライブセットを特徴づけるオーディオデータを含み、蒸留アシスタントおよび教師モデル350、380はASRモデルに対応する。これらの例では、着信クエリ用のモデル350、380によって出力された音声認識結果の単語誤り率(WER)が、モデル350、380の各々の精度/性能を示すためのメトリックとして使われてよい。他のメトリックが、モデル350、380の精度/性能を示すのに使われてもよい。
【0053】
評価段階330は、蒸留要求332をデベロッパ190へ送信することによって、生成された蒸留アシスタントモデル350を受諾するよう、デベロッパ190を促し得る。いくつかの例では、蒸留要求332は、蒸留アシスタントモデル350の特性、蒸留アシスタントモデル350を実行することを意図されたターゲットデバイス102、および/または蒸留アシスタントモデルの評価結果を記述するメッセージを含む。たとえば、デベロッパ190へ送信される蒸留要求332は、「デバイスX上で稼動することができる、利用可能な蒸留モデルがある。クラウドベースモデルの1%以内の精度だが、レイテンシを削減し、プライバシーを向上する」というメッセージを含む。
図1に示すように、デベロッパ190は、生成された蒸留アシスタントモデル350を、蒸留要求332によって指定されたターゲットクライアントデバイス102上での実行用にデベロッパが受諾することを示す蒸留承認334を戻し得る。同じ概念によって、デベロッパ190は、生成された蒸留アシスタントモデル350を、ターゲットデバイス上での実行のために展開することを拒絶してもよい。
【0054】
ソフトウェアアプリケーション(すなわち、ソフトウェアリソース)は、コンピューティングデバイスにタスクを実施させるコンピュータソフトウェアを指し得る。いくつかの例では、ソフトウェアアプリケーションは、「アプリケーション」、「アプリ」、または「プログラム」と呼ばれる場合がある。例示的アプリケーションは、限定はしないが、システム診断アプリケーション、システム管理アプリケーション、システム保守アプリケーション、文書処理アプリケーション、表計算アプリケーション、メッセージングアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲーム用アプリケーションを含む。
【0055】
非一時的メモリは、プログラム(たとえば、命令のシーケンス)またはデータ(たとえば、プログラム状態情報)を、コンピューティングデバイスによる使用のために、一時的または永続的に記憶するのに使われる物理デバイスであってよい。非一時的メモリは、揮発性および/または不揮発性アドレス可能半導体メモリであってよい。不揮発性メモリの例は、フラッシュメモリおよび読取り専用メモリ(ROM)/プログラマブル読取り専用メモリ(PROM)/消去可能プログラマブル読取り専用メモリ(EPROM)/電子的消去可能プログラマブル読取り専用メモリ(EEPROM)(たとえば、通常は、ブートプログラムなどのファームウェアのために使用される)を含むが、それに限定されない。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)ならびにディスクまたはテープを含むが、それに限定されない。
【0056】
図4は、リモートシステム111のデータ処理ハードウェア112上で実行するクラウドベースアシスタントサービス120に向けられたユーザクエリ119に基づいて、アシスタントモデル350をクライアントデバイス102に蒸留する方法400のための動作の例示的な並びのフローチャートである。方法400は、データ処理ハードウェア112に動作を実施させるようにリモートシステム111のデータ処理ハードウェア112上で実行する、コンピュータにより実施される方法を含み得る。動作402において、方法400は、それぞれのユーザに各々が関連付けられた複数のクライアントデバイス102から、クラウドベースアシスタントサービス120に向けられたユーザクエリ119を受信するステップを含む。動作404において、クラウドベースアシスタントサービス120に向けられた、受信された各ユーザクエリ119について、方法400は、ユーザクエリ119から1つまたは複数の属性121を抽出し、ユーザクエリ119から抽出された1つまたは複数の属性121に基づいて、ユーザクエリ119を、複数のカテゴリバケット210のうちの1つまたは複数にログ記録するステップも含む。
【0057】
動作406において、方法400は、複数のカテゴリバケット210のうちの少なくとも1つが、少なくとも1つのカテゴリバケット210にログ記録された閾値数のユーザクエリを含むときを判断するステップも含む。動作408において、複数のカテゴリバケット210のうちの少なくとも1つが閾値数のユーザクエリを含むとき、方法400は、クラウドベースアシスタントサービス120の蒸留モデル350を生成するステップも含む。ここで、クラウドベースアシスタントサービス120の蒸留モデル350は、複数のクライアントデバイス102のうちの1つまたは複数のターゲットクライアントデバイス102上で実行するように構成される。
【0058】
図5は、本文書に記載するシステムおよび方法を実装するのに使うことができる例示的コンピューティングデバイス500の概略図である。コンピューティングデバイス500は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの、様々な形態のデジタルコンピュータを表すことを意図している。ここに示す構成要素、それらの接続および関係、ならびにそれらの機能は、例示にすぎないものとし、本明細書で説明および/または請求する本発明の実装形態を限定するものではない。
【0059】
コンピューティングデバイス500は、プロセッサ510と、メモリ520と、記憶デバイス530と、メモリ520および高速拡張ポート550に接続する高速インターフェース/コントローラ540と、低速バス570および記憶デバイス530に接続する低速インターフェース/コントローラ560とを含む。構成要素510、520、530、540、550、および560の各々は、様々なバスを使用して相互接続され、共通マザーボード上に、または必要に応じて他の方式で搭載されてよい。プロセッサ510は、グラフィカルユーザインターフェース(GUI)についてのグラフィカル情報を、高速インターフェース540に結合されたディスプレイ580などの外部入力/出力デバイス上に表示するための、メモリ520中または記憶デバイス530上に記憶された命令を含む、コンピューティングデバイス500内での実行のための命令を処理することができる。他の実装形態では、複数のプロセッサおよび/または複数のバスが、必要に応じて、複数のメモリおよび複数のタイプのメモリとともに使われてよい。また、複数のコンピューティングデバイス500が接続されてもよく、各デバイスは、必要な動作の部分を(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)提供する。
【0060】
メモリ520は、コンピューティングデバイス500内に情報を非一時的に記憶する。メモリ520は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットであってよい。非一時的メモリ520は、プログラム(たとえば、命令のシーケンス)またはデータ(たとえば、プログラム状態情報)を、コンピューティングデバイス500による使用のために、一時的または永続的に記憶するのに使われる物理デバイスであってよい。不揮発性メモリの例は、フラッシュメモリおよび読取り専用メモリ(ROM)/プログラム可能読取り専用メモリ(PROM)/消去可能プログラマブル読取り専用メモリ(EPROM)/電子的消去可能プログラマブル読取り専用メモリ(EEPROM)(たとえば、通常は、ブートプログラムなどのファームウェア用に使われる)を含むが、それに限定されない。揮発性メモリの例は、限定はしないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)ならびにディスクまたはテープを含む。
【0061】
記憶デバイス530は、コンピューティングデバイス500に大容量記憶を提供することが可能である。いくつかの実装形態では、記憶デバイス530は、コンピュータ可読媒体である。様々な異なる実装形態において、記憶デバイス530は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイス、フラッシュメモリもしくは他の同様の固体メモリデバイス、または記憶エリアネットワークもしくは他の構成におけるデバイスを含むデバイスのアレイであってよい。追加の実施形態では、コンピュータプログラム製品は、情報キャリアにおいて有形に具現化される。コンピュータプログラム製品は、実行されると、上記で説明されたものなどの1つまたは複数の方法を実施する命令を含む。情報キャリアは、メモリ520、記憶デバイス530、またはプロセッサ510上のメモリなどの、コンピュータ可読媒体または機械可読媒体である。
【0062】
高速コントローラ540は、コンピューティングデバイス500向けの帯域消費型動作を管理し、低速コントローラ560は、より帯域低消費型の動作を管理する。義務のそのような割振りは、例示的なものにすぎない。いくつかの実装形態では、高速コントローラ540は、メモリ520、ディスプレイ580に(たとえば、グラフィックスプロセッサまたはアクセラレータを通じて)、および様々な拡張カード(図示せず)を受け入れることができる高速拡張ポート550に結合される。いくつかの実装形態では、低速コントローラ560は、記憶デバイス530および低速拡張ポート590に結合される。低速拡張ポート590は、様々な通信ポート(たとえば、USB、Bluetooth、イーサネット、ワイヤレスイーサネット)を含み得るが、キーボード、ポインティングデバイス、スキャナなど、1つもしくは複数の入力/出力デバイス、またはスイッチもしくはルータなどのネットワークデバイスに、たとえば、ネットワークアダプタを通して結合され得る。
【0063】
コンピューティングデバイス500は、図に示すように、いくつかの異なる形で実装されてよい。たとえば、コンピューティングデバイス500は、標準的なサーバ500aとして、もしくはそのようなサーバ500aのグループで複数回、またはラップトップコンピュータ500bとして、またはラックサーバシステム500cの一部として実装され得る。
【0064】
本明細書で説明するシステムおよび技法の様々な実装形態は、デジタル電子および/もしくは光学回路構成、集積回路構成、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、ならびに/またはそれらの組合せで実現され得る。これらの様々な実装形態は、少なくとも1つのプログラム可能プロセッサを含むプログラム可能システム上で実行可能および/または翻訳可能な1つまたは複数のコンピュータプログラムでの実装を含んでよく、プログラム可能プロセッサは、記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信するように、ならびにそれらにデータおよび命令を送信するように結合された、特殊または一般的目的であってよい。
【0065】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとしても知られる)は、プログラム可能プロセッサ用の機械命令を含み、高度手続き型および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ/機械言語で実装され得る。本明細書で使用する「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械命令を機械可読信号として受信する機械可読媒体を含むプログラマブルプロセッサに、機械命令および/またはデータを提供するために使用される、任意のコンピュータプログラム製品、非一時的コンピュータ可読媒体、装置および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブル論理デバイス(PLD))を指す。「機械可読信号」という用語は、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意の信号を指す。
【0066】
本明細書に記載したプロセスおよび論理フローは、入力データに対して動作し、出力を生成することによって機能を実施するための1つまたは複数のコンピュータプログラムを実行する、データ処理ハードウェアとも呼ばれる1つまたは複数のプログラマブルプロセッサによって実施することができる。プロセスおよび論理フローは、特殊目的論理回路構成、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実施することもできる。コンピュータプログラムの実行に適したプロセッサは、例として、汎用および専用マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、読取り専用メモリもしくはランダムアクセスメモリまたは両方から、命令およびデータを受信することになる。コンピュータの本質的要素は、命令を実施するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。概して、コンピュータは、データを記憶するための1つまたは複数の大容量記憶デバイス、たとえば、磁気、光磁気ディスク、または光ディスクも含み、あるいは大容量記憶デバイスからデータを受信し、もしくはデータを転送し、または両方を行うように大容量記憶デバイスに動作可能に結合される。ただし、コンピュータは、そのようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスと、磁気ディスク、たとえば、内部ハードディスクまたは取外し可能ディスクと、光磁気ディスクと、CD-ROMおよびDVD-ROMディスクとを含む、すべての形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完され得るか、専用論理回路に組み込まれ得る。
【0067】
ユーザとの対話を可能にするために、本開示の1つまたは複数の態様は、ユーザに情報を表示するためのディスプレイデバイス、たとえば、CRT(陰極線管)、LCD(液晶ディスプレイ)モニタ、またはタッチスクリーンと、任意選択で、ユーザがコンピュータに入力を与えることができるためのキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールとを有するコンピュータ上で実装することができる。他の種類のデバイスも、ユーザとの対話を提供するのに使われることが可能であり、たとえば、ユーザに与えられるフィードバックは、どの形の感覚フィードバックでも、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることができ、ユーザからの入力は、音響、音声、または触覚入力を含む、どの形でも受信されることが可能である。さらに、コンピュータは、ユーザによって使われるデバイスへドキュメントを送り、デバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答して、ユーザのクライアントデバイス上のウェブブラウザへウェブページを送ることによって、ユーザと対話することができる。
【0068】
いくつかの実装形態を記載した。それにもかかわらず、本開示の趣旨および範囲から逸脱することなく、様々な修正を行うことができることが理解されよう。したがって、他の実装形態が、以下の特許請求の範囲内にある。
【符号の説明】
【0069】
100 システム
102 クライアントデバイス、デバイス
102E エッジデバイス
102U ユーザコンピューティングデバイス、ユーザデバイス、クライアントデバイス、デバイス
103 データ処理ハードウェア
104 ネットワーク
105 メモリハードウェア
106 マイクロフォン
108 音響スピーカー
111 リモートシステム
112 計算リソース
114 記憶リソース
120 クラウドベースアシスタントサービス、アシスタントサービス
122 音声認識(ASR)モデル、クラウドベースモデル
124 自然言語理解(NLU)モデル、クラウドベースモデル
126 テキスト・トゥ・スピーチ(TTS)モデル、クラウドベースモデル
170 データストレージ
312 クエリカテゴリ化ログ
350 蒸留アシスタントモデル、蒸留モデル、蒸留ASRモデル
380 教師モデル
500 コンピューティングデバイス
500a サーバ
500b ラップトップコンピュータ
500c ラックサーバシステム
510 プロセッサ、構成要素
520 メモリ、構成要素
530 記憶デバイス、構成要素
540 高速インターフェース/コントローラ、構成要素
550 高速拡張ポート、構成要素
560 低速インターフェース/コントローラ、構成要素
570 低速バス
580 ディスプレイ
590 低速拡張ポート
【手続補正書】
【提出日】2024-06-11
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
データ処理ハードウェア上で実行されると、前記データ処理ハードウェア(112)に動作を実施させる、コンピュータにより実施される方法(400)であって、前記動作は、
それぞれのユーザに各々が関連付けられた複数のクライアントデバイス(102)から、前記データ処理ハードウェア(112)上で実行するクラウドベースアシスタントサービス(120)に向けられたユーザクエリ(119)を受信することと、
前記クラウドベースアシスタントサービス(120)に向けられた、受信された各ユーザクエリ(119)について、
前記ユーザクエリ(119)から1つまたは複数の属性(121)を抽出し、
前記ユーザクエリ(119)から抽出された前記1つまたは複数の属性(121)に基づいて、前記ユーザクエリ(119)を、複数のカテゴリバケット(210)のうちの1つまたは複数にログ記録することと、
前記複数のカテゴリバケット(210)のうちの少なくとも1つが、前記少なくとも1つのカテゴリバケット(210)にログ記録された閾値数の前記ユーザクエリ(119)を含むときを判断することと、
前記複数のカテゴリバケット(210)のうちの前記少なくとも1つが、前記閾値数の前記ユーザクエリ(119)を含むときに、前記クラウドベースアシスタントサービス(120)の蒸留モデル(350)を生成することであって、前記クラウドベースアシスタントサービス(120)の前記蒸留モデル(350)は、前記複数のクライアントデバイス(102)のうちの1つまたは複数のターゲットクライアントデバイス(102)上で実行するように構成される、生成することとを含む、コンピュータにより実施される方法(400)。
【請求項2】
前記ユーザクエリ(119)から抽出された前記1つまたは複数の属性(121)は、
前記ユーザクエリ(119)がそこから受信された前記クライアントデバイス(102)に関連付けられたデバイスカテゴリおよび/もしくはデバイスタイプ、
前記ユーザクエリ(119)について識別されたクエリバーティカルタイプ、
前記ユーザクエリ(119)を発話したユーザに関連付けられた言語および/もしくは場所、
前記ユーザクエリ(119)を含むオーディオデータ(118)の中でのバックグラウンドノイズレベル、
前記ユーザクエリ(119)の遂行後に前記クラウドベースアシスタントサービス(120)によって生成されたテキスト・トゥ・スピーチ応答、または
前記ユーザクエリ(119)のトランスクリプション(123)のうちの少なくとも1つを含む、請求項1に記載の、コンピュータにより実施される方法(400)。
【請求項3】
前記動作は、前記クラウドベースアシスタントサービス(120)に向けられた、受信された各ユーザクエリ(119)について、
前記クラウドベースアシスタントサービス(120)の自動音声認識(ASR)モデル(122)を使用して、前記ユーザクエリ(119)のトランスクリプション(123)を生成するために前記ユーザクエリ(119)を特徴づけるオーディオデータ(118)を処理することをさらに含み、
前記ユーザクエリ(119)から前記1つまたは複数の属性(121)を抽出することは、前記ユーザクエリ(119)についてのクエリバーティカルタイプを識別するために前記ユーザクエリ(119)の前記トランスクリプション(123)に対してクエリ解釈を実施することを含み、
前記ユーザクエリ(119)をログ記録することは、前記ユーザクエリ(119)を、前記ユーザクエリ(119)について識別された前記クエリバーティカルタイプに関連付けられた前記複数のカテゴリバケット(210)のうちの対応する1つにログ記録することを含む、請求項
1に記載の、コンピュータにより実施される方法(400)。
【請求項4】
前記動作は、
前記生成された蒸留モデル(350)を、前記1つまたは複数のターゲットクライアントデバイス(102)上での実行用に受諾するよう、前記クラウドベースアシスタントサービス(120)のデベロッパ(190)を促すことと、
前記デベロッパ(190)が前記生成された蒸留モデル(350)を受諾するときに、前記蒸留モデル(350)を、前記ターゲットクライアントデバイス(102)のうちの前記1つまたは複数に展開することとをさらに含む、請求項
1に記載の、コンピュータにより実施される方法(400)。
【請求項5】
前記動作は、
評価データセット(335)に対する、前記生成された蒸留モデル(350)の精度が、前記評価データセット(335)に対する、教師モデル(380)の精度の閾範囲内であるかどうかを判断することをさらに含み、
前記クラウドベースアシスタントサービス(120)の前記デベロッパ(190)を促すことは、前記評価データセット(335)に対する前記生成された蒸留モデル(350)の前記精度が、前記評価データセット(335)に対する前記教師モデル(380)の前記精度の前記閾範囲内であるときに、前記クラウドベースアシスタントサービス(120)の前記デベロッパ(190)を促すことを含む、請求項4に記載の、コンピュータにより実施される方法(400)。
【請求項6】
前記クラウドベースアシスタントサービス(120)の前記蒸留モデル(350)を生成することは、前記1つまたは複数のターゲットクライアントデバイス(102)の各々のメモリおよび/または処理制約を満足する、前記蒸留モデル(350)用のモデル構成(315)を選択することを含む、請求項
1に記載の、コンピュータにより実施される方法(400)。
【請求項7】
前記クラウドベースアシスタントサービス(120)の前記蒸留モデル(350)を生成することは、
前記閾値数の前記ユーザクエリ(119)を含む前記複数のカテゴリバケット(210)のうちの前記少なくとも1つに関連付けられた属性(121)を有するトレーニング用クエリ(325)のセットを取得することと、
前記クラウドベースアシスタントサービス(120)の教師モデル(380)を使用して、トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)のための対応するトレーニング用ラベルを生成することと、
トレーニング用クエリ(325)の前記セット、およびトレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)のために生成された前記対応するトレーニング用ラベルで、前記蒸留モデル(350)をトレーニングすることとを含む、請求項
1に記載の、コンピュータにより実施される方法(400)。
【請求項8】
トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)の少なくとも一部分は、前記複数のカテゴリバケット(210)のうちの前記少なくとも1つの各々にログ記録された前記閾値数の前記ユーザクエリ(119)の中から選択された以前のユーザクエリ(119)を含む、請求項7に記載の、コンピュータにより実施される方法(400)。
【請求項9】
トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)の少なくとも一部分は、前記閾値数の前記ユーザクエリ(119)を含む前記複数のカテゴリバケット(210)のうちの前記少なくとも1つに関連付けられた前記属性(121)を有する新着クエリを含む、請求項
7に記載の、コンピュータにより実施される方法(400)。
【請求項10】
トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)の少なくとも一部分は、前記閾値数の前記ユーザクエリ(119)を含む前記複数のカテゴリバケット(210)のうちの前記少なくとも1つに関連付けられた前記属性(121)を有するオフラインデータサンプルから選択される、請求項
7に記載の、コンピュータにより実施される方法(400)。
【請求項11】
前記動作は、前記生成された蒸留モデル(350)を、前記1つまたは複数のターゲットデバイス(102)の各々上での実行用に展開した後、
前記蒸留モデル(350)を実行する各ターゲットクライアントデバイス(102)から、対応するターゲットクライアントデバイス(102)上で実行する前記蒸留モデル(350)によって処理された新着クエリに関連付けられた属性(121)を示す連合分析を受信することと、
前記連合分析に基づいて、前記新着クエリを、前記複数のカテゴリバケット(210)のうちの1つまたは複数にログ記録することと、
前記複数のカテゴリバケット(210)のうちの少なくとも別の1つが、閾値数の前記ユーザクエリ(119)および新たなユーザクエリ(119)を含むときを判断することと、
前記複数のカテゴリバケット(210)のうちの前記少なくとも別の1つが、前記閾値数の前記ユーザクエリ(119)および前記新たなユーザクエリ(119)を含むときに、前記クラウドベースアシスタントサービス(120)の別の蒸留モデル(350)を生成することであって、前記クラウドベースアシスタントサービス(120)の前記別の蒸留モデル(350)は、前記複数のクライアントデバイス(102)のうちの1つまたは複数のターゲットクライアントデバイス(102)上で実行するように構成される、生成することとをさらに含む、請求項
1に記載の、コンピュータにより実施される方法(400)。
【請求項12】
前記動作は、前記生成された蒸留モデル(350)を、前記1つまたは複数のターゲットデバイス(102)の各々上での実行用に展開した後、
前記蒸留モデル(350)を実行する各ターゲットクライアントデバイス(102)から、対応するターゲットクライアントデバイス(102)上で実行する前記蒸留モデル(350)によって処理された新着クエリに関連付けられた属性(121)を示す連合分析を受信することと、
前記蒸留モデル(350)を実行する各ターゲットデバイスから受信された前記連合分析に基づいて、前記蒸留モデル(350)のパラメータを更新することによって、更新蒸留モデル(350)を生成することと、
前記更新蒸留モデル(350)を、前記1つまたは複数のターゲットクライアントデバイス(102)の各々における実行用に展開することとをさらに含む、請求項
1に記載の、コンピュータにより実施される方法(400)。
【請求項13】
前記連合分析は、前記蒸留モデル(350)によって処理された前記新着クエリのいずれかを特徴づけるオーディオデータ(118)を受信することなく、および前記蒸留モデル(350)によって処理された前記新着クエリのトランスクリプションを受信することなく、各ターゲットクライアントデバイス(102)から受信される、請求項12に記載の、コンピュータにより実施される方法(400)。
【請求項14】
前記蒸留モデル(350)は音声認識モデルを含む、請求項1から13のいずれか一項に記載の、コンピュータにより実施される方法(400)。
【請求項15】
前記蒸留モデル(350)はテキスト・トゥ・スピーチモデルを含む、請求項1から13のいずれか一項に記載の、コンピュータにより実施される方法(400)。
【請求項16】
前記蒸留モデル(350)は自然言語理解(NLU)モデルを含む、請求項1から13のいずれか一項に記載の、コンピュータにより実施される方法(400)。
【請求項17】
データ処理ハードウェア(112)と、
前記データ処理ハードウェア(112)と通信しているメモリハードウェア(114)とを備えるシステム(100)であって、前記データ処理ハードウェア(112)上で実行されると、前記データ処理ハードウェア(112)に動作を行わせる命令を記憶し、前記動作は、
それぞれのユーザに各々が関連付けられた複数のクライアントデバイス(102)から、前記データ処理ハードウェア(112)上で実行するクラウドベースアシスタントサービス(120)に向けられたユーザクエリ(119)を受信することと、
前記クラウドベースアシスタントサービス(120)に向けられた、受信された各ユーザクエリ(119)について、
前記ユーザクエリ(119)から1つまたは複数の属性(121)を抽出し、
前記ユーザクエリ(119)から抽出された前記1つまたは複数の属性(121)に基づいて、前記ユーザクエリ(119)を、複数のカテゴリバケット(210)のうちの1つまたは複数にログ記録することと、
前記複数のカテゴリバケット(210)のうちの少なくとも1つが、前記少なくとも1つのカテゴリバケット(210)にログ記録された閾値数の前記ユーザクエリ(119)を含むときを判断することと、
前記複数のカテゴリバケット(210)のうちの前記少なくとも1つが、前記閾値数の前記ユーザクエリ(119)を含むときに、前記クラウドベースアシスタントサービス(120)の蒸留モデル(350)を生成することであって、前記クラウドベースアシスタントサービス(120)の前記蒸留モデル(350)は、前記複数のクライアントデバイス(102)のうちの1つまたは複数のターゲットクライアントデバイス(102)上で実行するように構成される、生成することとを含む、システム(100)。
【請求項18】
前記ユーザクエリ(119)から抽出された前記1つまたは複数の属性(121)は、
前記ユーザクエリ(119)がそこから受信された前記クライアントデバイス(102)に関連付けられたデバイスカテゴリおよび/もしくはデバイスタイプ、
前記ユーザクエリ(119)について識別されたクエリバーティカルタイプ、
前記ユーザクエリ(119)を発話したユーザに関連付けられた言語および/もしくは場所、
前記ユーザクエリ(119)を含むオーディオデータ(118)の中でのバックグラウンドノイズレベル、
前記ユーザクエリ(119)の遂行後に前記クラウドベースアシスタントサービス(120)によって生成されたテキスト・トゥ・スピーチ応答、または
前記ユーザクエリ(119)のトランスクリプション(123)のうちの少なくとも1つを含む、請求項17に記載のシステム(100)。
【請求項19】
前記動作は、前記クラウドベースアシスタントサービス(120)に向けられた、受信された各ユーザクエリ(119)について、
前記クラウドベースアシスタントサービス(120)の自動音声認識(ASR)モデル(122)を使用して、前記ユーザクエリ(119)のトランスクリプション(123)を生成するために前記ユーザクエリ(119)を特徴づけるオーディオデータ(118)を処理することをさらに含み、
前記ユーザクエリ(119)から前記1つまたは複数の属性(121)を抽出することは、前記ユーザクエリ(119)についてのクエリバーティカルタイプを識別するために前記ユーザクエリ(119)の前記トランスクリプション(123)に対してクエリ解釈を実施することを含み、
前記ユーザクエリ(119)をログ記録することは、前記ユーザクエリ(119)を、前記ユーザクエリ(119)について識別された前記クエリバーティカルタイプに関連付けられた前記複数のカテゴリバケット(210)のうちの対応する1つにログ記録することを含む、請求項1
7に記載のシステム(100)。
【請求項20】
前記動作は、
前記生成された蒸留モデル(350)を、前記1つまたは複数のターゲットクライアントデバイス(102)上での実行用に受諾するよう、前記クラウドベースアシスタントサービス(120)のデベロッパ(190)を促すことと、
前記デベロッパ(190)が前記生成された蒸留モデル(350)を受諾するときに、前記蒸留モデル(350)を、前記ターゲットクライアントデバイス(102)のうちの前記1つまたは複数に展開することとをさらに含む、請求項1
7に記載のシステム(100)。
【請求項21】
前記動作は、
評価データセット(335)に対する、前記生成された蒸留モデル(350)の精度が、前記評価データセット(335)に対する、教師モデル(380)の精度の閾範囲内であるかどうかを判断することをさらに含み、
前記クラウドベースアシスタントサービス(120)の前記デベロッパ(190)を促すことは、前記評価データセット(335)に対する、前記生成された蒸留モデル(350)の前記精度が、前記評価データセット(335)に対する、前記教師モデル(380)の前記精度の前記閾範囲内であるときに、前記クラウドベースアシスタントサービス(120)の前記デベロッパ(190)を促すことをさらに含む、請求項20に記載のシステム(100)。
【請求項22】
前記クラウドベースアシスタントサービス(120)の前記蒸留モデル(350)を生成することは、前記1つまたは複数のターゲットクライアントデバイス(102)の各々のメモリおよび/または処理制約を満足する、前記蒸留モデル(350)用のモデル構成(315)を選択することを含む、請求項1
7に記載のシステム(100)。
【請求項23】
前記クラウドベースアシスタントサービス(120)の前記蒸留モデル(350)を生成することは、
前記閾値数の前記ユーザクエリ(119)を含む前記複数のカテゴリバケット(210)のうちの前記少なくとも1つに関連付けられた属性(121)を有するトレーニング用クエリ(325)のセットを取得することと、
前記クラウドベースアシスタントサービス(120)の教師モデル(380)を使用して、トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)のための対応するトレーニング用ラベルを生成することと、
トレーニング用クエリ(325)の前記セット、およびトレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)のために生成された前記対応するトレーニング用ラベルで、前記蒸留モデル(350)をトレーニングすることとを含む、請求項1
7に記載のシステム(100)。
【請求項24】
トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)の少なくとも一部分は、前記複数のカテゴリバケット(210)のうちの前記少なくとも1つの各々にログ記録された前記閾値数の前記ユーザクエリ(119)の中から選択された以前のユーザクエリ(119)を含む、請求項23に記載のシステム(100)。
【請求項25】
トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)の少なくとも一部分は、前記閾値数の前記ユーザクエリ(119)を含む前記複数のカテゴリバケット(210)のうちの前記少なくとも1つに関連付けられた前記属性(121)を有する新着クエリを含む、請求項2
3に記載のシステム(100)。
【請求項26】
トレーニング用クエリ(325)の前記セットの中の前記トレーニング用クエリ(325)の少なくとも一部分は、前記閾値数の前記ユーザクエリ(119)を含む前記複数のカテゴリバケット(210)のうちの前記少なくとも1つに関連付けられた前記属性(121)を有するオフラインデータサンプルから選択される、請求項2
3に記載のシステム(100)。
【請求項27】
前記動作は、前記生成された蒸留モデル(350)を、前記1つまたは複数のターゲットデバイス(102)の各々上での実行用に展開した後、
前記蒸留モデル(350)を実行する各ターゲットクライアントデバイス(102)から、対応するターゲットクライアントデバイス(102)上で実行する前記蒸留モデル(350)によって処理された新着クエリに関連付けられた属性(121)を示す連合分析を受信することと、
前記連合分析に基づいて、前記新着クエリを、前記複数のカテゴリバケット(210)のうちの1つまたは複数にログ記録することと、
前記複数のカテゴリバケット(210)のうちの少なくとも別の1つが、閾値数の前記ユーザクエリ(119)および新たなユーザクエリ(119)を含むときを判断することと、
前記複数のカテゴリバケット(210)のうちの前記少なくとも別の1つが、前記閾値数の前記ユーザクエリ(119)および前記新たなユーザクエリ(119)を含むときに、前記クラウドベースアシスタントサービス(120)の別の蒸留モデル(350)を生成することであって、前記クラウドベースアシスタントサービス(120)の前記別の蒸留モデル(350)は、前記複数のクライアントデバイス(102)のうちの1つまたは複数のターゲットクライアントデバイス(102)上で実行するように構成される、生成することとをさらに含む、請求項1
7に記載のシステム(100)。
【請求項28】
前記動作は、前記生成された蒸留モデル(350)を、前記1つまたは複数のターゲットデバイス(102)の各々上での実行用に展開した後、
前記蒸留モデル(350)を実行する各ターゲットクライアントデバイス(102)から、対応するターゲットクライアントデバイス(102)上で実行する前記蒸留モデル(350)によって処理された新着クエリに関連付けられた属性(121)を示す連合分析を受信することと、
前記蒸留モデル(350)を実行する各ターゲットデバイスから受信された前記連合分析に基づいて、前記蒸留モデル(350)のパラメータを更新することによって、更新蒸留モデル(350)を生成することと、
前記更新蒸留モデル(350)を、前記1つまたは複数のターゲットクライアントデバイス(102)の各々における実行用に展開することとをさらに含む、請求項1
7に記載のシステム(100)。
【請求項29】
前記連合分析は、前記蒸留モデル(350)によって処理された前記新着クエリのいずれかを特徴づけるオーディオデータ(118)を受信することなく、および前記蒸留モデル(350)によって処理された前記新着クエリのトランスクリプションを受信することなく、各ターゲットクライアントデバイス(102)から受信される、請求項28に記載のシステム(100)。
【請求項30】
前記蒸留モデル(350)は音声認識モデルを含む、請求項17から29のいずれか一項に記載のシステム(100)。
【請求項31】
前記蒸留モデル(350)はテキスト・トゥ・スピーチモデルを含む、請求項17から29のいずれか一項に記載のシステム(100)。
【請求項32】
前記蒸留モデル(350)は自然言語理解(NLU)モデルを含む、請求項17から29のいずれか一項に記載のシステム(100)。
【国際調査報告】