重みを圧縮したAIで掛け算の回数を大幅削減、効率を高める新手法が発表
要点 3行
- 1〜4ビットに圧縮された重みを用いるAIの内積計算で、掛け算の実行回数を大幅に削減する手法が提案された。
- 重みの値ごとに数値を集計し最後にまとめて復元・掛け算を行うことで、乗算器の数をn/2^kに減らせる。
- FPGAによる回路の合成実験では、乗算器を共有することで回路規模の削減効果が得られることが確認された。
大規模ニューラルネットワークの計算効率化に向け、量子化された重みを用いた内積演算において乗算の実行回数を大幅に減らす新たな計算手法を提案する論文が公開された。1〜4ビットの重みと16ビットまたは32ビットの活性化値を用いるモデルにおいて、要素ごとに行われていた従来の乗算処理を構造的に見直すアプローチを示している。
従来の内積計算では、要素ごとに1つの乗算器が用いられていた。本手法では、長さnかつkビットの重みコードによる内積について、n+2^k回の加算と、高々2^k回のデコードおよび2^k回の乗算で計算できることを示した。各重みコードをアドレスオフセットとして直接利用して2^k個のアキュムレータのいずれかを選択し、対応する活性化値を加算した上で、最後にまとめてデコードと乗算を統合して実行する。これにより、デコードされた重みベクトルをメモリ上に展開する必要がなくなる。
この再構成により、乗算器の数はn/2^kに減少し、w_dビットのデコード重みに対して局所重みメモリを最大でw_d/kに縮小できる。シストリックアレイの積和演算ユニットを置き換える処理要素「SA-PE」を設計し、FPGA向けに論理合成を行って検証したところ、単体では従来より大きくなるものの、乗算器を処理要素間で共有することで回路削減効果が得られることが確認された。ソフトウェアモデルによる検証でも、整数演算での完全な等価性と、浮動小数点演算で従来と同等水準の誤差精度が確認されている。
この記事は arXiv cs.LGの発表を AI が日本語に要約したものです。正確な内容は原文をご確認ください。
アプリで開く