(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024043504
(43)【公開日】2024-03-29
(54)【発明の名称】ニューラルネットワークモデル推論の加速方法、装置、電子機器及び媒体
(51)【国際特許分類】
G06N 3/0495 20230101AFI20240322BHJP
【FI】
G06N3/0495
【審査請求】有
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023145330
(22)【出願日】2023-09-07
(31)【優先権主張番号】202211133732.9
(32)【優先日】2022-09-16
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】523342159
【氏名又は名称】南京地平▲線▼集成▲電▼路有限公司
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】ユーシュー ガオ
(72)【発明者】
【氏名】シューチアン チュイ
(72)【発明者】
【氏名】ウェン ダイ
(72)【発明者】
【氏名】カイウェン コン
(57)【要約】
【課題】本開示は、ニューラルネットワークモデル推論の加速方法、装置、電子機器及び記憶媒体に関する。
【解決手段】この方法は、画像トレーニングデータ、テキストトレーニングデータ又は音声トレーニングデータを取得し、加速対象である第1のニューラルネットワークモデルを決定し、第1のニューラルネットワークモデルのプリセット演算を目標演算の演算ロジック模擬用の第1の演算に変換して第2のニューラルネットワークモデルを得、第2のニューラルネットワークモデルをプリセットビット幅に従って量子化感知トレーニングして量子化の第3のニューラルネットワークモデルを得、第3のニューラルネットワークモデルの第1の演算を目標演算に変換して、第1のニューラルネットワークモデルに対応する加速された目標ニューラルネットワークモデルを得る。
【選択図】
図2
【特許請求の範囲】
【請求項1】
画像トレーニングデータ、テキストトレーニングデータ又は音声トレーニングデータを取得するステップと、
加速対象である第1のニューラルネットワークモデルを決定するステップと、
前記第1のニューラルネットワークモデルにおけるプリセットネットワーク層のプリセット演算を、目標演算の演算ロジックを模擬するための第1の演算に変換して、第2のニューラルネットワークモデルを取得するステップと、
前記画像トレーニングデータ、前記テキストトレーニングデータ又は前記音声トレーニングデータに基づいて、ニューラルネットワークアクセラレータがデータ処理を行うことをサポートするビット幅であるプリセットビット幅に従って、前記第2のニューラルネットワークモデルに対して量子化感知トレーニングを行って、量子化された第3のニューラルネットワークモデルを得るステップと、
前記第3のニューラルネットワークモデルの前記第1の演算を前記目標演算に変換して、前記第1のニューラルネットワークモデルに対応する加速された目標ニューラルネットワークモデルを取得するステップと、を含む、
ことを特徴とするニューラルネットワークモデル推論の加速方法。
【請求項2】
前記目標演算は、テーブルルックアップ操作であり、
前記第1の演算は、
前記第1の演算の第1の入力データが属する第1のサブ範囲を決定するステップと、
プリセット方式に基づいて、それぞれ前記第1のサブ範囲の両端点に対応する演算結果を決定するステップと、
前記第1の入力データ、前記第1のサブ範囲及びそれぞれ前記第1のサブ範囲の両端点に対応する演算結果に基づいて、線形補間方式を用いて前記第1の入力データに対応する第1の演算結果を取得するステップと、を含む、
ことを特徴とする請求項1に記載のニューラルネットワークモデル推論の加速方法。
【請求項3】
前記目標演算は、テーブルルックアップ操作であり、
前記方法は、加速対象である第1のニューラルネットワークモデルを決定するステップの後に、
前記第1のニューラルネットワークモデルのトレーニングプロセスにおける前記プリセット演算の入力データに基づいて、第1の入力範囲を決定するステップと、
プリセットセグメント数に基づいて、前記第1の入力範囲をセグメント化して、前記プリセットセグメント数に相当するサブ範囲を取得するステップと、
各前記サブ範囲に対して、前記プリセット演算に基づいて、それぞれ前記サブ範囲の両端点に対応する演算結果を決定するステップと、
前記テーブルルックアップ操作に用いられるように、各前記サブ範囲及びそれぞれ各前記サブ範囲の各端点に対応する演算結果を記憶するステップと、をさらに含む、
ことを特徴とする請求項1に記載のニューラルネットワークモデル推論の加速方法。
【請求項4】
加速対象である第1のニューラルネットワークモデルを決定するステップは、
プリセットトレーニングデータに基づいて予め構築されたニューラルネットワークをトレーニングして前記第1のニューラルネットワークモデルを取得するステップを含む、
ことを特徴とする請求項1に記載のニューラルネットワークモデル推論の加速方法。
【請求項5】
前記プリセット演算は、指数演算及び/又は対数演算を含む、
ことを特徴とする請求項1に記載のニューラルネットワークモデル推論の加速方法。
【請求項6】
画像データ、テキストデータ又は音声データである処理対象データを取得するステップと、
予め取得された第1のニューラルネットワークモデルに対応する加速された目標ニューラルネットワークモデルに基づいて、前記処理対象データに対応する出力データを決定するステップと、
を含み、
前記目標ニューラルネットワークモデルは、請求項1~5のいずれか一項に記載のニューラルネットワークモデル推論の加速方法に基づいて取得される、
ことを特定とするニューラルネットワークモデル推論の加速方法。
【請求項7】
前記目標演算は、テーブルルックアップ操作であり、
前記目標演算の演算プロセスは、
ルックアップ対象テーブルの入力データが属する目標サブ範囲を決定するステップと、
前記目標サブ範囲に基づいて、テーブルをルックアップしてそれぞれ前記目標サブ範囲の両端点に対応する演算結果を取得するステップと、
前記ルックアップ対象テーブルの入力データ、前記目標サブ範囲及びそれぞれ前記目標サブ範囲の両端点に対応する演算結果に基づいて、線形補間方式を用いて前記ルックアップ対象テーブルの入力データに対応する目標演算結果を取得するステップと、を含む、
ことを特徴とする請求項6に記載のニューラルネットワークモデル推論の加速方法。
【請求項8】
画像トレーニングデータ、テキストトレーニングデータ又は音声トレーニングデータを取得するための第1の取得モジュールと、
加速対象である第1のニューラルネットワークモデルを決定するための第1の決定モジュールと、
前記第1のニューラルネットワークモデルにおけるプリセットネットワーク層のプリセット演算を、目標演算の演算ロジックを模擬するための第1の演算に変換して、第2のニューラルネットワークモデルを取得するための第1の処理モジュールと、
前記画像トレーニングデータ、前記テキストトレーニングデータ又は前記音声トレーニングデータに基づいて、ニューラルネットワークアクセラレータがデータ処理を行うことをサポートするビット幅であるプリセットビット幅に従って、前記第2のニューラルネットワークモデルに対して量子化感知トレーニングを行って、量子化された第3のニューラルネットワークモデルを得るための第2の処理モジュールと、
前記第3のニューラルネットワークモデルの前記第1の演算を前記目標演算に変換して、前記第1のニューラルネットワークモデルに対応する加速された目標ニューラルネットワークモデルを取得するための第3の処理モジュールと、を含む、
ことを特徴とするニューラルネットワークモデル推論の加速装置。
【請求項9】
画像データ、テキストデータ又は音声データである処理対象データを取得するための第2の取得モジュールと、
予め取得された第1のニューラルネットワークモデルに対応する加速された目標ニューラルネットワークモデルに基づいて、前記処理対象データに対応する出力データを決定するための第4の処理モジュールと、
を含み、
前記目標ニューラルネットワークモデルは、請求項1~5のいずれか一項に記載のニューラルネットワークモデル推論の加速方法により取得される、
ことを特徴とするニューラルネットワークモデル推論の加速装置。
【請求項10】
コンピュータプログラムを記憶するコンピュータ読み取り可能な記憶媒体であって、
前記コンピュータプログラムは、請求項1~5のいずれか一項に記載のニューラルネットワークモデル推論の加速方法を実行する、
ことを特徴とするコンピュータ読み取り可能な記憶媒体。
【請求項11】
プロセッサと、
前記プロセッサが実行可能なコマンドを記憶するためのメモリと、
を含み、
前記プロセッサは、前記メモリから前記実行可能なコマンドを読み取ってこのコマンドを実行することにより、請求項1~5のいずれか一項に記載のニューラルネットワークモデル推論の加速方法を実現する、
ことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、人工知能の技術に関し、特にニューラルネットワークモデル推論の加速方法、装置、電子機器及び媒体に関する。
【背景技術】
【0002】
深層学習分野において、例えばsoftmax、sigmoid、swishなどの関数は、ニューラルネットワークモデルにおける非常に重要な部分であるが、これらの関数の演算が複雑であり、計算コストが高いため、ニューラルネットワークモデルの推論速度が遅くなってしまう。この問題を解決するために、関連技術においては、一般にこれらの複雑な演算を簡略化し、例えば複数のテーブルルックアップの組み合わせ及びテーブルルックアップ結果の四則演算によってsoftmaxの計算を実現して、計算コストを削減する。しかし、従来のこのような簡略化方式は、モデル精度が低くなってしまう。
【発明の概要】
【発明が解決しようとする課題】
【0003】
上記簡略化方式によるモデル精度が低くなってしまうなどの技術的問題を解決するために、本開示を提出する。本開示の実施例は、ニューラルネットワークモデル推論の加速方法、装置、電子機器及び媒体を提供する。
【課題を解決するための手段】
【0004】
本開示の実施例の一態様に係るニューラルネットワークモデル推論の加速方法は、画像トレーニングデータ、テキストトレーニングデータ又は音声トレーニングデータを取得するステップと、加速対象である第1のニューラルネットワークモデルを決定するステップと、前記第1のニューラルネットワークモデルにおけるプリセットネットワーク層のプリセット演算を、目標演算の演算ロジックを模擬するための第1の演算に変換して、第2のニューラルネットワークモデルを取得するステップと、前記画像トレーニングデータ、前記テキストトレーニングデータ又は前記音声トレーニングデータに基づいて、ニューラルネットワークアクセラレータがデータ処理を行うことをサポートするビット幅であるプリセットビット幅に従って、前記第2のニューラルネットワークモデルに対して量子化感知トレーニングを行って、量子化された第3のニューラルネットワークモデルを得るステップと、前記第3のニューラルネットワークモデルの前記第1の演算を前記目標演算に変換して、前記第1のニューラルネットワークモデルに対応する加速された目標ニューラルネットワークモデルを取得するステップと、を含む。
【0005】
本開示の実施例の他の態様に係るニューラルネットワークモデル推論の加速方法は、画像データ、テキストデータ又は音声データである処理対象データを取得するステップと、予め取得された第1のニューラルネットワークモデルに対応する加速された目標ニューラルネットワークモデルに基づいて、前記処理対象データに対応する出力データを決定するステップと、を含み、前記目標ニューラルネットワークモデルは、上記いずれかの実施例に係るニューラルネットワークモデル推論の加速方法に基づいて取得される。
【0006】
本開示の実施例の更なる態様に係るニューラルネットワークモデル推論の加速装置は、画像トレーニングデータ、テキストトレーニングデータ又は音声トレーニングデータを取得するための第1の取得モジュールと、加速対象である第1のニューラルネットワークモデルを決定するための第1の決定モジュールと、前記第1のニューラルネットワークモデルにおけるプリセットネットワーク層のプリセット演算を、目標演算の演算ロジックを模擬するための第1の演算に変換して、第2のニューラルネットワークモデルを取得するための第1の処理モジュールと、前記画像トレーニングデータ、前記テキストトレーニングデータ又は前記音声トレーニングデータに基づいて、ニューラルネットワークアクセラレータがデータ処理を行うことをサポートするビット幅であるプリセットビット幅に従って、前記第2のニューラルネットワークモデルに対して量子化感知トレーニングを行って、量子化された第3のニューラルネットワークモデルを得るための第2の処理モジュールと、前記第3のニューラルネットワークモデルの前記第1の演算を前記目標演算に変換して、前記第1のニューラルネットワークモデルに対応する加速された目標ニューラルネットワークモデルを取得するための第3の処理モジュールと、を含む。
【0007】
本開示の実施例の更なる態様に係るニューラルネットワークモデル推論の加速装置は、画像データ、テキストデータ又は音声データである処理対象データを取得するための第2の取得モジュールと、予め取得された第1のニューラルネットワークモデルに対応する加速された目標ニューラルネットワークモデルに基づいて、前記処理対象データに対応する出力データを決定するための第4の処理モジュールと、を含み、前記目標ニューラルネットワークモデルは、上記いずれかの実施例に係るニューラルネットワークモデル推論の加速方法に基づいて取得される。
【0008】
本開示の実施例の更なる態様に係るコンピュータ読み取り可能な記憶媒体は、コンピュータプログラムを記憶し、前記コンピュータプログラムは、本開示の上記いずれかの実施例に係るニューラルネットワークモデル推論の加速方法を実行する。
【0009】
本開示の実施例の更なる態様に係る電子機器は、プロセッサと、前記プロセッサ実行可能なコマンドを記憶するためのメモリとを含み、前記プロセッサは、前記メモリから前記実行可能なコマンドを読み取ってこのコマンドを実行することにより、本開示の上記いずれかの実施例に係るニューラルネットワークモデル推論の加速方法を実現する。
【0010】
本開示の実施例の更なる態様に係るコンピュータプログラム製品は、このコンピュータプログラム製品におけるコマンドがプロセッサにより実行されると、上記いずれかの実施例に係るニューラルネットワークモデル推論の加速方法が実現される。
【発明の効果】
【0011】
本開示の上記実施例に係るニューラルネットワークモデル推論の加速方法、装置、電子機器及び媒体によれば、ニューラルネットワークにおける複雑なプリセット演算を簡単な目標演算に変換し、量子化感知トレーニングのプロセスにおいて目標演算の演算ロジックを模擬することにより、トレーニングプロセスにおいて簡略化された目標演算による誤差を模擬することができ、それにより、目標ニューラルネットワークモデルは、演算を簡略化した条件で、モデルの精度が低下しないことを保証し、それにより、従来技術の簡略化方式によるモデル精度が低くなってしまうなどの問題を効果的に解決することができる。
【0012】
以下は図面及び実施例により、本開示の技術的解決手段についてさらに詳細に説明する。
【図面の簡単な説明】
【0013】
【
図1】本開示に係るニューラルネットワークモデル推論の加速方法の1つの例示的な応用シーンである。
【
図2】本開示の1つの例示的な実施例に係るニューラルネットワークモデル推論の加速方法のフローチャートである。
【
図3】本開示の1つの例示的な実施例に係る第1の演算のフローチャートである。
【
図4】本開示の別の例示的な実施例に係るニューラルネットワークモデル推論の加速方法のフローチャートである。
【
図5】本開示の更なる例示的な実施例に係るニューラルネットワークモデル推論の加速方法のフローチャートである。
【
図6】本開示の1つの例示的な実施例に係る目標演算のフローチャートである。
【
図7】本開示の1つの例示的な実施例に係るニューラルネットワークモデル推論の加速装置の構造概略図である。
【
図8】本開示の1つの例示的な実施例に係る第2の処理モジュール704の構造概略図である。
【
図9】本開示の別の例示的な実施例に係るニューラルネットワークモデル推論の加速装置の構造概略図である。
【
図10】本開示の更なる例示的な実施例に係るニューラルネットワークモデル推論の加速装置の構造概略図である。
【
図11】本開示の1つの例示的な実施例に係る第4の処理モジュール802の構造概略図である。
【
図12】本開示の電子機器の1つの応用実施例の構造概略図である。
【発明を実施するための形態】
【0014】
以下、図面を参照しながら、本開示の例示的な実施例について詳細に説明する。説明される実施例は、本開示の実施例の一部にすぎず、本開示のすべての実施例ではなく、本開示は、ここで説明される例示的な実施例によって制限されない。
【0015】
なお、特段の説明がない限り、これらの実施例に記載される部材やステップの相対配置、数式及び数値は、本開示の範囲を限定するものではない。
本開示の概要
【0016】
本開示を実現するプロセスでは、発明者らは、深層学習分野において、例えばsoftmax、sigmoid、swishなどの関数は、ニューラルネットワークモデルにおける非常に重要な部分であるが、これらの関数の演算が複雑であり、計算コストが高いため、ニューラルネットワークモデルの推論速度が遅くなってしまうことを発見した。この問題を解決するために、関連技術においては、一般にこれらの複雑な演算を簡略化し、例えば複数のテーブルルックアップの組み合わせ及びテーブルルックアップ結果の四則演算によってsoftmaxの計算を実現して、計算コストを削減する。しかし、従来のこのような簡略化方式は、モデル精度が低くなってしまう。
例示的な説明
【0017】
図1は、本開示に係るニューラルネットワークモデル推論の加速方法の1つの例示的な応用シーンである。
【0018】
Transformerシリーズのニューラルネットワークの目標検出応用シーンでは、一般にTransformerに基づく目標検出モデルを用いて検出対象画像に対して目標検出を行うことにより、検出結果を取得する。目標検出モデルのTransformerネットワークアーキテクチャのエンコーダ及びデコーダには、マルチヘッド自己注意(Multi-headed Self-attention、略称:MSA)ネットワークブロックが関与され、マルチヘッド自己注意ネットワークブロックの自己注意操作には、softmax関数が関与され、softmax関数の演算には、指数演算が含まれ、本開示のニューラルネットワークモデル推論の加速装置を用いて本開示のニューラルネットワークモデル推論の加速方法を実行することにより、当該目標検出モデルを加速対象である第1のニューラルネットワークモデルとすることができ、当該第1のニューラルネットワークモデルにおけるsoftmax層の指数演算を第1の演算に変換して、第2のニューラルネットワークモデルを取得し、第1の演算は、目標演算の演算ロジックを模擬するために用いられ、目標演算は、簡略化された演算であり、例えばテーブルルックアップ操作であり、画像トレーニングデータに基づいて、プリセットビット幅に従って、第2のニューラルネットワークモデルに対して量子化感知トレーニング(Quantization Aware Training)を行って、量子化された第3のニューラルネットワークモデルを得、プリセットビット幅は、ニューラルネットワークアクセラレータがデータ処理を行うことをサポートするビット幅であることができ、量子化感知トレーニング完了後、第3のニューラルネットワークモデルにおける第1の演算を目標演算に変換して、第1のニューラルネットワークモデルに対応する加速された目標ニューラルネットワークモデルを取得し、当該目標ニューラルネットワークモデルは、簡略化された目標演算に基づいてsoftmax層の指数演算を実現し、それにより計算量を低減することができ、量子化感知トレーニングプロセスにおいて簡略化された目標演算の演算ロジックを模擬し、それにより簡略化演算による誤差を模擬し、得られた目標ニューラルネットワークモデルは、比較的低い計算量によっても比較的高い精度を有し、従来の簡略化演算モデルの精度が比較的低いなどの問題を解決することができる。
例示的な方法
【0019】
図2は、本開示の1つの例示的な実施例に係るニューラルネットワークモデル推論の加速方法のフローチャートである。本実施例は、サーバ、端末などの電子機器に適用されることができ、
図2に示すように、当該方法は、ステップ201~ステップ205を含む。
【0020】
ステップ201では、画像トレーニングデータ、テキストトレーニングデータ又は音声トレーニングデータを取得する。
【0021】
ここで、画像トレーニングデータは、任意のシーンの画像データであってもよく、例えば自動運転シーンで収集された道路環境画像データ、医学画像データなどであり、具体的には実際のニーズに応じて設定されることができる。テキストトレーニングデータは、任意のシーンのテキストデータであってもよく、例えば任意のテキスト意味識別シーンを必要とするテキストデータであり、音声トレーニングデータは、任意のシーンの音声データであってもよく、例えばスマートホームで収集された音声制御用の音声データ、車両における音声制御用の音声データであり、具体的には実際のニーズに応じて設定されることができる。具体的にどのようなデータを取得するかは、実際に加速しようとするニューラルネットワークモデルに基づいて決定することができる。例えば、加速する必要があるニューラルネットワークモデルが自動運転シーン道路要素目標検出モデルであると、予め取得された道路環境画像データを取得して画像トレーニングデータとする。
【0022】
ステップ202では、加速対象である第1のニューラルネットワークモデルを決定する。
【0023】
ここで、第1のニューラルネットワークモデルは、任意の応用シーンのモデルであってもよく、第1のニューラルネットワークモデルは、予めトレーニングして得られた全精度モデルである。例えば、自動運転シーンの道路要素の目標検出モデルを加速する必要がある場合、当該目標検出モデルを加速対象である第1のニューラルネットワークモデルとする。第1のニューラルネットワークモデルは、ステップ201で取得したトレーニングデータと適合する必要があり、実際の応用において、トレーニングデータと第1のニューラルネットワークモデルとは、予め一定の記憶空間に記憶されることができ、例えば対応して記憶されること、又はアドレスによって関連付けられること、又はユーザの指定によりトレーニングデータのアドレス及び加速対象である第1のニューラルネットワークモデルを取得することなどであり、具体的には実際のニーズに応じて設定されることができ、本開示では限定されない。
【0024】
ステップ203では、第1のニューラルネットワークモデルにおけるプリセットネットワーク層のプリセット演算を、目標演算の演算ロジックを模擬するための第1の演算に変換して、第2のニューラルネットワークモデルを取得する。
【0025】
ここで、プリセットネットワーク層及びプリセットネットワーク層のプリセット演算は、実際のニーズに応じて設定されることができ、例えば、第1のニューラルネットワークモデルがTransformerに基づく目標検出モデルである場合、プリセットネットワーク層は、softmax層であってもよく、プリセット演算は、softmaxにおける指数演算であってもよく、又は、プリセットネットワーク層は、自己注意ネットワーク層であってもよく、プリセット演算は、自己注意ネットワーク層における指数演算である。また例えば、sigmoid活性化関数を有する第1のニューラルネットワークモデルについて、プリセットネットワーク層は、sigmoid活性化層であってもよく、プリセット演算は、sigmoid活性化層における指数演算であってもよく、具体的には限定しない。目標演算は、プリセット演算に対応する簡略化された演算であり、例えばテーブルルックアップ操作、線形フィッティング演算などであり、第1の演算は、目標演算の演算ロジックを模擬するために用いられ、例示的には、テーブルルックアップ操作において、まずルックアップ対象テーブルの入力データが属する目標サブ範囲を決定し、目標サブ範囲に基づいてテーブルをルックアップしてそれぞれ目標サブ範囲の両端点に対応する演算結果を取得し、それぞれ両端点に対応する演算結果に基づいて線形補間方式を用いてルックアップ対象テーブルの入力データに対応する目標演算結果を取得し、第1の演算において、まず第1の演算の第1の入力データが属する第1のサブ範囲を決定し、さらにそれぞれ第1のサブ範囲の両端点に対応する演算結果を決定し、さらにそれぞれ両端点に対応する演算結果に基づいて線形補間方式を用いて第1の入力データに対応する第1の演算結果を取得し、それにより目標演算の演算ロジックを模擬する。ここで、それぞれ第1のサブ範囲の両端点に対応する演算結果を決定することは、リアルタイム計算によって取得されてもよく、テーブルルックアップによって取得されてもよく、具体的には実際のニーズに応じて設定されることができる。
【0026】
実際の応用において、プリセットネットワーク層は、1種又は複数種のネットワーク層を含むことができ、プリセットアルゴリズムは、1種又は複数種のアルゴリズムを含むことができ、例えば1つのモデルにおいてsoftmax関数を含むだけでなく、sigmoid活性化関数も含む場合、プリセットネットワーク層は、softmax関数が位置する正規化ネットワーク層及びsigmoid活性化関数が位置する活性化層を含むことができ、プリセット演算は、softmaxにおける指数演算及びsigmoidにおける指数演算を含むことができ、具体的には実際のニーズに応じて設定されることができ、本開示では限定されない。いずれかのプリセットネットワーク層の計算の複雑なプリセット演算は、いずれも本開示の方法を用いてモデルの加速を実現することができる。
【0027】
ステップ201とステップ202~203とは、前後順序を問わない。
【0028】
ステップ204では、画像トレーニングデータ、テキストトレーニングデータ又は音声トレーニングデータに基づいて、ニューラルネットワークアクセラレータがデータ処理を行うことをサポートするビット幅であるプリセットビット幅に従って、第2のニューラルネットワークモデルに対して量子化感知トレーニングを行って、量子化された第3のニューラルネットワークモデルを得る。
【0029】
ここで、プリセットビット幅は、実際のニーズに応じて設定されることができ、例えば8ビット(bit)、16ビット、4ビット、2ビット、1ビットなどであり、具体的には8ビット整数型(int8)である。量子化感知トレーニングは、モデルに疑似量子化ノードを挿入し、量子化モデルが推論プロセスにおいて行う丸め(rounding)及びクランプ(clamping)操作を模擬し、それによりトレーニングプロセスにおいてモデルの量子化データに対する適応能力を向上させ、より高い量子化モデル精度を取得する。量子化対象は、重み(weight)、活性化関数(activation)出力、勾配(gradient)などを含むことができ、具体的には実際のニーズに応じて設定されることができる。量子化重み及び活性化関数出力は、モデルのメモリ占有空間を効果的に低減することができ、量子化勾配は、逆計算のオーバーヘッドを削減することができる。具体的にトレーニングデータとして画像トレーニングデータ、テキストトレーニングデータまたは音声トレーニングデータを採用するかは、第2のニューラルネットワークモデル又は前記第1のニューラルネットワークモデルの具体的な応用シーンに基づいて決定することができる。決定されたモデルについて、その量子化感知トレーニングに必要なトレーニングデータのタイプは、上記画像トレーニングデータ、テキストトレーニングデータ及び音声トレーニングデータのうちの1つに決定されている。ニューラルネットワークアクセラレータがデータ処理を行うことをサポートするビット幅は、ニューラルネットワークアクセラレータに基づいてニューラルネットワークの推論計算を実現する時に、ニューラルネットワークアクセラレータによりサポートされるネットワークパラメータ(例えば重み)、入力データ、出力データ、中間データ(例えば活性化関数出力)などのビット幅であり、例えばニューラルネットワークアクセラレータがint8のビット幅をサポートすると、ニューラルネットワークアクセラレータにおける各データ処理モジュールの入力にはint8のデータである必要があり、計算に用いられる重みもint8のデータであることなどである。具体的には実際のニーズに応じて設定されることができる。全精度のニューラルネットワークモデルがサポートするビット幅は、通常64ビット浮動小数点数(float64)又は32ビット浮動小数点数(float32)である。ニューラルネットワークアクセレレータに基づいて当該ニューラルネットワークモデルの推論速度を加速することができるために、全精度のニューラルネットワークモデルの各種データをニューラルネットワークアクセレレータがサポートするビット幅に量子化する必要があり、それにより、ニューラルネットワークアクセレレータがデータ処理を行うことをサポートするビット幅に従って、全精度のニューラルネットワークモデルを量子化することにより、量子化されたニューラルネットワークモデルをニューラルネットワークアクセレレータに配置して推論計算を行うことができ、ニューラルネットワークモデルの推論を加速するという目的を達成し、低ビット量子化されたニューラルネットワークモデルの占有メモリ空間がより小さく、それにより推論プロセスのメモリ占有を効果的に低減させることができる。
【0030】
実際の応用において、モデルの重み、活性化関数出力及び勾配の量子化は、同じ又は異なるプリセットのビット幅に設定されることができ、具体的には実際のニーズに応じて設定されることができ、本開示では限定されない。
【0031】
選択的には、量子化感知トレーニングのプロセスでは、モデル正逆伝播計算及び疑似量子化ノード計算は、浮動小数点数計算で実現されることができ、プリセットビット幅の固定小数点相関規則(例えば丸め及びクランプ)に従えばよく、トレーニング完了後、真の固定小数点モデルに再度量子化し、第3のニューラルネットワークモデルとする。
【0032】
例示的には、量子化感知トレーニングのプロセスでは、浮動小数点数「0.1」は、固定小数点数「1」を表し、浮動小数点数「0.2」は、固定小数点数「2」を表し、このように類推し、浮動小数点数と固定小数点数とが一定の倍数関係を有するようにし、且つトレーニングプロセスにおいて固定小数点数の規則に従い、例えば固定小数点数が「3.5」である場合切り上げ又は切り捨てて「4」又は「3」との整数とし、浮動小数点数「0.35」を「0.4」又は「0.3」に変換し、それにより、固定小数点数規則を満たす浮動小数点数を採用してネットワーク損失を決定して、演算の簡略化による損失を模擬し、トレーニング完了後、モデル数値変換によって浮動小数点モデルを固定小数点モデルに変換して、モデル精度が低下しない。
【0033】
ステップ205では、第3のニューラルネットワークモデルの第1の演算を目標演算に変換して、第1のニューラルネットワークモデルに対応する加速された目標ニューラルネットワークモデルを取得する。
【0034】
ここで、第1の演算は、目標演算の演算ロジックを模擬したものであり、量子化感知トレーニング完了後、第3のニューラルネットワークモデルの第1の演算を直接目標演算に変換することができ、変換された目標ニューラルネットワークモデルは、第3のニューラルネットワークモデルと同じ精度を有し、それによりモデル計算量を低減した場合でも、モデルの精度が低下しないことを実現することができる。
【0035】
例示的には、softmax関数は、以下のように表される。
【数1】
その指数演算F(x)=e
xをテーブルルックアップ操作に変換した後に以下のように計算する。
F(x)=LUT
exp(x)
ここで、LUT(Look Up Table)は、テーブルルックアップ操作を表し、LUT
exp(x)は、入力されたxに対してテーブルルックアップ操作を行って、その対応する指数演算結果を取得したことを表し、具体的には、まずxのテーブル内に属する区間を決定し、テーブルをルックアップして当該区間の両端点に対応する指数演算結果を取得し、当該両端点に対応する指数演算結果に基づき、線形補間を行ってxに対応する指数演算結果を取得する。コンピュータが指数関数の値を計算する(例えば、テイラー数展開方式又は他の可能な方式により計算する)時の計算量が非常に大きいので、テーブルルックアップ操作に変換して、簡単な照合、ルックアップ及び線形補間だけで指数演算結果を迅速に取得することができ、それにより、モデル計算量を効果的に低減させ、モデルの推論速度を向上させることができる。
【0036】
本実施例に係るニューラルネットワークモデル推論の加速方法は、ニューラルネットワークにおける複雑なプリセット演算を簡単な目標演算に変換し、量子化感知トレーニングのプロセスにおいて目標演算の演算ロジックを模擬することにより、トレーニングプロセスにおいて簡略化された目標演算による誤差を模擬することができ、それにより、目標ニューラルネットワークモデルは、演算を簡略化した条件で、モデルの精度が低下しないことを保証し、それにより、従来技術の簡略化方式によるモデル精度が低くなってしまうなどの問題を効果的に解決することができる。
【0037】
図3は、本開示の1つの例示的な実施例に係る第1の演算のフローチャートである。
【0038】
1つの選択可能な例では、目標演算は、テーブルルックアップ操作であり、第1の演算は、具体的にステップ301~ステップ303を含むことができる。
【0039】
ステップ301では、第1の演算の第1の入力データが属する第1のサブ範囲を決定する。
【0040】
ここで、第1のニューラルネットワークモデルのトレーニングプロセスにおいてプリセット演算の入力データに基づき、第1の入力範囲を決定し、第1の入力範囲を複数のサブ範囲に分割し、各サブ範囲の端点に対応する演算結果を計算して取得し、各サブ範囲及び各サブ範囲の端点に対応する演算結果を記憶し、又は、各サブ範囲を記憶し、具体的には実際のニーズに応じて設定されることができる。それにより、第1の演算を行う必要がある場合、第1の入力データと各サブ範囲の端点との比較により、第1の入力データが属する第1のサブ範囲を決定することができる。
【0041】
ステップ302では、プリセット方式に基づいて、それぞれ第1のサブ範囲の両端点に対応する演算結果を決定する。
【0042】
ここで、プリセット方式は、計算及びテーブルルックアップという2種類の方式を含むことができ、第2のニューラルネットワークモデルは、量子化感知トレーニングに用いられるため、トレーニング中の実際の演算時にそれぞれ第1のサブ範囲の両端点に対応する演算結果をリアルタイムに計算することもでき、それぞれ各サブ範囲の端点に対応する演算結果を予め計算して記憶することもでき、演算時に記憶領域からそれぞれ第1のサブ範囲の両端点に対応する演算結果を直接取得することができる。いずれの方式を採用しても、第1の演算が目標演算の演算ロジックを模擬する精度に影響しない。量子化感知トレーニングの計算量をさらに低減するために、テーブルルックアップの方式を用いてそれぞれ第1のサブ範囲の両端点に対応する演算結果を決定することができる。
【0043】
ステップ303では、第1の入力データ、第1のサブ範囲及びそれぞれ第1のサブ範囲の両端点に対応する演算結果に基づいて、線形補間方式を用いて第1の入力データに対応する第1の演算結果を取得する。
【0044】
ここで、線形補間方式は、補間関数が一次多項式である補間方式であり、具体的な補間原理についてはその説明を省略する。テーブルルックアップ操作の演算ロジックを模擬するために、それぞれ第1のサブ範囲の両端点に対応する演算結果を決定した後、それぞれ第1のサブ範囲の両端点に対応する演算結果に基づいて、第1の入力データにおいて線形補間を行って、第1の入力データに対応する第1の演算結果を取得する。
【0045】
本開示は、第2のニューラルネットワークモデルにおいて第1の演算を用いてテーブルルックアップ操作を模擬することにより、量子化感知トレーニングのプロセスでは、テーブルルックアップ操作による誤差を模擬することができ、トレーニングが完了すると、モデルは、量子化データにおいて同様に第1のニューラルネットワークモデルと同じ又は類似する比較的高い精度を達成することができ、テーブルルックアップ操作によるモデル精度は顕著に低下しない。
【0046】
図4は、本開示の別の例示的な実施例に係るニューラルネットワークモデル推論の加速方法のフローチャートである。
【0047】
1つの選択可能な例では、目標演算は、テーブルルックアップ操作であり、本開示の方法は、加速対象である第1のニューラルネットワークモデルを決定するステップ202の後に、ステップ401~ステップ404をさらに含むことができる。
【0048】
ステップ401では、第1のニューラルネットワークモデルのトレーニングプロセスにおけるプリセット演算の入力データに基づいて、第1の入力範囲を決定する。
【0049】
ここで、トレーニングにより第1のニューラルネットワークモデルを取得するプロセスでは、プリセット演算の入力データを記録し、トレーニングプロセスに記録されたプリセット演算の入力データの範囲を総合して第1の入力範囲を決定することができる。
【0050】
実際の応用において、第1の入力範囲が量子化感知トレーニングプロセスに応用されるテーブルルックアップ操作であるため、第1のニューラルネットワークモデルのプリセット演算の入力データは、浮動小数点数であり、浮動小数点数の入力データに基づき、量子化感知トレーニングに適する第1の入力範囲を決定することができ、例えば第2のニューラルネットワークモデルにおいて、第1の演算の入力がプリセットビット幅を模擬する固定小数点数「2」の浮動小数点数「0.2」であり、プリセット演算の入力データの範囲が「0.001-0.999」であると、第1の入力範囲を「0.0-1.0」と決定することができ、具体的には実際のニーズに応じて設定されることができる。
【0051】
ステップ402では、プリセットセグメント数に基づいて、第1の入力範囲をセグメント化して、プリセットセグメント数に相当するサブ範囲を取得する。
【0052】
ここで、プリセットセグメント数は、実際のニーズに応じて設定されることができ、例えば、100セグメント、50セグメント、20セグメントなどに設定されることができ、本開示の実施例では限定されない。
【0053】
例示的には、「0.0-1.0」を「0.0-0.2、0.2-0.4、0.4-0.6、0.6-0.8、0.8-1.0」との5つのサブ範囲に分割することができ、具体的な各サブ範囲の分割方式は、実際のニーズに応じて設定されることができ、等ピッチ分割であっても非等ピッチ分割であってもよく、本開示の実施例では限定されない。
【0054】
ステップ403では、各サブ範囲に対して、プリセット演算に基づいて、それぞれサブ範囲の両端点に対応する演算結果を決定する。
【0055】
ここで、各サブ範囲の両端点の演算結果は、プリセット演算計算に基づいて取得されることができ、例えば、指数演算であり、指数演算に基づいて各サブ範囲の両端点の正確な演算結果を計算することができる。
【0056】
ステップ404では、テーブルルックアップ操作に用いられるように、各サブ範囲及びそれぞれ各サブ範囲の各端点に対応する演算結果を記憶する。
【0057】
ここで、それぞれ各サブ範囲の各端点に対応する演算結果を予め記憶した後、量子化感知トレーニングのプロセスでは、第1の演算を行う時に、第1の演算の第1の入力データが属する第1のサブ範囲を決定した後、テーブルルックアップに基づいてそれぞれ第1のサブ範囲の両端点に対応する演算結果を決定し、さらに両端点の演算結果に基づいて線形補間を行って第1の入力データに対応する第1の演算結果を取得し、それにより、量子化感知トレーニング中にテーブルルックアップ操作の演算ロジックを模擬することを実現し、後続の目標演算に変換した後にモデル精度が低下しないことを保証することができる。
【0058】
本開示は、第1の演算の入力データ範囲をセグメント化することにより、テーブルルックアップ操作に用いられる各サブ範囲及びそれぞれ各サブ範囲に対応する演算結果を決定して記憶し、それにより、量子化感知トレーニングのプロセスでは、第1の演算に対して、テーブルルックアップ操作によりその第1の入力データが属する第1のサブ範囲の両端点の演算結果を取得し、さらに線形補間に基づいて第1の入力データに対応する第1の演算結果を取得して、量子化感知トレーニングプロセスの計算量を低減させ、トレーニング効率を向上させることができる。
【0059】
1つの選択可能な例では、加速対象である第1のニューラルネットワークモデルを決定するステップ202は、ステップ2021を含む。
【0060】
ステップ2021では、プリセットトレーニングデータに基づいて予め構築されたニューラルネットワークをトレーニングして第1のニューラルネットワークモデルを取得する。
【0061】
ここで、プリセットトレーニングデータは、画像トレーニングデータ、テキストトレーニングデータ又は音声トレーニングデータであることができ、具体的には第1のニューラルネットワークモデルの応用シーンに基づいて決定される。当該プリセットトレーニングデータは、前記量子化感知トレーニングに用いられるトレーニングデータであることができ、量子化感知トレーニングのトレーニングデータより多いトレーニングデータであることができ、具体的には実際のニーズに応じて設定されることができ、本開示の実施例では限定されない。予め構築されたニューラルネットワークは、実際のニーズに応じて設定されることができ、例えば目標検出に用いられるTransformerネットワーク又は他の実施可能なネットワークであることができる。第1のニューラルネットワークモデルのトレーニングプロセスは、以下のとおりである。プリセットトレーニングデータをニューラルネットワークの入力とし、ニューラルネットワークの出力を取得し、プリセットトレーニングデータに対応するタグデータ及びニューラルネットワークの出力に基づいてネットワーク損失を決定し、ネットワーク損失に基づいてネットワークパラメータを調整し、このような過程をネットワーク損失がプリセット条件を満たすまで実行し、ネットワーク損失がプリセット条件を満たすとトレーニングを終了し、第1のニューラルネットワークモデルを取得する。具体的なトレーニングプロセスは、実際のニーズに応じて設定されることができ、本開示の実施例では限定されない。
【0062】
1つの選択可能な例では、プリセット演算は、指数演算及び/又は対数演算を含む。
【0063】
1つの選択可能な例では、プリセット演算は、指数演算、対数演算以外の他の複雑な演算を含むこともでき、具体的には実際のニーズに応じて設定されることができる。
【0064】
本開示の各実施例及び各選択可能な例は、単独で実施されることもでき、衝突しない状況では任意の組み合わせ方式で結合して実施されることができる。
【0065】
本開示は、ニューラルネットワークモデルにおけるプリセット演算を、テーブルルックアップ操作を模擬する第1の演算に変換することにより、量子化感知トレーニングを行い、それによりトレーニングプロセスで簡略化された目標演算の演算ロジックを模擬し、それにより第1の演算を量子化された目標演算に変換した後、新たな誤差が発生せず、それによりモデル精度が低下しないことを保証し、モデル精度を保証する条件で、簡単なテーブルルックアップ操作により複雑な関数の効率的な計算を実現することができる。目標ニューラルネットワークモデルをニューラルネットワークアクセレレータに配置して処理する時に、ニューラルネットワークアクセレレータがサポートするビット幅に従って量子化感知トレーニングを行うため、配置段階にも新たな誤差が発生せず、さらにハードウェア加速でのモデル精度を保証し、ニューラルネットワークトレーニングと配置の精度の一致性を実現することができる。
【0066】
図5は、本開示の更なる例示的な実施例に係るニューラルネットワークモデル推論の加速方法のフローチャートである。本実施例は、サーバ、端末などの電子機器に適用されることができる。
図5に示すように、本実施例の方法は、ステップ501~ステップ502を含む。
【0067】
ステップ501では、画像データ、テキストデータ又は音声データである処理対象データを取得する。
【0068】
ここで、処理対象データの具体的なタイプは、実際のニーズに応じて決定されることができる。例えば、第1のニューラルネットワークモデルが自動運転シーンの道路要素検出モデルである場合、処理対象データは、収集された道路環境画像データである。
【0069】
ステップ502では、予め取得された第1のニューラルネットワークモデルに対応する加速された目標ニューラルネットワークモデルに基づいて、処理対象データに対応する出力データを決定する。
【0070】
ここで、目標ニューラルネットワークモデルは、上記いずれかの実施例又は選択可能な例のニューラルネットワークモデル推論の加速方法に基づいて取得され、具体的には上記内容を参照すればよいので、その説明を省略する。具体的な目標ニューラルネットワークモデルの推論プロセスについて、その説明を省略する。
【0071】
本開示は、加速された目標ニューラルネットワークモデルによってデータ処理を行い、簡略化された目標演算に基づいて複雑なプリセット演算に対する高効率な処理を実現し、モデル精度を保証することができる場合、データ処理効率を効果的に向上させることができる。
【0072】
1つの選択可能な例では、
図6は、本開示の1つの例示的な実施例に係る目標演算のフローチャートである。目標演算はテーブルルックアップ操作であり、目標演算の演算プロセスは、ステップ601~ステップ603を含む。
【0073】
ステップ601では、ルックアップ対象テーブルの入力データが属する目標サブ範囲を決定する。
【0074】
ここで、目標サブ範囲は、上述第1の入力範囲におけるサブ範囲であってもよく、量子化感知トレーニングプロセスの第1の演算の入力データの範囲に基づいて決定された第2の入力範囲を分割して得られたサブ範囲における1つのサブ範囲であってもよく、具体的には実際のニーズに応じて設定されることができる。
【0075】
実際の応用において、目標ニューラルネットワークモデルは、量子化されたモデルであるため、各サブ範囲は、目標ニューラルネットワークモデルの目標演算に適する入力データタイプのサブ範囲であることができ、例えば、目標ニューラルネットワークモデルがint8である場合、各サブ範囲の端点は、int8タイプであることができ、具体的には実際のニーズに応じて設定されることができる。
【0076】
ステップ602では、目標サブ範囲に基づいて、テーブルをルックアップしてそれぞれ目標サブ範囲の両端点に対応する演算結果を取得する。
【0077】
当該ステップのテーブルルックアップ原理は、上記内容を参照すればよいので、その説明を省略する。
【0078】
ステップ603では、ルックアップ対象テーブルの入力データ、目標サブ範囲及びそれぞれ目標サブ範囲の両端点に対応する演算結果に基づいて、線形補間方式を用いてルックアップ対象テーブルの入力データに対応する目標演算結果を取得する。
【0079】
当該ステップの具体的な操作は、上記内容を参照すればよいので、その説明を省略する。
【0080】
本開示は、テーブルルックアップにより複雑なプリセット演算に対する高効率な処理を実現し、モデル精度を保証することができる場合、データ処理効率を効果的に向上させることができる。
【0081】
本開示の実施例に係るニューラルネットワークモデル推論の加速方法は、端末機器及びサーバなどを含むがこれらに限定されず、データ処理能力を有する任意の適切な機器で実行されてもよい。又は、本開示の実施例に係るいずれかのニューラルネットワークモデル推論の加速方法は、プロセッサにより実行されることもでき、例えば、プロセッサは、メモリに記憶されている対応するコマンドを呼び出すことにより、本開示の実施例に係るいずれかのニューラルネットワークモデル推論の加速方法を実行することができる。以下、その説明を省略する。
例示的な装置
【0082】
図7は本開示の1つの例示的な実施例に係るニューラルネットワークモデル推論の加速装置の構造概略図である。当該実施例の装置は本開示に対応する方法の実施例を実現するために用いられてもよく、
図7に示す装置は、第1の取得モジュール701、第1の決定モジュール702、第1の処理モジュール703、第2の処理モジュール704及び第3の処理モジュール705を含む。
【0083】
第1の取得モジュール701は、画像トレーニングデータ、テキストトレーニングデータ又は音声トレーニングデータを取得するためのものであり、第1の決定モジュール702は、加速対象である第1のニューラルネットワークモデルを決定するためのものであり、第1の処理モジュール703は、第1の決定モジュール702により決定された前記第1のニューラルネットワークモデルにおけるプリセットネットワーク層のプリセット演算を、目標演算の演算ロジックを模擬するための第1の演算に変換して第2のニューラルネットワークモデルを取得するためのものであり第2の処理モジュール704は、前記画像トレーニングデータ、前記テキストトレーニングデータ又は前記音声トレーニングデータに基づいて、ニューラルネットワークアクセラレータがデータ処理を行うことをサポートするビット幅であるプリセットビット幅に従って、第1の処理モジュール703により取得された前記第2のニューラルネットワークモデルに対して量子化感知トレーニングを行って、量子化された第3のニューラルネットワークモデルを得るためのものであり、第3の処理モジュール705は、第2の処理モジュール704により取得された前記第3のニューラルネットワークモデルの前記第1の演算を前記目標演算に変換して、前記第1のニューラルネットワークモデルに対応する加速された目標ニューラルネットワークモデルを取得するためのものである。
【0084】
1つの選択可能な例では、
図8は、本開示の1つの例示的な実施例に係る第2の処理モジュール704の構造概略図である。本例において、前記目標演算は、テーブルルックアップ操作であり、第2の処理モジュール704は、第1の決定ユニット7041、第2の決定ユニット7042及び第1の処理ユニット7043を含む。
【0085】
第1の決定ユニット7041は、前記第1の演算の第1の入力データが属する第1のサブ範囲を決定するためのものであり、第2の決定ユニット7042は、プリセット方式に基づいて、それぞれ前記第1のサブ範囲の両端点に対応する演算結果を決定するためのものであり、第1の処理ユニット7043は、前記第1の入力データ、前記第1のサブ範囲及びそれぞれ前記第1のサブ範囲の両端点に対応する演算結果に基づいて、線形補間方式を用いて前記第1の入力データに対応する第1の演算結果を取得するためのものである。
【0086】
図9は、本開示の別の例示的な実施例に係るニューラルネットワークモデル推論の加速装置の構造概略図である。
【0087】
1つの選択可能な例では、前記目標演算は、テーブルルックアップ操作であり、本開示の装置は、第2の決定モジュール706、第3の決定モジュール707、第4の決定モジュール708及び第5の処理モジュール709をさらに含む。
【0088】
第2の決定モジュール706は、前記第1のニューラルネットワークモデルのトレーニングプロセスにおける前記プリセット演算の入力データに基づいて、第1の入力範囲を決定するためのものであり、第3の決定モジュール707は、プリセットセグメント数に基づいて、前記第1の入力範囲をセグメント化して、前記プリセットセグメント数に相当するサブ範囲を取得するためのものであり、第4の決定モジュール708は、各前記サブ範囲に対して、前記プリセット演算に基づいて、それぞれ前記サブ範囲の両端点に対応する演算結果を決定するためのものであり、第5の処理モジュール709は、前記テーブルルックアップ操作に用いられるように、各前記サブ範囲及びそれぞれ各前記サブ範囲の各端点に対応する演算結果を記憶するためのものである。
【0089】
1つの選択可能な例では、第1の決定モジュール702は、プリセットトレーニングデータに基づいて予め構築されたニューラルネットワークをトレーニングして前記第1のニューラルネットワークモデルを取得するための第2の処理ユニット7021を含む。
【0090】
1つの選択可能な例では、前記プリセット演算は、指数演算及び/又は対数演算を含む。
【0091】
図10は、本開示の更なる例示的な実施例に係るニューラルネットワークモデル推論の加速装置の構造概略図である。当該実施例の装置は、本開示における対応する方法の実施例を実現するためのものであり、
図10に示す装置は、第2の取得モジュール801及び第4の処理モジュール802を含む。
【0092】
第2の取得モジュール801は、画像データ、テキストデータ又は音声データである処理対象データを取得するためのものであり、第4の処理モジュール802は、予め取得された第1のニューラルネットワークモデルに対応する加速された目標ニューラルネットワークモデルに基づいて、前記処理対象データに対応する出力データを決定するためのものであり、前記目標ニューラルネットワークモデルは、上記いずれかの実施例又は選択可能な例に係るニューラルネットワークモデル推論の加速方法に基づいて取得される。
【0093】
図11は、本開示の1つの例示的な実施例に係る第4の処理モジュール802の構造概略図である。
【0094】
1つの選択可能な例では、前記目標演算は、テーブルルックアップ操作であり、第4の処理モジュール802は、第3の決定ユニット8021、第3の処理ユニット8022及び第4の処理ユニット8023を含む。
【0095】
第3の決定ユニット8021は、ルックアップ対象テーブルの入力データが属する目標サブ範囲を決定するためのものであり、第3の処理ユニット8022は、前記目標サブ範囲に基づいて、テーブルをルックアップしてそれぞれ前記目標サブ範囲の両端点に対応する演算結果を取得するためのものであり、第4の処理ユニット8023は、前記ルックアップ対象テーブルの入力データ、前記目標サブ範囲及びそれぞれ前記目標サブ範囲の両端点に対応する演算結果に基づいて、線形補間方式を用いて前記ルックアップ対象テーブルの入力データに対応する目標演算結果を取得するためのものである。
例示的な電子機器
【0096】
本開示の実施例に係る電子機器は、コンピュータプログラムを記憶するためのメモリと、
前記メモリに記憶されているコンピュータプログラムを実行するためのものであり、前記コンピュータプログラムが実行されると、本開示の上記いずれかの実施例に記載のニューラルネットワークモデル推論の加速方法を実現するプロセッサと、を含む。
【0097】
図12は、本開示の電子機器の1つの応用実施例の構造概略図である。本実施例では、当該電子機器10は、1つ又は複数のプロセッサ11と、メモリ12と、を含む。
【0098】
プロセッサ11は、中央処理ユニット(CPU)又はデータ処理能力及び/又はコマンド実行能力を有する他の形式の処理ユニットであることができ、また電子機器10における他の構成要素を制御して所望の機能を実行することができる。
【0099】
メモリ12は、1つ又は複数のコンピュータプログラム製品を含むことができ、前記コンピュータプログラム製品は、例えば揮発性メモリ及び/又は不揮発性メモリなどの様々な形態のコンピュータ読み取り可能な記憶媒体を含むことができる。揮発性メモリは、例えばランダムアクセスメモリ(RAM)及び/又はキャッシュメモリ(cache)などを含むことができる。不揮発性メモリは、例えば、リードオンリメモリ(ROM)、ハードディスク、フラッシュメモリなどを含むことができる。コンピュータ読み取り可能な記憶媒体には1つ又は複数のコンピュータプログラムコマンドが記憶されることができ、プロセッサ11は、前記プログラム命令を実行することで、上述した本開示の各実施例における方法及び/又は他の期待される機能を実現することができる。
【0100】
一例では、電子機器10は、バスシステム及び/又は他の形態の接続機構(図示せず)を介して互に接続される入力装置13と出力装置14とをさらに含むことができる。
【0101】
例えば、当該入力装置13は、例えば、上述したマイクロフォンやマイクロフォンアレイであり、音源の入力信号を捕捉するために用いられることができる。
【0102】
また、当該入力装置13は、例えば、キーボードやマウスなどを含むことができる。
【0103】
当該出力装置14は、外部に様々な情報を出力することができ、例えば、ディスプレイ、スピーカ、プリンタ、並びに通信ネットワーク及びそれに接続される遠隔出力機器などを含むことができる。
【0104】
もちろん、説明の便宜上、
図12においては、当該電子機器10における本開示に関連する構成要素の一部のみを示し、バスや入力/出力インタフェースなどの構成要素は省略した。この他、具体的な適用状況に応じて、電子機器10は、任意の適切な他の構成要素をさらに含むこともできる。
例示的なコンピュータプログラム製品及びコンピュータ読み取り可能な記憶媒体
【0105】
本開示の実施例は、上記の方法及び機器に加えて、コンピュータプログラムコマンドを含むコンピュータプログラム製品であることができる。前記コンピュータプログラムコマンドがプロセッサによって実行されると、本明細書の上記「例示的な方法」の部分で説明された本開示の様々な実施例に係る方法におけるステップを前記プロセッサに実行させる。
【0106】
前記コンピュータプログラム製品は、1つ又は複数のプログラミング言語の任意の組合せによって、本開示の実施例の操作を実行するためのプログラムコードを作成することができ、前記プログラミング言語は、Java(登録商標)、C++などのオブジェクト指向プログラミング言語、及び「C」言語又は類似のプログラミング言語などの一般的な手続き型プログラミング言語を含むことができる。プログラムコードは、下記のように実行されることができ、すなわち、ユーザコンピューティングデバイス上で全体的に実行されてもよいし、ユーザコンピューティングデバイス上で部分的に実行されてもよいし、独立したソフトウェアパッケージとして実行されてもよいし、一部はユーザコンピューティングデバイス上で実行され、別の一部はリモートコンピューティングデバイス上で実行されてもよいし、リモートコンピューティングデバイスもしくはサーバ上で全体的に実行されてもよい。
【0107】
また、本開示の実施例は、コンピュータプログラムコマンドが記憶されているコンピュータ読み取り可能な記憶媒体であることもできる。前記コンピュータプログラムコマンドがプロセッサによって実行されると、前記プロセッサに、本明細書の上記の「例示的な方法」の部分で説明された本開示の様々な実施例に係る方法におけるステップを実行させる。
【0108】
前記コンピュータ読み取り可能な記憶媒体として、1つ又は複数の読み取り可能な媒体の任意の組み合わせを採用することができる。読み取り可能な媒体は、読み取り可能な信号媒体又は読み取り可能な記憶媒体であることができる。読み取り可能な記憶媒体は、例えば、電気、磁気、光学、電磁気、赤外線、又は半導体のシステム、装置又はデバイス、又はそれらの任意の組み合わせを含むことができるが、これらに限定されない。読み取り可能な記憶媒体のより具体的な例(非網羅的なリスト)としては、1つ又は複数のワイヤを有する電気的接続、ポータブルディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、光ファイバ、コンパクトディスクリードオンリメモリ(CD-ROM)、光記憶デバイス、磁気記憶デバイス、又は上記の任意の適切な組み合わせが挙げられる。
【0109】
以上、具体的な実施例を参照しながら本開示の基本原理を説明してきたが、本開示に言及された利点、長所、効果などは、例示に過ぎず、限定的なものではない。本開示の様々な実施例がそれらの利点、長所、効果などを必ずしも備えることではない。また、上記開示の具体的な詳細は、例示的な作用及び理解しやすい作用のためのものに過ぎず、限定的なものではなく、上記細部は、本開示を必ずしも上記具体的な詳細により実現されるように制限するものではない。
【0110】
本明細書における様々な実施例は、逐次的な方法で説明されており、各実施例は、主に他の実施例との相違点を重点として説明し、各実施例間の同一又は類似の部分は、相互に参照すればよい。システムの実施例については、基本的に方法の実施例に対応するため、比較的簡単に説明したが、関連部分は、方法の実施例の説明の一部を参照すればよい。
【0111】
本開示の方法及び装置は、複数の方法で実現されることができる。例えば、本開示の方法及び装置は、ソフトウェア、ハードウェア、ファームウェア、又は、ソフトウェア、ハードウェア、ファームウェアの任意の組み合わせで実現されることができる。前記方法におけるステップの上記順序は、単に説明のためのものであり、本開示の方法のステップは、特段の説明がない限り、以上具体的に説明された順序に限定されない。また、いくつかの実施例では、本開示は、記録媒体に記録されたプログラムとして実施されてもよく、これらのプログラムは、本開示に係る方法を実現するための機械読み取り可能なコマンドを含む。したがって、本開示は、本開示に係る方法を実行するためのプログラムを記憶する記録媒体も含む。
【0112】
上記の説明は、例示及び説明の目的で提示されている。さらに、この説明は、本開示の実施例を本明細書に開示された形態に限定することを意図しない。以上、複数の例示的な態様及び実施例を説明したが、当業者であれば、それらの特定の変形、修正、変更、追加、及び部分的組み合わせを認識することができる。