16台で39.0分だった学習が、32台にすると50.5分に伸びました。台数は倍です。
待ち合わせの時間が台数とともに増えるからです。速さと台数は途中で逆向きになります。
分けて動かせます。ただし待ち合わせの時間は割れないので、どこかで反転します。
SageMakerは、分けて動かす形の学習を扱えます。公式はSageMaker AIは、きわめて大きなデータに対して分けられた環境で効率よく動く、運用込みの機械学習の手順を提供すると述べています。
分ければ速くなるのか。台数を変えて実際に計算して比べました。
学習 20,000 ステップ。1台なら1ステップ 640ミリ秒
台数を増やすと計算は割れるが、待ち合わせに 26ミリ秒+1台あたり 3.4ミリ秒かかる
台数 1ステップ 全体の時間 1台のときとの比 理想との差 1台あたりの効率
1台 640.0ms 213.3分 1.00倍 0.00 100.0%
2台 349.4ms 116.5分 1.83倍 0.17 91.6%
4台 196.2ms 65.4分 3.26倍 0.74 81.5%
8台 129.8ms 43.3分 4.93倍 3.07 61.6%
16台 117.0ms 39.0分 5.47倍 10.53 34.2%
32台 151.4ms 50.5分 4.23倍 27.77 13.2%
64台 250.2ms 83.4分 2.56倍 61.44 4.0%
いちばん速いのは16台で39.0分です。32台にすると50.5分に伸びました。
64台では83.4分で、8台のときより遅い結果になりました。費用は8倍です。
右端を見ると、8台の時点で効率は61.6%です。時間はまだ縮んでいますが、4割は待ち合わせに消えています。
費用は台数に比例するので、効率がそのまま1回あたりの費用です。16台は5.47倍速く、費用は16倍でした。
同じ頭打ちの形はGPUスケジューラの記事でも扱っていて、増やせば速くなる範囲には端があります。
16台を超えると、増やすほど遅くなる。
SageMaker AI provides managed ML algorithms to run efficiently against extremely large data in a distributed environment.原文AWS ドキュメント「What is Amazon SageMaker AI?」 この内容の有効期限2027-02-18
運用は任せられますが、台数は決めることになります。取りこぼしと遊びが逆向きに動きます。
SageMakerは、運用込みの仕組みです。公式はAmazon SageMaker AIは、運用まで込みの機械学習のサービスであると述べています。
それでも台数は決めます。何台にすべきか実際に流して数えました。
14日ぶん(336時間)。合計 17,894 件、いちばん多い時間は 240 件
1台が1時間にさばけるのは 30 件。常時起動の台数を変える
常時起動 さばけた件数 さばけなかった件数 割合 台の遊んだ割合 1件あたりの台時間
1台 8,095 9,799 54.8% 19.7% 0.042
2台 11,737 6,157 34.4% 41.8% 0.057
3台 14,776 3,118 17.4% 51.1% 0.068
4台 17,003 891 5.0% 57.8% 0.079
6台 17,776 118 0.7% 70.6% 0.113
8台 17,894 0 0.0% 77.8% 0.150
4台で取りこぼしは5.0%です。8台にすれば0.0%ですが、台の77.8%が遊びます。
1件あたりの費用は0.079から0.150へ、ほぼ倍になります。最後の5.0%が高くつきます。
この表に最適はありません。何%まで取りこぼしてよいかを先に決めると、台数が自動的に決まります。
取りこぼした分は待たせるか失敗させることになります。あとから取り戻せません。
山の高さに合わせるか谷に合わせるかという判断はGPUオートスケーリングの記事でも扱いました。
Amazon SageMaker AI is a fully managed machine learning (ML) service.原文AWS ドキュメント「What is Amazon SageMaker AI?」 この内容の有効期限2027-02-18
自分で機械を持たない代わりに、止め忘れがそのまま費用です。自動で止める設定が効きます。
SageMakerでは、自分で機械を用意しません。公式はSageMaker AIを使えば、自分の機械を組んで管理することなく、データを置いて共有できると述べています。
その代わり、動いている時間がそのまま費用になります。止め忘れがどれだけ効くのか実際に数えてみました。
利用者 40人。1人が1日 6時間だけ実際に使う。1時間あたり 1.0 止め忘れる人の割合と、自動で止まるまでの時間を変えて、30日ぶんの費用を見る 止め忘れる割合 止まらない 1時間で自動停止 4時間で自動停止 24時間で自動停止 0% 7,200 (1.00倍) 7,200 (1.00倍) 7,200 (1.00倍) 7,200 (1.00倍) 5% 8,280 (1.15倍) 7,260 (1.01倍) 7,440 (1.03倍) 8,280 (1.15倍) 20% 11,520 (1.60倍) 7,440 (1.03倍) 8,160 (1.13倍) 11,520 (1.60倍) 50% 18,000 (2.50倍) 7,800 (1.08倍) 9,600 (1.33倍) 18,000 (2.50倍)
半分が止め忘れると2.50倍です。1時間で自動停止する設定なら1.08倍に収まります。
止め忘れを0%にするのは難しいことです。設定ひとつのほうが確実でした。
4時間だと1.33倍、24時間だと止まらない場合と同じ2.50倍です。1日分を超える設定は意味がありません。
1時間なら、作業を中断して戻ってきたときに立ち上げ直すことになります。その手間と1.33倍を比べるのが実際の判断です。
3つの計測はいずれも手元で書いた模型で、実際のSageMakerを動かしたものではありません。1ステップ640ミリ秒や待ち合わせの式は置いたもので、実際の学習では通信の仕方によって形が変わります。台数を増やしても効率が落ちない組み方もあります。需要の山谷や止め忘れの割合も置いた値です。ここで見せているのは、台数を増やすと途中で反転する点があるという点と、取りこぼしを0%にする最後のひと押しが高くつくという点の2つです。
With SageMaker AI, you can store and share your data without having to build and manage your own servers.原文AWS ドキュメント「What is Amazon SageMaker AI?」 この内容の有効期限2027-02-18
同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。
出品の仕組みを見る