深層学習モデルのハードウェア化

TAI では、ディープラーニング・ハードウェア化研究の一環として、純国産の AI 高速・圧縮・コード生成ツールの開発に取り組んでいます。本ツールは以下の機能を含んでいます。

  • 計算量の多い特定レイヤの演算を軽量な演算に分割
  • モデルパラメータの軽量化
  • AI モデルの並列化・パイプライン化回路の生成

本ツールのモデル最適化エンジンは、ユーザのデータセットとモデル・パラメータを入力とし、モデル全体を解析してターゲットプラットフォームへの最適化を行います。これにより、既存の AI 実装法では達成できなかった低電力化・高速化・低コスト化を実現します。

計算量の多い特定レイヤの分解

深層学習モデルの計算は、畳み込み演算が支配的ですが、演算に伴うメモリアクセスが複雑であり、特殊なメモリアクセス回路や速度低下がネックとなります。畳み込み演算の分解により、エッジ AI デバイスに適した軽量な演算へと変換可能です。なお、この分解は既存の畳み込み演算と等価であることが理論的に保障されています [1]。

[1] H. Nakahara, “2^n+1-valued SSS-Net: Uniform Shift, Channel Sparseness, and Channel Shuffle,” ISMVL, 2020, (accepted).

モデルパラメータの軽量化

多くの深層学習モデルは、データセットに対して必要以上にモデル規模が大きく、無駄な演算が行なわれています。
枝刈りや量子化などの深層学習モデル圧縮技術を効率よく組み合わせることで、無駄なパラメータの圧縮が可能になります。特に 1ビットで表現する 2値化や、その枝刈りを適用した 3値化表現技術 [2] により、既存のモデル圧縮法よりもより圧縮が可能です。
また、精度が必要とされる場合は、認識精度をキープしつつモデルを圧縮できる混合精度技術 [3] も適用可能です。

[2] H. Nakahara, M. Shimoda and S. Sato, “A Tri-State Weight Convolutional Neural Network for an FPGA: Applied to YOLOv2 Object Detector,” International Conference on Field-Programmable Technology (FPT), 2018, pp. 298-301.

[3] H. Nakahara, H. Yonekawa, T. Fujii and S. Sato, “A Lightweight YOLOv2: A Binarized CNN with A Parallel Support Vector Regression for an FPGA,” 26th ACM/SIGDA International Symposium on Field-Programmable Gate Arrays (FPGA 2018), pp.31-40, 2018.

AI モデルの並列化・パイプライン化回路の生成

AI を高速かつ低電力で動作させるには、プラットフォームに応じた適切な実装法が必要です。
本ツールは、対応プラットフォームに応じた並列化・パイプライン化を行い、適切なコードを自動生成します。特に、畳み込み演算の分解・枝刈りには専用回路 [4][5] が必要であり、従来のプラットフォームでは実装されていない特殊な並列化回路のパイプライン化を実現できるため、高速かつ低電力な実装が可能です。

[4] H. Nakahara, Z. Que and W. Luk, “High-Throughput Convolutional Neural Network on an FPGA by Customized JPEG Compression,” The 28th IEEE Int’l Symp. on Field-programmable Custom Computing Machines~(FCCM), 2020, (accepted).

[5] Hiroki Nakahara, Tomoya Fujii and Shimpei Sato, “A Fully Connected Layer Elimination for a Binarized Convolutional Neural Network on an FPGA,” FPL, 2017, pp.1-4.

適用事例

ここに挙げた例は一部です。TAIの高速画像識別技術を適用することで、AIを活用した新しいアプリケーションを実現できるようになります。

Semantic
Segmentation

物体の領域を識別することで、路上の障害物か否かを瞬時に判別。クルマなどに。

Object
Detection

物体の位置とカテゴリを識別することで、生活用品を識別。ホームサポートロボットなどに。

Pose
Estimation

ヒトの姿勢を推定することで、危険・重労働な作業や状況を判定。モニタリングなどに。