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

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

▶ ノータ インクの特許一覧

特開2024-66409ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法及び装置
<>
  • 特開-ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法及び装置 図1
  • 特開-ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法及び装置 図2
  • 特開-ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法及び装置 図3
  • 特開-ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法及び装置 図4
  • 特開-ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法及び装置 図5
  • 特開-ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法及び装置 図6A
  • 特開-ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法及び装置 図6B
  • 特開-ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法及び装置 図7
  • 特開-ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法及び装置 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024066409
(43)【公開日】2024-05-15
(54)【発明の名称】ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法及び装置
(51)【国際特許分類】
   G06N 3/04 20230101AFI20240508BHJP
【FI】
G06N3/04
【審査請求】有
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2023082608
(22)【出願日】2023-05-18
(11)【特許番号】
(45)【特許公報発行日】2024-03-25
(31)【優先権主張番号】10-2022-0142354
(32)【優先日】2022-10-31
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】523185899
【氏名又は名称】ノータ インク
【氏名又は名称原語表記】NOTA, INC.
【住所又は居所原語表記】No.2219, Creation Hall, 193, Munji-ro, Yuseong-gu, Daejeon 34051 Republic of Korea
(74)【代理人】
【識別番号】110001139
【氏名又は名称】SK弁理士法人
(74)【代理人】
【識別番号】100130328
【弁理士】
【氏名又は名称】奥野 彰彦
(74)【代理人】
【識別番号】100130672
【弁理士】
【氏名又は名称】伊藤 寛之
(72)【発明者】
【氏名】チェ、シンクック
(72)【発明者】
【氏名】チェ、ジュンキョン
(57)【要約】      (修正有)
【課題】ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法及び装置を提供する。
【解決手段】方法は、ハードウェアで動作するニューラルネットワークモデルに含まれる層のうち、圧縮しようとするターゲット層のターゲット出力チャネル数を取得する段階を含む。ここで、ターゲット出力チャネル数は、ターゲット層に接続された次の層の入力チャネル数に該当する。方法はまた、ハードウェアのハードウェア特性に応じた、ターゲット層の出力チャネル数に関する第1レイテンシ特性及び次の層の入力チャネル数に関する第2レイテンシ特性のうちのいずれか1つのレイテンシ特性に基づいて、所定の目的に合致するようにターゲット出力チャネル数を調整する段階と、ターゲット層の出力チャネル数が調整されたターゲット出力チャネル数になるように、ニューラルネットワークモデルを圧縮して軽量化する段階と、を含む。
【選択図】図5
【特許請求の範囲】
【請求項1】
ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法において、
ハードウェアで動作する前記ニューラルネットワークモデルに含まれる層のうち、圧縮しようとするターゲット層のターゲット出力チャネル数-前記ターゲット出力チャネル数は、前記ターゲット層に接続された次の層の入力チャネル数に該当する-を取得する段階と、
前記ハードウェアのハードウェア特性に応じた、前記ターゲット層の出力チャネル数に関する第1レイテンシ特性、及び前記次の層の入力チャネル数に関する第2レイテンシ特性のうちのいずれか1つのレイテンシ特性に基づいて、前記ターゲット出力チャネル数を調整する段階と、
前記ターゲット層の出力チャネル数が前記調整されたターゲット出力チャネル数になるように、前記ニューラルネットワークモデルを圧縮して軽量化する段階と、を含む、方法。
【請求項2】
前記調整する段階は、
前記ターゲット層の演算強度(arithmetic intensity)と前記次の層の演算強度とを比較し、演算強度がより大きい層を基準層として選択する段階と、
前記基準層のレイテンシ特性に基づいて、前記ターゲット出力チャネル数を調整する段階と、をさらに含む、請求項1に記載の方法。
【請求項3】
前記調整する段階は、
前記第1レイテンシ特性に含まれる複数のステップのうちの前記ターゲット出力チャネル数に対応する第1ステップ、及び前記第2レイテンシ特性に含まれる複数のステップのうちの前記ターゲット出力チャネル数に対応する第2ステップのうち、前記基準層に関連するレイテンシ特性のステップを基準ステップとして選択する段階をさらに含み、
前記第1レイテンシ特性の複数のステップのそれぞれは、第1ステップサイズ内で同じレイテンシを有するチャネル数の区間であり、前記第2レイテンシ特性の複数のステップのそれぞれは、第2ステップサイズ内で同じレイテンシを有するチャネル数の区間である、請求項2に記載の方法。
【請求項4】
前記調整する段階は、
前記ターゲット出力チャネル数を、前記基準ステップのレイテンシが同一に維持されるチャネル数のうち最も大きいチャネル数に調整する段階を含む、請求項3に記載の方法。
【請求項5】
前記調整する段階は、
前記ターゲット出力チャネル数を、前記基準ステップのレイテンシより低いレイテンシを有する前のステップの最大チャネル数に調整する段階を含む、請求項3に記載の方法。
【請求項6】
前記調整する段階は、
前記基準ステップのステップサイズに基づいて、前記ターゲット出力チャネル数を、前記基準ステップに含まれる最大チャネル数及び前記基準ステップのレイテンシより低いレイテンシを有する前のステップの最大チャネル数のうち、前記ターゲット出力チャネル数により近接したチャネル数に調整する段階を含む、請求項3に記載の方法。
【請求項7】
ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法において、
ハードウェアで動作する前記ニューラルネットワークモデルに含まれる層のうち、圧縮しようとする層を分解して生成される複数のサブ層のうちのターゲットサブ層のターゲット出力チャネル数-前記ターゲット出力チャネル数は、前記ターゲットサブ層に接続された次のサブ層の入力チャネル数に該当する-を取得する段階と、
前記ハードウェアのハードウェア特性に応じた、前記ターゲットサブ層の出力チャネル数に関する第1レイテンシ特性、及び前記次のサブ層の入力チャネル数に関する第2レイテンシ特性のうちのいずれか1つのレイテンシ特性に基づいて、前記ターゲット出力チャネル数を調整する段階と、
前記ターゲットサブ層の出力チャネル数が前記調整されたターゲット出力チャネル数になるように、前記圧縮しようとする層を分解し、前記ニューラルネットワークモデルを軽量化する段階と、を含む、方法。
【請求項8】
前記調整する段階は、
前記ターゲットサブ層の演算強度(arithmetic intensity)と前記次のサブ層の演算強度とを比較し、演算強度がより大きいサブ層を基準サブ層として選択する段階と、
前記基準サブ層のレイテンシ特性に基づいて、前記ターゲット出力チャネル数を調整する段階と、をさらに含む、請求項7に記載の方法。
【請求項9】
前記調整する段階は、
前記第1レイテンシ特性に含まれる複数のステップのうちの前記ターゲット出力チャネル数に対応する第1ステップ、及び前記第2レイテンシ特性に含まれる複数のステップのうちの前記ターゲット出力チャネル数に対応する第2ステップのうち、前記基準サブ層に関連するレイテンシ特性のステップを基準ステップとして選択する段階をさらに含み、
前記第1レイテンシ特性の複数のステップのそれぞれは、第1ステップサイズ内で同じレイテンシを有するチャネル数の区間であり、前記第2レイテンシ特性の複数のステップのそれぞれは、第2ステップサイズ内で同じレイテンシを有するチャネル数の区間である、請求項8に記載の方法。
【請求項10】
前記調整する段階は、
前記ターゲット出力チャネル数を、前記基準ステップのレイテンシが同一に維持されるチャネル数のうち最も大きいチャネル数に調整する段階を含む、請求項9に記載の方法。
【請求項11】
前記調整する段階は、
前記ターゲット出力チャネル数を、前記基準ステップのレイテンシより低いレイテンシを有する前のステップの最大チャネル数に調整する段階を含む、請求項9に記載の方法。
【請求項12】
前記調整する段階は、
前記基準ステップのステップサイズに基づいて、前記ターゲット出力チャネル数を、前記基準ステップに含まれる最大チャネル数及び前記基準ステップのレイテンシより低いレイテンシを有する前のステップの最大チャネル数のうち、前記ターゲット出力チャネル数により近接したチャネル数に調整する段階を含む、請求項9に記載の方法。
【請求項13】
ハードウェア特性を利用してニューラルネットワークモデルを軽量化する装置において、
少なくとも1つのプログラムが格納されたメモリと、
前記少なくとも1つのプログラムを実行することによりニューラルネットワークモデルを駆動する少なくとも1つのプロセッサと、を含み、
前記少なくとも1つのプロセッサは、
ハードウェアで動作する前記ニューラルネットワークモデルに含まれる層のうち、圧縮しようとするターゲット層のターゲット出力チャネル数-前記ターゲット出力チャネル数は、前記ターゲット層に接続された次の層の入力チャネル数に該当する-を取得し、
前記ハードウェアのハードウェア特性に応じた、前記ターゲット層の出力チャネル数に関する第1レイテンシ特性、及び前記次の層の入力チャネル数に関する第2レイテンシ特性のうちのいずれか1つのレイテンシ特性に基づいて、前記ターゲット出力チャネル数を調整し、
前記ターゲット層の出力チャネル数が前記調整されたターゲット出力チャネル数になるように、前記ニューラルネットワークモデルを圧縮して軽量化する、装置。
【請求項14】
請求項1に記載の方法をコンピュータで実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法及び装置を提供する。
【背景技術】
【0002】
CNN(Convolutional Neural Networks)は、畳み込みニューラルネットワークであって、複数の畳み込み層(Convolutional Layer)から特徴マップ(Feature Map)を抽出し、サブサンプリング(Subsampling)により次元を縮小して特徴マップの重要な部分のみを取り出すモデルである。画像分類、オブジェクト検知、画像分割などの様々な産業分野において必須的に用いられている。
【0003】
ただし、CNNは多くのモデルパラメータと演算をベースとするので、CNNの性能向上はより大きいモデルサイズとより多くの演算量及びメモリフットプリント(Memory Footprint)をもたらす。よって、モバイルデバイス、自律走行車両、エッジコンピューティング機器などの演算性能が限られた機器上でのCNNの活用が困難であるという問題がある。
【0004】
そのような問題を解決するために、プルーニング(Pruning)手法は、不要なパラメータを除去することによりニューラルネットワークモデルのサイズを小さくするのに用いられる。
【0005】
重みプルーニング(Weight Pruning)手法は、フィルタ内の重要度が低い重み(weights)を除去することにより非常に高い圧縮率を達成するが、非構造化スパース性(unstructured sparsity)を生成するため、CPU、GPUなどの汎用ハードウェア環境で速度向上が制限的であるか、さらには否定的であり得る。
【0006】
フィルタプルーニング(Channel Pruning)手法は、畳み込み層のフィルタ自体を除去して重みテンソル(Tensor)の次元のみを変更するため、汎用ハードウェアに適し、特別なソフトウェアやハードウェアのサポートがなくても実際の推論加速(inference acceleration)が可能である。また、様々なCNNモデルに容易に適用可能であり、高い拡張性及び互換性を有する。
【0007】
そのようなフィルタプルーニング手法の利点に基づいて多くの研究が行われており、とりわけ自動チャネルプルーニング(Automatic Channel Pruning)手法は、手動で又は経験的設計によりプルーニングするチャネルを選択するのではなく、各層において最適なチャネル番号を求めてプルーニングネットワークの最適な構造を求めることができるという利点がある。
【0008】
前述した背景技術は、発明者が本発明の導出のために保有していた、又は本発明の導出過程で習得した技術情報であって、必ずしも本発明の出願前に一般公衆に公開された公知技術であるとはいえない。
【発明の概要】
【発明が解決しようとする課題】
【0009】
本開示の目的は、ハードウェア特性を利用してニューラルネットワークモデルを軽量化する方法及び装置を提供することにある。本開示が解決しようとする課題は、以上で述べられている課題に限定されず、述べられていない本開示の他の課題及び利点は、以下の説明により理解され、本開示の実施形態によりさらに明らかに理解されるであろう。また、本開示が解決しようとする課題及び利点は、特許請求の範囲に示される手段及びその組み合わせにより実現できることが理解されるであろう。
【課題を解決するための手段】
【0010】
本開示の第1態様は、ハードウェアで動作する前記ニューラルネットワークモデルに含まれる層のうち、圧縮しようとするターゲット層のターゲット出力チャネル数-前記ターゲット出力チャネル数は、前記ターゲット層に接続された次の層の入力チャネル数に該当する-を取得する段階と、前記ハードウェアのハードウェア特性に応じた、前記ターゲット層の出力チャネル数に関する第1レイテンシ特性、及び前記次の層の入力チャネル数に関する第2レイテンシ特性のうちのいずれか1つのレイテンシ特性に基づいて、所定の目的に合致するように前記ターゲット出力チャネル数を調整する段階と、前記ターゲット層の出力チャネル数が前記調整されたターゲット出力チャネル数になるように、前記ニューラルネットワークモデルを圧縮して軽量化する段階とを含む、ニューラルネットワークモデルを軽量化する方法を提供することができる。
【0011】
本開示の第2態様は、少なくとも1つのプログラムが格納されたメモリと、前記少なくとも1つのプログラムを実行することによりニューラルネットワークモデルを駆動する少なくとも1つのプロセッサとを含み、前記少なくとも1つのプロセッサは、ハードウェアで動作する前記ニューラルネットワークモデルに含まれる層のうち、圧縮しようとするターゲット層のターゲット出力チャネル数-前記ターゲット出力チャネル数は、前記ターゲット層に接続された次の層の入力チャネル数に該当する-を取得し、前記ハードウェアのハードウェア特性に応じた、前記ターゲット層の出力チャネル数に関する第1レイテンシ特性、及び前記次の層の入力チャネル数に関する第2レイテンシ特性のうちのいずれか1つのレイテンシ特性に基づいて、所定の目的に合致するように前記ターゲット出力チャネル数を調整し、前記ターゲット層の出力チャネル数が前記調整されたターゲット出力チャネル数になるように、前記ニューラルネットワークモデルを圧縮して軽量化する、装置を提供することができる。
【0012】
本開示の第3態様は、第1態様による方法をコンピュータで実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体を提供することができる。
【0013】
それらに加えて、本発明を実現するための他の方法、他の装置、及び前記方法を実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体をさらに提供することができる。
【0014】
上記以外の他の態様、特徴、利点は、添付の図面、特許請求の範囲、及び以下の発明の詳細な説明から明らかになるであろう。
【発明の効果】
【0015】
前述した本開示の課題解決手段によれば、ハードウェア固有の特性から最適なパラメータを導出し、ハードウェア特性に最適化された軽量化モデルを提供することができる。
【0016】
また、本開示の課題解決手段によれば、様々な軽量化手法に適用できる自動軽量化アルゴリズムを提供することができる。
【図面の簡単な説明】
【0017】
図1】一実施形態によるハードウェアのルーフラインモデルを示すグラフである。
図2】一実施形態によるハードウェアのレイテンシ特性を説明するための図である。
図3】一実施形態によるチャネルプルーニングの概念を説明するための図である。
図4】一実施形態によるフィルタ分解(Filter Decomposition)軽量化方法を説明するための図である。
図5】一実施形態によるニューラルネットワークモデルを軽量化する方法のフローチャートである。
図6A】一実施形態によるターゲット出力チャネル数を調整する方法を説明するための図である。
図6B】一実施形態によるターゲット出力チャネル数を調整する方法を説明するための図である。
図7】一実施形態によるフィルタ分解によりニューラルネットワークモデルを軽量化する方法のフローチャートである。
図8】一実施形態によるハードウェア特性を利用してニューラルネットワークモデルを軽量化する装置のブロック図である。
【発明を実施するための形態】
【0018】
本発明の利点及び特徴、並びにそれらを達成する方法は、添付の図面と共に詳細に説明される実施形態を参照することによって明らかになるであろう。しかし、本発明は、以下に提示される実施形態に限定されるものではなく、異なる様々な形態で実現することができ、本発明の思想及び技術範囲に含まれる全ての変換、均等物乃至代替物を含むものと理解されるべきである。以下に提示される実施形態は、本発明の開示を完全にし、本発明の属する技術の分野における通常の知識を有する者に発明の範疇を完全に理解させるために提供されるものである。本発明を説明するにあたり、関連する公知技術についての具体的な説明が本発明の要旨を不明にすると判断される場合、その詳細な説明を省略する。
【0019】
本出願で用いられる用語は、単に特定の実施形態を説明するために用いられるものであり、本発明の限定を意図するものではない。単数の表現は、文脈上明らかに他の意味を表さない限り、複数の表現を含む。本出願において、「含む」や「有する」などの用語は、明細書に記載された特徴、数字、段階、動作、構成要素、部品、又はそれらの組み合わせが存在することを指定するものであり、1つ又はそれ以上の他の特徴、数字、段階、動作、構成要素、部品、又はそれらの組み合わせの存在や追加の可能性を予め排除するものではないと理解されるべきである。
【0020】
本開示の一部の実施形態は、機能ブロック構成及び様々な処理段階で示すことができる。そのような機能ブロックの一部又は全部は、特定の機能を実行する様々な数のハードウェア及び/又はソフトウェア構成で実現することができる。例えば、本開示の機能ブロックは、1つ以上のマイクロプロセッサにより実現するか、又は所定の機能のための回路構成により実現することができる。また、例えば、本開示の機能ブロックは、様々なプログラミング又はスクリプト言語で実現することができる。機能ブロックは、1つ以上のプロセッサで実行されるアルゴリズムで実現することができる。さらに、本開示は、電子的な環境設定、信号処理及び/又はデータ処理などのために従来技術を採用することができる。「メカニズム」、「要素」、「手段」、「構成」などの用語は広く用いることができ、機械的及び物理的な構成に限定されるものではない。
【0021】
なお、図面に示す構成要素間の連結線又は連結部材は、機能的連結及び/又は物理的連結もしくは回路接続を例示的に示すものに過ぎない。実際の装置では、代替可能又は追加の様々な機能的連結、物理的連結又は回路接続により構成要素間の連結を示すことができる。
【0022】
以下、添付図面を参照して本開示を詳細に説明する。
【0023】
図1は一実施形態によるハードウェアのルーフラインモデル(Roofline Model)を示すグラフである。
【0024】
ルーフラインモデルは、ハードウェアの性能を直観的に表す視覚的モデルであって、ハードウェア毎の固有の特性を示す。
【0025】
x軸は、演算強度(Arithmetic Intensity)から構成される。演算強度は、バイト(Byte)当たりの演算作業数と定義される。すなわち、全データ送信サイズに対する浮動小数点演算(Floating Point Operations,Flops)の割合を意味する。y軸は、ハードウェアの性能(Performance)から構成される。ルーフラインモデルにおいて、性能は、時間当たりの演算作業数と定義され、単位は[Flops/s]である。
【0026】
x軸及びy軸をどちらもログスケールで表すと屋根状のグラフとなるので、それをルーフラインモデルという。
【0027】
図1を参照すると、グラフの形状は、平坦な区間と傾斜した区間とに分けることができる。傾斜した区間をメモリバウンド(memory bound)ともいい、平坦な区間を計算バウンド(computation bound)ともいう。
【0028】
平坦な区間のy値は、ハードウェアが発揮できる最高性能を意味し、傾斜した区間のy値は、平坦な区間のy値より小さい値を有するので、最高性能を発揮できない区間に該当する。これは、低い演算強度によりメモリバンド幅(memory bandwidth)が小さいため、性能が制限されるからである。よって、傾斜した部分が長いほど、メモリバンド幅の制限が大きいことを意味し得る。
【0029】
前述によれば、あるハードウェアのルーフラインモデルから演算強度に関する性能の割合が分かるので、当該ハードウェア性能の最適化地点を推定するか、コンピューティングカーネル(Computing Kernel)又はアプリケーションの性能を推定するのに用いることができる。
【0030】
図2は一実施形態によるハードウェアのレイテンシ(Latency)特性を説明するための図である。
【0031】
チャネル数は、効率的なニューラルネットワークの設計のために調整される重要なハイパーパラメータであり、ハードウェアのレイテンシ特性とは、CNNのチャネル数が増加することによってハードウェアにおいて発生する遅延時間(ms単位)を意味する。
【0032】
例えば、x軸がCoutである場合のレイテンシ特性とは、他のハイパーパラメータは固定し、Coutのみを調整したときに発生する遅延時間の変化を意味し、同様に、x軸がCinである場合のレイテンシ特性とは、他のハイパーパラメータは固定し、Cinのみを調整したときに発生する遅延時間の変化を意味する。
【0033】
図2を参照すると、x軸であるチャネル数が増加するほど、y軸であるレイテンシが増加する様相を呈しているが、比例して増加するのではなく、階段パターン(staircase pattern)で増加することが分かる。
【0034】
畳み込み(Convolution)演算子の複雑性は線形であるので、測定されたレイテンシもCout又はCinと線形関係にあるものと予想されるが、実際に測定されたレイテンシは、チャネル数の増加によって、線形に増加するのではなく、階段パターンで増加する。
【0035】
後述するニューラルネットワークモデルの軽量化において、このようなハードウェアのレイテンシ特性を活用する。
【0036】
図3は一実施形態によるチャネルプルーニングの概念を説明するための図である。
【0037】
プルーニングは、モデルの重み(Weight)のうち、正確度に及ぼす重要度が低い重みの接続部を除去し、正確度を回復するためにネットワークを再訓練(retraining)させてモデルのパラメータを減らすことである。大規模のニューラルネットワークは、概して内部重複性(redundancy)が大きいため、正確度の大きな損失なしにモデルのサイズを減少させることができる。
【0038】
ニューラルネットワークは複数の層からなっており、各層は少なくとも1つのノードを含み、隣接する層のノードは重みで接続されているが、プルーニングは、ネットワークの性能向上のために、このような接続状態でノード又は重みを除去することである。よって、プルーニングされたニューラルネットワークモデルの駆動は、初期状態のニューラルネットワークモデルの駆動よりもさらに少ない演算量を要求するので、コンピュータ費用とエネルギー消費を低減することができる。
【0039】
従来のプルーニング方法は、数多くのノード及び重みのうちいずれを除去するかを決定するための基準として、重みの大きさを利用する。すなわち、従来のプルーニング方法は、重みの大きさに基づくプルーニング(magnitude-based pruning)である。具体的には、重みを任意の値に初期化し、ニューラルネットワークを学習させた後、学習された重みの大きさを比較し、目標スパース性(sparsity)を満たすように小さい重みをプルーニングする。しかし、この方法によれば、初期値が小さく設定された重みがプルーニングされる確率が高い。すなわち、アップデートを経て小さくなった重みが優先的にプルーニングされる可能性があることをいうのである。重み毎に学習回数が異なるので、大きい値を有する重みが小さい値を有する重みより重要でないこともある。
【0040】
図3を参照すると、このような問題を解決するためにチャネルをプルーニングする例示を確認することができる。
【0041】
チャネルプルーニングとは、構造化されたプルーニング(Structured Pruning)であって、パラメータをチャネル単位でプルーニングする手法を意味する。
【0042】
既存のネットワーク310に比べて、プルーニングされたコンパクトネットワーク320においては、各層のインプット及びアウトプットに該当するチャネル数をチャネルスケールファクタ(Channel scaling factor)により調整して軽量化することができ、重みの大きさに基づいてプルーニングする方法における問題を解決することができ、様々なCNNモデルに容易に適用可能であり、高い拡張性及び互換性を有する。
【0043】
図4は一実施形態によるフィルタ分解(Filter Decomposition)軽量化方法を説明するための図である。
【0044】
フィルタ分解とは、モデルの既存の層を分解した後、重要な情報のみを部分的に復元することによって元の値に近似させる軽量化手法である。
【0045】
任意のm×n行列は、特異値分解によりm×m行列、m×n行列及びn×n行列に分解することができるが、ここで、分解された行列を再びm×n行列に復元することができる。ここで、任意の行列Aが特異値分解により分解された行列をそれぞれU行列、シグマ行列及びV行列と定義すると、行列Aは、p個の特異値(Singular Value)を用いて行列A'に近似(approximation)させることができる。すなわち、分解された行列において一部のみを用いて適当な行列A'を部分復元するのである。
【0046】
一般的なCNNは、Kというカーネル(Kernel)により、入力テンソルを出力テンソルに線形変換する。ここで、Kは、D×D×S×Tのサイズを有する4次元テンソルである。ここで、入力テンソルのサイズがH×W×Sであると、Kにより、サイズがH'×W'×Tである出力テンソルが出力される。それに対して、フィルタ分解においては、1つの高次元テンソルを複数のテンソルに分解する。
【0047】
フィルタ分解の一実施形態において、1つの高次元テンソルを1つのコアテンソルと2つのファクタ行列(Factor Matrix)に分解することができる。ここで、コアテンソルはD×D×R×R、ファクタ行列はそれぞれ1×1×S×R、1×1×R×Tのサイズを有し得る。このように分解する過程で、前述した特異値分解を活用することができ、R及びRの値が特異値pに該当するので、R、RがSとTに近くなるほど既存のテンソルに近似するように表すことができる。
【0048】
図4を参照すると、フィルタ分解の一実施形態として、チャネルサイズ調整演算410、コア演算420及びチャネルサイズ復元演算430により、サイズがH×W×Sである入力テンソルをサイズがH'×W'×Tである出力テンソルに変換することが分かる。
【0049】
例えば、チャネルサイズ調整演算410により、サイズがH×W×Sである入力テンソルをサイズがH×W×Rであるテンソルに、チャネルサイズを調整することができる。Rは、Sの特異値pに該当するRank-in値であって、コア演算420の入力チャネル数になる。
【0050】
また、コア演算420では、サイズがH×W×RであるテンソルをサイズがH'×W'×Rであるテンソルに変換するが、層の重要な情報から既存のモデルが表そうとする値に近似するように示す、実質的な畳み込み演算を意味し得る。ここで、Rは、Tの特異値pに該当するRank-out値であって、コア演算420の出力チャネル数になる。
【0051】
最後に、チャネルサイズ復元演算430により、サイズがH'×W'×RであるテンソルをサイズがH'×W'×Tである出力テンソルに、チャネルサイズを復元することができる。
【0052】
このようなフィルタ分解手法により、いくつかの特異値pのみで既存のカーネルにより出力された高次元の出力テンソルの情報量を模写することができる。すなわち、モデルのサイズは小さくしながらも、既存のモデルと同程度の性能を発揮するように軽量化することができる。
【0053】
図5は一実施形態によるニューラルネットワークモデルを軽量化する方法のフローチャートである。
【0054】
一実施形態による軽量化方法によれば、既存に存在していた軽量化手法に対して、ハードウェア固有の特性に基づいてパラメータを調整することにより、最適なパラメータを適用することができる。すなわち、ハードウェアフレンドリー(hardware-friendly)に軽量化手法を適用できる方法を提供することができる。
【0055】
段階510において、ニューラルネットワークモデルを軽量化する装置(以下、「装置」という)は、ユーザ入力又は予め設定されたアルゴリズムに基づいて、ハードウェアで動作するニューラルネットワークモデルに含まれる層のうち、圧縮しようとするターゲット層のターゲット出力チャネル数を取得することができる。
【0056】
一実施形態において、装置は、SLAMP(Structured Layer-adaptive Sparsity for the Magnitude-based Pruning)に基づいて、ターゲット出力チャネル数を取得することができる。具体的には、SLAMPは、非定型化されたプルーニング方法とは異なり、定型化されたプルーニング方法であって、層毎の重要度を測定するために開発された方法である。よって、装置は、SLAMPによってプルーニング割合を決定し、それに応じて圧縮しようとするターゲット層のターゲット出力チャネル数を自動で取得することができる。
【0057】
一実施形態において、ターゲット層の出力チャネルが次の層の入力チャネルとなるので、ターゲット出力チャネル数は、ターゲット層に接続された次の層の入力チャネル数に該当することができる。
【0058】
段階520において、装置は、ハードウェアのハードウェア特性に応じた、ターゲット層の出力チャネル数に関する第1レイテンシ特性、及び次の層の入力チャネル数に関する第2レイテンシ特性のうちのいずれか1つのレイテンシ特性に基づいて、所定の目的に合致するように前記ターゲット出力チャネル数を調整することができる。
【0059】
図2において前述したように、出力チャネル数に関する第1レイテンシ特性は、x軸がCoutである場合のレイテンシ特性を意味し得る。具体的には、他のハイパーパラメータは固定し、Coutのみを調整したときに発生する遅延時間の階段パターンの変化特性を意味し得る。
【0060】
同様に、入力チャネル数に関する第2レイテンシ特性は、x軸がCinである場合のレイテンシ特性を意味し得る。具体的には、他のハイパーパラメータは固定し、Cinのみを調整したときに発生する遅延時間の階段パターンの変化特性を意味し得る。
【0061】
所定のハードウェアに関するハードウェア特性は、固有のものであるので、出力チャネル数に関するレイテンシ特性及び入力チャネル数に関するレイテンシ特性も、それぞれ固有の特性に該当する。よって、一実施形態において、装置は、ニューラルネットワークモデルの軽量化において、第1レイテンシ特性又は第2レイテンシ特性を活用することができる。
【0062】
一実施形態において、装置は、ターゲット層の演算強度と次の層の演算強度とを比較し、演算強度がより大きい層を基準層として選択し、基準層に関連するレイテンシ特性に基づいて、所定の目的に合致するようにターゲット出力チャネル数を調整することができる。
【0063】
例えば、装置は、第1レイテンシ特性及び第2レイテンシ特性のうちいずれのレイテンシ特性を活用するかを決定するために、当該ハードウェアのルーフラインモデルからターゲット層の演算強度と次の層の演算強度とを比較することができる。比較の結果、演算強度がより大きい層がハードウェア性能がより高いことを意味するので、装置は、演算強度がより大きい層を基準層として決定することができる。ここで、装置は、基準層がターゲット層である場合、第1レイテンシ特性に基づいてターゲット出力チャネル数を調整し、基準層が次の層である場合、第2レイテンシ特性に基づいてターゲット出力チャネル数を調整する。
【0064】
図6A及び図6Bは一実施形態によるターゲット出力チャネル数を調整する方法を説明するための図である。
【0065】
図6Aはターゲット層に関連する第1レイテンシ特性を示すグラフであり、図6Bは次の層に関連する第2レイテンシ特性を示すグラフである。
【0066】
一実施形態において、レイテンシ特性は、複数のステップを含むことができ、複数のステップのそれぞれは、サイズが同じステップサイズ内で同じレイテンシ値を有するチャネル数の区間である。
【0067】
例えば、図6Aを参照すると、第1レイテンシ特性は、複数のステップ610、620、630、640を含むことができ、複数のステップ610、620、630、640のそれぞれは、サイズが同じ第1ステップサイズ内で同じレイテンシ値を有するチャネル数の区間である。図6Aにおいては、第1ステップサイズが8になっているが、それに限定されるものではない。例えば、ステップ610は、第1ステップサイズである8内で同じレイテンシ値である約24.7msを有し、ステップ620は、第1ステップサイズである8内で同じレイテンシ値である約25.4msを有することができる。これは、ハードウェアのレイテンシ特性が階段パターンを有することに起因する特徴である。
【0068】
同様に、図6Bを参照すると、第2レイテンシ特性は、複数のステップ650、660、670を含むことができ、複数のステップ650、660、670のそれぞれは、サイズが同じ第2ステップサイズ内で同じレイテンシ値を有するチャネル数の区間である。図6Bにおいては、第2ステップサイズが32になっているが、それに限定されるものではない。
【0069】
一実施形態において、装置は、基準層に関連するレイテンシ特性のステップを基準ステップとして選択することができる。例えば、基準層がターゲット層である場合、第1レイテンシ特性の複数のステップ610、620、630、640のいずれか1つを基準ステップとして選択することができ、基準層が次の層である場合、第2レイテンシ特性の複数のステップ650、660、670のいずれか1つを基準ステップとして選択することができる。
【0070】
一実施形態において、装置は、所定の目的に合致するようにターゲット出力チャネル数を調整することができる。
【0071】
以下、図6Aを参照して、装置が取得したターゲット層のターゲット出力チャネル数641が230であり、基準層がターゲット層である場合を仮定して、所定の目的に合致するようにターゲット出力チャネル数641を調整する過程について説明する。
【0072】
ターゲット層が基準層として選択された場合、取得したターゲット出力チャネル数641が230であるので、装置は、第1レイテンシ特性の複数のステップ610、620、630、640のうち、ステップ640を基準ステップとして選択することができる。
【0073】
一実施形態において、装置は、所定の目的を、ニューラルネットワークモデルの性能を向上させることに決定することができる。ここで、装置は、その決定によって、ターゲット出力チャネル数641を、基準ステップ640のレイテンシが同一に維持されるチャネル数のうち最も大きいチャネル数に調整することができる。
【0074】
例えば、基準ステップ640の第1ステップサイズ内ではレイテンシが同一に維持されるので、装置は、基準ステップ640の第1ステップサイズに基づいて、ターゲット出力チャネル数641を、基準ステップ640のレイテンシが同一に維持されるチャネル数のうち最も大きいチャネル数(約232個)に調整することができる。
【0075】
このように、同じレイテンシを有するステップ内でニューラルネットワークの性能を最大化することのできるチャネル数を選択することにより、所定の目的に合致するようにターゲット出力チャネル数を調整することができる。
【0076】
一実施形態において、装置は、所定の目的を、ニューラルネットワークモデルのレイテンシを減少させることに決定することができる。ここで、装置は、その決定によって、ターゲット出力チャネル数を、基準ステップ640のレイテンシが同一に維持されるチャネル数のうち最も小さいチャネル数よりもさらに1つ小さいチャネル数に調整することができる。つまり、装置は、ターゲット出力チャネル数を、基準ステップ640のレイテンシより低いレイテンシを有する前のステップ630の最大チャネル数に調整することができる。
【0077】
例えば、装置は、基準ステップ640の第1ステップサイズに基づいて、ターゲット出力チャネル数を、基準ステップ640のレイテンシより低いレイテンシを有する前のステップ630でレイテンシが同一に維持されるチャネル数のうち最も大きいチャネル数(約224個)に調整することができる。
【0078】
このように、同じレイテンシを有するステップ内でニューラルネットワークモデルのレイテンシを減少させることのできるチャネル数を選択することにより、所定の目的に合致するようにターゲット出力チャネル数を調整することができる。
【0079】
一実施形態において、装置は、基準ステップ640のステップサイズに基づいて、ターゲット出力チャネル数641を、基準ステップ640に含まれる最大チャネル数及び基準ステップのレイテンシより低いレイテンシを有する前のステップの最大チャネル数のうち、ターゲット出力チャネル数641に最も近接したチャネル数に調整することができる。
【0080】
例えば、図6Aを参照すると、装置は、ターゲット出力チャネル数641を、基準ステップ640に含まれる最大チャネル数及び最小チャネル数のうちターゲット出力チャネル数641に最も近接したチャネル数である最大チャネル数に調整することができる。すなわち、ターゲット出力チャネル数641を、基準ステップ640のステップサイズの倍数のうち、ターゲット出力チャネル数641に最も近いステップサイズの倍数に調整することができる。
【0081】
それにより、ターゲット出力チャネル数を最小限に調整しながらも、最大の性能又は最小のレイテンシという目的を効率的に達成できるという効果がある。
【0082】
図6Bにおいて、装置が取得したターゲット層のターゲット出力チャネル数661が230であり、基準層が次の層である場合を仮定して、所定の目的に合致するようにターゲット出力チャネル数661を調整する過程は、図6Aにおいて説明した通りである。
【0083】
また、図5に戻り、段階530において、装置は、ターゲット層の出力チャネル数が調整されたターゲット出力チャネル数になるように、ニューラルネットワークモデルを圧縮して軽量化することができる。装置が決定した所定の目的に合致するようにターゲット出力チャネル数を調整したので、調整されたチャネル数が出力されるようにターゲット層にアルゴリズムを適用することにより、ニューラルネットワークモデルを圧縮して軽量化するのである。
【0084】
以上、装置がチャネルプルーニング軽量化手法にターゲット出力チャネル数最適化方法を適用する過程について説明したが、他の実施形態において、装置は、フィルタ分解軽量化手法にターゲット出力チャネル数最適化方法を適用することができる。
【0085】
図7は一実施形態によるフィルタ分解によりニューラルネットワークモデルを軽量化する方法のフローチャートである。
【0086】
装置は、フィルタ分解に関連して、前述したチャネルサイズ調整演算、コア演算及びチャネルサイズ復元演算において、ターゲット出力チャネル数最適化方法を適用することができる。
【0087】
段階710において、装置は、圧縮しようとするターゲット層を分解して生成される複数のサブ層のうち、ターゲットサブ層のターゲット出力チャネル数を取得することができる。すなわち、圧縮しようとするターゲット層にフィルタ分解手法を適用する場合、装置は、分解される複数のサブ層の1つであるサブ層に対するターゲット出力チャネル数を取得することができる。ここで、複数のサブ層は、前記チャネルサイズ調整演算、コア演算及びチャネルサイズ復元演算に関する層であり得る。また、ターゲットサブ層の出力チャネル数は、ターゲットサブ層に接続された次のサブ層の入力チャネル数に該当することができる。
【0088】
一方、一実施形態において、装置は、VBMF(Variational Bayesian Matrix Factorization)に基づいてターゲット出力チャネル数を取得することができる。VBMFによるターゲット出力チャネル数の調整割合(Calibration Ratio)は-1から1の間の値を有し、デフォルト値は0に設定される。調整割合が1である場合は、調整前のRank-inと同じターゲット出力チャネル数が取得され、調整割合が-1である場合は、ターゲット出力チャネル数が0になる。つまり、調整割合が小さいほど、より少ないターゲット出力チャネル数が取得される。よって、装置は、VBMFによって推薦された調整割合を用いて、それに応じて圧縮しようとするターゲットサブ層のターゲット出力チャネル数を自動で取得することができる。
【0089】
段階720において、装置は、ハードウェアのハードウェア特性に応じた、ターゲットサブ層の出力チャネル数に関する第1レイテンシ特性、及び次のサブ層の入力チャネル数に関する第2レイテンシ特性のうちのいずれか1つのレイテンシ特性に基づいて、所定の目的に合致するようにターゲット出力チャネル数を調整することができる。
【0090】
一例として、ターゲットサブ層がチャネルサイズ調整演算層である場合、装置は、チャネルサイズ調整演算を基準にターゲット出力チャネル数(Rank-in)を取得し、ターゲットサブ層であるチャネルサイズ調整演算層の出力チャネル数に関する第1レイテンシ特性、及び次のサブ層であるコア演算層の入力チャネル数に関する第2レイテンシ特性のうちのいずれか1つのレイテンシ特性に基づいて、所定の目的に合致するようにターゲット出力チャネル数をRに調整することができる。
【0091】
他の例として、ターゲットサブ層がコア演算層である場合、装置は、コア演算を基準にターゲット出力チャネル数(Rank-out)を取得し、ターゲットサブ層であるコア演算層の出力チャネル数に関する第1レイテンシ特性、及び次のサブ層であるチャネルサイズ復元演算層の入力チャネル数に関する第2レイテンシ特性のうちのいずれか1つのレイテンシ特性に基づいて、所定の目的に合致するようにターゲット出力チャネル数をRに調整することができる。
【0092】
次に、チャネルサイズ復元演算を基準にターゲット出力チャネル数を調整する過程は上述した過程と同様であるので、重複する説明を省略する。
【0093】
一実施形態において、装置は、ターゲットサブ層の演算強度と次のサブ層の演算強度とを比較し、演算強度がより大きいサブ層を基準サブ層として選択し、基準サブ層に関連するレイテンシ特性に基づいて、所定の目的に合致するようにターゲット出力チャネル数を調整することができる。例えば、ターゲットサブ層がチャネルサイズ調整演算層である場合、装置は、チャネルサイズ調整演算層の演算強度と次のサブ層であるコア演算層の演算強度とを比較し、演算強度がより大きいサブ層を基準サブ層として選択することができる。同様に、ターゲットサブ層がコア演算層又はチャネルサイズ復元演算層である場合、基準サブ層を選択する過程も本実施形態と同様であり得る。
【0094】
また、前記所定の目的に応じて前記ターゲット出力チャネル数を調整する過程は、図6A及び図6Bにおいて上述した過程を同様に適用することができる。
【0095】
段階730において、装置は、ターゲットサブ層の出力チャネル数が調整されたターゲット出力チャネル数になるように、圧縮しようとする層を分解し、ニューラルネットワークモデルを軽量化することができる。装置が決定した所定の目的に合致するようにターゲット出力チャネル数を調整したので、調整されたチャネル数が出力されるようにターゲットサブ層にアルゴリズムを適用することにより、ニューラルネットワークモデルを圧縮して軽量化するのである。
【0096】
フィルタ分解手法における一実施形態による軽量化方法の適用はそれに限定されるものではなく、装置は、与えられた入力テンソルのチャネルサイズSと与えられた出力テンソルのチャネルサイズTにおいて、コア演算に対してのみ一実施形態による軽量化方法を適用することもできる。
【0097】
このように、フィルタ分解手法に一実施形態による軽量化方法を演算によって複数回適用することにより、フィルタ分解モデルを軽量化することができ、一実施形態による軽量化方法は、ユーザの軽量化手法モデルを選択する入力によって、プルーニング手法及びフィルタ分解手法に選択的に適用することができる。
【0098】
図8は一実施形態によるハードウェア特性を利用してニューラルネットワークモデルを軽量化する装置のブロック図である。
【0099】
図8を参照すると、装置800は、通信部810、プロセッサ820及びDB830を含み得る。図8の装置800には、実施形態に関連する構成要素のみ示されている。よって、図8に示す構成要素に加えて他の汎用の構成要素をさらに含み得ることは、当該技術分野における通常の知識を有する者であれば理解するであろう。
【0100】
通信部810は、外部サーバ又は外部装置との有線/無線通信を可能にする1つ以上の構成要素を含み得る。例えば、通信部810は、近距離通信部(図示せず)、移動通信部(図示せず)及び放送受信部(図示せず)の少なくとも1つを含み得る。一実施形態において、通信部810は、ターゲット層又はターゲットサブ層のターゲット出力チャネル数を取得することができる。
【0101】
DB830は、装置800内で処理される各種データを保存するハードウェアであって、プロセッサ820の処理及び制御のためのプログラムを保存することができる。
【0102】
DB830は、DRAM(dynamic random access memory)、SRAM(static random access memory)などのRAM(random access memory)、ROM(read-only memory)、EEPROM(electrically erasable programmable read-only memory)、CD-ROM、ブルーレイ又は他の光ディスクストレージ、HDD(hard disk drive)、SSD(solid state drive)、又はフラッシュメモリを含み得る。
【0103】
プロセッサ820は、装置800の全般的な動作を制御する。例えば、プロセッサ820は、DB830に保存されたプログラムを実行することにより、入力部(図示せず)、ディスプレイ(図示せず)、通信部810、DB830などを全般的に制御することができる。プロセッサ820は、DB830に保存されたプログラムを実行することにより、装置800の動作を制御することができる。
【0104】
プロセッサ820は、図1図7において上述したニューラルネットワークモデルを軽量化する装置の動作の少なくとも一部を制御することができる。
【0105】
プロセッサ820は、ASICs(application specific integrated circuits)、DSPs(digital signal processors)、DSPDs(digital signal processing devices)、PLDs(programmable logic devices)、FPGAs(field programmable gate arrays)、コントローラ(controllers)、マイクロコントローラ(micro-controllers)、マイクロプロセッサ(microprocessors)、その他の機能の実行のための電気ユニットの少なくとも1つを用いて実現することができる。
【0106】
一実施形態において、装置800は、サーバであり得る。サーバは、ネットワークを介して通信を行って命令、コード、ファイル、コンテンツ、サービスなどを提供するコンピュータ装置又は複数のコンピュータ装置で実現することができる。サーバは、ニューラルネットワークモデルを軽量化するために必要なデータを受信し、受信したデータに基づいてニューラルネットワークモデルを軽量化することができる。
【0107】
一方、本発明による実施形態は、コンピュータ上で様々な構成要素により実行できるコンピュータプログラムの形態で実現することができ、このようなコンピュータプログラムは、コンピュータで読み取り可能な媒体に記録することができる。ここで、媒体には、ハードディスク、フロッピーディスク、磁気テープなどの磁気媒体、CD-ROM、DVDなどの光記録媒体、フロプティカルディスク(floptical disk)などの光磁気記録媒体(magneto-optical medium)、ROM、RAM、フラッシュメモリなどのプログラム命令を記憶して実行するように特別に構成されたハードウェア装置が含まれる。
【0108】
一方、前記コンピュータプログラムは、本発明のために特別に設計及び構成されたものであってもよく、コンピュータソフトウェア分野の当業者に公知されて使用可能なものであってもよい。コンピュータプログラムの例には、コンパイラにより生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータにより実行される高級言語コードも含まれる。
【0109】
一実施形態によれば、本開示の様々な実施形態による方法は、コンピュータプログラム製品(computer program product)に含まれて提供されるようにしてもよい。コンピュータプログラム製品は、商品として販売者と購入者との間で取引されるようにしてもよい。コンピュータプログラム製品は、機器で読み取り可能な記憶媒体(例えば、compact disc read only memory(CD-ROM))の形態で配布されるか、又はアプリケーションストア(例えば、プレイストアTM)を介して、もしくは2つのユーザ装置間で直接、オンラインで配布(例えば、ダウンロード又はアップロード)されるようにしてもよい。オンライン配布の場合、コンピュータプログラム製品の少なくとも一部は、メーカーのサーバ、アプリケーションストアのサーバ、又は中継サーバのメモリなどの機器で読み取り可能な記憶媒体に少なくとも一時的に記憶されるか、一時的に生成されるようにしてもよい。
【0110】
本発明による方法を構成する段階に関して、明白な順序の記載又はそれに反する記載がなければ、上記段階は適切な順序で行うことができる。本発明は、必ずしも上記段階の記載順序に限定されるものではない。本発明における全ての例又は例示的な用語の使用は、単に本発明を詳細に説明するためのものであり、特許請求の範囲により限定されない限り、上記例又は例示的な用語により本発明の範囲が限定されるわけではない。また、当業者は、様々な修正、組み合わせ及び変更が加えられた特許請求の範囲又はその均等物の範疇内で設計条件及び要因に応じて構成できることを理解するであろう。
【0111】
よって、本発明の思想は、上述した実施形態に限定されて定められてはならず、添付の特許請求の範囲だけでなく、その特許請求の範囲と均等な又はそれから等価的に変更された全ての範囲は、本発明の思想の範疇に属するといえる。
図1
図2
図3
図4
図5
図6A
図6B
図7
図8
【手続補正書】
【提出日】2023-11-06
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ハードウェア特性を利用してニューラルネットワークモデルを軽量化するために、コンピュータによって実行される方法において、
ハードウェアで動作する前記ニューラルネットワークモデルに含まれる層のうち、圧縮しようとするターゲット層のターゲット出力チャネル数を取得する段階と、
前記ハードウェアのハードウェア特性に応じた、前記ターゲット層の出力チャネル数に関する第1レイテンシ特性、及び前記ターゲット層に接続された次の層の入力チャネル数に関する第2レイテンシ特性のうちのいずれか1つのレイテンシ特性に基づいて、前記ターゲット出力チャネル数を調整する段階と、
前記ターゲット層の出力チャネル数が前記調整されたターゲット出力チャネル数になるように、前記ニューラルネットワークモデルを圧縮して軽量化する段階と、を含む、方法。
【請求項2】
前記調整する段階は、
前記ターゲット層の演算強度(arithmetic intensity)と前記次の層の演算強度とを比較し、演算強度がより大きい層を基準層として選択する段階と、
前記基準層のレイテンシ特性に基づいて、前記ターゲット出力チャネル数を調整する段階と、をさらに含む、請求項1に記載の方法。
【請求項3】
前記調整する段階は、
前記第1レイテンシ特性に含まれる複数のステップのうちの前記ターゲット出力チャネル数に対応する第1ステップ、及び前記第2レイテンシ特性に含まれる複数のステップのうちの前記ターゲット出力チャネル数に対応する第2ステップのうち、前記基準層に関連するレイテンシ特性のステップを基準ステップとして選択する段階をさらに含み、
前記第1レイテンシ特性の複数のステップのそれぞれは、第1ステップサイズ内で同じレイテンシを有するチャネル数の区間であり、前記第2レイテンシ特性の複数のステップのそれぞれは、第2ステップサイズ内で同じレイテンシを有するチャネル数の区間である、請求項2に記載の方法。
【請求項4】
前記調整する段階は、
前記ターゲット出力チャネル数を、前記基準ステップのレイテンシが同一に維持されるチャネル数のうち最も大きいチャネル数に調整する段階を含む、請求項3に記載の方法。
【請求項5】
前記調整する段階は、
前記ターゲット出力チャネル数を、前記基準ステップのレイテンシより低いレイテンシを有する前のステップの最大チャネル数に調整する段階を含む、請求項3に記載の方法。
【請求項6】
前記調整する段階は、
前記基準ステップのステップサイズに基づいて、前記ターゲット出力チャネル数を、前記基準ステップに含まれる最大チャネル数及び前記基準ステップのレイテンシより低いレイテンシを有する前のステップの最大チャネル数のうち、前記ターゲット出力チャネル数により近接したチャネル数に調整する段階を含む、請求項3に記載の方法。
【請求項7】
ハードウェア特性を利用してニューラルネットワークモデルを軽量化するために、コンピュータによって実行される方法において、
ハードウェアで動作する前記ニューラルネットワークモデルに含まれる層のうち、圧縮しようとする層を分解して生成される複数のサブ層のうちのターゲットサブ層のターゲット出力チャネル数を取得する段階と、
前記ハードウェアのハードウェア特性に応じた、前記ターゲットサブ層の出力チャネル数に関する第1レイテンシ特性、及び前記ターゲット層に接続された次のサブ層の入力チャネル数に関する第2レイテンシ特性のうちのいずれか1つのレイテンシ特性に基づいて、前記ターゲット出力チャネル数を調整する段階と、
前記ターゲットサブ層の出力チャネル数が前記調整されたターゲット出力チャネル数になるように、前記圧縮しようとする層を分解し、前記ニューラルネットワークモデルを軽量化する段階と、を含む、方法。
【請求項8】
前記調整する段階は、
前記ターゲットサブ層の演算強度(arithmetic intensity)と前記次のサブ層の演算強度とを比較し、演算強度がより大きいサブ層を基準サブ層として選択する段階と、
前記基準サブ層のレイテンシ特性に基づいて、前記ターゲット出力チャネル数を調整する段階と、をさらに含む、請求項7に記載の方法。
【請求項9】
前記調整する段階は、
前記第1レイテンシ特性に含まれる複数のステップのうちの前記ターゲット出力チャネル数に対応する第1ステップ、及び前記第2レイテンシ特性に含まれる複数のステップのうちの前記ターゲット出力チャネル数に対応する第2ステップのうち、前記基準サブ層に関連するレイテンシ特性のステップを基準ステップとして選択する段階をさらに含み、
前記第1レイテンシ特性の複数のステップのそれぞれは、第1ステップサイズ内で同じレイテンシを有するチャネル数の区間であり、前記第2レイテンシ特性の複数のステップのそれぞれは、第2ステップサイズ内で同じレイテンシを有するチャネル数の区間である、請求項8に記載の方法。
【請求項10】
前記調整する段階は、
前記ターゲット出力チャネル数を、前記基準ステップのレイテンシが同一に維持されるチャネル数のうち最も大きいチャネル数に調整する段階を含む、請求項9に記載の方法。
【請求項11】
前記調整する段階は、
前記ターゲット出力チャネル数を、前記基準ステップのレイテンシより低いレイテンシを有する前のステップの最大チャネル数に調整する段階を含む、請求項9に記載の方法。
【請求項12】
前記調整する段階は、
前記基準ステップのステップサイズに基づいて、前記ターゲット出力チャネル数を、前記基準ステップに含まれる最大チャネル数及び前記基準ステップのレイテンシより低いレイテンシを有する前のステップの最大チャネル数のうち、前記ターゲット出力チャネル数により近接したチャネル数に調整する段階を含む、請求項9に記載の方法。
【請求項13】
ハードウェア特性を利用してニューラルネットワークモデルを軽量化する装置において、
少なくとも1つのプログラムが格納されたメモリと、
前記少なくとも1つのプログラムを実行することによりニューラルネットワークモデルを駆動する少なくとも1つのプロセッサと、を含み、
前記少なくとも1つのプロセッサは、
ハードウェアで動作する前記ニューラルネットワークモデルに含まれる層のうち、圧縮しようとするターゲット層のターゲット出力チャネル数-前記ターゲット出力チャネル数は、前記ターゲット層に接続された次の層の入力チャネル数に該当する-を取得し、
前記ハードウェアのハードウェア特性に応じた、前記ターゲット層の出力チャネル数に関する第1レイテンシ特性、及び前記次の層の入力チャネル数に関する第2レイテンシ特性のうちのいずれか1つのレイテンシ特性に基づいて、前記ターゲット出力チャネル数を調整し、
前記ターゲット層の出力チャネル数が前記調整されたターゲット出力チャネル数になるように、前記ニューラルネットワークモデルを圧縮して軽量化する、装置。
【請求項14】
請求項1に記載の方法をコンピュータで実行するためのプログラムを記録したコンピュータで読み取り可能な記録媒体。