エッジデバイス上でモデル推論を効率的に実行できる 5 つのアルゴリズム

エッジデバイス上でモデル推論を効率的に実行できる 5 つのアルゴリズム

ディープラーニングが進歩するにつれて、ニューラルネットワークはますます大きくなっています。たとえば、ImageNet 認識チャレンジでは、優勝モデルのサイズは 2012 年から 2015 年の間に 16 倍に増加しました。わずか1年で、Baiduの深層音声モデルのトレーニング操作の数は10倍に増加しました。

[[285700]]

一般的に、組み込みシステムにおけるディープラーニングには主に 3 つの課題があります。

モデルのサイズが大きくなるにつれて、そのモデルをモバイル フォンに展開することが難しくなります。モデルが 100 MB より大きい場合は、(一般的に) Wi-Fi に接続している場合にのみダウンロードできます。

トレーニング速度が極端に遅くなります。たとえば、オリジナルの ResNet152 は ResNet101 と比較して精度が 1% 未満しか向上しておらず、4 つの分散 GPU でトレーニングするには 1.5 週間かかります。

このような大規模なモデルはエネルギー効率にも問題があります。たとえば、囲碁で AlphaGo が李世ドルに勝利した際には、1,920 個の CPU と 280 個の GPU でのトレーニングが必要となり、電気代は約 3,000 ドルかかりました。

このような状況では、リソースが制限されたデバイス上でニューラル ネットワークを実行するには、データ エンジニアリングとデータ サイエンスの共同ソリューションが必要であり、これは「アルゴリズムとハードウェアの共同設計」と呼ばれることもあります。

この記事では、象限の左上隅についてのみ説明します。より高度な推論アルゴリズムとは何ですか?

1. ニューラルネットワークの剪定

あなたが思うかもしれないことに反して、剪定は木を切り倒すこととは何の関係もありません。機械学習では、モデルのプルーニングでは、より小さく高速なネットワークを取得するために、重要でない重みを削除します。

モデルプルーニングは、1989 年の論文「Optimal Brain Damage」で Yann Le Cun によって初めて提案されました。完全にトレーニングされたネットワークを取得し、剪定された重みを削除して、目的関数の増加を最小限に抑えるという考え方です。各パラメータの寄与はヘッセ行列によって近似できます。重要でない重みが削除されると、より小さなネットワークを再度トレーニングすることができ、ネットワークが十分なサイズと妥当なパフォーマンスを持つまでこのプロセスを数回繰り返すことができます。

それ以来、多種多様な剪定技術が開発されてきました。 Han らは 2015 年に「効率的なニューラル ネットワークのための重みと接続の両方の学習」で、ニューラル ネットワークをトレーニングし、次に選択したしきい値を下回る接続重みを削除し、最後にスパース ネットワークをトレーニングして残りの接続重みを学習するという 3 段階のアプローチを紹介しました。

プルーニングしきい値をどのように決定するのか疑問に思うかもしれません。良い質問です。畳み込み層と完全接続層の両方をプルーニングできますが、経験上、畳み込み層は完全接続層よりもプルーニングの影響を受けやすいことが分かっています。したがって、Han らの研究論文から引用した下の図に示すように、各レイヤーの感度に基づいてしきい値を選択する必要があります。

研究論文によると、プルーニングされた AlexNet の再トレーニングには、NVIDIA Titan X GPU で 173 時間かかりました。しかし、最終的な目標はリソースが限られたデバイス上でより小さなモデルを迅速に実行することであるため、再トレーニング時間は重大な問題ではありません。

ImageNet では、この方法により、AlexNet のパラメータ数が 9 倍 (6,100 万パラメータから 670 万パラメータへ) 削減され、VGG-16 のパラメータ数は 13 倍 (1 億 3,800 万パラメータから 1,030 万パラメータへ) 削減されました。プルーニング後、AlexNet と VGGNet のストレージ要件は大幅に削減され、すべての重みをオフチップ DRAM ではなくチップ上に保存できます (DRAM へのアクセスには大量のエネルギーが消費されます)。

2. ディープコンプレッション

ニューラル ネットワークは計算量とメモリ使用量の両方が大きいため、ハードウェア リソースが限られている組み込みシステムに導入するのは困難です。この制限に対処するために、Han らによる「Deep Compression」論文では、プルーニング、トレーニング済みモデルの量子化、ハフマン符号化の 3 段階のパイプラインが紹介されており、これらを組み合わせることで、精度を損なうことなくニューラル ネットワークのストレージ要件を 35 ~ 49 倍削減できます。

この方法では、まず重要な接続のみを学習してネットワークを削除します。次に、このメソッドは重みを量子化して重み共有を実行します。最後に、この方法ではハフマン符号化を使用します。最初の 2 つのステップの後、ネットワークを再トレーニングして残りの接続を微調整し、中心を量子化します。プルーニングにより、接続数が 9 ~ 13 倍削減されます。量子化により、各接続を表すビット数が 32 から 5 に削減されます。

