MLHPC 2016 | ディープニューラルネットワークのデータ並列トレーニングのための通信量子化

HPCインフラストラクチャに既存の通信量子化アルゴリズムを実装し、独自の適応量子化アルゴリズムを開発して、それらの欠点を解決します。また、独自のallreduce実装も開発しました。既存のデータと新しいデータの並列通信の量子化アルゴリズムとMPI_Allreduceを相互に比較します。HPCインフラストラクチャでの並列データトレーニングの実現可能性を調査する

1ビットSGDは良好な再構成と低いエラーを実現できますが、しきい値量子化と比較すると、その計算コストは​​大きく、圧縮率は32倍を超えることはできません。しきい値の量子化速度は非常に高速ですが、モデルごとに異なるしきい値を設定する必要があり、適切なしきい値を選択することは困難です。また、再構成値が最適ではないため、しきい値\(\ tau \)を使用します。しきい値が比較的小さく設定されている場合、エラー補償の存在により、大量のデータが送信される可能性があります

適応量子化では、固定比率\(\ pi \)使用して、各反復で送信される勾配更新比率を示します。最初のステップである適応量子化では、現在の反復に必要な比率を満たす正のしきい値\(\ tau ^ + \)と負のしきい値\(\ tau ^-\)を決定します勾配ベクトルに非負の値\(k \)があるとすると、最大の\(\ frac {k} {\ pi} \)を送信するだけでよいため、正のしきい値\(\ tau ^ + \)これは、勾配ベクトルの\(\ frac {k} {\ pi} \)値です。一般的に、効率的な選択とその他の効率的なアルゴリズムにより\(\ frac {k} {\ pi} \)要素\(O(N)\)時間で見つけることができます負のしきい値の決定は、勾配ベクトルの最小の\(\ frac {k} {\ pi} \)が選択されることを除いて、正のしきい値に似ています。正と負の両方のしきい値は、同じ比率\(\ pi \)によって決定されることに注意してください同様に、適応量子化では、モデルが収束しないようにエラー補償手法を使用する必要があります。受信側の再構成フェーズで、適応量子化は、正のしきい値\(\ tau ^ + \)より大きく、負のしきい値\(\ tau ^-\)より小さい要素の平均値を計算し、これら2つの平均を再構成ベクトルとして使用します。要素。

著者は、元のMPI_Allreduceインターフェイスが圧縮データを送信するときにうまく機能せず、ユーザー定義の操作を使用MPI_Allreduceすると再帰的な2倍の実装退化すること発見しました。そのため、元のMPI_Send合計MPI_Recv方法を使用して、Ring Allreduceと同様の集約通信アルゴリズムを実装しました。

おすすめ

転載: www.cnblogs.com/littleorange/p/12684063.html