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

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

▶ ノタ、インコーポレイテッドの特許一覧

特許7475581ニューラルネットワークモデルの圧縮方法及び同方法を実施する電子機器
<>
  • 特許-ニューラルネットワークモデルの圧縮方法及び同方法を実施する電子機器 図1
  • 特許-ニューラルネットワークモデルの圧縮方法及び同方法を実施する電子機器 図2
  • 特許-ニューラルネットワークモデルの圧縮方法及び同方法を実施する電子機器 図3
  • 特許-ニューラルネットワークモデルの圧縮方法及び同方法を実施する電子機器 図4
  • 特許-ニューラルネットワークモデルの圧縮方法及び同方法を実施する電子機器 図5
  • 特許-ニューラルネットワークモデルの圧縮方法及び同方法を実施する電子機器 図6
  • 特許-ニューラルネットワークモデルの圧縮方法及び同方法を実施する電子機器 図7
  • 特許-ニューラルネットワークモデルの圧縮方法及び同方法を実施する電子機器 図8
  • 特許-ニューラルネットワークモデルの圧縮方法及び同方法を実施する電子機器 図9
  • 特許-ニューラルネットワークモデルの圧縮方法及び同方法を実施する電子機器 図10
  • 特許-ニューラルネットワークモデルの圧縮方法及び同方法を実施する電子機器 図11
  • 特許-ニューラルネットワークモデルの圧縮方法及び同方法を実施する電子機器 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-19
(45)【発行日】2024-04-30
(54)【発明の名称】ニューラルネットワークモデルの圧縮方法及び同方法を実施する電子機器
(51)【国際特許分類】
   G06N 3/10 20060101AFI20240422BHJP