ImageNet では、このアプローチにより、精度を損なうことなく、AlexNet に必要なストレージ容量が 35 倍 (240 MB から 6.9 MB) 削減されます。この方法では、精度を損なうことなく、VGG-16 事前トレーニング済みモデルのサイズを 49 分の 1 (552 MB から 11.3 MB) に削減します。

最後に、この深圧縮アルゴリズムにより、サイズとダウンロード帯域幅の両方が制限されているモバイル アプリケーションでの複雑なニューラル ネットワークの使用が容易になります。 CPU、GPU、モバイル GPU をベンチマークすると、圧縮されたネットワークはレイヤーごとに 3 ~ 4 倍の高速化と 3 ~ 7 倍のエネルギー効率を実現します。

3. データの定量化

近年、畳み込みニューラル ネットワーク ベースの手法は多数のアプリケーションで大きな成功を収めており、コンピューター ビジョンで最も広く使用されているアーキテクチャの 1 つとなっています。しかし、CNN ベースのアプローチは計算量が多く、リソースを消費するため、スマートフォン、スマート グラス、ロボットなどの組み込みシステムに統合することが困難です。 FPGA は CNN アクセラレーションの有望なプラットフォームですが、帯域幅とオンチップ メモリのサイズが限られているため、CNN FPGA アクセラレータのパフォーマンスが制限されます。

清華大学の研究者による論文「CNN 向け組み込み FPGA プラットフォームによるさらなる深化」では、ImageNet 大規模画像分類用の CNN 組み込み FPGA アクセラレータ設計が提案されました。著者らは、現在の高度な CNN モデルのアーキテクチャでは、畳み込み層は計算中心であり、完全接続層はメモリ中心であることを経験的に証明しています。そこで彼らは、帯域幅とリソースの使用率を向上させるために、動的かつ正確なデータ量子化方法(下の図を参照)を提案しました。

このデータ量子化フローでは、任意の 2 つの固定小数点数間の小数部の長さは、異なるレイヤーおよび特徴マップ セットでは動的ですが、同じレイヤーでは静的であるため、各レイヤーでの切り捨てエラーは最小限に抑えられます。

重み量子化段階の目標は、重みの層の最適な分数長を見つけることです。この段階では、まず各レイヤーの重みの動的範囲が分析されます。次に、データのオーバーフローを回避するために小数部の長さが初期化されます。

データ量子化ステージの目的は、2 つのレイヤー間の特徴マップのセットの最適な小数長を見つけることです。この段階では、貪欲アルゴリズムを使用して、固定小数点 CNN モデルと浮動小数点 CNN モデルの中間データをレイヤーごとに比較し、精度の低下を減らします。

彼らの結果(さまざまなニューラル ネットワーク アーキテクチャのさまざまな戦略をさらに分析した後)は、動的精度の量子化が静的精度の量子化よりも有益であることを示しました。動的厳密量子化を使用すると、同等の精度を達成しながら、より短い操作表現を使用できます。

4. 低ランク推定

畳み込みニューラル ネットワークのもう 1 つの問題は、テスト時の評価にコストがかかることです。このため、このモデルは実際のシステムでは実用的ではありません。たとえば、クラウド サービスでは、1 秒あたり数千件の新しいリクエストを処理する必要があります。携帯電話やタブレットなどのモバイル デバイスには、ほとんどの場合、CPU またはローエンドの GPU しか搭載されていません。物体検出などの一部の認識タスクでは、ハイエンドの GPU でも 1 枚の画像を処理するのに時間がかかります。したがって、CNN のテスト時間の計算を高速化することは、実用上重要な意味を持ちます。

Microsoft Research Asia の論文「非線形畳み込みネットワークの効率的かつ正確な近似」では、非線形畳み込みニューラル ネットワークを高速化する方法を提案しました。この方法は、非線形応答の再構成誤差を最小化することに基づいており、計算量を削減するために低ランク制約を採用しています。困難な制約付き最適化問題を解決するために、著者らはそれを 2 つの実行可能なサブ問題に分解し、それらを反復的に解決します。次に、非対称再構成誤差を最小限に抑える方法を提案し、これにより複数の近似層の累積誤差が効果的に削減されました。

左から、元のレイヤー W を W' と P に置き換えます。実際、d' フィルターのサイズは k×k×c です。

これらのフィルターは d 次元の特徴マップを生成します。この特徴グラフでは、d行d′列の行列Pは1×1×d′で実現できます。したがって、Pは、d'次元の特徴をd次元の特徴にマッピングする1×1空間サポートを持つ畳み込み層に対応します。

彼らはこの低ランク近似を ImageNet 用にトレーニングされた大規模ネットワークに適用し、トレーニングの高速化が 4 倍に増加したという結論に達しました。実際、彼らの加速モデルはAlexNetに比べて比較的速く推論を実行し、4.7%高い精度を達成しました。

5. トレーニング後の3値量子化

