機械学習の分散フレームワークのベンンチマーク。アルゴリズムなどは限られたものを利用する。ハードウェア(GPU-CPUメモリ)、並列(worker)数、ネットワーク帯域は可変なのでこれらの性能評価に用いることができる。
documentation
実行自体はgoogle cloud と (デバッグとして) Kubernetes + kind が用意されている。また、適切にmlbenchのAPIを使えば自身で計測したい処理を書いてmlbenchのフレームワークでベンチマーク計測を行うことが可能 (https://mlbench.readthedocs.io/en/latest/tutorials.html#tutorials)。 dashbordとして実行結果を見たり、GUI的にベンチマーク実行を行うことも可能みたい。
タスク (ベンチマーク)
執筆時点において、mlbenchに用意されているベンチマークは下記。
Task0: 基礎的なCommunication Backendパフォーマンス
- allReduce処理など
Task1: 画像分類
1a. Resnet-20, CIFAR-10
Task2: Linear Learning
2.a ロジスティック回帰
- 訓練
- マシンの数k = 1, 2, 4, 8, 16
- そのほか: epoch数やbatchサイズ、学習率、loss関数、データ前処理は決められている
Task3: 言語モデリング
3a. LSTM, Wikitext2
- モデル
- データセット(Wikitext2)
- 訓練: 2,088,628 token
- 検証: 217646 token
- vocabulary: 33278語
- 訓練
- optimizer: 同期型のSGD
- そのほか: epoch数やbatchサイズ、学習率、loss関数、データ前処理は決められている
Task4: 機械翻訳
4.a LSTM、WMT16 EN-DE
- モデル
- データセット(EN-DNのパラレルコーパス)
- 訓練: 最大長75 token
- 検証: 最大長150 token
- 訓練
- optimizer: 同期型のAdam
- 前処理は固定(前処理後のデータ提供もある)
- そのほか: epoch数やbatchサイズ、学習率、loss関数は決められている
4.b Transformer, WMT17 EN-DE
"Attention Is AllYouneed"のモデルにもとづくベンチマーク
- モデル
- Transformer
- データセット(EN-DNのパラレルコーパス)
- 訓練, 検証: 最大長80 token
- 訓練
- optimizer: 同期型のAdam
- 前処理は固定(前処理後のデータ提供もある)
- そのほか: epoch数やbatchサイズ、学習率、loss関数は決められている
実行
実行自体はgoogle cloud と (デバッグとして) Kubernetes + kind が用意されている。また、適切にmlbenchのAPIを使えば自作のベンチマーク関数も実行できる