Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
GKEでのMLバッチ運用のコツ
Search
Ryo Kitagawa
June 25, 2024
210
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GKEでのMLバッチ運用のコツ
Ryo Kitagawa
June 25, 2024
More Decks by Ryo Kitagawa
See All by Ryo Kitagawa
敵対的SRE: 300個のジョブをAIチーム全員で支える技術
kitagry
8
6.6k
MLバッチの監視
kitagry
1
600
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
620
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
360
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
40k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
190
Skip the Path - Find Your Career Trail
mkilby
1
170
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
180
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
The Invisible Side of Design
smashingmag
301
52k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Transcript
GKE上でのMLバッチ運用のコツ エムスリー 株式会社 北川亮(@kitagry) #kyototechtalk
自己紹介 Vim, Go, k8sが好き 新卒4年目で現在AI・機械学習チームのチーム リーダー 今年の4月から京都オフィス所属になりました。エ ンジニア所属2人なので仲間が欲しい!!
現在のチームの特徴 • チームで管理しているほぼすべてのバッチ・APIがGKE上で動いている • チームで定期実行しているバッチは300個ほど • バッチには数分で終わる小規模なものから数日かかる大規模なものまである
GKEで出てくる単語をおさらい • Pod ◦ コンテナのグループを表す ◦ docker-composeくらいの認識で良いと思う •
Node ◦ VMまたは物理マシンを表す ◦ GCPならGCE・AWSならEC2・お家なら Raspberry Pi • Node Pool ◦ Nodeのグループ ◦ 利用状況に応じてスケールイン・スケールア ウトを行う
Node Poolのありがたさ • Nodeのリソースが余っていると適切に 分配してNode数を減らしてくれる • Node課金の場合切り詰めて使ってく れると節約になってありがたい • ありがとうKubernetes
kubernetes/autoscalerのコードにはNodeの料金を計算してやすいものを 選択してくれるソースがあります https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscal er/cloudprovider/gce/gce_price_model.go
この機能MLバッチでは致命的 半日かけて学習した内容がEvictionととも に破壊されてしまう。。。
この機能MLバッチでは致命的 半日かけて学習した内容がEvictionととも に破壊されてしまう。。。 MLバッチはある意味ではステートフル
safe-to-evictionという機能 • evictionを制限するための機能 リソースにアノテーションをつけるだけで簡 単に設定可
safe-to-evictionという機能 • evictionを制限するための機能 リソースにアノテーションをつけるだけで簡 単に設定可 やったか!?
safe-to-evictionの落とし穴 巨大なPodが動いているNodeに小さなPod が迷い込んできます。 Node Pool 巨大Node 巨大Pod 小さいPodが 迷い込む
safe-to-evictionの落とし穴 巨大なPodが正常に終了します。 このNode消して小さいNodeに移動してほ しいですよね? Node Pool 巨大Node
safe-to-evictionの落とし穴 小さなPodはsafe-to-evicitionのため、どい てくれません。 Node Pool 巨大Node Node だが断る 無事にクラウド破産 \(^o^)/
Podごとに使って良いNodeを決めることに。。 • 大きなPodは大きいNodeへ • 小さなPodは小さなNodeへ エンジニア側がある程度メモリどれくらい使 うかは与えないといけない。。 えーあいってやつでなんとかしたい。。。
この先の話はブログで!(10分短い) https://www.m3tech.blog/entry/ai-gke-ml-batch
まとめ • MLバッチは実はステートフル • ステートフルなシステムの運用は本質的に難しい • Kubernetesの特殊な使い方を出来る環境はとても楽しい