概要
私は、google colab(pro), GCS(GCPのS3), google driveの構成で深層学習モデルを学習させていた。毎月おおよそ合計2000円いかないぐらいの超コスパ構成だった。しかし、1日で5万円を利用しているとしてGCPから請求された。この原因を究明するためにGCPに問い合わせを行ったり、再現実験(課金)を行った。その結果、2021/12/22頃にgoogle colabのインスタンス実体がUSリージョンに限定されなくなったという結論を得た。
1. 緒言
普段、私は深層学習モデルを組み込んだデスクトップアプリを開発している。約1000円のgoogle colab proのGPUインスタンスをお得に利用可能なサービスを用いて深層学習を学習していた。また、pythonの学習等のソースコード(train.pyとか)はgoogle driveに保存し、それらをcolabにmountさせ、ソースコードを実行(python train.pyとか)していた。また、教師データや学習済みのモデルは、mountさせたGCSに入出力していた。これらの構成では毎月合計2000円もかからず、コストパフォーマンスに優れた機械学習モデルの開発および研究が可能だった。しかし、2021/12/22に5万を超える請求が発生し、平穏な暮らしが破られる。
1.1 Why Google Drive
手元でごにょごにょしつつ更新が多く発生するものは、GUIのサポートがしっかりしたツールを使いたい。pythonのスクリプトは頻繁に変更するためDriveに保存した
1.2 Why GCS
Google Driveのデータをcolabから読み取ると遅かった。教師データ読み込みが学習のボトルネックを解消するためにGCSに保存した。このGCSリージョンは北アメリカだったかな?google colabの実体と同じリージョンにしなければ、大陸間で多くのデータ転送が行われてコストが大変なことになる。(これがすごく大事)
2. 目的
2021/12/22に発生した5万を超える請求の原因を明らかにする。また、5万の内訳である「US(アメリカ)からAP(アジアパシフィック)へのデータ転送」が請求されたメカニズムを解明する。
3. 方法
以下に実施した調査を箇条書きにする。
- GCPのサポートに問い合わせ
- 課金をする(後述)
4. 結果
各方法に対しての結果をそれぞれ示す
4.1 GCPのサポートに問い合わせ
丁寧に対応してもらったが、あまり納得のできる内容をいただけなかった。(私の英語力不足かもしれない)
無料サポートなのであまり文句は言えないが、正直ドキュメントぐらい読んでほしかった。
そこで自腹を切ってお金がかかった原因を調査することにした。
4.2 課金をする
おそらくGCSとcolab間データ転送があやしい。しかし、12/21まで大陸間データ転送にコストはかかっていない。モデルをGCSからダウンロードすると数GB分の大陸間転送コストを請求されるだけである。今回の5万は数TB分のコストなのでおかしい。そもそも数TBのデータを扱っていない。数TBデータ転送?中国人のわるいやつにいたずらされた(偏見)?GCPのバグ?色々考えた結果、実はcolabがUSリージョンにあるという前提を疑うことにした。つまり学習時に大陸間データ転送がポコポコ走って、数TBになったという説である。データ転送量を見積もるとそれっぽい数字であった。
4.2.1 colabのリージョン検証方法
再び学習スクリプトを複数回実行し、以前のように大陸間データ転送の有無を調査した。ただし、1回の学習にかかる時間を減らしデータ転送コストが発生した際に数百円以下となるようにした。また、念の為学習スクリプト2日に1回にすることで、前日に行われた実験に要したコストと統合されないように注意を払った。
4.2.2 検証結果
1日目:あー。やっぱり学習時になんか転送しとるな。自分のリージョンになるんかな?
2日目:は?ヨーロッパにデータ転送?
5. 考察
検証結果の画像から分かるとおり、GCPからヨーロッパにデータ転送されている。私は日本に住んでいるため、このプロジェクトで意図的にヨーロッパにデータを転送させることはない。したがってgoogle colabのインスタンスがヨーロッパであると考えられる。
6. 結論
本件では、google colabとGCP(GCS)を連携させた際に請求金額が跳ね上がった原因を調査した。その結果、google colabの実体がUSリージョンに縛られなくなったという結論を得た。今後はこのリージョン選択ができるようになることを祈りながら、3090 or 4090のマシーンを組み始めた。(いきなりそんな請求が来るぐらいなら、自分で管理したい。あと異種マルチGPUとかして遊びたい)
おまけ
GCPのサポート
とても親切だったが「数TB分のデータを作ってすぐに消したのでは?」みたいなこと言われたけど、ログにも残ってないわけですし。あと、日本からUSにアップロードしたらお金かかるよって話だったけど、そうだっけ?という感じ
割引
プロジェクト名
えっちな命名にしたら、サポートの方に見られてはずかしかった。