ディープニューラルネットワーク(DNN)には、実行するようにトレーニングされた特定のタスクに必要な重みよりもはるかに多くの重みが含まれ、より高い精度で表されることがよくあります。その結果、それらは、精度を大幅に損なうことなく、モデルサイズと推論時間の両方を削減する重みプルーニングや量子化などの手法を使用して圧縮できることがよくあります。ただし、特定のDNN、ハードウェアプラットフォーム、および最適化の目的に最適な圧縮戦略とそれに対応するターゲットスパース性を見つけるには、現在、費用がかかり、頻繁に手動で試行錯誤する必要があります。この論文では、Condensaと呼ばれるモデル圧縮のためのプログラム可能なシステムを紹介します。ユーザーは、Pythonで単純な演算子をプログラムで作成して、より複雑で実用的に興味深い圧縮戦略を構築します。戦略とユーザー提供の目的(実行時間の最小化など)が与えられると、Condensaは新しいベイズ最適化ベースのアルゴリズムを使用して、望ましいスパース性を自動的に推測します。 4つの実際のDNNでの実験では、検索ごとに最大10個のサンプルを使用して、メモリフットプリントとハードウェアランタイムスループットがそれぞれ188倍と2.59倍向上することが示されています。 Condensaのリファレンス実装をhttps://github.com/NVlabs/condensaでリリースしました。
Deep neural networks (DNNs) frequently contain far more weights, represented at a higher precision, than are required for the specific task which they are trained to perform. Consequently, they can often be compressed using techniques such as weight pruning and quantization that reduce both the model size and inference time without appreciable loss in accuracy. However, finding the best compression strategy and corresponding target sparsity for a given DNN, hardware platform, and optimization objective currently requires expensive, frequently manual, trial-and-error experimentation. In this paper, we introduce a programmable system for model compression called Condensa. Users programmatically compose simple operators, in Python, to build more complex and practically interesting compression strategies. Given a strategy and user-provided objective (such as minimization of running time), Condensa uses a novel Bayesian optimization-based algorithm to automatically infer desirable sparsities. Our experiments on four real-world DNNs demonstrate memory footprint and hardware runtime throughput improvements of 188x and 2.59x, respectively, using at most ten samples per search. We have released a reference implementation of Condensa at https://github.com/NVlabs/condensa.