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

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

▶ ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドの特許一覧

特許7394818メモリ割り当て方法、装置、及び電子機器
<>
  • 特許-メモリ割り当て方法、装置、及び電子機器 図1
  • 特許-メモリ割り当て方法、装置、及び電子機器 図2
  • 特許-メモリ割り当て方法、装置、及び電子機器 図3
  • 特許-メモリ割り当て方法、装置、及び電子機器 図4
  • 特許-メモリ割り当て方法、装置、及び電子機器 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-30
(45)【発行日】2023-12-08
(54)【発明の名称】メモリ割り当て方法、装置、及び電子機器
(51)【国際特許分類】
   G06N 3/02 20060101AFI20231201BHJP
   G10L 15/16 20060101ALI20231201BHJP
   G10L 25/30 20130101ALI20231201BHJP
【FI】
G06N3/02
G10L15/16
G10L25/30
【請求項の数】 13
(21)【出願番号】P 2021186753
(22)【出願日】2021-11-17
(65)【公開番号】P2022028810
(43)【公開日】2022-02-16
【審査請求日】2021-11-17
(31)【優先権主張番号】202011480605.7
(32)【優先日】2020-12-15
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】Beijing Baidu Netcom Science Technology Co., Ltd.
【住所又は居所原語表記】2/F Baidu Campus, No.10, Shangdi 10th Street, Haidian District, Beijing 100085, China
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100107515
【弁理士】
【氏名又は名称】廣田 浩一
(74)【代理人】
【識別番号】100107733
【弁理士】
【氏名又は名称】流 良広
(74)【代理人】
【識別番号】100115347
【弁理士】
【氏名又は名称】松田 奈緒子
(72)【発明者】
【氏名】チャオ・ティエン
(72)【発明者】
【氏名】レイ・ジャ
【審査官】北川 純次
(56)【参考文献】
【文献】米国特許第10210860(US,B1)
【文献】特開2009-229921(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
G10L 15/16
G10L 25/30
(57)【特許請求の範囲】
【請求項1】
メモリ割り当て方法であって、
マルチフレームの音声データを受信するステップと、
前記マルチフレームの音声データをニューラルネットワークモデルに入力するステップであって、前記ニューラルネットワークモデルは前記マルチフレームの音声データを処理する際に、複数のデータテンソルの呼び出しを申請し、前記複数のデータテンソルは共有メモリを共用するステップと、
処理対象である音声データのフレーム数に基づいて、異なる割り当てモードで前記共有メモリのためにメモリ量を割り当てるステップと、を含む、
ことを特徴とするメモリ割り当て方法。
【請求項2】
処理対象である音声データのフレーム数に基づいて、異なる割り当てモードで前記共有メモリのためにメモリ量を割り当てるステップは、
前記処理対象である音声データが最初のフレームの音声データである場合、第1割り当てモードで前記共有メモリのためにメモリ量を割り当てるステップと、
前記処理対象である音声データが最初のフレームの音声データではない場合、第2割り当てモードで前記共有メモリのためにメモリ量を割り当てるステップと、を含む、
請求項1に記載のメモリ割り当て方法。
【請求項3】
第1割り当てモードで前記共有メモリのためにメモリ量を割り当てるステップは、
前記ニューラルネットワークモデルがシングルフレームの音声データを処理する際に、呼び出しを申請された前記複数のデータテンソルのそれぞれが占用したメモリ量を取得するステップと、
各前記データテンソルに占用されたメモリ量に基づいて前記複数のデータテンソルから2つの第1ターゲットデータテンソルを選択するステップと、
前記2つの第1ターゲットデータテンソルに占用されたメモリの大きさを取得するステップと、
前記2つの第1ターゲットデータテンソルに占用されたメモリの大きさに基づいて前記共有メモリのためにメモリ量を割り当てるステップと、を含む、
請求項2に記載のメモリ割り当て方法。
【請求項4】
第2割り当てモードで前記共有メモリのためにメモリ量を割り当てるステップは、
前記ニューラルネットワークモデルが毎回処理したhフレームの音声データを取得するステップであって、前記hフレームの音声データは前記マルチフレームの音声データから取得されるステップと、
前記ニューラルネットワークモデルが前記hフレームの音声データを毎回処理する際に、呼び出しを申請された前記複数のデータテンソルのそれぞれが占用したメモリ量を取得するステップと、
各前記データテンソルに占用されたメモリ量に基づいて前記複数のデータテンソルから2つの第2ターゲットデータテンソルを選択するステップと、
前記2つの第2ターゲットデータテンソルに占用されたメモリの大きさを取得するステップと、
前記2つの第2ターゲットデータテンソルに占用されたメモリの大きさに基づいて前記共有メモリのためにメモリ量を割り当てるステップと、を含む、
請求項2に記載のメモリ割り当て方法。
【請求項5】
前記hフレームのフレーム数hは6又は12である、
請求項4に記載のメモリ割り当て方法。
【請求項6】
メモリ割り当て装置であって、
マルチフレームの音声データを受信するための受信モジュールと、
前記マルチフレームの音声データをニューラルネットワークモデルに入力するための入力モジュールであって、前記ニューラルネットワークモデルは前記マルチフレームの音声データを処理する際に、複数のデータテンソルの呼び出しを申請し、前記複数のデータテンソルは共有メモリを共用する入力モジュールと、
処理対象である音声データのフレーム数に基づいて、異なる割り当てモードで前記共有メモリのためにメモリ量を割り当てる割り当てモジュールと、を含む、
ことを特徴とするメモリ割り当て装置。
【請求項7】
前記割り当てモジュールは、
前記処理対象である音声データが最初のフレームの音声データである場合、第1割り当てモードで前記共有メモリのためにメモリ量を割り当てるための第1割り当てユニットと、
前記処理対象である音声データが最初のフレームの音声データではない場合、第2割り当てモードで前記共有メモリのためにメモリ量を割り当てるための第2割り当てユニットと、を含む、
請求項6に記載のメモリ割り当て装置。
【請求項8】
前記第1割り当てユニットは、
前記ニューラルネットワークモデルがシングルフレームの音声データを処理する際に、呼び出しを申請された前記複数のデータテンソルのそれぞれが占用したメモリ量を取得し、
各前記データテンソルに占用されたメモリ量に基づいて前記複数のデータテンソルから2つの第1ターゲットデータテンソルを選択し、
前記2つの第1ターゲットデータテンソルに占用されたメモリの大きさを取得し、
前記2つの第1ターゲットデータテンソルに占用されたメモリの大きさに基づいて前記共有メモリのためにメモリ量を割り当てることに用いられる、
請求項7に記載のメモリ割り当て装置。
【請求項9】
前記第2割り当てユニットは、
前記ニューラルネットワークモデルが毎回処理したhフレームの音声データを取得し、前記hフレームの音声データは前記マルチフレームの音声データから取得され、
前記ニューラルネットワークモデルが前記hフレームの音声データを毎回処理する際に、呼び出しを申請された前記複数のデータテンソルのそれぞれが占用したメモリ量を取得し、
各前記データテンソルに占用されたメモリ量に基づいて前記複数のデータテンソルから2つの第2ターゲットデータテンソルを選択し、
前記2つの第2ターゲットデータテンソルに占用されたメモリの大きさを取得し、
前記2つの第2ターゲットデータテンソルに占用されたメモリの大きさに基づいて前記共有メモリのためにメモリ量を割り当てることに用いられる、
請求項7に記載のメモリ割り当て装置。
【請求項10】
前記hフレームのフレーム数hは6又は12である、
請求項9に記載のメモリ割り当て装置。
【請求項11】
電子機器であって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信可能に接続されるメモリと、を含み、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令は、前記少なくとも1つのプロセッサが請求項1~5のいずれかに記載のメモリ割り当て方法を実行できるように、前記少なくとも1つのプロセッサによって実行される、
ことを特徴とする電子機器。
【請求項12】
コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、
前記コンピュータ命令は、コンピュータに請求項1~5のいずれかに記載のメモリ割り当て方法を実行させることに用いられる、
ことを特徴とする非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項13】
コンピュータプログラムであって、
前記コンピュータプログラムはプロセッサによって実行される場合、請求項1~5のいずれかに記載のメモリ割り当て方法を実現する、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、コンピュータ技術の分野に関し、具体的には、音声技術と深層学習などの人工知能技術の分野に関し、特にメモリ割り当て方法、装置、及び電子機器に関する。
【背景技術】
【0002】
人工知能はここ数年、急激に発展しているが、深層学習とニューラルネットワークは、まさに人工知能発展の基礎である。通常、神経ネットワーク層数が多く、テンソルが大きいため、チップのメモリを多く使う。また、近年、ニューラルネットワークを組み込み機器に配置する需要がますます高くなっているため、メモリ割り当ての最適化は極めて重要である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本出願はメモリ割り当て方法、装置、及び電子機器を提出する。
【課題を解決するための手段】
【0004】
本出願の一様態によれば、メモリ割り当て方法を提供し、
マルチフレームの音声データを受信するステップと、
前記マルチフレームの音声データを前記ニューラルネットワークモデルに入力するステップであって、前記ニューラルネットワークモデルは前記マルチフレームの音声データを処理する際に、複数のデータテンソルを申請し、前記複数のデータテンソルは共有メモリを共用するステップと、を含む。
【0005】
本出願の別の様態によれば、メモリ割り当て装置を提供し、
マルチフレームの音声データを受信するための受信モジュールと、
前記マルチフレームの音声データを前記ニューラルネットワークモデルに入力するための入力モジュールであって、前記ニューラルネットワークモデルは前記マルチフレームの音声データを処理する際に、複数のデータテンソルを申請し、前記複数のデータテンソルは共有メモリを共用する入力モジュールと、を含む。
【0006】
本出願の別の様態によれば、電子機器を提供し、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサと通信可能に接続されるメモリと、を含み、
前記メモリには、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、前記命令は、前記少なくとも1つのプロセッサが上記一様態の実施例に記載のメモリ割り当て方法を実行できるように、前記少なくとも1つのプロセッサによって実行される。
【0007】
本出願の別の様態によれば、コンピュータ命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体を提供し、それにコンピュータプログラムが記憶され、前記コンピュータ命令は、前記コンピュータに上記一様態の実施例に記載のメモリ割り当て方法を実行させることに用いられる。
【0008】
本出願の別の様態によれば、コンピュータプログラムを提供し、前記コンピュータプログラムはプロセッサによって実行される場合、上記一様態の実施例に記載のメモリ割り当て方法を実現する。
【発明の効果】
【0009】
上記選択可能な方式が有する他の効果は、以下で具体的な実施例と併せて説明する。
【図面の簡単な説明】
【0010】
図面は、本技術案をよりよく理解するために使用され、本開示を限定するものではない。
図1】本出願の実施例によって提供されるメモリ割り当て方法の概略フローチャートである。
図2】本出願の実施例によって提供される別のメモリ割り当て方法の概略フローチャートである。
図3】本出願の実施例によって提供される別のメモリ割り当て方法の概略フローチャートである。
図4】本出願の実施例によって提供されるメモリ割り当て装置の概略構造図である。
図5】本出願の実施例に係るメモリ割り当て方法の電子機器のブロック図である。
【発明を実施するための形態】
【0011】
以下、図面と組み合わせて本出願の例示的な実施例を説明し、理解を容易にするためにその中には本出願の実施例の様々な詳細事項を含んでおり、それらは単なる例示的なものと見なされるべきである。したがって、当業者は、本出願の範囲及び精神から逸脱することなく、ここで説明される実施例に対して様々な変更と修正を行うことができることを認識されたい。同様に、明確及び簡潔にするために、以下の説明では、周知の機能及び構造の説明を省略する。
【0012】
以下、図面を参照して本出願の実施例に係るメモリ割り当て方法、装置、及び電子機器を説明する。
【0013】
人工知能はコンピュータで人間のある思考過程と知能行為(学習、推理、思考、計画など)をシミュレートすることを研究する学科であり、ハードウェアレベルの技術とソフトウェアレベルの技術もある。人工知能ハードウェア技術は一般にセンサー、専用人工知能チップ、クラウドコンピューティング、分散ストレージ、ビッグデータ処理などの技術を含む。人工知能ソフトウェア技術は主にコンピュータ視覚技術、音声認識技術、自然言語処理技術及び深層学習、ビッグデータ処理技術、知識スペクトル技術などのいくつかの方向を含む。
【0014】
音声技術とは、コンピュータの分野におけるキー技術であり、自動音声認識技術と音声合成技術がある。
【0015】
深層学習は機械学習の分野において新しい研究方向である。深層学習はサンプルデータの内的な規則と表示レベルを学習するものであり、これらの学習プロセスで取得された情報は文字、画像、音声などのデータの解釈に大きいに役立つ。その最終的な目標は、機械が人間のように分析学習能力を持ち、文字、画像、音声などのデータを認識できるようにすることである。深層学習は複雑な機械学習アルゴリズムであり、音声と画像認識面で収められる効果は、以前の関連技術をはるかに超える。
【0016】
本出願の実施例によって提供されるメモリ割り当て方法は、PC(Personal Computer、パーソナルコンピューター)パソコン、タブレット、携帯情報端末スマートスピーカなどの電子機器によって実行されてもよく、ここでは限定されない。
【0017】
本出願の実施例では、電子機器には、処理コンポーネント、記憶コンポーネント、及び駆動コンポーネントが設定されてもよい。選択可能に、当該駆動コンポーネントと処理コンポーネントを統合して設定されることができ、当該記憶コンポーネントはオペレーティングシステム、アプリケーション、又は他のプログラムモジュールを記憶することができ、当該処理コンポーネントは記憶コンポーネントに記憶されたアプリケーションを実行することによって本出願の実施例によって提供されるメモリ割り当て方法を実現する。
【0018】
図1は、本出願の実施例によって提供されるメモリ割り当て方法の概略フローチャートである。
【0019】
本出願の実施例のメモリ割り当て方法は、さらに本出願の実施例によって提供されるメモリ割り当て装置によって実行されてもよく、マルチフレームの音声データを受信し、マルチフレームの音声データをニューラルネットワークモデルに入力するように、当該装置は電子機器に配置されてもよい。ニューラルネットワークモデルはマルチフレームの音声データを処理する際に、複数のデータテンソルを申請し、且つ複数のデータテンソルは共有メモリを共用し、メモリオーバヘッドの削減を実現する。
【0020】
1つの可能な状況として、本出願の実施例のメモリ割り当て方法は、さらにサーバ側で実行されてもよく、サーバはクラウドサーバであってもよく、クラウドで当該メモリ割り当て方法を実行することができる。
【0021】
図1に示すように、当該メモリ割り当て方法は、以下のステップ101~102を含むことができる。
【0022】
ステップ101において、マルチフレームの音声データを受信する。
【0023】
本出願の実施例では、電子機器はマルチフレームの音声データを受信できる。なお、当該実施例で説明されたマルチフレームの音声データは、電子機器がユーザによって入力された音声情報を受信(取得)し、又は音声情報マイクロフォンを介してユーザによって入力された音声情報を直接受信し、当該音声情報をマルチフレームの音声データに変換するように、音声ファイル(例えば、WAVフォーマットのファイル)に記憶されてもよく、ここでは限定されない。
【0024】
ステップ102において、マルチフレームの音声データをニューラルネットワークモデルに入力し、ニューラルネットワークモデルはマルチフレームの音声データを処理する際に、複数のデータテンソルを申請し、複数のデータテンソルは共有メモリを共用する。
【0025】
なお、当該実施例で説明されたニューラルネットワークモデルは、アプリケーションを呼び出すことを容易にするように、事前にトレーニングされて電子機器のストレージ領域に予め記憶されたものであってもよく、当該ストレージ領域はハードディスクなどの実体に基づくストレージ領域に限らず、上記ストレージ領域はさらに電子機器を接続するネットワークハードディスクのストレージ領域(クラウドストレージ領域)であってもよい。当該ニューラルネットワークモデルは、マルチフレームの音声データを採点するための採点ニューラルネットワークモデルであってもよく、且つ当該ニューラルネットワークモデルは、複数の層を含むことができる。
【0026】
具体的には、電子機器は、マルチフレームの音声データを受信した後、まず自身のストレージ領域からニューラルネットワークモデルを呼び出すことができ、その後、当該マルチフレームの音声データを当該ニューラルネットワークモデルに入力し、これによって当該ニューラルネットワークモデルを介してマルチフレームの音声データを採点して、当該ニューラルネットワークモデルから出力された採点結果を取得する。なお、電子機器は、マルチフレームの音声データを受信した後、まず予め設定されたアルゴリズムに基づいてマルチフレームの音声数を複数に分割し、当該ニューラルネットワークモデルに順次入力することもでき、予め設定されたアルゴリズムは実際の状況に応じて較正してもよい。
【0027】
採点の精度を向上させるために、本出願の実施例では、電子機器はマルチフレームの音声データを受信した後、まず当該マルチフレームの音声データを前処理でき、例えば、人間の発声器官自体及び音声データを収集する装置によるエイリアシング、高調波歪み、高周波などの要因が音声データ品質に与える影響を除去する。
【0028】
さらに、本出願の実施例では、ニューラルネットワークモデルがマルチフレームの音声データを処理する際に、申請される複数のデータテンソルは一時的であってもよく、層と層の交換データを一時的に記憶することに用いてもよく、且つ該複数のデータテンソルは共有メモリを共用することができる。
【0029】
なお、当該実施例で説明された複数のデータテンソルは、一定の条件を満たした後、解放することができ、例えば、いくつかのデータテンソルが入力としてある層A(例えば、ニューラルネットワークモデルのある層)によって呼び出された後、他の層によって呼び出されなくなり、A層を計算した後、当該データテンソルは解放することができ、このようにメモリの占有を減少させた。
【0030】
また、いくつかのニューラルネル構造において、ほとんどのデータテンソルは1つだけの入力層Aに接続し、且つ別の層Bの唯一の出力とされる。このようなデータテンソルのメモリは再利用することができるため、メモリのオーバーヘッドが削減される。
【0031】
本出願の実施例では、まずマルチフレームの音声データを受信し、且つマルチフレームの音声データをニューラルネットワークモデルに入力することによって、ニューラルネットワークモデルを介してマルチフレームの音声データを採点し、したがってメモリオーバヘッドを効果的に削減しながら、メモリと計算のバランスを保つことができる。
【0032】
さらに、本出願の一実施例では、上記メモリ割り当て方法は、現在音声データのフレーム数に基づいて、共用メモリのためにメモリ量を割り当てるステップをさらに含むことができる。
【0033】
具体的には、電子機器は、上記のマルチフレームの音声データをニューラルネットワークモデルに入力した後、当該ニューラルネットワークモデルによって現在音声データのフレーム数に基づいて、共用メモリのためにメモリ量を割り当てることができ、それによって当該ニューラルネットワークモデルがマルチフレームの音声データを採点するプロセスにおいて、共有メモリを十分に使うことができるようにし、したがってメモリオーバヘッドをさらに削減する。
【0034】
または、電子機器は、上記のマルチフレームの音声データをニューラルネットワークモデルに入力した後、直接現在音声データのフレーム数に基づいて、共用メモリのためにメモリ量を割り当てて、それによって当該ニューラルネットワークモデルがマルチフレームの音声データを採点するプロセスにおいて、共有メモリを十分に使うことができるようにする。
【0035】
前の実施例を明確に説明するために、本出願の一実施例では、現在音声データのフレーム数に基づいて、共用メモリのためにメモリ量を割り当てるステップは、現在音声データが最初のフレームの音声データである場合、第1割り当てモードで共用メモリのためにメモリ量を割り当てるステップと、現在音声データが最初のフレームの音声データではない場合、第2割り当てモードで共用メモリのためにメモリ量を割り当てるステップと、を含むことができる。
【0036】
本出願の実施例では、最初のフレームの音声データは予め設定された時間内のフレームの音声データであってもよい。当該予め設定された時間は、例えば、20ms又は30ms内のフレームの音声データのように、実際の状況に応じて較正してもよい。つまり、最初のフレームの音声データは第1フレームの音声データではなく、最初のフレームの音声データはマルチフレームを有する音声データ、例えば、20フレームの音声データである可能性がある。
【0037】
具体的には、電子機器は、上記のマルチフレームの音声データをニューラルネットワークモデルに入力した後、当該ニューラルネットワークモデルによって現在音声データが最初のフレームの音声データであるかどうかを先に判断することができ、そうである場合、第1割り当てモードで共用メモリのためにメモリ量を割り当てることができ、そうではない場合、第2割り当てモードで共用メモリのためにメモリ量を割り当てることができる。これにより、シングルフレームの割り当てモードとマルチフレームの割り当てモードのメモリ割り当て方法を融合させ、効率を保障しながら、メモリと計算のバランスを保つことができる。
【0038】
なお、当該実施例で説明された第1割り当てモードは、シングルフレームの割り当てモード又はマルチフレームの割り当てモードであってもよく、当該実施例で説明された第2割り当てモードは、マルチフレームの割り当てモードであってもよい。場合によっては、第1割り当てモードと第2割り当てモードは同じであってもよく、すなわちすべてはマルチフレームの割り当てモードであり、例えば、音声データが最初のフレームモードだけを使う場合、第1割り当てモードはシングルフレームの割り当てモードであってもよく、音声データが最初のフレームモードだけでなく、マルチフレームモードも使う場合、第1割り当てモードはマルチフレームの割り当てモードであってもよく、ここでは限定されない。最初のフレームモードとマルチフレームモードは実際の状況に応じて較正してもよい。
【0039】
前の実施例を明確に説明するために、本出願の一実施例では、図2に示すように、第1割り当てモードで共用メモリのためにメモリ量を割り当てるステップは、以下のステップ201~204を含むことができる。
【0040】
ステップ201において、ニューラルネットワークモデルがシングルフレームの音声データを処理する際に、申請された複数のデータテンソルのそれぞれが占用したメモリ量を取得する。
【0041】
なお、当該実施例で説明されたデータテンソルは、通常n、c、h、wという4つの次元があり、実際の使用では、シングルフレームはh==1を表し、nも一般的に1であるため、シングルフレームのメモリの大きさはc*wで計算することができる。
【0042】
ステップ202において、各データテンソルに占用されたメモリ量に基づいて複数のデータテンソルから2つの第1ターゲットデータテンソルを選択する。
【0043】
本出願の実施例では、2つの第1ターゲットデータテンソルは、複数のデータテンソルにおいてシングルフレームのメモリオーバヘッドが最も多い2つであってもよい。
【0044】
ステップ203において、2つの第1ターゲットデータテンソルに占用されたメモリを取得する。
【0045】
ステップ204において、2つの第1ターゲットデータテンソルに占用されたメモリに基づいて共用メモリのためにメモリ量を割り当てる。
【0046】
具体的には、電子機器は、上記のマルチフレームの音声データをニューラルネットワークモデルに入力した後、当該ニューラルネットワークモデルによって現在音声データが最初のフレームの音声データであるかどうかを先に判断でき、そうである場合、ニューラルネットワークモデルがシングルフレームの音声データを処理する際に申請された複数のデータテンソルのそれぞれが占用したメモリ量を先に取得することができ、各データテンソルに占用されたメモリ量に基づいてシングルフレームのメモリオーバヘッドが最も多い2つのデータテンソル(すなわち、2つの第1ターゲットデータテンソル)のメモリの大きさを算出する。その後、電子機器は共有メモリを上記2つのデータテンソルに必要なメモリの合計として設定することができる(すなわち、メモリ1+メモリ2)。当該実施例における2つのデータテンソル(すなわち、2つの第1ターゲットデータテンソル)に対して、それぞれのメモリに、共有メモリの最初のアドレス、及び最初のアドレス+メモリ1オフセットという値を付与することができる。これにより、ニューラルネットワークモデル(例えば、採点ニューラルネットワークモデル)が毎回シングルフレームの音声データにおける1フレームの入力を受信し、ニューラルネットワークモデルにおける各層を順次ストリームコンピュティングすることができ、これによって共有メモリを柔軟に使ってメモリの占用を減少させることができる。
【0047】
本出願の実施例では、上記データテンソルのh==1の場合、メモリは最小化されているにもかかわらず、ニューラルネットワークモデルのある層のニューラルネットワークのパラメータが大きすぎる場合、メモリが複数回ロードされるという問題を引き起こす。
【0048】
当該問題を解決するために、本出願は現在音声データが最初のフレームの音声データではない場合、マルチフレームの割り当てモードで共用メモリのためにメモリ量を割り当て、本出願の一実施例では、図3に示すように、第2割り当てモードで共用メモリのためにメモリ量を割り当てるステップは、以下のステップ301~305を含むことができる。
【0049】
ステップ301において、ニューラルネットワークモデルが毎回処理したhフレームの音声データを取得し、hフレームの音声データはマルチフレームの音声データから取得される。
【0050】
本出願の一実施例では、hは6又は12であってもよく、なお、当該実施例で説明されたhが6である場合、hフレームの音声データは60ms内のフレームの音声データであってもよい。当該実施例で説明されたhが12である場合、hフレームの音声データは120ms内のフレームの音声データであってもよい。
【0051】
本出願の実施例では、実際の需要に応じてhを、メモリ問題を減少させる臨界値として設定し、又は音声アルゴリズムの特徴に基づいて採用される値として設定することができる。一般的に、音声認識においては、1回ごとに60ms又は120msのデータを処理することができ、音声認識上の遅延感をもたらさない。このようにhを6又は12に設定することができる。
【0052】
なお、上記第1割り当てモードで共用メモリのためにメモリ量を割り当てる方法は、一時的なメモリのオーバーヘッドを大幅に削減したため、hを6又は12に設定しても、メモリの増加も限られており、しかしこの際に、メモリ問題による効率損失が補われ、計算のオーバーヘッドも従来の方法と同様であり、又はより優れる(従来の方法で割り当てられるデータテンソルメモリは有効に記憶できない場合もあるため、メモリに認識されないことにつながり、計算効率に影響を与える)。
【0053】
本出願の別の実施例では、当該実施例で説明されたhが6である場合、hフレームの音声データは6フレームの音声データであってもよい。当該実施例で説明されたhが12である場合、hフレームの音声データは12フレームの音声データであってもよい。
【0054】
ステップ302において、ニューラルネットワークモデルがhフレームの音声データを毎回処理する際に、申請された複数のデータテンソルのそれぞれが占用したメモリ量を取得する。
【0055】
なお、当該実施例で説明されたデータテンソルは通常n,c,h,wという4つの次元があり、実際の使用では、h==6又は12の場合、hフレームメモリの大きさはh*c*wで計算することができる。
【0056】
ステップ303において、各データテンソルに占用されたメモリ量に基づいて複数のデータテンソルから2つの第2ターゲットデータテンソルを選択する。
【0057】
ステップ304において、2つの第2ターゲットデータテンソルに占用されたメモリを取得する。
【0058】
ステップ305において、2つの第2ターゲットデータテンソルに占用されたメモリに基づいて共用メモリのためにメモリ量を割り当てる。
【0059】
具体的には、電子機器は上記のマルチフレームの音声データをニューラルネットワークモデルに入力した後、当該ニューラルネットワークモデルによって現在音声データが最初のフレームの音声データであるかどうかを先に判断することができ、そうではない場合、ニューラルネットワークモデルが毎回処理したマルチフレームの音声データにおけるhフレームの音声データを先に取得し、且つニューラルネットワークモデルがhフレームの音声データを毎回処理する際に、申請された複数のデータテンソルのそれぞれが占用したメモリ量を取得することができる。次に、各データテンソルに占用されたメモリ量に基づいてhフレームのメモリオーバヘッドが最も多い2つのデータテンソル(すなわち、2つの第2ターゲットデータテンソル)のメモリの大きさを算出する。その後、電子機器は、共有メモリを、上記2つのデータテンソルに必要なメモリの合計として設定することができる。これにより、メモリ問題による効率損失が補われ、オーバーヘッド計算は従来の方法と同様であり、又はより優れ、これによってメモリと計算のバランスを保つ。
【0060】
本出願の実施例では、ニューラルネットワークモデルのニューラルネットワークにおいて、畳み込み層の実現が常に存在し、すなわち、最初に入力されるフレーム数は、畳み込み層の配置の多少に基づいて設計される。例えば3x3の畳み込みカーネルは、パディングがない場合、2フレームの遅延になる可能性がある。このような畳み込み層を1つ増やすたびに、入力されるhは2増加し、深層畳み込みネットワークにとっては、最初のフレーム入力は20ms又は30msであってもよく、文全体を採点すれば、hは300-1000(3S~10S)であってもよい。
【0061】
この値は6又は12で割り切れなく、採点構造に混乱をもたらす。この場合、本出願の実施例のメモリ割り当て方法は当該問題を効果的に解決でき、メモリ割り当ての場合、依然としてh==6又は12というメモリを割り当て、最初のフレームを計算する際に、h==1のモードで計算し、最初のフレームの後、1回ごとに6フレーム又は12フレームを入力して計算する。ニューラルネットワークモデルでは、当該モードを自動的に設定する。ニューラルネットワークモデルが初期化された後、最初のフレームのモードに入ることができ、最初のフレームのフレーム数を計算し終えた後、マルチフレームモードに自動的に切り替わる。
【0062】
これにより、メモリオーバヘッドを効果的に削減しながら、メモリと計算のバランスを保つことができる。
【0063】
図4は本出願の実施例によって提供されるメモリ割り当て装置の概略構造図である。
【0064】
本出願の実施例のメモリ割り当て装置は、マルチフレームの音声データを受信し、マルチフレームの音声データをニューラルネットワークモデルに入力するように、電子機器に配置されてもよい。ニューラルネットワークモデルは、マルチフレームの音声データを処理する際に、複数のデータテンソルを申請し、且つ複数のデータテンソルは共有メモリを共用し、メモリオーバヘッドの削減を実現する。
【0065】
図4に示すように、当該メモリ割り当て装置400は、受信モジュール410と入力モジュール420を含むことができる。
【0066】
受信モジュール410は、マルチフレームの音声データを受信することに用いられる。
【0067】
本出願の実施例では、電子機器は受信モジュール410によってマルチフレームの音声データを受信できる。なお、当該実施例で説明されたマルチフレームの音声データは、受信モジュール410がユーザによって入力された音声情報を受信(取得)し、又は受信モジュール410がマイクロフォンを介してユーザによって入力された音声情報を直接受信し、当該音声情報をマルチフレームの音声データに変換するように、音声ファイル(例えば、WAVフォーマットのファイル)に記憶されてもよく、ここでは限定されない。
【0068】
入力モジュール420はマルチフレームの音声データをニューラルネットワークモデルに入力することに用いられ、ニューラルネットワークモデルはマルチフレームの音声データを処理する際に、複数のデータテンソルを申請し、複数のデータテンソルは共有メモリを共用する。
【0069】
なお、当該実施例で説明されたニューラルネットワークモデルは、アプリケーションを呼び出すことを容易にするように、事前にトレーニングされて電子機器のストレージ領域に予め記憶されたものであってもよく、当該ストレージ領域は、ハードディスクなどの実体に基づくストレージ領域に限らず、上記ストレージ領域はさらに電子機器を接続するネットワークハードディスクのストレージ領域(クラウドストレージ領域)であってもよい。当該ニューラルネットワークモデルはマルチフレームの音声データを採点するための採点ニューラルネットワークモデルであってもよく、且つ当該ニューラルネットワークモデルは複数の層を含むことができる。
【0070】
具体的には、受信モジュール410がマルチフレームの音声データを受信した後、入力モジュール420は、まず自身のストレージ領域からニューラルネットワークモデルを呼び出すことができ、その後、当該マルチフレームの音声データを当該ニューラルネットワークモデルに入力し、これによって当該ニューラルネットワークモデルを介してマルチフレームの音声データを採点して、当該ニューラルネットワークモデルから出力された採点結果を取得する。なお、受信モジュール410は、マルチフレームの音声データを受信した後、まず予め設定されたアルゴリズムに基づいてマルチフレームの音声数を複数に分割し、当該ニューラルネットワークモデルに順次入力することもでき、予め設定されたアルゴリズムは実際の状況に応じて較正してもよい。
【0071】
採点の精度を向上させるために、本出願の実施例では、受信モジュール410は、マルチフレームの音声データを受信した後、まず当該マルチフレームの音声データを前処理することができ、例えば、人間の発声器官自体と音声データを収集する装置によるエイリアシング、高次高調波歪み、高周波などの要因による音声データ品質への影響を除去する。
【0072】
さらに、本出願の実施例では、ニューラルネットワークモデルがマルチフレームの音声データを処理する際に、申請される複数のデータテンソルは一時的であってもよく、層と層の交換データを一時的に記憶でき、且つ該複数のデータテンソルは共有メモリを共用することができる。
【0073】
なお、当該実施例で説明された複数のデータテンソルは一定の条件を満たした後、解放することができ、例えば、いくつかのデータテンソルが入力としてある層A(例えば、ニューラルネットワークモデルのある層)によって呼び出された後、他の層によって呼び出されなくなり、A層を計算した後、当該データテンソルは解放することができ、このようにメモリの占有を減少させた。
【0074】
また、いくつかのニューラルネル構造において、ほとんどのデータテンソルは1つだけの入力層Aに接続し、且つ別の層Bの唯一の出力とされる。このようなデータテンソルのメモリは再利用されてもよく、これによってメモリのオーバーヘッドを削減する。
【0075】
本出願の実施例では、受信モジュールによってマルチフレームの音声データを受信し、入力モジュールによってマルチフレームの音声データをニューラルネットワークモデルに入力し、ニューラルネットワークモデルはマルチフレームの音声データを処理する際に、複数のデータテンソルを申請し、且つ複数のデータテンソルは共有メモリを共用する。これにより、メモリオーバヘッドを効果的に削減しながら、メモリと計算のバランスを保つことができる。
【0076】
本出願の一実施例では、図4に示すように、当該メモリ割り当て装置400は、割り当てモジュール420を含むことができ、割り当てモジュール430は、現在音声データのフレーム数に基づいて、共用メモリのためにメモリ量を割り当てることに用いられる。
【0077】
本出願の一実施例では、図4に示すように、割り当てモジュール430は、第1割り当てユニット431と第2割り当てユニット432を含むことができる。
【0078】
第1割り当てユニット431は、現在音声データが最初のフレームの音声データである場合、第1割り当てモードで共用メモリのためにメモリ量を割り当てることに用いられる。
【0079】
第2割り当てユニット432は、現在音声データが最初のフレームの音声データではない場合、第2割り当てモードで共用メモリのためにメモリ量を割り当てることに用いられる。
【0080】
本出願の一実施例では、図4に示すように、第1割り当てユニット431は、具体的には、ニューラルネットワークモデルがシングルフレームの音声データを処理する際に、申請された複数のデータテンソルのそれぞれが占用したメモリ量を取得し、各データテンソルに占用されたメモリ量に基づいて複数のデータテンソルから2つの第1ターゲットデータテンソルを選択し、2つの第1ターゲットデータテンソルに占用されたメモリを取得し、2つの第1ターゲットデータテンソルに占用されたメモリに基づいて共用メモリのためにメモリ量を割り当てることに用いられる。
【0081】
本出願の一実施例では、図4に示すように、第2割り当てユニット432は、具体的には、ニューラルネットワークモデルが毎回処理したhフレームの音声データを取得し、hフレームの音声データがマルチフレームの音声データから取得され、ニューラルネットワークモデルがhフレームの音声データを毎回処理する際に、申請された複数のデータテンソルのそれぞれが占用したメモリ量を取得し、各データテンソルに占用されたメモリ量に基づいて複数のデータテンソルから2つの第2ターゲットデータテンソルを選択し、2つの第2ターゲットデータテンソルに占用されたメモリを取得し、2つの第2ターゲットデータテンソルに占用されたメモリに基づいて共用メモリのためにメモリ量を割り当てることに用いられる。
【0082】
本出願の一実施例では、hは6又は12であってもよい。
【0083】
なお、前記メモリ割り当て方法実施例に対する説明は、当該実施例のメモリ割り当て装置にも適用され、ここでは説明を省略する。
【0084】
本出願の実施例のメモリ割り当て装置は、受信モジュールによってマルチフレームの音声データを受信し、入力モジュールによってマルチフレームの音声データをニューラルネットワークモデルに入力し、ニューラルネットワークモデルはマルチフレームの音声データを処理する際に、複数のデータテンソルを申請し、且つ複数のデータテンソルは共有メモリを共用する。これにより、メモリオーバヘッドを効果的に削減しながら、メモリと計算のバランスを保つことができる。
【0085】
本出願の実施例によれば、本出願は、電子機器、読み取り可能な記憶媒体、及びコンピュータプログラム製品をさらに提供する。
【0086】
図5は、本出願の実施例を実行するための例示的な電子機器500の概略ブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレームコンピュータ、及び他の適切なコンピュータなどの様々な形式のデジタルコンピュータを表すことを目的とする。電子機器は、携帯情報端末、携帯電話、スマートフォン、ウェアラブルデバイス、及び他の同様のコンピューティングデバイスなどの様々な形式のモバイルデバイスを表すこともできる。本明細書で示されるコンポーネント、それらの接続と関係、及びそれらの機能は、単なる例であり、本明細書の説明及び/又は要求される本出願の実現を制限することを意図したものではない。
【0087】
図5に示すように、デバイス500は、読み取り専用メモリ(ROM)502に記憶されたコンピュータプログラム、又は記憶ユニット508からランダムアクセスメモリ(RAM)503にロードされたコンピュータプログラムに基づいて、様々な適切な動作及び処理を実行する計算ユニット501を含む。RAM503には、デバイス500の動作に必要な各種プログラムやデータも記憶されてもよい。計算ユニット501、ROM502、及びRAM503は、バス504を介して互いに接続されておる。パスには、入力/出力(I/O)インタフェース505も接続されている。
【0088】
デバイス500の複数のコンポーネントはI/Oインタフェース505に接続され、キーボード、マウスなどの入力ユニット506、各タイプのディスプレイ、スピーカなどの出力ユニット507、磁気ディスク、光ディスクなどの記憶ユニット505、及びネットワークカード、モデム、無線通信トランシーバなどの通信ユニット509を含む。通信ユニット509は、デバイス500が、インターネットなどのコンピュータネットワーク及び/又は各種の電信ネットワークを介して他のデバイスと情報/データを交換することを可能にする。
【0089】
計算ユニット501は、処理及び計算能力を有する様々な汎用及び/又は専用の処理コンポーネントであってもよい。計算ユニット501のいくつかの例は、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、各種の専用の人工知能(AI)計算チップ、各種のマシン運転学習モデルアルゴリズムの計算ユニット、デジタル信号プロセッサ(DSP)、及びいずれかの適切なプロセッサ、コントローラ、マイクロコントローラなどを含むが、これらに限定されない。計算ユニット501は、上記に記載された各方法及び処理、例えば、メモリ割り当て方法を実行する。例えば、いくつかの実施例では、メモリ割り当て方法を、記憶ユニット508などの機械読み取り可能な媒体に有形的に含まれるコンピュータソフトウェアプログラムとして実現することができる。いくつかの実施例では、コンピュータプログラムの一部又は全部はROM502及び/又は通信ユニット509を介してデバイス500にロード及び/又はインストールされてもよい。コンピュータプログラムがRAM503にロードされ、計算ユニット501によって実行される場合、上記に記載されたメモリ割り当て方法の1つ以上のステップが実行されてもよい。代替的に、他の実施例では、計算ユニット501はメモリ割り当て方法を実行するように、他のいずれかの適切な方式(例えば、ファームウェアを介して)によって配置されてもよい。
【0090】
本明細書で上記記載されたシステムと技術の様々な実施方式は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップ(SOC)、コンプレックス・プログラマブル・ロジック・デバイス(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせで実現することができる。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムで実施されることを含むことができ、当該1つ又は複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラム可能なシステムで実行及び/又は解釈することができ、当該プログラマブルプロセッサは、特定用途向け又は汎用プログラマブルプロセッサであってもよく、ストレージシステム、少なくとも1つの入力装置、及び少なくとも1つの出力装置からデータ及び命令を受信し、データ及び命令を当該ストレージシステム、当該少なくとも1つの入力装置、及び当該少なくとも1つの出力装置に伝送することができる。
【0091】
本出願の方法を実施するためのプログラムコードは、1つ又は複数のプログラミング言語の任意の組み合わせで書くことができる。これらのプログラムコードは、プロセッサ又はコントローラによって実行された際に、フローチャート及び/又はブロック図に規定された機能/動作が実施されるように、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサ又はコントローラによって提供されてもよい。プログラムコードは、完全に機械上で実行され、部分的に機械上で実行され、スタンドアロンソフトウェアパッケージとして、部分的に機械上で実行され、かつ部分的にリモート機械上で実行され、又は完全にリモート機械又はサーバ上で実行されてもよい。
【0092】
本出願のコンテクストでは、機械読み取り可能な媒体は、命令実行システム、装置、又はデバイスによって使用されるか、又は命令実行システム、装置、又はデバイスと組み合わせて使用されるプログラムを含む又は記憶することができる有形の媒体であってもよい。機械読み取り可能な媒体は、機械読み取り可能な信号媒体又は機械読み取り可能な記憶媒体であってもよい。機械読み取り可能な媒体は、電子的、磁気的、光学的、電磁気的、赤外線的、又は半導体システム、装置又はデバイス、又は上記内容のいずれかの適切な組み合わせを含むことができるが、これらに限定されない。機械読み取り可能な記憶媒体のより具体的な例は、1つ又は複数のラインに基づく電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスクリードオンリーメモリ(CD-ROM)、光学記憶装置、磁気記憶装置、又は上記内容のいずれかの適切な組み合わせを含む。
【0093】
ユーザとのインタラクションを提供するために、ここで説明されているシステム及び技術をコンピュータ上で実施することができ、当該コンピュータは、ユーザに情報を表示するためのディスプレイ装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを有し、ユーザは、当該キーボード及び当該ポインティングデバイスによって入力をコンピュータに提供することができる。他の種類の装置も、ユーザとのインタラクションを提供することができ、例えば、ユーザに提供されるフィードバックは、任意の形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形式(音響入力と、音声入力、又は触覚入力とを含む)でユーザからの入力を受信することができる。
【0094】
ここで説明されるシステム及び技術は、バックエンドコンポーネントを含むコンピューティングシステム(例えば、データサーバとする)、又はミドルウェアコンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバ)、又はフロントエンドコンポーネントを含むコンピューティングシステム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ、ユーザは、当該グラフィカルユーザインタフェース又は当該ウェブブラウザによってここで説明されるシステム及び技術の実施形態とインタラクションする)、又はこのようなバックエンドコンポーネントと、ミドルウェアコンポーネントと、フロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実施することができる。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によってシステムのコンポーネントを相互に接続されることができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)と、ワイドエリアネットワーク(WAN)と、インターネットと、ブロックチェーンネットワークを含む。
【0095】
コンピュータシステムは、クライアントとサーバを含むことができる。クライアントとサーバは、一般に、互いに離れており、通常に通信ネットワークを介してインタラクションする。対応するコンピュータ上で実行され、かつ互いにクライアント-サーバ関係を有するコンピュータプログラムによってクライアントとサーバとの関係が生成される。サーバはクラウドサーバであってもよく、クラウドコンピューティングサーバ又はクラウドホストとも呼ばれ、クラウドコンピューティングサービスシステムにおける1つのホスト製品であって、従来の物理ホストとVPSサービス(“Virtual Private Server”,又は“VPS”と省略する)に存在する管理の難しさ、業務拡張性の弱いという欠陥を解決した。サーバは分散システムのサーバであってもよく、又はブロックチェーンと組み合わせたサーバであってもよい。
【0096】
なお、上記に示される様々な形式のフローを使用して、ステップを並べ替え、追加、又は削除することができることを理解されたい。例えば、本出願に記載されている各ステップは、並列に実行されてもよいし、順次実行されてもよいし、異なる順序で実行されてもよいが、本出願で開示されている技術案の所望の結果を実現することができれば、本明細書では限定されない。
【0097】
上記具体的な実施形態は、本出願の保護範囲を制限するものではない。当業者は、設計要件と他の要因に応じて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができると理解すべきである。任意の本出願の精神と原則内で行われる修正、同等の置換、及び改善などは、いずれも本出願の保護範囲内に含まれなければならない。
図1
図2
図3
図4
図5