Upgrade to Pro — share decks privately, control downloads, hide ads and more …

機械学習で使用しているGCSの料金を激減させた話

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for nogawanogawa nogawanogawa
February 01, 2024
5.4k

 機械学習で使用しているGCSの料金を激減させた話

Avatar for nogawanogawa

nogawanogawa

February 01, 2024
Tweet

More Decks by nogawanogawa

Transcript

  1. 自己紹介 © 2024 Wantedly, Inc. - 名前 - 角川拓也 (@nogawanogawa)

    - 所属 - ウォンテッドリー株式会社 データサイエンティスト - ex. - ITコンサル @コンサル会社 - SE @金融系SIer
  2. はじめに : AWSコスト削減 天下一武道会なのにGCPの話? © 2024 Wantedly, Inc. LT会ではGCPの話でもOKとのことだったので、 GCPの話をします!!!

    (AWSの話を聞きに来た人は AWSの話じゃなくてごめんなさい 󰢛󰢛) https://no1.connpass.com/event/305664/ より
  3. 機械学習ジョブの環境構成 © 2024 Wantedly, Inc. ウォンテッドリーではプロダクトの様々なところで機械学習を使用しており、バッチジョブのフローは大まかに下記 のようになっています 1. BigQuery・GCSからデータを取得 2.

    様々な処理 3. 結果をBigQuery・GCSに出力 BigQuery 機械学習ジョブ BigQuery Cloud Storage Amazon EKS k8s上で動いているため Pod内のファイルは揮発性 処理1 処理2 処理3 処理N ロード 保存 中間生成物を出力 Cloud Storage
  4. DS視点での問題意識 : 過去の機械学習の出力を再現できるようにしたい © 2024 Wantedly, Inc. - 再実行しても過去に実行した機械学習ジョブの挙動を完全に再現する事が難しい -

    機械学習ジョブの一部にランダム性が入り込む箇所があるのが原因 - 異常などが発生した際に後から機械学習ジョブの挙動を再現したくなるケースがある - そこでジョブの中間出力を GCSに保存する運用に 元々の方針 初期の問題意識 機械学習ジョブ 処理1 処理2 処理3 処理N 中間生成物 機械学習ジョブ 処理1 処理2 処理3 処理N ①中間生成物を GCSに保存 ②後で調査が必要になる際は 中間生成物から実行を再現 中間生成物が保存できないと 実行の再現ができない Cloud Storage
  5. DS視点での問題意識 : 過去の機械学習の出力を再現できるようにしたい © 2024 Wantedly, Inc. - 再実行しても過去に実行した機械学習ジョブの挙動を完全に再現する事が難しい -

    機械学習ジョブの一部にランダム性が入り込む箇所があるのが原因 - 異常などが発生した際に後から機械学習ジョブの挙動を再現したくなるケースがある - そこでジョブの中間出力を GCSに保存する運用に 過去の機械学習ジョブの 中間出力を全てGCSに保存 → これがコストが高い原因 うわっ… 私のGCSの料金高すぎ… 元々の方針 機械学習ジョブ 処理1 処理2 処理3 処理N ①中間生成物を GCSに保存 Cloud Storage
  6. コスト削減のアイデア : ストレージクラスを最適化する © 2024 Wantedly, Inc. GCSにはストレージクラスが複数あり、コストのかかり方が異なる Standard ストレージ

    Nearline ストレージ Coldline ストレージ Archive ストレージ 保存のコスト アクセスのコスト 高 安 高 安 あまりアクセスし ないファイル 頻繁にアクセス するファイル 方針 もともとはす べて Standerd ストレージクラス
  7. GCSの使用用途の整理 © 2024 Wantedly, Inc. 調べたところ、DSによるGCSの用途は大きく3種類 - それぞれオブジェクトに対するアクセスパターンが異なる 日々実行される ジョブの中間生成物

    開発時の 中間生成物 機械学習ジョブの中で 利用されるアセット 1 2 3 アクセス 頻度 滅多にアクセスされない 開発時は頻繁にアクセス その後は滅多にアクセス されない 実行のたびにアクセス Standardストレージ のまま 保存後にしばらく時間が経過した後は ストレージクラスを変えて問題ない 方針
  8. 対応 : アクセスパターンを考慮してストレージクラスを動的変更 © 2024 Wantedly, Inc. アクセスされにくいファイルをコールドなストレージクラスに自動で移行させる - 手法

    - ライフサイクルを設定(今回は細かい調整をするためにこちらで実施) - Autoclassを設定 すべてStandard ストレージ Before After 動的にストレージクラスを変更 保存後時間に応じて ストレージクラスを 自動で移行 頻繁にアクセスされる or 最近保存された ファイルはそのまま Standard Nearline, Coldline
  9. 結果 : コスト大幅削減 © 2024 Wantedly, Inc. 対応後コストを確認したところ、 50%以上削減に成功 🎉🎉

    - GCSのコストを大幅削減しつつ、機械学習ジョブの運用にも大きな影響なし 🎉🎉 作業期間 対応前 対応後 50%以上削減