ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

AutoMLで破産しないように気をつけたいポイント

はじめに

AutoMLを使っていたら一気に26万円の請求が来ました。 他の人が同じ事故にあわないようにやってしまったことを書きます。

2019/06/24、2019/06/26 追記書きました。15万円減額してもらえました。請求自体は正しく、トレーニングに関しては一回回すとこれだけの費用が発生します。

natsutan.hatenablog.com

やったこと

前回、こんな記事を書きました。

AutoML Vision Edgeが作るニューラルネットワーク

この続きで、物体検出のAutoMLを評価してみようと思いました。VOC2012のデータを用意してAutoMLへかけてみました。トレーニングの前に物体検出の方はtfliteへの変換が選べないことが分かったのですが、トレーニングさえ終わらせておけば何か方法がみつかるかもしれずと思い、精度優先と速度優先の2つのオプションでAutoMLを実行してしまいました。

前回の識別では3時間程度で学習が終わっており、今回も無料期間から足が出ても少しかなとたかをくくってました。

費用の内訳はこうなっています。

  • AutoML Image Object Detection Model Training 14万
  • AutoML Image Object Detection Online Prediction 11万

ここから無料枠分が差し引かれ、消費税が8%乗っています。

AutoML Image Object Detection Model Training

まずはトレーニングにかかった費用です。上に書いたとおり、比較をしたかったので2つの設定でトレーニングを回しています。トレーニングが2回で420時間かかっています。

トレーニングの価格体系はこちらに記載してあります。

https://cloud.google.com/vision/automl/pricing?_ga=2.243008706.-112799687.1556789167

5000枚程度なら5時間とあり、VOC2012が約27000枚なので、24時間見ておけばよいかなと甘く見ていました。

結果は、2回のトレーニングで420時間動いてしまい、合計で14万円の請求になりました。

AutoML Image Object Detection Online Prediction

こちらは識別のAutoML時にはかからない費用だったので、完全に見落としていました。訓練時にデプロイをするかどうかにチェックを入れることができます。訓練した後、絵を入れてみたいのであまり気にせずチェックしてしまいました。これも間違いでした。

上のリンク先に太字で「予測が行われない場合であっても、デプロイしたノード単位での料金が発生します。」と書いてあるように、デプロイするだけでGPUノードを1つキープし続けます。今回2つ訓練をしたので2ノードをキープし続けました。

こちらが11万円です。

よくある言い訳

  • 警告のメールは来ていたが、完全に見落としていた。
  • 請求のルールが識別のAutoMLと同じだと思っていた。
  • 仕事が忙しくて、とりあえず投機的にAutoML回しておこうと考えてしまった。結果の確認が遅れた。

反省点

  • 警告メールはいくつかの閾値で定義し、わざと警告を出させてちゃんとチェック機能が働くか確認した方がよい。
  • 仕事が忙しい時に青天井に費用が出ていくことに挑戦しない方がよい。余裕を持って成果と費用をチェックできるときにやろう。
  • AutoMLは会社のお金で回そう

最後に

今回は悲しい結果になってしまいましたが、AutoMLはリサーチャをかかえられない企業に取っては救世主になると信じています。
費用に関しては改良して欲しいです。「ユーザーがオペレーションをキャンセルした場合は、課金されます。」と書いてあるとおり、いつ終わるか予想ができないのに、途中で止めると費用は発生しているのにモデルが無いという状況になります。費用なり、時間なりでリミットを決められないと怖くて使えないです(今回は200時間だったが、Googleがその気になれば1000時間でも2000時間でも回せる)。 VOC2012のような有名なデータセットを例に、料金や時間の目安は事前に案内があっても良かったと思います。

最後に、物体検出もエッジで動くようにして欲しいです。