【FI】
G06N3/10
【請求項の数】 15
(21)【出願番号】P 2023541299
(86)(22)【出願日】2023-02-09
(65)【公表番号】
(43)【公表日】2024-02-29
(86)【国際出願番号】 KR2023001895
(87)【国際公開番号】W WO2023153821
(87)【国際公開日】2023-08-17
【審査請求日】2023-07-06
(31)【優先権主張番号】10-2022-0017230
(32)【優先日】2022-02-10
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2022-0017231
(32)【優先日】2022-02-10
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2022-0023385
(32)【優先日】2022-02-23
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2022-0048201
(32)【優先日】2022-04-19
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2022-0057599
(32)【優先日】2022-05-11
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】10-2022-0104355
(32)【優先日】2022-08-19
(33)【優先権主張国・地域又は機関】KR
(31)【優先権主張番号】18/163,527
(32)【優先日】2023-02-02
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】523165640
【氏名又は名称】ノタ、インコーポレイテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】キム、ヨー チャン
(72)【発明者】
【氏名】バエク、ジョン ウォン
(72)【発明者】
【氏名】リー、ゲウン ジャエ
【審査官】福西 章人
(56)【参考文献】
【文献】中国特許出願公開第110062233(CN,A)
【文献】韓国公開特許第10-2020-0132627(KR,A)
【文献】韓国公開特許第10-2021-0092575(KR,A)
【文献】米国特許出願公開第2021/0326710(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
演算デバイスによって実施されるニューラルネットワークモデルの圧縮方法であって、
前記演算デバイスのプロセッサにおいて、訓練済モデル及び前記訓練済モデルを圧縮するための圧縮方法指示を受信することと、
前記圧縮方法指示に基づき、前記訓練済モデルに含まれる複数のブロックのうちから、前記プロセッサを介して、圧縮可能ブロック及び非圧縮可能ブロックを特定することと、
コンピュータネットワークを介して、ユーザデバイスに対して、
前記圧縮可能ブロック及び前記非圧縮可能ブロックが視覚的に区別されるように、第1の画面上に、前記複数のブロック間の接続関係を表す前記訓練済モデルの構造を表示すること、及び
第2の画面上に、前記圧縮可能ブロックの圧縮のために、ユーザによって入力されたパラメータ値を受信するように動作可能な入力フィールドを表示すること、
を実施させる指令を前記ユーザデバイスに送信することと、
前記入力フィールドにおいて前記ユーザによって入力された前記パラメータ値に基づいて、前記訓練済モデルを圧縮することと、を含む方法。
【請求項2】
前記圧縮方法指示がプルーニング方法を設定するとき、前記特定することには、
算術演算子に直接接続される有効化機能、正規化機能、及び出力チャンネルを含む非圧縮可能ブロックを、前記複数のブロックのうちから特定することが含まれる請求項1に記載の方法。
【請求項3】
前記圧縮方法指示がフィルタ分解方法を設定するとき、前記特定することには、
畳み込み層を含む前記圧縮可能ブロックを、前記複数のブロックのうちから特定することが含まれる請求項1に記載の方法。
【請求項4】
前記訓練済モデルの構造は、複数のユーザインタフェース(UI)要素間の接続によって表され、前記複数のUI要素は、各々、前記訓練済モデルに含まれる前記複数のブロックのうちの各ブロックに関連付けられ、前記複数のUI要素は、各々、前記複数のブロックのうちの関連ブロックの情報を表し、
前記複数のブロックのうちの前記関連ブロックの情報には、前記関連ブロックのための識別情報、及び前記関連ブロックに対応する遅延時間データが含まれる請求項1に記載の方法。
【請求項5】
コンピュータネットワークを介して、前記訓練済モデルが実行される目標デバイスについての情報を受信することと、
前記目標デバイスから複数の遅延時間データを受信することと、をさらに含み、
前記複数の遅延時間データのうちの各遅延時間データは、前記複数のブロックのうちの各ブロックに関連付けられる請求項1に記載の方法。
【請求項6】
ユーザが、前記圧縮可能ブロックに対応し、前記第1の画面上に表示される第1のUI要素を選択するとき、前記第2の画面に表示された前記圧縮可能ブロックに対応する前記入力フィールドを有効化するために、前記ユーザデバイスに指令を送信することをさらに備える請求項1に記載の方法。
【請求項7】
ユーザが、前記非圧縮可能ブロックに対応し、前記第1の画面上に表示される第2のUI要素を選択するとき、前記第1の画面上に前記非圧縮可能ブロックについての詳細情報を表示するために、前記ユーザデバイスに指令を送信することをさらに含み、
前記非圧縮可能ブロックの前記詳細情報には、前記非圧縮可能ブロックに含まれるチャンネルの量又はカーネルのサイズのうちの少なくとも一方が含まれる請求項1に記載の方法。
【請求項8】
ユーザが、前記圧縮可能ブロックに対応し、前記第1の画面上に表示される第1のUI要素を選択するとき、前記第1の画面上に前記圧縮可能ブロックの詳細情報を表示するために、前記ユーザデバイスの指令を送信することをさらに含み、
前記圧縮可能ブロックの前記詳細情報には、前記圧縮可能ブロックに含まれるチャンネルの量又はカーネルのサイズのうちの少なくとも一方が含まれる請求項1に記載の方法。
【請求項9】
ニューラルネットワークモデルを圧縮するための電子機器であって、
データネットワークを介してデータの送受信を行うように構成され、少なくとも1つの通信回路を含む通信インタフェースと、
少なくとも1つの動作指示を記憶するように構成された持続性メモリと、
プロセッサと、を備え、
前記少なくとも1つの動作指示の実行では、前記プロセッサに、
訓練済モデル及び前記訓練済モデルを圧縮するための圧縮方法指示を受信すること、
前記圧縮方法指示に基づき、前記訓練済モデルに含まれる複数のブロックのうちから、圧縮可能ブロック及び非圧縮可能ブロックを特定すること、
結果として、ユーザデバイスに
前記圧縮可能ブロック及び前記非圧縮可能ブロックが視覚的に区別されるように、第1の画面上に前記複数のブロック間の接続関係を表す前記訓練済モデルの構造を表示すること、及び
第2の画面上に、前記圧縮可能ブロックの圧縮のためのパラメータ値を受信するように動作可能な入力フィールドを表示すること
を行わせる指令を、前記通信インタフェースを介して前記ユーザデバイスに送信すること、
前記入力フィールドにおいてユーザによって入力された前記パラメータ値に基づいて、前記訓練済モデルを圧縮することと、を含む電子機器。
【請求項10】
前記圧縮方法指示がプルーニングの方法に対応するとき、前記プロセッサは、
算術演算子に直接接続された有効化機能、正規化機能、及び出力チャンネルを含む非圧縮可能ブロックを、前記複数のブロックのうちから特定するようにさらに構成される請求項9に記載の電子機器。
【請求項11】
前記圧縮方法指示がフィルタ分解方法に対応するとき、前記プロセッサは、
畳み込み層が含まれる前記圧縮可能ブロックを、前記複数のブロックのうちから特定するようにさらに構成される請求項9に記載の電子機器。
【請求項12】
前記訓練済モデルの前記構造は、複数のユーザインタフェース(UI)要素間の接続として表され、
前記複数のUI要素は、各々、
前記訓練済モデルに含まれる前記複数のブロックのうちの各ブロックに関連付けられ、
前記複数のブロックのうちの関連ブロックのための識別情報を含む、前記関連ブロックに関する情報、及び前記関連ブロックに対応する遅延時間データを表す請求項9に記載の電子機器。
【請求項13】
前記プロセッサは、
前記訓練済モデルが実行される目標デバイスについての情報を受信し、
前記目標デバイスから複数の遅延時間データを受信するようにさらに構成され、
前記複数の遅延時間データのうちの各遅延時間データは、前記複数のブロックのうちの各ブロックに対応する請求項9に記載の電子機器。
【請求項14】
ユーザが、前記圧縮可能ブロックに対応し、前記第1の画面上に表示される第1のUI要素を選択するとき、前記プロセッサは、前記通信インタフェースに、前記第2の画面上に表示される前記圧縮可能ブロックに対応する前記入力フィールドを有効化するように、前記ユーザデバイスに指令を送信させるようにさらに構成される請求項9に記載の電子機器。
【請求項15】
ユーザが、前記非圧縮可能ブロックに対応し、前記第1の画面上に表示される第2のUI要素を選択するとき、前記プロセッサは、前記通信インタフェースに、前記第1の画面上に前記非圧縮可能ブロックについての詳細情報を表示させるように、前記ユーザデバイスに指令を送信させるようにさらに構成され、
前記非圧縮可能ブロックの前記詳細情報には、前記非圧縮可能ブロックに含まれるチャンネルの量又はカーネルのサイズの少なくとも一方が含まれる請求項9に記載の電子機器。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ニューラルネットワークモデルの圧縮方法及び同方法を実施する電子機器に関する。
【背景技術】
【0002】
人工知能技術の普及に伴い、目標デバイスにおいて人工知能モデルを運用するために人工知能モデルを必要とするユーザのニーズが増加している。
【発明の概要】
【発明が解決しようとする課題】
【0003】
種々の人工知能モデルが世界中で公開されているが、ユーザの望む性能を備えた人工知能モデルをユーザが直接見つけることは容易ではない。さらに、ユーザが最新式(SOTA)モデル等、優れた性能を備えたモデルを見つけたとしても、そのモデルは、目標デバイス上で必ずしも動作可能であるとは限らない。このような理由から、ユーザは、そのモデルが目標デバイス上で運用可能か否かを確認するのに苦労する。
【0004】
したがって、ユーザに目標デバイスに合わせて最適化されたニューラルネットワークモデルを簡便に取得させる技術のニーズがある。
【課題を解決するための手段】
【0005】
本開示は、目標デバイスに合わせて最適化されたニューラルネットワークモデルを提供する電子機器を提供するものである。
【0006】
本開示はさらに、ユーザによって入力されたデータセットに基づいて訓練されたニューラルネットワークモデルを提供する電子機器を提供するものである。
【0007】
本開示はさらに、ユーザによって入力された圧縮設定値に基づいて訓練された圧縮ニューラルネットワークモデルを提供する電子機器を提供するものである。
【0008】
本開示はさらに、圧縮ニューラルネットワークモデルに対応するダウンロードデータを提供する電子機器を提供するものである。
【0009】
本開示の目的は、上述の目的に限定されるものでない。すなわち、以下の説明より、本開示が関連する当業者により、記載されていない他の目的が明らかに理解され得る。
【0010】
本開示は、演算デバイスによって実施されるニューラルネットワークモデルの圧縮方法であって、演算デバイスのプロセッサにおいて、訓練済モデル及び訓練済モデルを圧縮するための圧縮方法指示を受信することと、圧縮方法指示に基づき、訓練済モデルに含まれる複数のブロックのうちから、プロセッサを介して、圧縮可能ブロック及び非圧縮可能ブロックを特定することと、ユーザデバイスに、圧縮可能ブロック及び非圧縮可能ブロックが視覚的に区別されるように、第1の画面上に、複数のブロック間の接続関係を表す訓練済モデルの構造を表示すること、及び圧縮可能ブロックの圧縮のためにユーザによって入力されたパラメータ値を受信するように動作可能な相互作用入力フィールドを第2の画面上に表示することを行わせる指令を、コンピュータネットワークを介してユーザデバイスに送信することと、相互作用入力フィールドにおいてユーザに入力されたパラメータ値に基づき、訓練済モデルを圧縮することとを含む方法を提供し得る。
【0011】
圧縮方法指示がプルーニング方法を設定するとき、特定することには、算術演算子に直接接続された有効機能、正規化機能、及び出力チャンネルを含む非圧縮可能ブロックを、複数のブロックのうちから特定することが含まれてもよい。
【0012】
圧縮方法指示がフィルタ分解方法を設定するとき、特定することには、畳み込み層を含む圧縮可能ブロックを、複数のブロックのうちから特定することが含まれてもよい。
【0013】
訓練済モデルの構造は、複数のユーザインタフェース(UI)要素間の接続によって表されてもよく、複数のUI要素は、各々、訓練済モデルに含まれる複数のブロックのうちの各ブロックに関連付けられ、複数のUI要素は、各々、複数のブロックのうちの関連ブロックの情報を表し、複数のブロックのうちの関連ブロックの情報には、関連ブロックのための識別情報、及び関連ブロックに対応する遅延時間データが含まれてもよい。
【0014】
当該方法には、訓練済モデルが実行される目標デバイスについての情報を、コンピュータネットワークを介して受信することと、目標デバイスから複数の遅延時間データを受信することと、が含まれてもよく、複数の遅延時間データのうちの各遅延時間データは、複数のブロックのうちの各ブロックに関連付けられてもよい。
【0015】
ユーザが、圧縮可能ブロックに対応し、第1の画面上に表示される第1のUI要素を選択するとき、当該方法にはさらに、第2の画面上に表示される圧縮可能ブロックに対応する相互作用入力フィールドを有効化するために、ユーザデバイスに指令を送信することが含まれてもよい。
【0016】
ユーザが、非圧縮可能ブロックに対応し、第1の画面上に表示される第2のUI要素を選択するとき、当該方法にはさらに、第1の画面上に、非圧縮可能ブロックについての詳細情報を表示するために、ユーザデバイスの指令を送信することが含まれてもよく、非圧縮可能ブロックの詳細情報には、非圧縮可能ブロックに含まれるチャンネルの量又はカーネルのサイズのうちの少なくとも一方が含まれてもよい。
【0017】
訓練済モデルの構造は、木構造であってもよい。
【0018】
ユーザが、圧縮可能ブロックに対応し、第1の画面上に表示される第1のUI要素を選択するとき、当該方法には、第1の画面上に、圧縮可能ブロックの詳細情報を表示するために、ユーザデバイスに指令を送信することがさらに含まれてもよく、圧縮可能ブロックの詳細情報には、圧縮可能ブロックに含まれるチャンネルの量又はカーネルのサイズのうちの少なくとも一方が含まれてもよい。
【0019】
第1のUI要素には、チェックボックスが含まれてもよい。
【0020】
本開示は、ニューラルネットワークモデルを圧縮するための電子機器であって、データネットワークを介してデータの送受信を行うように構成され、少なくとも1つの通信回路を含む通信インタフェースと、少なくとも1つの動作指示を記憶するように構成された持続性メモリと、プロセッサとを備え、少なくとも1つの動作指示を実行することでは、プロセッサに、訓練済モデル及び訓練済モデルを圧縮するための圧縮方法指示を受信すること、圧縮方法指示に基づき、訓練済モデルに含まれる複数のブロックのうちから、圧縮可能ブロック及び非圧縮可能ブロックを特定することと、結果としてユーザデバイスに、圧縮可能ブロック及び非圧縮可能ブロックが視覚的に区別されるように、第1の画面上に、複数のブロック間の接続関係を表す訓練済モデルの構造を表示させ、第2の画面上に、圧縮可能ブロックの圧縮のためのパラメータ値を受信するように動作可能な相互作用入力フィールドを表示させる指令を、通信インタフェースを介してユーザデバイスに送信することと、相互作用入力フィールドにおいてユーザによって入力されたパラメータ値に基づいて、訓練済モデルを圧縮することと、を行わせる電子機器を提供し得る。
【0021】
圧縮方法指示がプルーニング方法に対応するとき、プロセッサは、算術演算子に直接接続された有効化機能、正規化機能、及び出力チャンネルを含む非圧縮可能ブロックを、複数のブロックのうちから特定するようにさらに構成されてもよい。
【0022】
圧縮方法指示がフィルタ分解方法に対応するとき、プロセッサは、畳み込み層を含む圧縮可能ブロックを、複数のブロックのうちから特定するようにさらに構成されてもよい。
【0023】
訓練済モデルの構造は、複数のユーザインタフェース(UI)要素間の接続として表されてもよく、複数のUI要素は、各々、訓練済モデルに含まれる複数のブロックのうちの各ブロックに関連付けられ、複数のブロックのうちの関連ブロックのための識別情報を含む、関連ブロックに関する情報、及び関連ブロックに対応する遅延時間データを表してもよい。
【0024】
プロセッサは、訓練済モデルが実行される目標デバイスについての情報を受信し、目標デバイスから複数の遅延時間データを取得するようにさらに構成されてもよく、複数の遅延時間データのうちの各遅延時間データは、複数のブロックのうちの各ブロックに対応してもよい。
【0025】
ユーザが、圧縮可能ブロックに対応し、第1の画面上に表示される第1のUI要素を選択するとき、プロセッサは、通信インタフェースに、第2の画面上に表示される圧縮可能ブロックに対応する相互作用入力フィールドを有効化するために、ユーザデバイスに指令を送信させるようにさらに構成されてもよい。
【0026】
ユーザが、非圧縮可能ブロックに対応し、第1の画面上に表示される第2のUI要素を選択するとき、プロセッサは、通信インタフェースに、第1の画面上に、非圧縮可能ブロックについての詳細情報を表示させるために、ユーザデバイスに指令を送信させるようにさらに構成されてもよく、非圧縮可能ブロックの詳細情報には、非圧縮可能ブロックに含まれるチャンネルの量又はカーネルのサイズのうちの少なくとも一方が含まれてもよい。
【0027】
ユーザが、圧縮可能ブロックに対応し、第1の画面上に表示される第1のUI要素を選択するとき、プロセッサは、第1の画面上に、圧縮可能ブロックについての詳細情報を表示するために、ユーザデバイスに指令を送信するようにさらに構成されてもよく、圧縮可能ブロックの詳細情報には、圧縮可能ブロックに含まれるチャンネルの量又はカーネルのサイズのうちの少なくとも一方が含まれてもよい。
【0028】
本開示の課題を解決するための手段は、以上の手段に限定されるものでなく、本開示が関連する技術分野の当業者には、本明細書及び添付の図面より、言及されない解決手段が明らかになるであろう。
【発明の効果】
【0029】
上述のような本開示の種々の実施形態によると、目標デバイスに合わせて最適化されたニューラルネットワークモデルを提供することができる。
【0030】
上述のような本開示の種々の実施形態によると、ユーザによって入力されたデータセットに基づいて訓練されたニューラルネットワークモデルを提供することができる。
【0031】
上述のような本開示の種々の実施形態によると、ユーザによって入力された圧縮のための設定値に基づいて圧縮ニューラルネットワークモデルを提供することができる。
【0032】
上述のような本開示の種々の実施形態によると、圧縮ニューラルネットワークモデルに対応するダウンロードデータを提供することができる。
【0033】
したがって、ユーザの利便性と満足を向上することができる。
【図面の簡単な説明】
【0034】
添付の図面を参照した以下の説明より、本開示の特定の実施形態の態様、特徴、及び効果がより明らかとなるであろう。
【0035】
図1】本開示の実施形態に係る電子機器の動作を示す図である。
【0036】
図2】本開示の実施形態に係る第1の圧縮モードを示す図である。
【0037】
図3】本開示の実施形態に係る第1の圧縮モードの圧縮設定画面を示す図である。
【0038】
図4】本開示の実施形態に係る第2の圧縮モードを示す図である。
【0039】
図5】本開示の実施形態に係る第2の圧縮モードの圧縮設定画面を示す図である。
【0040】
図6】本開示の実施形態に係るブロック圧縮設定値のための画面を示す図である。
【0041】
図7】本開示の実施形態に係る圧縮方針を示す図である。
【0042】
図8】本開示に実施形態に係るニューラルネットワークモデルを圧縮する方法を示すフローチャートである。
【0043】
図9】本開示の実施形態に係るブロック圧縮設定値を設定するための画面を示す図である。
【0044】
図10】本開示の実施形態に係るブロック圧縮設定値を設定するための画面を示す図である。
【0045】
図11】本開示の実施形態に係るブロック圧縮設定値を設定するための画面を示す図である。
【0046】
図12】本開示の実施形態に係る電子機器の構成を示すブロック図である。
【発明を実施するための形態】
【0047】
本明細書において使用される用語について簡単に説明した後、本開示について詳細に説明する。
【0048】
本開示の機能を考慮の上、現在広範に亘って使用される一般的な用語を、本開示の実施形態において使用する用語として選択するが、当技術分野又は判例に関する知識を有するものの意図、新技術の出現等に応じて変更され得る。さらに、特定の場合においては、出願人によって任意に選ばれた用語が使用され得る。このような場合、それらの用語の意味については、本開示の対応説明部分において詳細に言及される。したがって、本開示において使用される用語は、それら用語の単純な名称でなく、本開示全体を通じた用語及び内容の意味に基づいて規定されなければならない。
【0049】
本開示は、種々に修正されてもよく、いくつかの実施形態を有してもよいため、本開示の特定の実施形態を添付の図面に示し、詳細な説明において詳述する。しかしながら、本開示は、例としての特定の実施形態に限定されるものでなく、本開示の範囲及び趣旨から逸脱することなく、あらゆる修正、同等物、及び置換がなされることを理解しなければならない。本開示に関連の既知の技術についての詳細な説明は、本開示の要旨を曖昧にする可能性があると判断されるときには、詳細な説明を省略する。
【0050】
「第1の」、「第2の」等の用語は、種々の構成要素を説明するために使用され得るが、これらの要素は、これらの用語によって限定されるものと理解されてはならない。これらの用語は、1つの構成要素を他の構成要素と区別するためのみに使用されるものである。
【0051】
単数形は、文脈によって別段の明記のない限り、複数形も含むことが意図されている。より具体的には、本明細書中及び添付の請求項中で使用される場合、単数形の不定冠詞及び定冠詞は、文脈によって別段の明記のない限り、複数の指示対象も含む。本明細書において使用される「備える」及び「含む」という用語は、本明細書において言及される特徴、数値、ステップ、動作、構成要素、部分、又はこれらの組み合わせの存在を特定するものであるが、1つ以上の他の特徴、数値、ステップ、動作、構成要素、部分、又はこれらの組み合わせの存在又は追加を排除するものでないことが理解されなければならない。
【0052】
以降、本開示の関連する技術分野の当業者が本開示を容易に実施し得るように、本開示の実施形態について、添付の図面を参照して詳細に説明を行う。しかしながら、本開示は、種々の異なる形態で修正されてもよく、本明細書に記載の実施形態に限定されるものでない。さらに、図中、説明に関連しない箇所については、本開示を明確に説明するために省略し、明細書全体を通じて同様の部分の説明には同様の参照符号を使用する。
【0053】
構造及び動作の双方について、本明細書に記載の実施形態の詳細を添付の図中に表しており、種々の図面において、同様の参照符号により、同様又は対応の要素を示している。図中の要素は、必ずしも寸法を示すものでなく、むしろ実施形態の原則を説明する上で、強調が加えられている。さらに、すべての図示は、概念を伝えることが意図されており、相対的なサイズ、形状、及びその他の詳細な属性は、そのまま又は精密に示されるのではなく、概略的に示されることがある。
【0054】
本開示は、演算デバイスによって実施されるニューラルネットワークモデルの提供方法であって、演算デバイスのプロセッサにおいて、ユーザによって入力された目標デバイスについての情報を使用してデバイスファームにおいて特定された目標デバイスと及びデータセットに基づいて訓練された訓練済モデルを受信することと、圧縮設定情報及びデバイスファームから受信した遅延時間情報に基づき、訓練済モデルを圧縮することと、圧縮された訓練済モデルに対応するダウンロードデータを提供することにより、圧縮された訓練済モデルが目標デバイス上で展開されるようにすることと、を含む方法を提供し得る。
【0055】
圧縮設定情報には、訓練済モデルがユーザによって設定されたモデル圧縮設定値に基づいて圧縮されることを示す第1の圧縮モードが含まれてもよい。第1の圧縮モードが設定されるとき、訓練済モデルを圧縮することには、訓練済モデルに含まれる複数のブロックのうち、複数の圧縮可能目標ブロックを特定することと、モデル圧縮設定値及び所与のアルゴリズムの双方に基づき、複数の目標ブロックのうちの各々に適用されるブロック圧縮のためのブロック圧縮設定値を含む、第1の圧縮パラメータセットを導出することと、第1の圧縮パラメータセットに基づき、複数の圧縮可能目標ブロックを圧縮することと、が含まれてもよい。
【0056】
訓練済モデルを圧縮することには、ユーザに第1の圧縮パラメータセットを提供することがさらに含まれてもよい。ブロック圧縮設定値がユーザによって修正されるとき、訓練済モデルを圧縮することには、修正されたブロック圧縮設定値を含む第2の圧縮パラメータセットに基づき、複数の目標ブロックを圧縮することがさらに含まれてもよい。
【0057】
圧縮設定情報には、訓練済モデルに含まれるブロックの情報が提供され、訓練済モデルが、ユーザによって設定されたブロック圧縮設定値に基づいて圧縮されることを示す第2の圧縮モードが含まれてもよい。第2の圧縮モードが設定されるとき、圧縮することには、訓練済モデルに含まれる複数のブロックのうちから、複数の圧縮可能目標ブロックを特定することと、ユーザに複数の目標ブロックの情報を提供することと、複数の目標ブロックの各々に適用される、複数の目標ブロックの圧縮のためにユーザによって設定されたブロック圧縮設定値を含む第3の圧縮パラメータセットを受信することと、第3の圧縮パラメータセットに基づき、複数の目標ブロックを圧縮することとが含まれてもよい。
【0058】
訓練モデルに含まれるブロックの情報には、ブロックの識別情報、ブロックに対応する遅延時間、又はブロックに含まれるチャンネルの量のうちの少なくとも1つが含まれてもよい。
【0059】
訓練済モデルを圧縮することには、目標デバイスから複数の遅延時間データを受信することがさらに含まれてもよく、複数の遅延時間データのうちの各遅延時間データは、複数のブロックのうちの各ブロックに関連付けられてもよく、複数の遅延時間データのうちの各遅延時間データは、目標デバイスによって、複数のブロックのうちの関連ブロックを実行することによって取得されてもよい。
【0060】
圧縮設定情報には、圧縮方法、圧縮設定値、又は訓練済モデルに含まれる複数のチャンネルのうちから、圧縮目標を判定するための参照情報のうちの少なくとも1つが含まれてもよい。
【0061】
当該方法には、プロセッサにおいて、圧縮された訓練済モデルを再訓練するためにユーザ指令を受信することと、圧縮された訓練済モデルに基づき、再訓練済モデルを生成し、再訓練済モデルに対応するダウンロードデータを提供することと、がさらに含まれてもよい。
【0062】
当該方法には、プロセッサにおいて、目標デバイスについての情報に基づき、圧縮された訓練済モデルに少なくとも1つの量子化又は較正動作を実施することがさらに含まれてもよい。
【0063】
本開示は、ニューラルネットワークモデルを提供するための電子機器であって、データネットワークを介してデータの送受信を行うように構成され、少なくとも1つの通信回路を含む通信インタフェースと、少なくとも1つの動作指示を記憶するように構成されたメモリと、プロセッサとを備え、少なくとも1つの動作指示の実行では、プロセッサに、ユーザによって入力された目標デバイスについての情報を使用してデバイスファームにおいて特定された前記目標デバイスと及びデータセットに基づいて訓練された訓練済モデルを受信することと、圧縮設定情報及びデバイスファームから受信した遅延時間情報に基づき、訓練済モデルを圧縮すること、圧縮された訓練済モデルに対応するダウンロードデータを提供することにより、圧縮された訓練済モデルが目標デバイス上で展開されるようにすることと、を行わせる電子機器を提供してもよい。
【0064】
圧縮設定情報には、訓練済モデルがユーザによって設定されたモデル圧縮設定値に基づいて圧縮されることを示す圧縮モードが含まれてもよい。第1の圧縮モードが設定されるとき、プロセッサは、訓練済モデルに含まれる複数のブロックのうちから複数の圧縮可能目標ブロックを特定し、モデル圧縮設定値及び所与のアルゴリズムの双方に基づき、複数の目標ブロックのうちの各々に適用されるブロック圧縮のためのブロック圧縮設定値を含む第1の圧縮パラメータセットを導出し、第1の圧縮パラメータセットに基づき、複数の圧縮可能目標ブロックを圧縮してもよい。
【0065】
プロセッサは、ユーザに、第1の圧縮パラメータセットを提供してもよい。ブロック圧縮設定値のうちの少なくとも1つがユーザによって修正されるとき、プロセッサは、ブロック圧縮設定値のうちの修正された少なくとも1つを含む第2の圧縮パラメータセットに基づき、複数の目標ブロックを圧縮してもよい。
【0066】
圧縮設定情報には、訓練済モデルに含まれるブロックの情報が提供されることを示す第2の圧縮モードが含まれる。訓練済モデルは、ユーザによって設定されたブロック圧縮設定値に基づいて圧縮されてもよい。第2の圧縮モードが設定されるとき、プロセッサは、訓練済モデルに含まれる複数のブロックのうちから、複数の圧縮可能目標ブロックを特定し、ユーザに複数の目標ブロックの情報を提供し、複数の目標ブロックのうちの各々に適用される、複数の目標ブロックの圧縮のためにユーザによって設定されたブロック圧縮設定値を含む第3の圧縮パラメータセットを受信し、第3の圧縮パラメータに基づき、複数の目標ブロックを圧縮してもよい。
【0067】
訓練モジュールに含まれるブロックの情報には、ブロックの識別情報、ブロックに対応する遅延時間、又はブロックに含まれるチャンネルの量のうちの少なくとも1つが含まれてもよい。
【0068】
プロセッサは、目標デバイスから複数の遅延時間データを受信してもよい。複数の遅延時間データのうちの各遅延時間データは、複数のブロックのうちの各ブロックに関連付けられてもよい。各遅延時間データは、目標デバイスによって、複数のブロックのうちの関連ブロックを実行することによって取得されてもよい。
【0069】
圧縮設定情報には、圧縮方法、圧縮設定値、又は訓練済モデルに含まれる複数のチャンネルのうちから圧縮目標を判定するための参照情報のうちの少なくとも1つが含まれてもよい。
【0070】
プロセッサは、圧縮された訓練済モデルを再訓練するためのユーザ指令を受信し、圧縮された訓練済モデルに基づき、再訓練済モデルを生成し、再訓練済モデルに対応するダウンロードデータを提供してもよい。
【0071】
プロセッサは、目標デバイスについての情報に基づき、圧縮された訓練済モデルを量子化又は較正してもよい。
【0072】
プロセッサは、遅延時間情報に基づき、訓練済モデルの圧縮設定値を判定してもよい。
【0073】
図1は、本開示の一実施形態に係る電子機器の動作を説明するための図である。
【0074】
図1を参照すると、電子機器1200は、モデル取得部110、圧縮部120、及びランチャ部130を備えてもよい。モデル取得部110、圧縮部120、及びランチャ部130は、ソフトウェアモジュールとして実装されてもよい。プロセッサ1230は、各ユニットに関連の指示をメモリ1220にロードし、実行してもよい。
【0075】
モデル取得部110は、ターゲットセット101及び目標デバイス情報102(又は目標デバイスの情報)に基づき、訓練済モデル115を取得してもよい。例えば、モデル取得部110は、第1のプロジェクトを実施して第1の訓練済モデルを取得してもよい。モデル取得部110は、圧縮部120から圧縮モデル125を受信してもよい。モデル取得部110は、圧縮モデル125に基づいて設定された第3のプロジェクトを実施することにより、再訓練済モデルを取得してもよい。
【0076】
モデル取得部110は、圧縮部120又はランチャ部130に訓練済モデル115送信してもよい。例えば、モデル取得部110は、第1の訓練済モデルを圧縮部120に送信してもよい。モデル取得部110は、再訓練済モデルをランチャ部130に送信してもよい。モデル取得部110に関連の電子機器1200の他の動作(例えば、プロジェクトを実施する動作)については上述したため、その詳細な説明は省略する。
【0077】
圧縮部120は、入力モデルに圧縮を実施することによって軽量モデルを出力してもよい。圧縮部120は、訓練済モデル115又はニューラルネットワークモデル135を圧縮して圧縮モデル125を生成してもよい。ニューラルネットワークモデル135は、モデル取得部110によって取得されていない所定のモデルであってもよい。圧縮部120は、圧縮モデル125をランチャ部130又はモデル取得部110を送信してもよい。
【0078】
圧縮部120は、ユーザによって設定された圧縮設定情報に基づき、入力モデルを圧縮してもよい。圧縮設定情報には、圧縮モード、圧縮方法、圧縮設定値、又は入力モデルに含まれる複数のチャンネルから圧縮目標を判定する参照情報のうちの少なくとも1つが含まれてもよい。圧縮モードには、入力モデルの圧縮のためにユーザによって設定されたモデル圧縮設定値に基づき、入力モデルを圧縮するための第1の圧縮モードが含まれてもよい。圧縮モードには、入力モデルに含まれるブロックの情報をユーザに提供し、ブロック圧縮のためにユーザによって設定されたブロック圧縮設定値にもとづき、訓練済モデルを圧縮する第2の圧縮モードが含まれてもよい。
【0079】
ランチャ部130は、目標デバイス上に展開される入力モデルに対応するダウンロードデータ145を出力してもよい。ランチャ部130に入力されたモデルには、圧縮モデル125、ニューラルネットワークモデル135、及び再訓練済モデルが含まれてもよい。
【0080】
ランチャ部130は、目標デバイス情報102に基づき、入力モデルに量子化を実施してもよい。目標デバイス情報102には、目標デバイスによってサポートされるデータ種別(例えば、8ビット整数タイプ)が含まれてもよい。ランチャ部130は、入力モデルのデータ種別を目標デバイスによってサポートされるデータ種別に変換してもよい。
【0081】
ランチャ部130は、入力モデルに較正を実施してもよい。ランチャ部130は、ユーザによって入力されたコード又は事前に記憶されたコードに基づき、較正を実施してもよい。例えば、ランチャ部130は、量子化間隔を調整してもよい。ランチャ部130は、調整された量子化間隔に基づき、量子化を実施してもよい。これに応じて、入力モデル又は量子化モデルのパラメータ値(例えば、重量値)が変更されてもよい。
【0082】
ランチャ部130は、ダウンロードデータ145をユーザに提供してもよい。ダウンロードデータ145は、ダウンロードファイル、ダウンロードパッケージ、又は同様の収集データを意味し得る。ユーザがダウンロードデータ145をリクエストすると、ランチャ部130は、ダウンロードデータ145をユーザデバイスに送信してもよい。これに応じて、目標デバイスに合わせて最適化されたニューラルネットワークモデルがユーザデバイスにインストールされてもよい。
【0083】
図2は、本開示の一実施形態に係る第1の圧縮モードを説明するための図である。各動作は、プロセッサ1230によって実施されてもよい。
【0084】
図2を参照すると、電子機器1200は、ベースモデルの圧縮のためのユーザによって設定されたモデル圧縮設定値を受信してもよい(S210)。例えば、モデル圧縮設定値には、プルーニング程度及びランク数を示すプルーニング比を判定するための値が含まれてもよい。ベースモデルには、モデル取得部110によって取得された訓練済モデル115及びニューラルネットワークモデル135が含まれてもよい。
【0085】
電子機器1200は、ベースモデルに含まれる複数のブロックのうちから複数の圧縮可能目標ブロックを特定してもよい(S220)。ブロックは、少なくとも1つの層を含む層セットであってもよい。ブロックは、種々の種別の層を含んでもよい。例えば、ブロックには、畳み込み層、有効化機能、正則化機能、及び算術演算子(例えば、加算演算子又は乗算演算子)が含まれてもよい。
【0086】
電子機器1200は、目標ブロックとして非圧縮可能ブロックと予め規定されたブロック以外のブロックを特定してもよい。非圧縮可能ブロックとして予め規定されたブロックには、有効化機能又は非有効化機能を備えたブロックが含まれてもよい。さらに、非圧縮可能として予め規定されたブロックには、出力チャンネルが算術演算子に直接接続されたブロックが含まれてもよい。ここで、出力チャンネルが算術演算子に直接接続されるということは、重量値を有するブロックが出力チャンネルと算術演算子との間に存在しないことを意味し得る。例えば、算術演算子の直前のブロックが、非圧縮可能ブロックであってもよい。
【0087】
電子機器1200は、モデル圧縮設定値及び所与のアルゴリズムに基づき、各々、複数の目標ブロックのうちの各々に関連付けられた複数の第1のブロックの圧縮のための設定値を導出してもよい(S230)。所与のアルゴリズムには、いわゆるlayer-adaptive sparsity for the magnitude-based pruning(LAMP)及びvariational Bayesian matrix factorization (VBMF)が含まれてもよい。ブロック圧縮設定値には、個々のブロックのプルーニング程度を示すプルーニング比及びランク数が含まれてもよい。本開示において、モデル圧縮設定値とは、モデル全体に対応する値を意味し得るもので、モデル圧縮設定値は、モデルに含まれる個々のブロックに対応する値を意味し得る。
【0088】
電子機器1200は、デバイスファームから取得した遅延時間に基づき、ブロック圧縮設定値を取得してもよい。例えば、電子機器1200は、ブロックに対応する遅延時間が増加するほど大きくなるようにブロックに適用される圧縮比を取得してもよい。さらに、電子機器1200は、デバイスファームから取得した遅延時間を使用して、所与のアルゴリズムに基づいて取得したブロック圧縮設定値を調整してもよい。
【0089】
電子機器1200は、複数の第1のブロックの圧縮のための設定値に基づき、複数の目標ブロックを圧縮してもよい(S240)。これに応じて、電子機器1200は、圧縮モデルを取得してもよい。例えば、電子機器1200は、複数の目標ブロックにプルーニングを実施してもよい。或いは、電子機器1200は、複数の目標ブロックにフィルタ分解(又は、テル損分解)を実施してもよい。
【0090】
電子機器1200は、複数の第1のブロックの圧縮のための設定値をユーザに提供してもよい。例えば、電子機器1200は、ユーザデバイスに、複数の第1のブロックを圧縮するための設定値の表示に関連する指令及び複数の第1のブロックの圧縮のための設定値を送信することで、複数のブロックの圧縮のための設定値がユーザデバイス上に表示されるようにしてもよい。これに応じて、ユーザデバイスは、複数の第1のブロックの圧縮のための設定値を表示してもよい。
【0091】
ユーザは、複数の第1のブロックの圧縮のための設定値のうちから、少なくとも1つのブロック圧縮設定値を修正してもよい。電子機器1200は、ユーザデバイスから、少なくとも1つの第1のブロックの圧縮のための設定値を修正するためのユーザ指令を受信してもよい。電子機器1200は、ユーザ指令に基づき、複数の目標ブロックを圧縮してもよい。
【0092】
第1の圧縮モードにおいて、ユーザは、単一のモデルの圧縮のための設定値のみを入力することにより、軽量モデルを得てもよい。これに応じて、ユーザの利便性が向上されてもよい。他の実施形態において、ユーザは、各々、複数の圧縮方法の各々に関連付けられた複数のモデルを圧縮するための設定値を入力してもよい。例えば、ユーザは、プルーニングに対応する第1のモデル圧縮のための設定値、及びフィルタ分解に対応する第2のモデル圧縮のための設定値を入力してもよい。
【0093】
図3は、本開示の一実施形態に係る第1の圧縮モードの圧縮設定画面である。
【0094】
図3を参照すると、圧縮設定画面300には、圧縮モデルの名称を受信するための第1の領域310、圧縮のためのユーザメモを受信するための第2の領域320、圧縮されるベースモデルを受信するための第3の領域330、及びモデル圧縮設定値を受信するための第4の領域340が含まれてもよい。圧縮設定画面300は、ユーザデバイス上に表示されてもよい。
【0095】
ユーザデバイスは、圧縮設定画面300に入力された情報を電子機器1200に送信してもよい。電子機器1200は、圧縮設定画面300に入力された情報に基づき、ベースモデルに含まれる複数の目標ブロックに対応する複数のブロックの圧縮のための設定値を取得してもよい。電子機器1200は、ベースモデルとして、第3の領域330において選択されたモデルを特定してもよい。第3の領域330には、モデル取得部110によって取得された訓練済モデル115及びニューラルネットワークモデル135を含むモデル一覧が提供されてもよい。電子機器1200は、第4の領域340においてユーザに設定された圧縮比に基づき、複数の目標ブロックに対応する複数の圧縮比を取得してもよい。
【0096】
電子機器1200は、ユーザによって設定されたモデル圧縮設定値に基づき、所定の圧縮方法に対応するモデル圧縮設定値を取得してもよい。所定の圧縮方法には、プルーニング及び/又はフィルタ分解が含まれてもよい。例えば、電子機器1200は、ユーザによって設定された圧縮比に基づき、目標ブロックに対応するプルーニング比を取得してもよい。代替として、電子機器1200は、ユーザによって設定された圧縮比に基づき、目標ブロックに対応するランク数を取得してもよい。所定の圧縮方法は、ユーザによって設定されてもよい。
【0097】
所定の圧縮方法は、複数あってもよい。例えば、電子機器1200は、ユーザによって設定された圧縮比に基づき、プルーニング比及び目標ブロックに対応するランク数を取得してもよい。電子機器1200は、ベースモデルにプルーニング及びフィルタ分解を実施してもよい。
【0098】
一方、ユーザは、圧縮方法及びモデル圧縮設定値をともに設定してもよい。例えば、ユーザは、圧縮方法としてプルーニングを選択し、ベースモデルに対応するプルーニング比を入力してもよい。この場合、電子機器1200は、ベースモデルに対応するプルーニング比に基づき、ベースモデルに含まれる目標ブロックに対応するプルーニング比を取得してもよい。
【0099】
図3には示されていないが、圧縮設定画面300には、圧縮方法を選択するためのユーザ指令を受信するための圧縮方法選択領域が含まれてもよい。或いは、圧縮方法選択領域は、別の画面上に設けられてもよい。
【0100】
図4は、本開示の一実施形態に係る第2の圧縮モードを説明するための図である。各動作は、プロセッサ1230によって実施されてもよい。
【0101】
図4を参照すると、電子機器1200は、ベースモデルを分析することにより、ベースモデルのプロファイル情報を導出してもよい(S410)。ベースモデルのプロファイル情報には、ベースモデルに含まれる各ブロックの情報が含まれてもよい。各ブロックの情報には、ブロックの識別情報、ブロックに対応する遅延情報、ブロックに含まれるチャンネルの量、及びブロックに含まれるカーネルのサイズが含まれてもよい。
【0102】
電子機器1200は、ベースモデルのプロファイル情報をユーザに提供してもよい(S420)。電子機器1200は、ベースモデルのプロファイル情報をユーザデバイスに送信してもよい。ユーザデバイスは、ベースモデルのプロファイル情報を表示してもよい。
【0103】
電子機器1200は、ベースモデルに含まれる複数の目標ブロックの圧縮のために、ユーザによって設定された複数の第2のブロックの圧縮のための設定値を受信してもよい(S430)。複数の第2のブロックの圧縮のための設定値は、各々、複数の目標ブロックに対応してもよい。
【0104】
電子機器1200は、複数の第2のブロックの圧縮のための設定値に基づき、複数の目標ブロックを圧縮してもよい(S440)。例えば、電子機器1200は、複数の目標ブロックにプルーニング又はフィルタ分解を実施してもよい。これに応じて、電子機器1200は、軽量モデルを取得してもよい。
【0105】
図5は、本開示の一実施形態に係る第2の圧縮モードの圧縮設定画面である。
【0106】
図5を参照すると、圧縮設定画面500には、圧縮モデルの名称及びメモを受信するための第1の領域510、圧縮されるベースモデルを受信するための第2の領域520、及び圧縮方法を受信するための第3の領域530が含まれてもよい。選択された圧縮方法の説明531が、第3の領域530に表示されてもよい。
【0107】
圧縮方法には、プルーニング及びフィルタ分解が含まれてもよい。プルーニングには、基準に基づく第1種別のプルーニング、及びユーザによって設定された指標に基づく第2種別のプルーニングが含まれてもよい。フィルタ分解には、タッカ分解及びカノニカル/ポリアディック(CP)分解が含まれてもよい。圧縮設定画面500は、ユーザデバイス上に表示されてもよい。ユーザデバイスは、圧縮設定画面500に入力されたユーザ入力関連情報を電子機器1200に送信してもよい。電子機器1200は、ベースモデル及びユーザによって選択された圧縮方法に基づき、ベースモデルに圧縮を実施してもよい。
【0108】
図6は、本開示の一実施形態に係るブロック圧縮設定値を設定するための画面である。
【0109】
図6を参照すると、ブロック圧縮設定値を設定するための画面600には、ベースモデルの情報が表示される第1の画面610と、ブロック圧縮設定値を受信するための第2の画面620とが含まれてもよい。ベースモデルのアーキテクチャが第1の画面610上に表示されてもよい。さらに、各ブロックに対応する遅延時間及びモデルに含まれるチャンネルの量が、第1の画面610上に表示されてもよい。
【0110】
ユーザデバイスは、第2の画面620上において、ブロック圧縮設定値を設定するためのユーザ入力を取得してもよい。例えば、ユーザデバイスは、第1のブロック(ブロック1)に対応する第1のブロック圧縮のための設定値(例えば、0.5)を取得してもよい。ユーザデバイスは、第1のブロック圧縮のための設定値を電子機器1200に送信してもよい。電子機器1200は、第1のブロック圧縮のための設定値に基づき、第1のブロックを圧縮してもよい。
【0111】
このように、第2の圧縮モードにおいて、ユーザは、各ブロックに対して所望のブロック圧縮設定値を設定してもよく、各ブロックが所望に合わせて圧縮される圧縮モデルを取得してもよい。これに応じて、ユーザ満足度が向上されてもよい。
【0112】
図示はしないが、圧縮方針を選択するためのUI要素は、圧縮設定画面500又は画面600に表示されてもよい。圧縮方針とは、いかにして圧縮を実施するかに係るルールを意味し得る。例えば、圧縮方法がプルーニングである場合、プルーニングされるチャンネルは、圧縮のための設定値が同一であっても、圧縮方針に応じて変動し得る。
【0113】
図7は、本開示の一実施形態の圧縮方針を説明するための図である。具体的には、図7は、3つの圧縮方針に対してプルーニングされたノードを示している。
【0114】
図7を参照すると、ブロックには、第1の層710及び第2の層720が含まれてもよい。第1の層710には、複数のノードN11、N12、N13、N14、及びN15が含まれてもよい。第2の層720は、複数のノードN21、N22、N23、N24、及びN25が含まれてもよい。ノードN11及びノードN21は、同一の指標を有する。ノードN12及びノードN22は、同一の指標を有する。ノードN13及びノードN23は、同一の指標を有する。ノードN14及びノード24は、同一の指標を有する。ノードN15及びノードN25は、同一の指標を有する。
【0115】
各ノード(又はニューロン)上に示された数は、各ノードの重要度を示す。例えば、ノードN11の重要度は、0.08であり、ノードN12の重要度は、0.14である。示された重要度は、正規化された値であってもよい。電子機器1200は、ユーザによって選択された圧縮方法に基づき、各ノードの重要度を計算してもよい。例えば、「L2ノルムプルーニング」が第3の領域530において選択されると、電子機器1200は、L2ノルムに基づき、各ノードの重要度を計算してもよい。
【0116】
電子機器1200は、圧縮方針及び各ノードの重要度に基づき、プルーニングされるノードを判定してもよい。以降、種々の圧縮方針に応じたプルーニング方法について説明する。
【0117】
圧縮方針が第1の方針(平均)として設定されるとき、電子機器1200は、各チャンネルの重要度の低い順に、2つのノードを特定してもよい。例えば、電子機器1200は、第1のチャンネル710において、ノードN11及びノードN12を特定してもよい。電子機器1200は、第2のチャンネル720において、ノードN22及びノードN24を特定してもよい。電子機器1200は、特定されたノード及び特定されたノードと同一の指標を有するノードの平均値を計算してもよい。例えば、電子機器1200は、ノードN11の重要度及びノードN21の重要度の平均値を計算してもよい。さらに、電子機器1200は、ノードN12の重要度及びノードN22の重要度の平均値を計算してもよい。電子機器1200は、最も平均値の低いノードセットに含まれるノードをプルーニングしてもよい。例えば、電子機器1200は、ノードN12及びノードN21をプルーニングしてもよい。さらに、電子機器1200は、ノードN12及びノードN22をプルーニングしてもよい。
【0118】
圧縮方針が第2の方針(交差)として設定されるとき、電子機器1200は、各チャンネルの重要度の低い順に2つのノードを特定してもよい。例えば、電子機器1200は、第1のチャンネル710においてノードN11及びノードN12を特定してもよい。電子機器1200は、第2のチャンネル720において、ノードN22及びノードN24を特定してもよい。電子機器1200は、特定されたノードのうち、同一の指標を有するノードをプルーニングしてもよい。例えば、電子機器1200は、ノードN12及びノードN22をプルーニングしてもよい。
【0119】
圧縮方針が第3の方針(結合)として設定されるとき、電子機器1200は、各チャンネルの重要度の低い順に2つのノードを特定してもよい。例えば、電子機器1200は、第1のチャンネル710においてノードN11及びノードN12を特定してもよい。電子機器1200は、第2のチャンネル720においてノードN22及びノードN24を特定してもよい。電子機器1200は、特定されたノードの各々と同一の指標を有するノードをプルーニングしてもよい。例えば、電子機器1200は、ノードN11、及びノードN11と同一の指標を有するノードN21をプルーニングしてもよい。電子機器1200は、ノードN12及びノードN22をプルーニングしてもよい。電子機器1200は、ノードN24、及びノードN24と同一の指標を有するノード14をプルーニングしてもよい。
【0120】
一方、図7において、各チャンネルにおいて特定されたノードの数は、一例として2つであるが、本開示はこれに限定されるものでない。例えば、電子機器1200は、各チャンネルにおいて重要度の低い順に3つ以上のノードを特定してもよい。
【0121】
図8は、本開示の実施形態に係るニューラルネットワークモデルを圧縮する方法を示すフローチャートである。
【0122】
図8を参照すると、電子機器1200は、訓練済モデル、及び訓練済モデルを圧縮するための圧縮方法を受信してもよい(S810)。例えば、電子機器1200は、モデル取得部110に基づき、訓練済モデル115を取得してもよい。或いは、電子機器1200は、ニューラルネットワークモデル135を取得してもよい。
【0123】
電子機器1200は、圧縮方法に基づき、訓練済モデルに含まれる複数のブロックのうち、圧縮可能ブロック及び非圧縮可能ブロックを特定してもよい(S820)。本開示において、非圧縮可能ブロックには、圧縮が実施されなくてもよいブロックのみならず、圧縮が実施されてもよいものの、圧縮実施時には、圧縮モデルの性能が閾値よりも低いブロックも含まれ得る。
【0124】
訓練済モデルが圧縮可能であるか否かを判定する基準は、圧縮方法に応じて異なってもよい。圧縮方法には、プルーニング及びフィルタ分解が含まれてもよい。
【0125】
圧縮方法がプルーニングであるとき、電子機器1200は、有効化機能、正規化機能、出力チャンネルが算術演算子に直接接続されるブロックを、非圧縮可能ブロックとして特定してもよい。ここで、出力チャンネルが算術演算子に直接接続されるということは、重量値を有する他のブロックが対応するブロック及び算術演算子の間に存在しないことを意味し得る。例えば、第3のブロック、第4のブロック、及び第5のブロックは、連続して直列に接続され得る。第4のブロックは、有効化機能又は正規化機能であってもよく、第5のブロックは、算術演算子であってもよい。この場合、第3のブロックは、「出力チャンネルが算術演算子に直接接続されるブロック」であり得る。これに応じて、電子機器1200は、第3のブロックが非圧縮可能ブロックであることを判定してもよい。
【0126】
圧縮方法は、フィルタ分解であるとき、電子機器1200は、畳み込み層を含む層を圧縮可能ブロックとして特定してもよい。
【0127】
電子機器1200は、第1の画面上の複数のブロック間の接続関係を表す訓練済モデルの構造を表示することで、圧縮可能ブロック及び非圧縮可能ブロックが視覚的に区別できるようにし、圧縮可能ブロックの圧縮のための設定値を受信するための入力フィールドを第2の画面に表示するために、ユーザデバイスに指令を送信してもよい(S830)。ユーザデバイスは、電子機器1200から受信した指令に基づき、第1の画面上に訓練済モデルの構造を表示してもよい。さらに、ユーザデバイスは、圧縮可能ブロックの圧縮のための設定値を受信するための入力フィールドを第2の画面上に表示してもよい。ユーザデバイスは、第1の画面及び第2の画面を同時に出力してもよい。
【0128】
訓練済モデルの構造は、各々、訓練済モデルに含まれた複数のブロックの各々に関連付けられた複数のUI要素間の接続関係を表してもよい。複数のUI要素は、各々、複数のブロックのうちの1つの情報を表してもよい。複数のブロックのうちの1つの情報には、複数のブロックの各々の識別情報、及び各々、複数のブロックのうちの各々に関連付けられた複数の遅延時間が含まれてもよい。例えば、訓練済モデルの構造は、複数のUI要素がノードとして表現されるグラフ形態で表現されてもよい。
【0129】
一方、電子機器1200は、訓練済モデルが実行される目標デバイスを含むデバイスファームを使用して、複数のブロックのうちの各々に関連付けられた複数の遅延時間を取得してもよい。例えば、目標デバイスが第1のデバイスとして選択されるとき、ユーザデバイスは、第1のデバイスの情報を電子機器1200に送信してもよい。電子機器1200は、第1のデバイスの情報に基づき、デバイスファームにおいて第1のデバイスを特定してもよい。電子機器1200は、第1のデバイスにおいて訓練済モデルを実行することにより、各々、複数のブロックのうちの各々に関連付けられた複数の遅延時間を計算してもよい。
【0130】
電子機器1200は、入力フィールドにおいてユーザによって入力されたブロック圧縮設定値に基づき、訓練済モデルを圧縮してもよい(S840)。例えば、電子機器1200は、ユーザによって入力されたプルーニング比に基づき、訓練済モデルにプルーニングを実施してもよい。
【0131】
一方、第1の画面上に表示された圧縮可能ブロックに対応する第1のUI要素が選択されるとき、電子機器1200は、第2の画面上に表示された圧縮可能ブロックに対応する入力フィールドを有効化するために、ユーザデバイスに指令を送信してもよい。これに応じて、ユーザは、有効化された入力フィールドに圧縮のための設定値を入力してもよい。さらに、第1のUI要素が選択されると、電子機器1200は、第1の画面上に選択された第1のUI要素に対応する圧縮可能ブロックの詳細情報を表示するために、ユーザデバイスに指令を送信してもよい。
【0132】
第1画面上に表示された非圧縮可能ブロックに対応する第2UI要素が選択されるとき、電子機器1200は、第1の画面上に非圧縮可能ブロックの詳細情報を表示するため、ユーザデバイスに指令を送信してもよい。非圧縮ブロックの詳細情報には、非圧縮可能ブロックに含まれるチャンネルの量、又はカーネルのサイズのうちの少なくとも一方が含まれてもよい。
【0133】
図8において、ユーザデバイスが電子機器1200から受信した指令に基づき、第1の画面及び第2の画面を表示することについて説明してきた。一実施形態において、ユーザデバイスは、電子機器1200から受信する指令を伴うことなく、ユーザ入力に基づいて第1の画面及び第2の画面を表示してもよい。例えば、第1の画面に表示された第1の圧縮可能ブロックに対応するUI要素を選択するためのユーザ入力が取得されると、ユーザデバイスは、第2の画面上に表示された第1のブロックに対応する第1の入力フィールドを有効化してもよい。
【0134】
以降、第1の画面及び第2の画面について詳細に説明する。
【0135】
図9は、本開示の一実施形態に係るブロック圧縮設定値を設定するための画面である。画面900は、圧縮モードが第2の圧縮モードとして設定されるとき、ユーザデバイス上に表示されてもよい。ユーザは、画面900に基づいて圧縮される訓練済モデルに含まれるブロックに対応するブロック圧縮設定値を入力してもよい。
【0136】
図9を参照すると、画面900は、第1の画面910及び第2の画面920を含んでもよい。ユーザデバイスは、第1の画面910上に訓練済モデルの構造を表示してもよい。例えば、訓練済モデルの構造は、各々、訓練済モデルに含まれる複数のブロック(add、conv1、conv2、relu、hardsigmoid、mul、及びconv3)の各々に関連付けられる複数のUI要素911、912、913、914、915、916、及び917がノードによって表される階級構造であってもよい。訓練済モデルの構造は、複数のUI要素911、912、913、914、915、916、及び917の間の接続関係を表してもよい。
【0137】
ユーザデバイスは、第1の画面910上に複数のUI要素911、912、913、914、915、916、及び917を表示してもよい。複数のUI要素911、912、913、914、915、916、及び917には各々、対応ブロックの情報を示してもよい。例えば、第1のブロック(add)に対応する第1のUI要素911には、第1のブロックに対応する遅延時間を示すインジケータLI1を含んでもよい(add)。このように、ブロックに対応する遅延時間が画面900上に表示されるとき、ユーザは、ブロック圧縮設定値を判定するときに表示される遅延時間を参照してもよい。すなわち、各ブロックの圧縮のための設定値は、各ブロックに対応する遅延時間に基づいて判定されてもよい。さらに、ユーザの利便性が向上されてもよい。
【0138】
ユーザデバイスは、圧縮可能ブロック及び非圧縮可能ブロックを区別して表示してもよい。図9において、電子機器1200は、第1のブロック(add)、第6のブロック(mul)、及び第7のブロック(conv3)を圧縮可能ブロックとして判定してもよい。電子機器1200は、第2のブロック(conv1)、第3のブロック(conv2)、第4のブロック(relu)、及び第5のブロック(harsigmoid)を非圧縮可能ブロックとして判定してもよい。具体的には、第2のブロック(conv1)及び第3のブロック(conv2)の出力チャンネルが、乗算演算子である第6のブロック(mul)に直接接続されるため、第2のブロック(conv1)及び第3のブロック(conv2)は、非圧縮可能ブロックとして判定されてもよい。第4のブロック(relu)及び第5のブロック(harsigmoid)が有効化機能であるため、第4のブロック(relu)及び第5のブロック(hardsigmoid)は非圧縮可能ブロックであると判定されてもよい。
【0139】
例えば、圧縮可能ブロック(add、mul、及びconv3)に対応するUI要素911、916、及び917には、チェックボックスCB1、CB6、及びCB7が含まれてもよい。非圧縮可能ブロック(conv1、conv2、relu、及びhardsigmoid)に対応するUI要素912、913、914、及び915には、チェックボックスが含まれなくてもよい。UI要素911、916、及び917は、UI要素912、913、914、及び915よりも良好な視認性を伴って表示されてもよい。例えば、UI要素911、916、及び917は、UI要素912、913、914、及び915よりも明るく表示されてもよい。或いは、UI要素911、916、及び917は、実線で表示されてもよく、UI要素912、913、914、及び915は、点線で表示されてもよい。
【0140】
ユーザデバイスは、第2の画面920上に圧縮可能ブロックの情報を表示してもよい。例えば、ユーザデバイスは、出力チャンネルの量及び圧縮可能ブロック(add、mul、及びconv3)の各々の名称を示してもよい。ユーザデバイスは、圧縮可能ブロックの圧縮のための設定値を受信するための入力フィールドを表示してもよい。ここにおいて、圧縮のための設定値とは、上述のブロック圧縮設定値を意味する。例えば、ユーザデバイスは、各々、圧縮可能ブロック(add、mul、及びconv3)の各々に関連付けられた入力フィールドIF1、IF2、及びIF3を表示してもよい。入力フィールドIF1、IF2、及びIF3は、プルーニング比を受信してもよい。さらに、ユーザデバイスは、圧縮可能ブロック(add、mul、及びconv3)の各々を選択するためのチェックボックスCB11、CB12、及びCB13を表示してもよい。
【0141】
図10は、本開示の一実施形態に係るブロック圧縮設定値を設定するための画面である。
【0142】
図10を参照すると、ユーザデバイスは、第1の画面910を通じて取得されたユーザ入力に基づき、第2の画面920を表示してもよい。例えば、第1のUI要素911又は第1のブロック(add)がユーザによって選択されてもよい。例えば、ユーザは、チェックボックスCB11をクリックしてもよい。ユーザデバイスは、選択された第1のブロック(add)に対応するチェックボックスCB1内にチェックマークを表示し、第1の入力フィールドIF1を有効化してもよい。第1のUI要素911の選択が解放されてもよい。この場合、ユーザデバイスは、第1の入力フィールドIF1を無効化してもよい。
【0143】
ユーザデバイスは、第2の画面920を通じて取得されたユーザ入力に基づき、第1の画面910を表示してもよい。例えば、第1のブロック(add)に対応するチェックボックスCB11が選択されると、ユーザデバイスは、第1のブロック(add)に対応するチェックボックスCB1内にチェックマークを表示してもよい。チェックボックスCB11の選択が解放されると、ユーザデバイスは、チェックボックスCB1内に表示されたチェックマークを外してもよい。
【0144】
図11は、本開示の一実施形態に係るブロック圧縮設定値を設定するための画面である。
【0145】
図11を参照すると、ユーザデバイスは、ユーザによって選択されたブロックに関連の詳細情報を提供してもよい。ブロックに関連の詳細情報には、チャンネルの数、カーネルのサイズ、ストライド、又はブロックに含まれる遅延時間のうちの少なくとも1つが含まれてもよい。例えば、第7のブロック(conv3)が選択され得る。この場合、ユーザデバイスは、第1の画面910上に第7のブロック(conv3)に関連の詳細情報930を表示してもよい。一方、ユーザは、非圧縮可能ブロックを選択することもある。例えば、ユーザは第2のブロック(conv1)を選択し得る。この場合、ユーザデバイスは、第1の画面910上に第2のブロック(conv2)に関連の詳細情報を表示してもよい。
【0146】
一方、図9図11は、入力フィールドが、ブロック圧縮設定値として0超かつ1以下の比率を受信することを示している。しかしながら、本開示は、これに限定されるものでなく、ブロック圧縮設定値の範囲は、圧縮方法に応じて種々に変更され得る。例えば、圧縮方法が指標に基づく第2の種別のプルーニングであるとき、入力フィールドは、プルーニングされるチャンネルの指標を受け取ってもよい。他の例として、圧縮方法がタッカ分解であるとき、入力フィールドは、コアテンサの入力チャンネルの量、及びコアテンサの出力チャンネルの量を受け取ってもよい。
【0147】
一方、ブロック圧縮設定値は、ユーザによって入力されてもよく、或いは電子機器1200によって判定されてもよい。例えば、電子機器1200は、各ブロックに対応する遅延時間に基づき、各ブロックの圧縮比を設定してもよい。電子機器1200は、ブロックに対応する遅延時間が長くなるほど、ブロックの圧縮比が高くなるように設定してもよい。図9を参照すると、第1のブロック(add)に対応する圧縮比は、第6のブロック(mul)に対応する圧縮比よりも小さくてもよい。
【0148】
図12は、本開示の実施形態に係る電子機器の構成を示すブロック図である。
【0149】
図12を参照すると、電子機器1200は、通信インタフェース1210、メモリ1220、及びプロセッサ1230を備え得る。例えば、電子機器1200は、物理サーバ又はクラウドサーバとして実装されてもよい。
【0150】
通信インタフェース1210は、少なくとも1つの通信回路を備え、種々の種別の外部デバイスと通信し得る。例えば、通信インタフェース1210は、外部デバイスからデータセット及び目標デバイスの情報を受信してもよい。外部デバイスは、ユーザデバイスであってもよい。ユーザデバイスには、パーソナルコンピュータ及びモバイルデバイスが含まれてもよい。通信インタフェース1210は、目標デバイスの情報に基づいて検索された複数のベースモデルの情報を外部デバイスに送信してもよい。これに応じて、外部デバイスは、複数のベースモデルの情報を出力してもよい。通信インタフェース1210は、外部デバイスから、複数のベースモデルのうちの少なくとも1つを選択するためのユーザ指令を受信してもよい。
【0151】
通信インタフェース1210は、少なくとも1つの選択されたベースモデル及びデータセットを外部サーバに送信してもよい。外部サーバは、データセットを使用して選択された少なくとも1つのベースモデルを訓練した後、訓練済ニューラルネットワークモデル(又は訓練済モデル)を取得してもよい。通信インタフェース1210は、外部サーバから訓練済モデルを受信してもよい。
【0152】
通信インタフェース1210は、訓練済モデルを外部デバイスに送信してもよい。通信インタフェース1210は、訓練済モデルの情報を外部デバイスに送信してもよい。訓練済モデルの情報には、訓練済モデルの名称、訓練済モデルによって実施されるタスク、訓練済モデルに対応する目標デバイスの情報、及び訓練済モデルの性能(例えば、正確さ及び遅延時間)が含まれてもよい。一方、本開示において、ニューラルネットワークモデルを取得/記憶/送信/受信することは、モデルに関連のデータ(例えば、アーキテクチャ、重量)を取得/記憶/送信/受信することを意味する。
【0153】
通信インタフェース1210には、Wi-Fi通信モジュール、セルラー通信モジュール、第3世代(3G)モバイル通信モジュール、第4世代(4G)モバイル通信モジュール、第4世代ロングタームエボリューション(LTE)通信モジュール、第5世代(5G)モバイル通信、又は有線イーサネット(登録商標)のうちの少なくとも1つが含まれてもよい。
【0154】
メモリ1220は、電子機器1200の構成要素の全体的動作を制御するためのオペレーティングシステム(OS)、及び電子機器1200の構成要素に関連の指令又はデータを記憶してもよい。メモリ1220は、非揮発性メモリ(例えば、ハードディスク、ソリッドステートドライブ(SSD)、及びフラッシュメモリ)、揮発性メモリ等として実装されてもよい。
【0155】
メモリ1220には、データベース(DB)が含まれてもよい。例えば、メモリ1220には、データセットを記憶するためのデータセットDBが含まれてもよい。メモリ1220には、プロジェクトを記憶するためのプロジェクトDBが含まれてもよい。メモリ1220には、訓練済モデルを記憶するためのモデルDBが含まれてもよい。DBに記憶された情報は、ユーザに提供されてもよい。例えば、データセット一覧、プロジェクト一覧、及び/又はモデル一覧が、外部デバイス上に表示されてもよい。
【0156】
メモリ1220は、複数のニューラルネットワークモデルの情報を記憶してもよい。例えば、メモリ1220は、複数のニューラルネットワークモデルの識別情報、目標デバイスの情報、及び複数のニューラルネットワークモデルの性能情報が照合されるルックアップテーブルを記憶してもよい。 複数のニューラルネットワークモデルの性能情報は、ニューラルネットワークモデルが目標デバイス内で実行されるときの複数のニューラルネットワークモデルの各々の性能(例えば、遅延時間)を反映させてもよい。目標デバイスに対するニューラルネットワークモデルの性能は、ニューラルネットワークモデルが目標デバイス内で実行されるときのニューラルネットワークモデルの性能であってもよい。ニューラルネットワークモデルの遅延時間は、デバイスファームから取得されてもよい。ニューラルネットワークモデルの正確さは、テストデータを使用して取得されてもよい。
【0157】
メモリ1220は、ベースモデルを検索するための所与のアルゴリズムを記憶してもよい。所与のアルゴリズムには、ハイパーパラメータ最適化(HPO)アルゴリズム又はニューラルアーキテクチャ検索(NAS)アルゴリズムの少なくとも一方が含まれてもよい。ハイパーパラメータ最適化アルゴリズムには、木構造パーゼン推定器(TPE)が含まれてもよい。TPEアルゴリズムは、ベイズ最適化に基づいてもよい。ニューラルネットワークアーキテクチャ検索アルゴリズムは、進化的アルゴリズムに基づいてもよい。
【0158】
プロセッサ1230は、電子機器1200の全体的な動作及び機能を制御するために、メモリ1220に電気的に接続されてもよい。プロセッサ1230は、メモリ1220に記憶された指示を実行することによって電子機器1200を制御してもよい。
【0159】
プロセッサ1230は、訓練済モデル及び訓練済モデルを圧縮するための圧縮方法を取得してもよい。例えば、プロセッサ1230は、モデル取得部110に基づいて訓練済モデル115を取得してもよい。或いは、プロセッサ1230は、ニューラルネットワークモデル135を取得してもよい。
【0160】
プロセッサ1230は、圧縮方法に基づき、訓練済モデルに含まれる複数のブロックのうちから、圧縮可能ブロック及び非圧縮可能ブロックを特定してもよい。
【0161】
圧縮方法に応じて、訓練済モデルが圧縮可能であるか否かを判定する基準が異なってもよい。圧縮方法には、プルーニング及びフィルタ分解が含まれてもよい。
【0162】
圧縮方法がプルーニングであるとき、プロセッサ1230は、非圧縮ブロックとして、有効化機能、正規化機能、及び出力チャンネルが算術演算子に直接接続されたブロックを特定してもよい。ここで、出力チャンネルが算術演算子に直接接続されるということは、重量値を有する他のブロックが対応ブロックと算術演算子との間に存在しないことを意味し得る。例えば、第3のブロック、第4のブロック、及び第5のブロックは、直列に連続して接続されてもよい。第4のブロックは、有効化機能又は正規化機能であってもよく、第5のブロックは、算術演算子であってもよい。この場合、第3のブロックは、「出力チャンネルが算術演算子に直接接続されたブロック」であり得る。これに応じて、プロセッサ1230は、第3のブロックが非圧縮可能ブロックであると判定してもよい。
【0163】
圧縮方法がフィルタ分解であるとき、プロセッサ1230は、圧縮可能ブロックとして畳み込み層を含むブロックを特定してもよい。
【0164】
訓練済モデルの構造は、圧縮可能ブロック及び非圧縮可能ブロックが視覚的に区別されるように、第1の画面上に複数のブロック間の接続関係を表してもよい。プロセッサ1230は、通信インタフェース1210を制御して、第2の画面上に、圧縮可能ブロックの圧縮のための設定値を受信するための入力フィールドを表示するために、ユーザデバイスに指令を送信してもよい。ユーザデバイスは、電子機器1200から受信した指令に基づき、第1の画面上に訓練済モデルの構造を表示してもよい。さらに、ユーザデバイスは、第2に画面上に、圧縮可能ブロックの圧縮のための設定値を受信するための入力フィールドを表示してもよい。ユーザデバイスは、第1の画面及び第2の画面を同時に出力してもよい。
【0165】
訓練済モデルの構造は、各々、訓練済モデルに含まれる複数のブロックのうちの各々に関連付けられた複数のUI要素間の接続関係を表してもよい。複数のUI要素は、各々、複数のブロックのうちの1つの情報を表してもよい。複数のブロックのうちの1つの情報には、複数のブロックの各々の識別情報、及び各々、複数のブロックの各々に関連付けられた複数の遅延時間が含まれてもよい。例えば、訓練済モデルの構造は、複数のUI要素がノードとして表現されるグラフ形態で表現されてもよい。
【0166】
一方、プロセッサ1230は、訓練済モデルが実行される目標デバイスを含むデバイスファームを使用して、各々、複数のブロックのうちの各々に関連付けられた複数の遅延時間を取得してもよい。例えば、目標デバイスが第1のデバイスとして選択されるとき、ユーザデバイスは、電子機器1200に第1のデバイスの情報を送信してもよい。プロセッサ1230は、第1のデバイスの情報に基づき、デバイスファーム内で第1のデバイスを特定してもよい。プロセッサ1230は、第1のデバイスにおいて訓練済モデルを実行することにより、各々、複数のブロックの各々に関連付けられた複数の遅延時間を計算してもよい。
【0167】
プロセッサ1230は、入力フィールドにおいてユーザによって入力されたブロック圧縮設定値に基づき、訓練済モデルを圧縮してもよい。例えば、プロセッサ1230は、ユーザによって入力されたプルーニングに基づき、訓練済モデルにプルーニングを実施してもよい。
【0168】
以上に記載の本開示の種々の例としての実施形態は、ソフトウェア、ハードウェア、又はソフトウェア及びハードウェアの組み合わせを使用して、コンピュータ又はコンピュータ可読記録媒体において実装されてもよい。場合によっては、本開示に記載の実施形態は、プロセッサ自身として実装されてもよい。ソフトウェア実装によると、本開示に記載の手順及び機能等の実施形態は、別々のソフトウェアモジュールとして実装されてもよい。ソフトウェアモジュールは、各々、本開示に記載の1つ以上の機能及び動作を実施してもよい。
【0169】
上述の本開示の多様な実施形態に係る処理動作を実施するためのコンピュータ指示が、持続性コンピュータ可読媒体に記憶されてもよい。持続性コンピュータ可動媒体に記憶されたコンピュータ指示により、プロセッサによる実行時、特定の機械に、上述の多様な実施形態に係る処理動作を実施させる。
【0170】
持続性コンピュータ可読媒体は、レジスタ、キャッシュ、メモリ等、暫時的にデータを記憶する媒体ではなく、半恒久的にデータを記憶し、装置によって読み取り可能な媒体である。持続性コンピュータ可読媒体の具体例として、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ハードディスク、ブルーレイディスク、ユニバーサルシリアルバス(USB)、メモリカード、リードオンリーメモリ(ROM)等が挙げられる。
【0171】
機械可読記憶媒体が、持続性記憶媒体の形態で提供されてもよい。ここで「持続性記憶媒体」とは、記憶媒体が有形デバイスであり、信号(例えば、電磁波)を含まない記憶媒体を意味し、この用語は、データが半恒久的に記憶媒体上に記憶される場合と、データが一時的にそこに記憶される場合との間で区別しない。例えば、「持続性記憶媒体」には、データが一時的に記憶されるバッファが含まれ得る。
【0172】
本文書に開示の多様な実施形態に係る方法は、コンピュータプログラム製品に含まれて提供されてもよい。コンピュータプログラム製品は、販売人と購買人との間で商品としてやりとりされ得る。コンピュータプログラム製品は、機械可読記憶媒体(例えば、コンパクトディスクリードオンリーメモリ(CD-ROM))の形態で配布されてもよく、又はアプリケーションストア(例えば、Play Store(登録商標))を通じて配布(例えば、ダウンロード又はアップロード)されてもよく、又は2つのユーザデバイス(例えば、スマートフォン)間にてオンラインで直接配布(例えば、ダウンロード又はアップロード)されてもよい。オンライン配布の場合、コンピュータプログラム製品の少なくとも一部(例えば、ダウンロード可能なアプリ)が、メーカのサーバ、アプリケーションストアのサーバ、又は中継サーバのメモリ等、機械可読記憶媒体に少なくとも一時的に記憶されてもよく、一時的に生成されてもよい。
【0173】
上述の本開示の種々の実施形態によると、ターゲットデバイスに合わせて最適化されたニューラルネットワークモデルを提供することができる。
【0174】
上述の本開示の種々の実施形態によると、ユーザによって入力されたデータセットに基づいて訓練されたニューラルネットワークモデルを提供することができる。
【0175】
上述の本開示の種々の実施形態によると、ユーザによって入力された圧縮のための設定値に基づき、圧縮ニューラルネットワークモデルを提供することができる。
【0176】
上述の本開示の種々の実施形態によると、圧縮ニューラルネットワークモデルに対応するダウンロードデータを提供することができる。
【0177】
これに応じて、ユーザの利便性と満足度を向上することができる。
【0178】
多くの場合、実体は、他の実体に連結されるものとして説明した。「連結された」及び「接続された」(又はこれらの形態の任意のもの)の用語は、本明細書中、相互に読み替え可能に使用されており、双方の場合において、2つの実体が直接的に連結されること(無視できない(例えば寄生的な)介在実体を伴うことなく)、及び(1つ以上の無視できない介在実体を伴って)2つの実体が間接的に連結されることを包括的にいうものであることが理解されなければならない。実体が互いに直接連結されているように図示される場合、又はいずれの介在実体の記載も伴うことなく、ともに連結されるものとして記載される場合、これらの実体は、文脈によって別段の明示のないかぎり、非間接的に連結され得ることが理解されなければならない。
【0179】
記載された本発明のバリエーションの最適な特徴が、独立に、又は本明細書に記載の特徴のうちの1つ以上との組み合わせにおいて記載及びクレームされ得ることが考えられる。さらに、クレームが一実施形態に対する任意の要素を除外して設計され得ることにさらに留意されたい。このように、本記載は、クレーム要素の列挙との関連で使用される「単に」「のみ」等の排他的用語の使用、又は「ネガティブな」限定の使用の先行しとして機能することが意図されている。本明細書中、別段の規定のない限り、本明細書において使用されるすべての技術的及び科学的用語は、本発明が属する技術分野の当業者が一般に理解するのと同一の意味を有する。本発明の広がりは、本明細書によって限定されるものでなく、採用されたクレーム用語の率直な意味によっても限定される。
【0180】
さらに、本開示の実施形態によって得られる、又は予測され得る効果について、本開示の実施形態の詳細な説明において直接又は暗示的に開示した。例えば、本開示の実施形態において予測される種々の効果は、上述の詳細な説明に開示されている。
【0181】
本明細書に記載の実施形態及びそのクレームは、特許性のある主題に向けられたものである。これらの実施形態は、いくつかの理由により、抽象的着想を構成するものでない。そのような理由の1つとして、いずれのクレームもニューラルネットワーク最適化の能力を提供するものであるためである。これらの装置及びコンピュータ実施方法により、ターゲットデバイスの属性を判定するようにし、ターゲットデバイスに合わせて最適化されたニューラルネットワークモデルを取得及び/又は使用させることで、コンピュータ自体の機能を向上させるもので、そうでなければ副次的に最適化されたニューラルネットワークを稼働してしまうことで、抽象的着想を「著しく上回る」ものと見なされ得る。
【0182】
当業者にとって、本開示の他の態様、効果、及び顕著な特徴については、添付の図面とともに行った、本開示の種々の実施形態を開示した以上の詳細な説明により、明らかとなるであろう。
【0183】
本開示の実施形態について以上に図示及び説明したが、本開示は、上述の特定の実施形態に限定されるものでなく、添付の請求項に開示された本開示の要旨から逸脱することなく、本開示の関連する技術分野の当業者によって、種々に修正され得る。これらの修正も、本開示の範囲及び趣旨の範囲内であることも理解されなければならない。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12