IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7698154音声認識の正確な量子化トレーニングを備えた4ビットコンフォーマ
<>
  • 特許-音声認識の正確な量子化トレーニングを備えた4ビットコンフォーマ 図1A
  • 特許-音声認識の正確な量子化トレーニングを備えた4ビットコンフォーマ 図1B
  • 特許-音声認識の正確な量子化トレーニングを備えた4ビットコンフォーマ 図2
  • 特許-音声認識の正確な量子化トレーニングを備えた4ビットコンフォーマ 図3
  • 特許-音声認識の正確な量子化トレーニングを備えた4ビットコンフォーマ 図4
  • 特許-音声認識の正確な量子化トレーニングを備えた4ビットコンフォーマ 図5
  • 特許-音声認識の正確な量子化トレーニングを備えた4ビットコンフォーマ 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-16
(45)【発行日】2025-06-24
(54)【発明の名称】音声認識の正確な量子化トレーニングを備えた4ビットコンフォーマ
(51)【国際特許分類】
   G10L 15/06 20130101AFI20250617BHJP
【FI】
G10L15/06 300C
【請求項の数】 20
(21)【出願番号】P 2024556057
(86)(22)【出願日】2023-03-20
(65)【公表番号】
(43)【公表日】2025-04-15
(86)【国際出願番号】 US2023015695
(87)【国際公開番号】W WO2023183262
(87)【国際公開日】2023-09-28
【審査請求日】2025-01-08
(31)【優先権主張番号】63/269,705
(32)【優先日】2022-03-21
(33)【優先権主張国・地域又は機関】US
【新規性喪失の例外の表示】特許法第30条第2項適用 令和4年3月29日にウェブサイトのアドレスhttps://arxiv.org/abs/2203.15952にて発表
【早期審査対象出願】
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ディン、シャオジン
(72)【発明者】
【氏名】ルイバコフ、オレグ
(72)【発明者】
【氏名】メドウラーク、フェニックス
(72)【発明者】
【氏名】アグラワル、シヴァニ
(72)【発明者】
【氏名】ホー、ヤンチャン
(72)【発明者】
【氏名】リュー、ルーカス
【審査官】本多 美優梨
(56)【参考文献】
【文献】中国特許出願公開第113593538(CN,A)
【文献】米国特許出願公開第2022/0067512(US,A1)
【文献】米国特許第10229356(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/00-15/34
(57)【特許請求の範囲】
【請求項1】
コンピュータ実装方法(500)としての方法であって、前記コンピュータ実装方法(500)はデータ処理ハードウェア(62)上で実行されたとき、前記データ処理ハードウェア(62)に動作を行なわせており、前記動作は、
複数のトレーニングサンプル(152)を取得する工程であって、複数の前記トレーニングサンプル(152)のうちの前記各トレーニングサンプル(152)の各々は、
各々の音声発話(154)と、および
各々の前記音声発話(154)のトランスクリプションを表す各々のテキスト発話(156)と、
を備えている、複数の前記トレーニングサンプル(152)を取得する工程と、
複数の前記トレーニングサンプル(152)に関する自動音声認識ASRモデル(200)を、ネイティブ整数演算による量子化アウェアなトレーニングを使用することでトレーニングする工程であって、前記ネイティブ整数演算に割り振られたビット数は整数固定ビット幅であるとともに、前記ネイティブ整数演算は前記自動音声認識ASRモデル(200)の重みを表すべく使用される、前記自動音声認識ASRモデル(200)をトレーニングする工程と、
トレーニング済自動音声認識ASRモデル(200)を整数のターゲット固定ビット幅(162)に量子化する工程であって、前記自動音声認識ASRモデル(200)複数の重み(202)は、トレーニング時に学習されるだけでなく、量子化の際に前記ターゲット固定ビット幅(162)に基づいて整数値に変換されるとともに、変換済の整数値が量子化済の前記自動音声認識ASRモデル(200)に含まれることで、前記トレーニング済自動音声認識ASRモデル(200)を前記ターゲット固定ビット幅(162)に量子化する工程と、
量子化済の前記トレーニング済自動音声認識ASRモデル(200)を、ユーザデバイス(10)に提供する工程と、
を備えている、方法(500)。
【請求項2】
前記ターゲット固定ビット幅(162)は「4」である、
請求項1に記載の方法(500)。
【請求項3】
前記自動音声認識ASRモデル(200)はさらに、複数の活性化関数(204)を備えており、
複数の前記活性化関数(204)のうちの前記各活性化関数(204)は、前記ターゲット固定ビット幅(162)を有している整数を備えている、
請求項1に記載の方法(500)。
【請求項4】
前記自動音声認識ASRモデル(200)はさらに、複数の活性化関数(204)を備えており、
複数の前記活性化関数(204)のうちの前記各活性化関数(204)は、前記ターゲット固定ビット幅(162)よりも大きい固定ビット幅を有している整数を備えている、
請求項1に記載の方法(500)。
【請求項5】
前記自動音声認識ASRモデル(200)はさらに、複数の活性化関数(204)を備えており、
複数の前記活性化関数(204)のうちの前記各活性化関数(204)は、浮動小数点値を備えている、
請求項1に記載の方法(500)。
【請求項6】
前記トレーニング済自動音声認識ASRモデル(200)を量子化する工程は、量子化される軸の推定最大値と、前記ターゲット固定ビット幅(162)と、に基づきスケールファクタ(160)を決定する工程を備えている、
請求項1~5のいずれか1項に記載の方法(500)。
【請求項7】
前記自動音声認識ASRモデル(200)は、1つまたは複数のマルチヘッドアテンション層(302)を備えている、
請求項1~5のいずれか1項に記載の方法(500)。
【請求項8】
1つもしくは複数の前記マルチヘッドアテンション層(302)は、1つもしくは複数のコンフォーマ層または1つもしくは複数のトランスフォーマ層を備えている、
請求項7に記載の方法(500)。
【請求項9】
前記自動音声認識ASRモデル(200)は、複数のエンコーダおよび複数のデコーダを備えており、
前記自動音声認識ASRモデル(200)を量子化する工程は、複数の前記エンコーダを量子化する工程と、および複数の前記デコーダを量子化しない工程と、を備えている、
請求項1~5のいずれか1項に記載の方法(500)。
【請求項10】
前記自動音声認識ASRモデル(200)は、オーディオエンコーダ(210)を備えており、
前記オーディオエンコーダ(210)は、第1因果エンコーダと第2非因果エンコーダとを備えているカスケード済のエンコーダを備えている、
請求項1~5のいずれか1項に記載の方法(500)。
【請求項11】
システム(100)であって、前記システム(100)は、
データ処理ハードウェア(62)と、および
前記データ処理ハードウェア(62)に通信するメモリハードウェア(64)と、
を備えており、
前記メモリハードウェア(64)は命令を格納しており、前記命令は前記データ処理ハードウェア(62)上で実行されたときに前記データ処理ハードウェア(62)に動作を行なわせており、前記動作は、
複数のトレーニングサンプル(152)を取得する工程であって、複数の前記トレーニングサンプル(152)のうちの前記各トレーニングサンプル(152)の各々は、
各々の音声発話(154)と、および
各々の前記音声発話(154)のトランスクリプションを表す各々のテキスト発話(156)と、
を備えている、複数の前記トレーニングサンプル(152)を取得する工程と、
複数の前記トレーニングサンプル(152)に関する自動音声認識ASRモデル(200)を、ネイティブ整数演算による量子化アウェアなトレーニングを使用することでトレーニングする工程であって、前記ネイティブ整数演算に割り振られたビット数は整数固定ビット幅であるとともに、前記ネイティブ整数演算は前記自動音声認識ASRモデル(200)の重みを表すべく使用される、前記自動音声認識ASRモデル(200)をトレーニングする工程と、
トレーニング済自動音声認識ASRモデル(200)を、整数のターゲット固定ビット幅(162)に量子化する工程であって、前記自動音声認識ASRモデル(200)複数の重み(202)は、トレーニング時に学習されるだけでなく、量子化の際に前記ターゲット固定ビット幅(162)に基づいて整数値に変換されるとともに、変換済の整数値が量子化済の前記自動音声認識ASRモデル(200)に含まれることで、前記トレーニング済自動音声認識ASRモデル(200)を前記ターゲット固定ビット幅(162)に量子化する工程と、
量子化済の前記トレーニング済自動音声認識ASRモデル(200)を、ユーザデバイス(10)に提供する工程と、
を備えている、システム(100)。
【請求項12】
前記ターゲット固定ビット幅(162)は「4」である、
請求項11に記載のシステム(100)。
【請求項13】
前記自動音声認識ASRモデル(200)はさらに、複数の活性化関数(204)を備えており、
複数の前記活性化関数(204)のうちの前記各活性化関数(204)は、前記ターゲット固定ビット幅(162)を有している整数を備えている、
請求項11に記載のシステム(100)。
【請求項14】
前記自動音声認識ASRモデル(200)はさらに、複数の活性化関数(204)を備えており、
複数の前記活性化関数(204)のうちの前記各活性化関数(204)は、前記ターゲット固定ビット幅(162)よりも大きい固定ビット幅を有している整数を備えている、
請求項11に記載のシステム(100)。
【請求項15】
前記自動音声認識ASRモデル(200)はさらに、複数の活性化関数(204)を備えており、
複数の前記活性化関数(204)のうちの前記各活性化関数(204)は、浮動小数点値を備えている、
請求項11に記載のシステム(100)。
【請求項16】
前記トレーニング済自動音声認識ASRモデル(200)を量子化する工程は、量子化される軸の推定最大値と、前記ターゲット固定ビット幅(162)と、に基づきスケールファクタ(160)を決定する工程を備えている、
請求項11~15のいずれか1項に記載のシステム(100)。
【請求項17】
前記自動音声認識ASRモデル(200)は、1つまたは複数のマルチヘッドアテンション層(302)を備えている、
請求項11~15のいずれか1項に記載のシステム(100)。
【請求項18】
1つもしくは複数の前記マルチヘッドアテンション層(302)は、1つもしくは複数のコンフォーマ層または1つもしくは複数のトランスフォーマ層を備えている、
請求項17に記載のシステム(100)。
【請求項19】
前記自動音声認識ASRモデル(200)は、複数のエンコーダおよび複数のデコーダを備えており、
前記自動音声認識ASRモデル(200)を量子化する工程は、複数の前記エンコーダを量子化する工程と、および複数の前記デコーダを量子化しない工程と、を備えている、
請求項11~15のいずれか1項に記載のシステム(100)。
【請求項20】
前記自動音声認識ASRモデル(200)はオーディオエンコーダ(210)を備えており、
前記オーディオエンコーダ(210)は、第1因果エンコーダと第2非因果エンコーダとを備えているカスケード済のエンコーダを備えている、
請求項11~15のいずれか1項に記載のシステム(100)。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、音声認識のための正確な量子化トレーニングに関する。
【背景技術】
【0002】
最新の自動音声認識(ASR)システムは、良質(例えば、低いワードエラー率(WER))なだけでなく、低レイテンシ(例えば、ユーザが語ってから、トランスクリプションが現れるまでの遅延が短いこと)をもたらすことに重点を置いている。さらに今日では自動音声認識ASRシステムを使用する場合、自動音声認識ASRシステムがリアルタイムで、またはリアルタイムよりもさらに高速に対応するストリーミング形式で、発話(アタランス)を復号(デコード)するという需要がある。説明すると、直接的なユーザ双方向性(インタラクティビティ)を経る(エクスペリエンスする)携帯電話において自動音声認識ASRシステムが展開されている場合、自動音声認識ASRシステムを使用する携帯電話のアプリケーションは、語られたらすぐに単語が画面に表示されるようストリーミングされるべく、音声認識を必要とする場合がある。ここで携帯電話のユーザは、レイテンシに対する許容度が低い虞もある。この低い許容範囲によって、音声認識は、ユーザのエクスペリエンスに悪影響を与え得るレイテンシと不正確さとによる影響を最小限に抑える方法で、モバイルデバイスで実行しようとする。
【先行技術文献】
【特許文献】
【0003】
【文献】国際公開第2021/258752号
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、携帯電話のリソースは限られていることが多いだけでなく、それが自動音声認識ASRモデルのサイズを制限する。
【課題を解決するための手段】
【0005】
本開示の一態様は、自動音声認識(ASR)モデルをトレーニング(訓練、学習)するための方法を提供する。コンピュータ実装方法は、データ処理ハードウェア上で実行されたとき、データ処理ハードウェアに動作を行なわせる。動作は、複数のトレーニングサンプルを取得する工程を備えている。複数のトレーニングサンプルのうちの各トレーニングサンプルの各々は、各々の音声発話(スピーチアタランス)と、各々の音声発話のトランスクリプション(転写)を表す各々のテキスト発話と、を備えている。方法は、複数のトレーニングサンプルに関する自動音声認識ASRモデルを、ネイティブ整数演算による量子化アウェアなトレーニングを使用することでトレーニングする工程を備えている。また方法は、トレーニング済自動音声認識ASRモデルを整数のターゲット固定ビット幅に量子化する工程も備えている。量子化済のトレーニング済自動音声認識ASRモデルは、複数の重みを備えている。複数の重みのうちの各重みは、ターゲット固定ビット幅を有している整数を備えている。方法は、量子化済のトレーニング済自動音声認識ASRモデルを、ユーザデバイスに提供する工程を備えている。
【0006】
本開示の実施態様は、以下の任意選択の特徴の1つまたは複数を含み得る。いくつかの実施態様では、ターゲット固定ビット幅は「4」である。いくつかの例では、自動音声認識ASRモデルはさらに、複数の活性化関数を備えている。複数の活性化関数のうちの各活性化関数は、ターゲット固定ビット幅を有している整数を含み得る。他の例では、自動音声認識ASRモデルはさらに、複数の活性化関数を備えており、複数の活性化関数のうちの各活性化関数は、ターゲット固定ビット幅よりも大きい固定ビット幅を有している整数を備えている。さらに他の例では、自動音声認識ASRモデルはさらに、複数の活性化関数を備えており、複数の活性化関数のうちの各活性化関数は浮動小数点値(フロートバリュー)を備えている。
【0007】
任意選択で、トレーニング済自動音声認識ASRモデルを量子化する工程は、量子化される軸(アクシス)の推定最大値と、ターゲット固定ビット幅と、に基づきスケールファクタを決定する工程を備えている。いくつかの実施態様では、自動音声認識ASRモデルは、1つまたは複数のマルチヘッドアテンション層を備えている。これらの実施態様のいくつかでは、1つもしくは複数のマルチヘッドアテンション層は、1つもしくは複数のコンフォーマ層または1つもしくは複数のトランスフォーマ層を備えている。自動音声認識ASRモデルは、複数のエンコーダおよび複数のデコーダを含み得、自動音声認識ASRモデルを量子化する工程は、複数のエンコーダを量子化する工程と、および複数のデコーダを量子化しない工程と、を含み得る。いくつかの例では、自動音声認識ASRモデルはオーディオエンコーダを備えており、オーディオエンコーダは、第1因果(コーザル)エンコーダと第2非因果(ノンコーザル)エンコーダとを有しているカスケード(連結)済のエンコーダを備えている。
【0008】
本開示の他の態様は、自動音声認識ASRモデルをトレーニングするためのシステムを提供する。システムは、データ処理ハードウェアと、およびデータ処理ハードウェアに通信するメモリハードウェアと、を備えている。メモリハードウェアは、データ処理ハードウェアで実行されたときにデータ処理ハードウェアに動作を実行させる命令を格納する。動作は、複数のトレーニングサンプルを取得する工程を備えている。複数のトレーニングサンプルのうちの各トレーニングサンプルの各々は、各々の音声発話(スピーチアタランス)と、および各々の音声発話のトランスクリプション(転写、文字起こし)を表す各々のテキスト発話(テキスツァルアタランス)と、を備えている。方法は、複数のトレーニングサンプルに関する自動音声認識ASRモデルを、ネイティブ整数演算による量子化アウェアなトレーニングを使用することでトレーニングする工程を備えている。また方法は、トレーニング済自動音声認識ASRモデルを、整数のターゲット固定ビット幅に量子化する工程も備えている。量子化済のトレーニング済自動音声認識ASRモデルは、複数の重みを備えている。複数の重みのうちの各重みは、ターゲット固定ビット幅を有している整数を備えている。方法は、量子化済のトレーニング済自動音声認識ASRモデルを、ユーザデバイスに提供する工程を備えている。
【0009】
この態様は、以下の任意選択の特徴のうちの1つまたは複数を含み得る。いくつかの実施態様では、ターゲット固定ビット幅は「4」である。いくつかの例では、自動音声認識ASRモデルはさらに、複数の活性化関数を備えており、複数の活性化関数のうちの各活性化関数は、ターゲット固定ビット幅を有している整数を含み得る。他の例では、自動音声認識ASRモデルはさらに、複数の活性化関数を備えており、複数の活性化関数のうちの各活性化関数は、ターゲット固定ビット幅よりも大きい固定ビット幅を有している整数を備えている。さらに他の例では、自動音声認識ASRモデルはさらに、複数の活性化関数を備えており、複数の活性化関数のうちの各活性化関数は浮動小数点値を備えている。
【0010】
任意選択で、トレーニング済自動音声認識ASRモデルを量子化する工程は、量子化される軸の推定最大値と、ターゲット固定ビット幅と、に基づきスケールファクタを決定する工程を備えている。いくつかの実施態様では、自動音声認識ASRモデルは、1つまたは複数のマルチヘッドアテンション層を備えている。これらの実施態様のいくつかでは、1つもしくは複数のマルチヘッドアテンション層は、1つもしくは複数のコンフォーマ層または1つもしくは複数のトランスフォーマ層を備えている。自動音声認識ASRモデルは、複数のエンコーダおよび複数のデコーダを含み得、自動音声認識ASRモデルを量子化する工程は、複数のエンコーダを量子化する工程と、および複数のデコーダを量子化しない工程と、を含み得る。いくつかの例では、自動音声認識ASRモデルはオーディオエンコーダを備えており、オーディオエンコーダは、第1因果エンコーダと第2非因果エンコーダとを有しているカスケード済のエンコーダを備えている。
【0011】
本開示の1つまたは複数の実施態様の詳細は、添付の図面および以下の説明において述べられる。他の態様、特徴、および利点、は説明および図面ならびに特許請求の範囲から明らかになる。
【図面の簡単な説明】
【0012】
図1A】音声認識を行なうための例示的なシステムの概略図である。
図1B図1Aのシステムの自動音声認識(ASR)モデルをトレーニングするための構成要素の概略図である。
図2図1Aのシステムの例示的な回帰型ニューラルネットワーク-トランスデューサ(RNN-T)モデルの概略図である。
図3図2のRNN-Tモデルの例示的な予測ネットワークの概略図である。
図4】ネイティブ整数演算による量子化アウェアなトレーニングの量子化アルゴリズムの概略図である。
図5】自動音声認識(ASR)モデルをトレーニングする方法のための動作の例示的な配置のフローチャートである。
図6】本明細書に記載のシステムおよび方法を実装するべく使用され得る例示的なコンピューティングデバイスの概略図である。
【発明を実施するための形態】
【0013】
種々の図面における同様の参照記号は、同様の要素を指す。
音声検索(ボイスサーチ)と発話(スピーチ)インタラクティブ特徴との急速な成長によって、自動音声認識(ASR)は、ユーザインタラクティブサービスおよびデバイス(例えば、検索エンジンおよびスマートフォンにおける音声機能による検索)にとって不可欠な構成要素となっている。最新の自動音声認識ASRアプリケーションは、多くの場合、エンドツーエンドモデルに基づき開発されていることで、従来のハイブリッドシステムとで比較してはるかに小さなモデルサイズで、認識パフォーマンス(性能)の大幅な向上を達成することが示されている。認識品質を損なうことなく、レイテンシおよびモデルサイズを改善することは、サーバサイドモデルとオンデバイスモデルとの両方でライブ自動音声認識ASRアプリケーションに利益をもたらすべく積極的に追求されてきた。
【0014】
量子化は、従来の32ビット浮動小数点値の代わりに、低精度のデータタイプ(例えば、および8ビット整数)で重みおよび/または活性化関数を表すことによって、自動音声認識ASRモデルの計算およびメモリコストを削減する技法である。最新のモデル量子化方法の中でも、8ビット整数(int8)を使用した「トレーニング後の量子化」(PTQ:ポストトレーニング量子化)は、多くのアプリケーションで成功裏に適用されている人気があり、使いやすい技法である。ただし、そのような技法の欠点の1つは、精度の低下によるパフォーマンス低下の虞である。トレーニング後の量子化PTQの他の制限は、モデルの量子化を制御できないことである。例えば、トレーニング後の量子化PTQは、4ビット整数(int4)量子化を、または層の選択済セットのカスタマイズされた量子化を、サポートしない場合がある。
【0015】
本明細書の実施態様は、ネイティブ整数演算によるネイティブ「量子化アウェアなトレーニング」(QAT)を使用することで自動音声認識ASRモデルをトレーニングするモデルトレーナ(訓練器)を備えている。「フェイク」量子化アウェアなトレーニングQATを使用するいくつかの方法(すなわち浮動小数点演算を使用後、変換(コンバージョン)を使用することで浮動小数点を整数に変換(コンバート)する方法)とは対照的に、ネイティブ量子化アウェアなトレーニングQATは、ネイティブ整数演算を使用することで、量子化演算(例えば、行列積)を実行するとともに、トレーニングおよび推論(インフェレンス)中の精度にいかなる差も有しないモデルを生成する。すなわち「フェイク量子化」は、トレーニング中に浮動小数点演算が仮数(マンティッサ)のビットに収まらないとき、トレーニングモード(すなわち浮動小数点演算による)と、推論モード(すなわち整数演算による)と、の間に数値的な差を有しうる。
【0016】
本明細書の実施態様は、ネイティブ量子化アウェアなトレーニングQATを使用することで自動音声認識ASRモデルをトレーニングする、モデルトレーナを備えている。このアプローチは、「トレーニングしたものは役立つものである」を確保する。すなわちネイティブ整数演算では、トレーニングの順伝播(フォワードプロパゲーション)と推論(インフェレンス)との間に数値的な差がない。したがって、トレーニング済モデルは、パフォーマンス(性能)が同じであるクラウド(例えば、テンソル処理ユニット(TPU)上)またはモデルアプリケーションの両方、など複数のアプリケーションで実行されてもよい。モデルトレーナは、量子化に使用される演算数を最小にしているので、従来技法とで比較して、トレーニング時間を短縮させる。自動音声認識ASRモデルは、1つまたは複数のコンフォーマ層および/または1つまたは複数のトランスフォーマ層、など1つまたは複数のマルチヘッドアテンション層を含み得る。
【0017】
図1Aは、音声環境101で動作するシステム100の例である。音声環境(スピーチエンバイラメント)101では、ユーザデバイス10、などコンピューティングデバイスとで相互作用(インタラクト)するユーザ104の方法は、声入力(ボイスインプット)によるものであり得る。ユーザデバイス10(一般にデバイス10とも称される)は、音声環境100内の1つまたは複数のユーザ104から音(例えば、ストリーミングオーディオデータ)をキャプチャするように構成されている。ここでストリーミングオーディオデータは、可聴クエリ、デバイス10に対するコマンド、またはデバイス10によってキャプチャ済の可聴通信(オーディブルコミュニケーション)、として機能するユーザ104によって話された発話106を指し得る。デバイス10の発話対応(スピーチイネーブルド)システムは、クエリに回答することによって、および/またはコマンドを1つまたは複数の下流アプリケーションが行なう/遂行することによって、クエリまたはコマンドに対処し得る。
【0018】
ユーザデバイス10は、ユーザ104に関連付けられているとともに、オーディオデータを受信することが可能にされている任意のコンピューティングデバイスに対応し得る。ユーザデバイス10のいくつかの例は、モバイルデバイス(例えば、携帯電話、タブレット、ラップトップなど)、コンピュータ、ウェアラブルデバイス(例えば、スマートウォッチ)、スマートアプライアンス、モノのインターネット(IoT)デバイス、車載インフォテインメントシステム、スマートディスプレイ、スマートスピーカ、などを備えているがこれらに限定されない。ユーザデバイス10は、データ処理ハードウェア12と、データ処理ハードウェア12に通信するメモリハードウェア14と、を備えており、データ処理ハードウェア12によって実行されたとき、データ処理ハードウェア12に1つまたは複数の動作を行なわせる命令を格納する。さらにユーザデバイス10は、音声環境100内で話された発話106をキャプチャし電気信号に変換するためのオーディオキャプチャデバイス(例えば、マイクロフォン)16、16aと、可聴オーディオ信号を(例えば、デバイス10からの出力オーディオデータとして)通信するための発話出力デバイス(例えば、スピーカ)16、16bと、を備えたオーディオシステム16を備えている。図示の例では、ユーザデバイス10は単一のオーディオキャプチャデバイス16aを実装しているが、ユーザデバイス10は、本開示の範囲から逸脱することなく、オーディオキャプチャデバイス16aのアレイを実装し得ることによって、アレイ内の1つまたは複数のキャプチャデバイス16aは、ユーザデバイス10に物理的に存在せずに、オーディオシステム16に通信し得る。
【0019】
音声環境100では、自動音声認識(ASR)システム118は、ユーザ104のユーザデバイス10上に、および/またはネットワーク40を介してユーザデバイス10に通信するリモートコンピューティングデバイス60(例えば、クラウドコンピューティング環境内で実行する分散システムの1つまたは複数のリモートサーバ)上に、存在するモデル200(回帰型ニューラルネットワーク-トランスデューサ(RNN-T)モデルまたは他のコンフォーマトランスデューサモデル/マルチパスモデルなど)を備えている。リモートコンピューティングデバイスは、データ処理ハードウェア62およびメモリハードウェア64を備えている。ユーザデバイス10および/またはリモートコンピューティングデバイス60はまた、オーディオサブシステム108を備えており、ユーザ104によって話されているとともに、オーディオキャプチャデバイス16aによってキャプチャ済の発話106を受信するだけでなく、発話106を自動音声認識ASRシステム118によって処理されることができる入力音響フレーム110に関連付けられている対応するデジタルフォーマットに変換するように構成されている。示されている例では、ユーザは各々の発話106を話しており、オーディオサブシステム108は発話106を対応するオーディオデータ(例えば、音響フレーム)110に変換(コンバート)して自動音声認識ASRシステム118に入力する。その後、モデル200は、発話106に対応するオーディオフレーム110(すなわちオーディオデータ)を入力として受信するとともに、発話106の対応するトランスクリプション120(例えば、音声認識結果/仮説)を出力として生成/予測する。
【0020】
ユーザデバイス10および/またはリモートコンピューティングデバイス60は、発話106のトランスクリプション120の表現をユーザデバイス10のユーザ104に提示するように構成されたユーザインタフェースジェネレータ107も実行している。以下でさらに詳細に説明されるように、ユーザインタフェースジェネレータ107は、ストリーミング形式で音声認識結果120を表示し得る。いくつかの構成では、自動音声認識ASRシステム118から出力されたトランスクリプション120は、発話106によって指定されたユーザコマンド/クエリを実行するべく、例えばユーザデバイス10またはリモートコンピューティングデバイス60で実行する自然言語理解(NLU)モジュールによって、処理される。さらにまたは代わりに、テキスト読み上げシステム(図示せず)(例えば、ユーザデバイス10またはリモートコンピューティングデバイス60の任意の組合せで実行される)は、トランスクリプション(転写、文字起こし)を、ユーザデバイス10および/または他のデバイスによる可聴出力の合成音声に変換することが可能にされている。
【0021】
図示の例では、ユーザ104は、自動音声認識ASRシステム118を使用するユーザデバイス10のプログラムまたはアプリケーション50(例えば、デジタルアシスタントアプリケーション50)とで相互作用する。例えば、図1Aは、デジタルアシスタントアプリケーション50とでコミュニケーションを取るユーザ104と、ユーザ104とデジタルアシスタントアプリケーション50との間の会話を示すためユーザデバイス10の画面にデジタルアシスタントインタフェース18を表示するデジタルアシスタントアプリケーション50と、を描く。この例では、ユーザ104はデジタルアシスタントアプリケーション50に、「今夜のコンサートは何時?」と質問する。ユーザ104からのこの質問は、オーディオキャプチャデバイス16aによってキャプチャされており、ユーザデバイス10のオーディオシステム16によって処理される、話された発話(スポークンアタランス)106である。この例では、オーディオシステム16は、話された発話106を受信するとともに、それを自動音声認識ASRシステム118への入力のために音響フレーム110に変換(コンバート)する。
【0022】
ここで図1Bを参照すると、リモートコンピューティングデバイス60は、モデルトレーナ150を実行することで、図1Aのモデル200をトレーニングする。モデルトレーナ150は、複数のトレーニングサンプル152、152a~152nを(例えば、メモリハードウェア64から)取得する。各トレーニングサンプル152は、話されたトレーニング発話154(すなわち入力オーディオ特徴のシーケンス)と、発話154のトランスクリプション156を表す対応するテキスト発話156と、を備えている。モデルトレーナ150は、複数のトレーニングサンプル152に関するモデル200を、ネイティブ整数演算による量子化アウェアなトレーニング(QAT)を使用することでトレーニングする。以下でさらに詳細に論じられるように、モデルトレーナ150は、トレーニング中にスケールファクタ160を決定することによって、量子化アウェアなトレーニングを使用する。モデルトレーナ150は、トレーニング中またはトレーニング後、モデル200を整数固定ビット幅162に量子化する。整数固定ビット幅162は、各ネイティブ整数演算に割り振られたビット数を表す。例えば、整数固定ビット幅162が「8」である場合、モデル200は、8ビットの整数(すなわちint8)に量子化される。他の例では、整数固定ビット幅162が「4」である場合、モデル200は、4ビットの整数(すなわちint4)に量子化される。6ビット整数、など他の例が可能にされている。整数固定ビット幅162は、ユーザによって設定可能であってよく、モデルのユースケースに依存してよい。
【0023】
従来の量子化アウェアな技法は、「フェイク」量子化アウェアなトレーニングQATに依存している。例えば、多くの一般的なシステムは、tf.quantization.fake_quant_演算を使用することでモデルを量子化する。これらの演算はサーバ側の推論(サーバサイドインフェレンス)中に使用されるが、オンデバイスモデル(例えば、スマートフォンなどのユーザデバイス)の場合、変換演算(例えば、TFlite)を使用することでフェイク量子化演算を整数演算に変換(コンバート)する必要がある。したがって、これらの従来技法は、フェイク量子化演算を実際の整数演算(インテガーオペレーション)に変換(コンバート)するべくこの追加の変換ステップを必要としているので、既存のアプリケーションプログラミングインタフェース(API)は、最後の次元のチャネルごとの最小値および最大値の推定のみをサポートする。チャネルの次元が最後の次元ではない一部のユースケースなどでは、これは理想的ではない。これらのケースでは、従来技法は、入力テンソルの次元をパーミュートすることで、チャネルの次元を最後の次元にしており、次に、アプリケーションプログラミングインタフェースAPIを使用することでテンソルを「フェイク」量子化する必要がある。最後に、次元をパーミュートすることで、入力テンソルの元の順序に戻す必要がある。これらの追加のパーミュート演算によって、トレーニング時間が増加する。対照的に、モデルトレーナ150は、ネイティブ整数演算(例えば、tf演算)を使用する。その結果、モデル200は、モバイルおよびテンソル処理ユニットTPUアプリケーションの両方におけるトレーニングおよび推論(インフェレンス)に使用され得る。さらにハードウェアでサポートされた整数演算(例えば、行列積)を使用することで、トレーニングがさらに高速化され得る。
【0024】
量子化中、モデルトレーナ150は、モデル200の1つまたは複数の重み202および/または活性化関数204のサイズを調整することによって、モデル200のサイズを縮小させる。従来、自動音声認識ASRモデルの重み202と活性化関数204との両方は、32ビットの空間を占めるとともに、多くの場合、処理に複雑な計算を必要とするfloat32値によって表される。「トレーニング後の量子化」PTQでは、これらのfloat32値は、精度およびメモリの要件を減らすべく「クリップ」またはラウンドされ得る。対照的に、モデルトレーナ150は、固定ビット幅162によって決定されるサイズの整数を使用することでモデル200の重み202を表すべく、ネイティブ整数演算を使用する。いくつかの例では、モデルトレーナ150は、同じ固定ビット幅162(例えば、4ビットまたは8ビット)ごとに重み202および活性化関数204を量子化する。他の例では、モデルトレーナ150は、異なる固定ビット幅162を使用することで、重み202および活性化関数を量子化する。例えば、モデルトレーナ150は、重み202の固定ビット幅162(例えば、重み202の4ビット、活性化関数204の8ビット)よりも大きい固定ビット幅162を用いて活性化関数204を量子化する。さらに他の例では、モデルトレーナ150は、重み202を量子化する一方で、活性化関数204を量子化しない(例えば、活性化関数204はfloat32などの浮動小数点値によって表される)。
【0025】
モデルトレーナ150は、モデル200の一部のみを量子化し得る。いくつかの例では、モデル200が複数のエンコーダおよび複数のデコーダを備えている場合、モデルトレーナ150は、いくつかのシナリオではデコーダのメモリ要件が最小であるので、エンコーダのみを量子化する一方で、デコーダを量子化しない。トレーニングおよび量子化の後、モデルトレーナ150は、量子化済のトレーニング済モデル200をユーザデバイス10に提供し得る。
【0026】
ここで図2を参照すると、例示的なモデル200、200aは、インタラクティブアプリケーションに関連付けられているレイテンシ制約を遵守する回帰型ニューラルネットワーク-トランスデューサ(RNN-T)モデルアーキテクチャを備えている。RNN-Tモデルアーキテクチャの使用は例示的なものであり、モデル200は、とりわけ、トランスフォーマ-トランスデューサおよびコンフォーマ-トランスデューサモデルアーキテクチャなどの他のアーキテクチャを含み得る。RNN-Tモデル200aは、小さい計算フットプリントを提供しており、従来の自動音声認識ASRアーキテクチャよりも少ないメモリ要件を利用するので、RNN-Tモデルのアーキテクチャは、ユーザデバイス10上で完全に音声認識を行なうことに適している(例えば、リモートサーバとの通信は必要ない)。この例では、RNN-Tモデル200aは、エンコーダネットワーク210、予測ネットワーク300、およびジョイントネットワーク230、を備えている。従来の自動音声認識ASRシステム内の音響モデル(AM)に大まかに類似しているエンコーダネットワーク210は、セルフアテンション(自己注意)層(例えば、コンフォーマもしくはトランスフォーマ層)のスタックを、または積層された長短期記憶(LSTM)層の回帰型ネットワークを、備えている。例えば、エンコーダは、d次元の特徴ベクトル(例えば、音響フレーム)のシーケンスx=(x,x,・・・,x)、式中
【0027】
【数1】
【0028】
を読み出しており、各出力ステップでは、高次特徴表現を生成する。この高次特徴表現は
【0029】
【数2】
【0030】
として表される。
同様に、予測ネットワーク300はまた、LSTMネットワークであってもよい。これは、言語モデル(LM)のように、これまで最終ソフトマックス層240によって出力された非空白記号のシーケンスy、・・・、yui-1を、密な表現
【0031】
【数3】
【0032】
に処理する。最後に、RNN-Tモデルアーキテクチャを用いることで、エンコーダおよび予測/デコーダネットワーク210、300によって生成済の表現は、ジョイント(結合)ネットワーク230によって組み合わされる。予測ネットワーク300は、密な表現を処理する代わりに、疎な埋込のルックアップを出力することによってレイテンシを改善するべく、埋込ルックアップテーブルによって置き換えられ得る。次に、ジョイントネットワークは、次の出力記号の分布である
【0033】
【数4】
【0034】
を予測する。言い換えれば、ジョイントネットワーク230は、各出力ステップ(例えば、時間ステップ)では、可能(ポッシブル)な音声認識仮説の確率分布を生成する。ここでは「可能な音声認識仮説」は、指定された自然言語の記号/文字を各々表す出力ラベルのセットに対応する。例えば、自然言語が英語のとき、出力ラベルのセットには二十七(27)個の記号が含まれ得る。例えば、英語のアルファベットの26文字各々に1つのラベルと、スペース(空白)を表す1つのラベルと、がある。したがって、ジョイントネットワーク230は、所定出力ラベルセットの各々の発生尤度を示す値のセットを出力し得る。この値のセットはベクトルであり得るので、出力ラベルのセット上の確率分布を示すことができる。場合によっては、出力ラベルは書記素(個々の文字、潜在的な句読点やその他の記号、など)であるが出力ラベルのセットはそれに制限されない。例えば、出力ラベルのセットは、書記素に加えてまたは書記素の代わりに、単語の一部および/または単語全体を備えていることができる。ジョイントネットワーク230の出力分布は、異なる出力ラベルの各々に対する事後確率値(ポステリアプロバビリティバリュー)を含み得る。したがって、異なる書記素または他の記号を表す100個の異なる出力ラベルが存在する場合、ジョイントネットワーク230の出力yは、出力ラベルごとに1つずつ、100個の異なる確率値を備えていることができる。次に、確率分布を使用することで、ビーム検索処理(例えば、ソフトマックス層240による)で候補となる正書要素(例えば、書記素、単語片、および/または単語)を選択するとともに、スコアを割り当てて、トランスクリプション120を決定できる。
【0035】
ソフトマックス層240は、対応する出力ステップでRNN-Tモデル200によって予測された次の出力記号として、分布内で最も高い確率を有している出力ラベル/記号を選択するべく任意の技法を使用することでもよい。このように、RNN-Tモデル200は、条件付き独立の仮定を行なわず、むしろ各記号の予測は、音響だけでなく、これまでに出力されたラベルのシーケンスにも条件付けられる。RNN-Tモデル200は、出力記号が将来の音響フレーム110から独立していると仮定することで、RNN-Tモデルをストリーミング方式で使用することが可能になる。
【0036】
いくつかの例では、RNN-Tモデル200のエンコーダネットワーク(すなわちオーディオエンコーダ)210は、1つまたは複数のコンフォーマブロック/層および/または1つまたは複数のトランスフォーマブロック/層、などマルチヘッドアテンション層またはセルフアテンション層/ブロックのスタックを備えている。任意選択で、エンコーダ210(すなわちオーディオエンコーダ)は、マルチパスアーキテクチャのための第1パス因果(コーザル)エンコーダおよび第2パス非因果(ノンコーザル)エンコーダを備えている。このマルチパスモデルは、ストリーミングおよび非ストリーミング自動音声認識ASRを統合している。因果エンコーダは左のコンテキストのみを使用することで、最小のレイテンシで部分結果を生成している。非因果エンコーダは左および右の両方のコンテキストを使用することによって、さらに正確な仮説を提供することが可能にされている。この例では、各コンフォーマブロックは、一連のマルチヘッドセルフアテンション(多頭自己注意)、深さ単位畳み込み、およびフィードフォワード、の層を備えている。予測ネットワーク300は、2つの2048次元のLSTM層を有し得、その各々の後にも640次元の射影(投影、プロジェクテッド)層が続く。あるいは、予測ネットワーク300は、LSTM層の代わりに、トランスフォーマもしくはコンフォーマブロックのスタックを、または埋込ルックアップテーブルを、含み得る。最後に、ジョイントネットワーク230はまた、640個の隠れユニットを有し得る。ソフトマックス層240は、複数のトレーニングデータセット内のすべての一意の単語片または書記素を使用することで生成される、統合された単語片または書記素セットを備えて構成されてもよい。
【0037】
図3は、最終ソフトマックス層240によって出力されたN個の以前の非空白記号301a~301nに制限される、非空白記号のシーケンスyui-n、・・・、yui-1を入力として受信するRNN-Tモデル200aの例示的な予測ネットワーク300を示す。いくつかの例では、Nは2に等しい。他の例では、Nは5に等しいが、開示は非限定的であり、Nは任意の整数に等しくてもよい。非空白記号301a~301nのシーケンスは、初期音声認識結果120a(図1)を示す。いくつかの実施態様では、予測ネットワーク300は、マルチヘッドアテンションメカニズム302を備えており、これは、マルチヘッドアテンションメカニズムのうちの各ヘッド302A~302Hにわたって共有埋込行列304を共有している。一例では、マルチヘッドアテンションメカニズム302は4つのヘッドを備えている。ただし、マルチヘッドアテンションメカニズム302では任意の数のヘッドを使用できる。特に、マルチヘッドアテンションメカニズムによって、モデルサイズの増加を最小限に抑えながらパフォーマンスが大幅に向上する。以下に詳しく説明するように、各ヘッド302A~302Hは独自の位置ベクトル308の行を備えており、すべてのヘッドからの出力318A~318Hを連結することでモデルサイズが増加するのではなく、代わりにヘッド平均モジュール322によって出力318A~318Hが平均化される。
【0038】
マルチヘッドアテンションメカニズム302の第1ヘッド302Aを参照すると、第1ヘッド302Aは共有埋込行列304を使用することで、複数の時間ステップからの対応する時間ステップで入力として受信済の非空白記号のシーケンスyui-n、・・・、yui-1内のうちの各非空白記号301に対して、対応する埋込306、306a~306n(例えば
【0039】
【数5】
【0040】
)を生成する。特に、共有埋込行列304は、マルチヘッドアテンションメカニズム302のすべてのヘッド同士間で共有されるので、他のヘッド302B~302Hはすべて、各非空白記号に対して同じ対応する埋込306を生成する。第1ヘッド302Aはまた、非空白記号のシーケンスyui-n、・・・、yui-1内の対応する各非空白記号に、各々の位置ベクトルPVAa~An308、308Aa~308An(例えば
【0041】
【数6】
【0042】
)を割り当てる。各非空白記号に割り当てられた各々の位置ベクトルPV308は、非空白記号のシーケンスの履歴内の位置(例えば、最終ソフトマックス層240によって出力されたN個の以前の非空白記号)を示す。例えば、最初の位置ベクトルPVAaは履歴の最新の位置に割り当てられる一方で、最後の位置ベクトルPVAnは、最終ソフトマックス層240によって出力されたN個の以前の非空白記号の履歴の最後の位置に割り当てられる。特に、埋込306の各々は、位置ベクトルPV308の各々とで同じ次元(すなわち次元サイズ)を含んでもよい。
【0043】
非空白記号301a~301nのシーケンスyui-n、・・・、yui-1内のうちの各非空白記号301ごとに共有埋込行列304によって生成済の対応する埋込は、マルチヘッドアテンションメカニズム302のすべてのヘッド302A~302Hで同じであるが、各ヘッド302A~302Hは、位置ベクトル308の異なるセット/行を定義する。例えば、第1ヘッド302Aは位置ベクトルPVAa~Anの行308Aa~308Anを定義しており、第2ヘッド302Bは位置ベクトルPVBa~Bnの異なる行308Ba~308Bnを定義しており、・・・、第Hヘッド302Hは位置ベクトルPVHa~Hnの他の異なる行308Ha~308Hnを定義する。
【0044】
受信済の非空白記号301a~301nのシーケンス内のうちの各非空白記号について、第1ヘッド302Aは、重み層310を介して、対応する埋込と、それに割り当てられた各々の位置ベクトルPV308と、の間の類似度に比例して、対応する埋込306に重み付ける。いくつかの例では、類似度にはコサイン類似度(例えば、コサイン距離)が含まれる場合がある。示される例では、重み層310は、重み付き埋込312、312Aa~312Anのシーケンスを出力しており、各重み付き埋込は、それに割り当てられた各々の位置ベクトルPV308に比例して重み付けされた対応する埋込306に関連付けられる。他の言い方をすれば、埋込306ごとに重み層310によって出力された重み付き埋込312は、埋込306と各々の位置ベクトルPV308との間のドット積に対応し得る。重み付き埋込312は、埋込が、各々の位置ベクトルPV308に関連付けられている位置決めに類似している程度に比例して、埋込に加えられるものとして解釈され得る。計算速度を上げるべく、予測ネットワーク300には非回帰層が含まれており、したがって、重み付けされた埋込312Aa~312Anのシーケンスは連結されず、代わりに加重平均モジュール316によって平均化されている。よって第1ヘッド302Aからの出力として、次式で表される重み付けされた埋込312Aa~312Anの加重平均318Aが生成される。
【0045】
【数7】
【0046】
式1において、hはヘッド302のインデックスを表しており、nはコンテキスト内の位置を表しており、eは埋込次元を表す。さらに式1では、H、N、およびd、は対応する次元のサイズを備えている。位置ベクトルPV308はトレーニング可能にされている必要はなく、ランダムな値を含んでもよい。特に、重み付けされた埋込312が平均化されても、位置ベクトルPV308は位置履歴情報を潜在的に保存できるので、予測ネットワーク300のうちの各層で回帰接続を提供する必要性が軽減される。
【0047】
第1ヘッド302Aに関して上で説明した動作は、マルチヘッドアテンションメカニズム302の他の各ヘッド302B~302Hでも同様に実行される。各ヘッド302によって定義された位置決めされたベクトルPV308の異なるセットによって、重み層310は、第1ヘッド302Aにおける重み付き埋込312Aa~312Aaのシーケンスとは異なる、他のヘッド302B~302Hのうちの各々における重み付き埋込312Ba~312Bn、312Ha~312Hnのシーケンスを出力する。その後、加重平均モジュール316は、他の各対応するヘッド302B~302Hからの出力として、非空白記号のシーケンスの対応する重み付き埋込312のうちの各々の加重平均318B~318Hを生成する。
【0048】
示されている例では、予測ネットワーク300は、対応するヘッド302A~302Hから出力される加重平均318A~318Hを平均化するヘッド平均モジュール322を備えている。SWISHを備えた射影層326は、加重平均318A~318Hの平均に対応するヘッド平均モジュール322からの出力324を入力として受信するとともに、射影出力328を出力として生成してもよい。最終層正規化330は、射影出力328を正規化して、複数の時間ステップから対応する時間ステップにおける単一の埋込ベクトルPui350を提供することが可能にされている。予測ネットワーク300は、初期時間ステップに続く複数の時間ステップのうちの各々において、単一の埋込ベクトルPui350のみを生成する。
【0049】
いくつかの構成では、予測ネットワーク300は、マルチヘッドアテンションメカニズム302を実装せず、第1ヘッド302Aに関して上記の動作のみを行なう。これらの構成では、重み付けされた埋込312Aa~312Anの加重平均318Aが、射影層326と層正規化330とを通過するだけで、単一の埋込ベクトルPui350が提供される。
【0050】
いくつかの実施態様では、RNN-Tデコーダ、すなわち予測ネットワーク300とジョイントネットワーク230とのサイズをさらに縮小させるべく、予測ネットワーク300とジョイントネットワーク230との間のパラメータ結び付け(パラメータタイイング)が適用される。具体的には、語彙サイズ|V|および埋込次元dの場合、予測ネットワークにおける共有埋込行列304は
【0051】
【数8】
【0052】
である。一方、最後の隠れ層は、ジョイントネットワーク230における次元サイズdを備えているので、隠れ層から出力ロジックへのフィードフォワード射影の重みは、
【0053】
【数9】
【0054】
となり、語彙に余分な空白トークンが含まれる。したがって、ジョイントネットワーク230の最後の層に対応するフィードフォワード層は、重み行列[d,|V]|を備えている。予測ネットワーク300が埋込次元dのサイズをジョイントネットワーク230の最後の隠れ層の次元dに結び付けることによって、ジョイントネットワーク230のフィードフォワード射影重みおよび予測ネットワーク300の共有埋込行列304は、単純な転置変換によって全ての非空白記号についてそれらの重みを共有していることができる。2つの行列が全てのそれらの値を共有しているので、RNN-Tデコーダは2つの個々の行列を格納する代わりに、それらの値をメモリ上に1回格納するだけでよい。埋込次元dのサイズを隠れ層次元dのサイズに等しく設定することによって、RNN-Tデコーダは、埋込次元dと語彙サイズ|V|との積に等しいパラメータ数を削減させる。この重み結び付け(ウェイトタイイング)は、正則化技法に対応する。
【0055】
ここで図4を参照すると、アルゴリズム400は、TensorFlowにおける8ビット整数(int8)のネイティブ量子化を示す。アルゴリズム400を使用することで、モデルトレーナ150は、トレーニング中、スケールファクタ160を、最初に(アルゴリズム400がチャネル単位の量子化をサポートするため)量子化される軸(アクシス)に対する最大値を推定することによって決定する。次に、モデルトレーナ150は、最大値を整数表現値410(すなわちこの例では127.0)で除算することによって、スケールファクタ160を決定する。整数表現値410は、所望の整数固定ビット幅162に基づく。すなわちスケールファクタ160は、量子化される軸の推定最大値と、ターゲット固定ビット幅162と、に基づく。例えば、8ビットの量子化(すなわち8の整数固定ビット幅)の場合、整数表現値410は127.0である。他の例として、4ビットの量子化(すなわち4の整数固定ビット幅)の場合、整数表現値は4.0である。スケールファクタ160を決定した後、モデルトレーナ150は、スケールファクタ160で除算し整数にキャストすることによって、入力テンソルを量子化する。逆量子化(デ-クオンタイゼーション)は、テンソルにスケールファクタ160を乗算することによって使用され得る。
【0056】
図5は、自動音声認識ASRモデル200をトレーニングする方法500の動作の例示的な配置のフローチャートである。方法500は、動作502では、複数のトレーニングサンプル152を取得する工程を備えている。複数のトレーニングサンプル152のうちの各トレーニングサンプル152の各々は、各々の音声発話154と、各々の音声発話154のトランスクリプションを表す各々のテキスト発話156と、を備えている。方法500は、動作504では、複数のトレーニングサンプル152に関する自動音声認識(ASR)モデル200を、ネイティブ整数演算による「量子化アウェアなトレーニング」(QAT)を使用することでトレーニングする工程を備えている。動作506では、方法500は、トレーニング済自動音声認識ASRモデル200を、整数のターゲット固定ビット幅162に量子化する工程を備えている。量子化済のトレーニング済自動音声認識ASRモデル200は、複数の重み202を備えている。複数の重み202のうちの各重み202は、ターゲット固定ビット幅162を有している整数を備えている。動作508では、方法500は、量子化済のトレーニング済自動音声認識ASRモデル200を、ユーザデバイス10に提供する工程を備えている。
【0057】
図6は、本文書に記載のシステムおよび方法を実装するべく使用できる例示的なコンピューティングデバイス600の概略図である。コンピューティングデバイス600は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、およびその他の適切なコンピュータ、など様々な形式のデジタルコンピュータを表すことを意図している。ここで示されている構成要素、それらの接続と関係、およびそれらの機能は、例示のみを目的としており、この文書で説明および/または特許請求されている本発明の実施態様を制限することを意図してはいない。
【0058】
コンピューティングデバイス600は、プロセッサ610、メモリ620、ストレージデバイス630、メモリ620および高速拡張ポート650に接続する高速インターフェイス/コントローラ640、および低速バス670およびストレージデバイス630に接続する低速インターフェイス/コントローラ660を備えている。構成要素(610、620、630、640、650、および660)のうちの各々は、様々なバスを使用することで相互接続されており、共通のマザーボードに据え付けられるか、または必要に応じて他の方法で存在することも可能にされている。プロセッサ610は、メモリ620またはストレージデバイス630に記憶された命令を備えている、コンピューティングデバイス600内で実行するための命令を処理して、高速インターフェイス640に結合されたディスプレイ680などの外部入出力デバイスにグラフィカルユーザインターフェイス(GUI)のグラフィカル情報を表示することが可能にされている。他の実施態様では、複数のメモリおよび複数の種類のメモリとともに、必要に応じて複数のプロセッサおよび/または複数のバスが使用されてもよい。また、複数のコンピューティングデバイス600が接続されており、各デバイスが必要な動作の一部を行なう場合もある(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)。
【0059】
メモリ620は、コンピューティングデバイス600内の非一時的な情報を記憶する。メモリ620は、コンピュータ可読媒体、揮発性メモリユニット(複数可)、または不揮発性メモリユニット(複数可)であってもよい。非一時的メモリ620は、コンピューティングデバイス600による使用のために一時的または永続的にプログラム(例えば、命令のシーケンス)またはデータ(例えば、プログラム状態情報)を格納するべく使用される物理デバイスであってよい。不揮発性メモリの例は、フラッシュメモリおよび読み出し専用メモリ(ROM)/プログラマブル読み出し専用メモリ(PROM)/消去可能なプログラマブル読み出し専用メモリ(EPROM)/電子的に消去可能なプログラマブル読み出し専用メモリ(EEPROM)(例えば、通常はブートプログラムなどのファームウェアに使用される)を備えているがこれらに限定されない。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、およびディスクまたはテープを備えているがこれらに限定されない。
【0060】
ストレージデバイス630は、コンピューティングデバイス600に大容量ストレージを設けることができる。いくつかの実施態様において、ストレージデバイス630はコンピュータ可読媒体である。様々な異なる実施態様では、ストレージデバイス630は、フロッピー(登録商標)ディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイス、フラッシュメモリもしくはその他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくはその他のコンフィグレーションのデバイスを備えている、デバイスアレイであってもよい。追加の実施態様では、コンピュータプログラム製品は、情報キャリアに有形に具現化される。コンピュータプログラム製品は、実行時に上述したような1つまたは複数の方法を行なう命令を備えている。情報キャリアは、メモリ620、ストレージデバイス630、またはプロセッサ610上のメモリなどのコンピュータ可読媒体または機械可読媒体である。
【0061】
高速コントローラ640は、コンピューティングデバイス600の帯域幅集約動作を一層管理しており、低速コントローラ660は、帯域幅集約動作を一層少なく管理する。このような役割の割り振りは単なる例である。いくつかの実施態様では、高速コントローラ640は、メモリ620、ディスプレイ680(例えば、グラフィックプロセッサまたはアクセラレータを介して)、および様々な拡張カード(図示せず)を受け入れることができる高速拡張ポート650に結合される。いくつかの実施態様では、低速コントローラ660は、ストレージデバイス630および低速拡張ポート690に結合される。低速拡張ポート690には、様々な通信ポート(USB、Bluetooth(登録商標)、イーサネット(登録商標)、ワイヤレスイーサネット(登録商標)など)が含まれる場合があり、ネットワークアダプタなどを介して、キーボード、ポインティングデバイス、スキャナ、またはスイッチやルータなどのネットワークデバイスなどの1つまたは複数の入力/出力デバイスに結合され得る。
【0062】
コンピューティングデバイス600は、図に示すように、多くの様々な形式で実装できる。例えば、それは、標準サーバ600aとして、またはそのようなサーバ600aのグループで複数回、ラップトップコンピュータ600bとして、またはラックサーバシステム600cの一部として、実装され得る。
【0063】
本明細書で説明するシステムおよび技術の様々な実施態様は、デジタル電子および/または光回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せ、で実現できる。これらの様々な実施態様は、特殊または汎用であり得、ストレージシステムからデータおよび命令を受信するとともに、ストレージシステムにデータおよび命令を送信するように結合された、少なくとも1つのプログラマブルプロセッサ、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイス、を備えているプログラム可能なシステムで実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムにおける実施態様を備えていることができる。
【0064】
ソフトウェアアプリケーション(すなわちソフトウェアリソース)は、コンピューティングデバイスにタスクを行なわせるコンピュータソフトウェアを指してもよい。いくつかの例では、ソフトウェアアプリケーションは、「アプリケーション」、「アプリ」、または「プログラム」と呼ばれることがある。例示的なアプリケーションは、システム診断アプリケーション、システム管理アプリケーション、システムメンテナンスアプリケーション、ワードプロセッシングアプリケーション、スプレッドシートアプリケーション、メッセージアプリケーション、メディアストリーミングアプリケーション、ソーシャルネットワーキングアプリケーション、およびゲーミングアプリケーションを備えているがこれらに限定されない。
【0065】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラマブルプロセッサのための機械命令を備えており、かつ高水準手続型および/またはオブジェクト指向プログラミング言語、および/またはアセンブリ/機械言語で実装されることができる。本明細書で使用する場合、「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械可読の信号として機械命令を受信する機械可読媒体を備えているプログラマブルプロセッサに機械命令および/またはデータを提供するべく用いられる、あらゆるコンピュータプログラム製品、非一時的コンピュータ可読媒体、装置および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブル論理回路(PLD))を指す。「機械可読信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するべく用いられるあらゆる信号を指す。
【0066】
本明細書に説明する処理および論理フローは、データ処理ハードウェアとも称される、1つまたは複数のプログラマブルプロセッサが1つまたは複数のコンピュータプログラムを実行することで、入力データに作用しており、出力を生成することによって機能を行なうことによって行なわれ得る。処理および論理フローはまた、特殊用途論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行なわれ得る。コンピュータプログラムの実行に適切なプロセッサは、例えば、汎用および特殊目的のプロセッサの両方、ならびにいずれかの種類のデジタルコンピュータのいずれか1つまたは複数のプロセッサを備えている。概して、プロセッサは、読み出し専用メモリ、ランダムアクセスメモリ、またはその両方から命令およびデータを受信する。コンピュータの基本的な要素は、命令を実行するためのプロセッサ、ならびに命令およびデータを格納するための1つまたは複数のメモリデバイスである。概して、コンピュータはまた、データを格納するための1つまたは複数の大容量記憶デバイス、例えば磁気ディスク、光磁気ディスク、または光ディスクを備えている、またはそれらからデータを受信するもしくはそれらにデータを送信する、あるいはその両方を行なうよう動作可能に結合される。しかし、コンピュータがそのようなデバイスを有している必要はない。コンピュータプログラム命令およびデータを格納するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを備えており、例として、半導体メモリデバイス、例えばEPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスクを備えている。プロセッサおよびメモリは、専用論理回路によって補完されるか、または専用論理回路に組み込まれ得る。
【0067】
ユーザとのインタラクションを行なうために、本開示の1つまたは複数の態様は、ユーザに情報を表示するための表示装置、例えば、CRT(ブラウン管)、LCD(液晶ディスプレイ)モニタ、またはタッチスクリーン、および任意選択で、ユーザがそれによってコンピュータへの入力を行なうことができるキーボードおよびポインティングデバイス(例えばマウスまたはトラックボール)を有しているコンピュータに実装されることができる。他の種類のデバイスもまた、ユーザとのインタラクションを提供するべく用いられ得る。例えば、ユーザに提供されるフィードバックは、あらゆる形式の感覚的フィードバック、例えば視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることができ、ユーザからの入力は、音響、音声言語、または触覚入力を備えている、任意の形式で受け取られ得る。さらにコンピュータは、ユーザが使用するデバイスにドキュメントを送受信することで、例えば、ウェブブラウザから受信済の要求に応じて、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することで、ユーザとで相互作用できる。
【0068】
いくつかの実施態様が説明されてきた。それにも関わらず、本開示の趣旨および範囲から逸脱することなく、様々な修正を行ない得ることが理解される。したがって、他の実施態様は、以下の特許請求の範囲内である。
図1A
図1B
図2
図3
図4
図5
図6