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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ryo Kitagawa
June 25, 2024
200
1
Share
GKEでのMLバッチ運用のコツ
Ryo Kitagawa
June 25, 2024
More Decks by Ryo Kitagawa
See All by Ryo Kitagawa
敵対的SRE: 300個のジョブをAIチーム全員で支える技術
kitagry
8
6.4k
MLバッチの監視
kitagry
1
590
Featured
See All Featured
Fireside Chat
paigeccino
42
3.9k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.2k
Docker and Python
trallard
47
3.8k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
810
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
HDC tutorial
michielstock
2
630
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
490
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Code Review Best Practice
trishagee
74
20k
The Limits of Empathy - UXLibs8
cassininazir
1
310
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の特殊な使い方を出来る環境はとても楽しい