電力予算が限られているモバイル デバイス上での大規模なニューラル ネットワーク モデルの展開問題に対処できるもう 1 つのアルゴリズムは、ニューラル ネットワーク内の重みの精度を 3 進値に下げる、トレーニング後の 3 進量子化です。この方法では精度がわずかに低下しますが、CIFAR-10 および ImageNet の一部のモデルの精度が向上することもあります。この記事では、AlexNet モデルを最初からトレーニングします。つまり、通常の完全精度モデルをトレーニングするのと同じくらい簡単です。

トレーニングされた量子化方法は、上図に示すように、3 値の値と 3 つの値の分布の両方を学習できます。まず、著者らは各重みを最大重みで割ることによって、完全精度の重みを範囲 [-1, +1] に正規化します。

次に、中間のフル解像度の重みは、しきい値によって {-1、0、+1} に量子化されます。閾値係数 t はハイパーパラメータであり、検索空間を縮小するためにすべてのレイヤーで同じになります。

最後に、2 つの勾配 (短い線) を逆伝播して、トレーニング後の量子化を実行します。勾配 1 はフル解像度の重みに、勾配 2 はスケーリング係数に逆伝播します。前者は3進数の値を学習でき、後者は3進数の値の分布を学習できます。

CIFAR-10 での実験では、このトレーニングされた量子化方法で得られた 3 値モデルが、フル精度の ResNet32、ResNet44、および ResNet56 モデルよりもそれぞれ 0.04%、0.16%、および 0.36% 優れていることが示されています。 ImageNet では、彼らのモデルはフル精度の AlexNet モデルよりも 0.3% 正確であり、以前のトリプレット モデルよりも 3% 正確です。

要約する

この記事が、皆さんが使用しているディープラーニング ライブラリの裏側でどれほど多くの最適化が使用されているかを理解するのに役立ったと思います。ここで紹介する 5 つのアルゴリズムにより、実務家や研究者はモデル推論をより効率的に実行できるようになり、携帯電話などの小型エッジ デバイス上でますます多くの実際のアプリケーションを実現できるようになります。

<<:  将来の成長の原動力は?ビッグデータ+人工知能が浸透し、私たちの生活を変える

>>:  Julia言語を使用して「準同型暗号化+機械学習」を実装するには?

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

宮崎駿のアニメで新垣結衣を見たことがありますか?このオープンソースのアニメジェネレーターは、写真を数秒で手描きの日本のアニメに変換します

写真を撮るだけで、宮崎駿や新海誠などの日本のアニメ巨匠の手描き風に変換できます。アニメ画像を生成する...

ChatGPTへのチップは本当に効果があります! 10元や10万元は大きな効果がありますが、1セントでは増えるどころか減るだけです。

ChatGPT にチップを渡す「ふり」をすると、ChatGPT の働きが悪くなることを知らない人が...

中国の独立知的財産TianyuanディープラーニングエンジンとTensorFlowおよびPyTorchの比較を体験

[51CTO.com からのオリジナル記事] ディープラーニングを軸に早くから事業を開始した中国の ...

看護師の負担を軽減し、病院の効率化を実現します!医療物流ロボットが「新たな人気」に

[[399194]]ロボット産業は、我が国のインテリジェント製造業の発展における重要なリンクであり、...

Microsoft OpenAI はヒューマノイドロボットに 1 億ドルを投資する予定です。ネットユーザーはマスク氏に叫んだ

今年初め、マイクロソフトとOpenAIがヒューマノイドロボットのスタートアップに多額の資金を投資して...

人工知能がまだできない5つのこと

人工知能(AI)は、さまざまな産業の変革と複雑なタスクの簡素化において目覚ましい進歩を遂げてきました...

...

ガートナー: 人工知能に関するよくある誤解5つ

[[259329]] 2018年上半期現在、中国には922社の人工知能企業があり、そのうち97%は今...

OpenAI従業員:エンジニアリングスキルは誇張されているが、人との付き合い方を学ぶことの方が重要

12月29日のニュース、プロンプトエンジニア、つまり、人工知能モデルを誘導して最良の出力を生成するチ...

世界各国の人工知能の配置をご存知ですか?

[[207472]]人工知能は未来をリードする戦略技術です。世界の主要先進国は人工知能の発展を国家...

...

グラフアルゴリズムシリーズ: 無向グラフのデータ構造

[[393944]]この記事はWeChatの公開アカウント「Beta Learns JAVA」から転...

AI 初心者必読 | パラメーターとハイパーパラメーターの違いがまだよくわかりませんか?

[[244078]]コンピュータサイエンスには多くの用語があり、それらの多くは一貫して使用されてい...

米メディア記事:米中AI競争は東南アジアにとって何を意味するのか?

2月7日、アメリカの外交政策ウェブサイトは「米中人工知能競争は東南アジアにとって何を意味するのか?...

効率的なテストデータ生成と管理のための生成AI

傑作を作ろうとしている画家が、限られたパレットに制限されているところを想像してみてください。彼らは美...