>100 Views
November 06, 20
スライド概要
2020/11/6
Deep Learning JP:
http://deeplearning.jp/seminar-2/
DL輪読会資料
DEEP LEARNING JP [DL Papers] KungFu: Making Training in Distributed Machine Learning Adaptive (OSDI’20) Presenter: Masanori Misono (Univ. Tokyo) http://deeplearning.jp/ 2020-11-06 1
書誌情報 タイトル KungFu: Making Training in Distributed Machine Learning Adaptive 著者 Luo Mai, Guo Li, Marcel Wagenländer, Konstantinos Fertakis, Andrei-Octavian Brabete, and Peter Pietzuch, Imperial College London 会議 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI’20) URL https://www.usenix.org/conference/osdi20/presentation/mai https://luomai.github.io/publication/2020-osdi-kungfu/ https://github.com/lsds/KungFu 概要 分散機械学習において,システムパラメータ / ハイパーパラメータをアダプティブ に学習することを容易にするためのライブラリを提案.Tensorflowで実装. 2020-11-06 2
Motivation • 機械学習はハイパーパラメータが多い バッチサイズ,学習率,… • さらに,実際には学習環境のパラメータ (論文ではシステムパラメータ)もある ワーカ(分散台数)の数,コミュニケーショントポロジ,…. • 現状は, 固定したシステムパラメータ 特定のスケジューラによるハイパラサーチ • これらを考慮した学習フレームワークを作りたい 2020-11-06 3
Background • Automatic hyper-parameter tuning optuna, Tune, etc… 探索コストは依然高く,またシステムパラメータは考慮していない • 訓練中に動的にパラメータを変更・追加した方が多くの場合良い 学習率減衰, 勾配に応じたバッチサイズの変更, … • システムパラメータも変更可能 ワーカの数 (GPU, TPUの使用数) ネットワーク帯域に応じたコミュニケーション方法, … 2020-11-06 4
Dynamic Adaptation of Parameters ※ 多くはシステムパラメータではなくハイパーパラメータに注力 2020-11-06 5
Challenge • 現状の分散学習環境では動的なパラメータ変更のサポートが難しい 1. ビルトインでサポートしていない 2. 訓練中のメトリクス(勾配値など)のモニタリングが高コスト 例) 8-GPUで訓練するReSNetは4GB/sec の勾配 3. 動的にシステム全体のパラメータを調整する 2020-11-06 例)ワーカ数を変更した場合,それに依存したパラメータ (e.g, 学習率など)を, 他のワーカに適切に伝える必要がある 6
Approach 1. ビルトインで,パラメータをadaptationできるようなポリシーが記述で きるような仕組みを導入する 2. メトリクスのモニタリングを効率化するために,モニタリングはデータ フローグラフのオペレータとして monitoring operator を導入 3. 更新されたパラメータを共有するためのconfiguration operatorを導入. データフローグラフの中でパラメータ更新のチェックおよび更新を可能 とする 2020-11-06 7
Adaptation Policy - Gradient Noise Scale (GNS) Policy - ワーカ数の増減によりバッチサイズを変化させる 2020-11-06 8
APIs for Adaptation Policies 2020-11-06 9
Monitoring Operation • オーバヘッドを減らすために,モニタリング操作 (先ほどの例の gns ) や, allreduce, broadcast などの通信数はデータフロー操作として実装 2020-11-06 10
Collecting Data 2020-11-06 11
Adaptation of dataflow parameter 2020-11-06 12
Evaluation 2020-11-06 13
Evaluation 2020-11-06 14
Evaluation 2020-11-06 15
Summary • KungFuと呼ばれる,アダプティブなパラメータ更新が可能なポリシーを 定義できるフレームワークを実装 ちなみに実装量は Go (~7kLOCs), C++ (~3k LOCs) Python (~2k LOCs) • オープンソースで公開中 https://github.com/lsds/KungFu • 個人的にはhorovodは使ったことがあるけれど,それと比べてどうなのか 実際に試してみたい 2020-11-06 16