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と同様の集約通信アルゴリズムを実装しました。