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
MLOpsを実現するSRE激闘の歴史
Search
Kenta Sato
September 19, 2020
Technology
2
1.2k
MLOpsを実現するSRE激闘の歴史
XP祭り2020登壇資料
MLOpsを実現するSRE激闘の歴史
Kenta Sato
September 19, 2020
Tweet
Share
More Decks by Kenta Sato
See All by Kenta Sato
Infra Study #4 AI SaaSの機械学習インフラ基盤とMLOpsの取り組み
kenta_sato3
1
1.1k
Other Decks in Technology
See All in Technology
Fabric + Databricks 2025.6 の最新情報ピックアップ
ryomaru0825
1
130
登壇ネタの見つけ方 / How to find talk topics
pinkumohikan
3
380
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
260
2年でここまで成長!AWSで育てたAI Slack botの軌跡
iwamot
PRO
4
700
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
440
GitHub Copilot の概要
tomokusaba
1
130
mrubyと micro-ROSが繋ぐロボットの世界
kishima
2
230
AWS Summit Japan 2025 Community Stage - App workflow automation by AWS Step Functions
matsuihidetoshi
1
260
初めてのAzure FunctionsをClaude Codeで作ってみた / My first Azure Functions using Claude Code
hideakiaoyagi
1
220
5min GuardDuty Extended Threat Detection EKS
takakuni
0
140
生成AIで小説を書くためにプロンプトの制約や原則について学ぶ / prompt-engineering-for-ai-fiction
nwiizo
3
1.3k
GeminiとNotebookLMによる金融実務の業務革新
abenben
0
230
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
329
21k
For a Future-Friendly Web
brad_frost
179
9.8k
Adopting Sorbet at Scale
ufuk
77
9.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
930
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
The Invisible Side of Design
smashingmag
299
51k
Site-Speed That Sticks
csswizardry
10
660
Why You Should Never Use an ORM
jnunemaker
PRO
57
9.4k
Faster Mobile Websites
deanohume
307
31k
Speed Design
sergeychernyshev
32
1k
Designing for humans not robots
tammielis
253
25k
Transcript
.-0QTΛ࣮ݱ͢Δ43&ܹಆͷྺ࢙ ετοΫϚʔΫגࣜձࣾ 4JUF3FMJBCJMJUZ&OHJOFFSࠤ౻ ݡଠ 91ࡇΓ
4UPDLNBSL *OD ࣗݾհ
4UPDLNBSL *OD ࣗݾհ • 佐藤 賢太 (@kenta_sato3) • 36歳 •
2児の父 • 福岡出身 • 元野球選手(アメリカ・オーストラリア・スウェーデン) • コールセンター・企業向けUC (ユニファイドコミュニケーション)パッケージ製品べンダーのSEと して5年ほど経験し、2019年10月にストックマークにSREとして入社 • ストックマークではクラウド、AWSやGCP上でのシステム構築及び運用、SREやMLOpsに携わる
© 2020 Stockmark Inc. 会社名 ストックマーク株式会社 Stockmark Inc. オフィス 東京都港区南青山1丁目12-3
LIFORK MINAMI AOYAMA S209 設 立 2016年11月15日 創業者 代表取締役CEO 林 達 取締役CTO 有馬 幸介 事業内容 自然言語処理技術を活用した ビジネス意思決定サポートサービスの提供 従業員数 54名 (2020年6月 現在) URL http://stockmark.co.jp | 会社概要 会社概要
4UPDLNBSL *OD ࣍
4UPDLNBSL *OD ࣍ • プロダクト概要 • システムアーキテクチャ概要とMLで実現したいこと • ML初心者SREがMLOpsに挑戦することになった背景 •
MLOpsとはなにか、なぜ必要か • MLOpsを実現するSREの激闘の歴史 • 課題設定と継続的な改善 • これから
4UPDLNBSL *OD プロダクト概要
© 2020 Stockmark Inc. Z c"TUSBUFHZͷػೳ ಛఆͷྖҬʹରͯ͠ɺओཁಈɾւ֎ಈɺͦͷଞͷಈ͖ͱͯࣗ͠ಈͰྨɻ ͜Ε·ͰߏԽͰ͖ͳ͔ͬͨࢢͷಈ͖ͱϓϨΠϠʔΛՄࢹԽɻ େͳใΛ၆ᛌ্ͨ͠ͰಛఆྖҬΛ"*͕ߏԽ ػೳ
Ωʔϫʔυ͔ΒಛఆͷྖҬΛݕࡧ ۀքߏΛ"*͕ߏԽ ओཁͳϓϨʔϠʔΛநग़
© 2020 Stockmark Inc. ֤اۀ͕ͲͷΑ͏ͳࣄۀʹऔΓΜͰ͍Δͷ͔Λཧɺ ֤ࣾͷࠩผԽཁҼΛՄࢹԽ͠ɺଧͪखग़ͷώϯτΛఏڙɻ ಛఆྖҬͷاۀͷऔΓΈͱࠩผԽཁҼͷՄࢹԽ ػೳ c"TUSBUFHZͷػೳ
ࠩผԽཁҼΛՄࢹԽ اۀผʹهࣄΛྨ
© 2020 Stockmark Inc. ϓϨΠϠʔͷࢀೖλΠϛϯάͱهࣄྔΛՄࢹԽ͢Δ͜ͱͰɺ ಛఆྖҬͷ৳ͼΛఆྔతʹ͍ɺࢢͷՄೳੑΛ୳ΔώϯτΛఏڙɻ ࣌ܥྻͰࢀೖϓϨΠϠʔͱهࣄͷ৳ͼΛՄࢹԽ ػೳ c"TUSBUFHZͷػೳ
ϓϨΠϠʔΛϦετΞοϓ ݄ผͷهࣄྔΛදࣔ
© 2020 Stockmark Inc. اۀ໊நग़ʹ͍ͭͯ اۀ໊Λਖ਼͘͠நग़͢Δʹɺจ຺͔Β୯ޠͷ ҙຯΛஅ͢Δඞཁ͕͋Γɺίϯϐϡʔλʔʹ ͱ͍ͯ͠ɻ 4UPDLNBSLɺจ຺ΛߟྀͰ͖Δ"*ͷʮ#&35ʯ Λ༻͍ͨख๏Λ։ൃɻ
˔ ˔ cࢀߟ
4UPDLNBSL *OD システム概要とMLで実現したいこと
4UPDLNBSL *OD ΞʔΩςΫνϟ • サーバレス基盤で記事データ収集 • Cloud TPUで汎用言語モデルを作成 • オンプレGPUでモデルのファインチューニング
• AWSのGPUでMLバッチ処理 • マイクロサービスウェブアプリケーション
4UPDLNBSL *OD هࣄσʔλऩू
4UPDLNBSL *OD Ϗδωεʹڧ͍ࣄલֶशࡁΈ൚༻ݴޠϞσϧ
4UPDLNBSL *OD Cloud TPU: 事前学習済み汎用言語モデル構築 出典: https://cloud.google.com/tpu?hl=ja • ディープラーニングを高速化 •
精度向上
4UPDLNBSL *OD オンプレGPU: モデルのファインチューニング • 汎用言語モデルをタスクに特化してチューニング • 長時間要するタスク
4UPDLNBSL *OD ΣϒΞϓϦέʔγϣϯΞʔΩςΫνϟ
4UPDLNBSL *OD .-όονͰΓ͍ͨ͜ͱ
© 2020 Stockmark Inc. Z c"TUSBUFHZͷػೳ ಛఆͷྖҬʹରͯ͠ɺओཁಈɾւ֎ಈɺͦͷଞͷಈ͖ͱͯࣗ͠ಈͰྨɻ ͜Ε·ͰߏԽͰ͖ͳ͔ͬͨࢢͷಈ͖ͱϓϨΠϠʔΛՄࢹԽɻ େͳใΛ၆ᛌ্ͨ͠ͰಛఆྖҬΛ"*͕ߏԽ ػೳ
Ωʔϫʔυ͔ΒಛఆͷྖҬΛݕࡧ ۀքߏΛ"*͕ߏԽ ओཁͳϓϨʔϠʔΛநग़
4UPDLNBSL *OD .-ॳ৺ऀ͕.-0QTʹઓ
4UPDLNBSL *OD .-ॳ৺ऀ͕.-0QTʹઓ MLOpsの必要性感じています 佐藤さん興味あります? ͱ͋Δͷ͜ͱ
4UPDLNBSL *OD ࢲͷͦΕ·Ͱͷ.-ࣝ • DevOps実践 • MLシステム運用歴なし • MLは個人的に勉強(実務経験なし) •
Coursera Machine Learning • Kaggleに登録したら次にやること ~ これだけやれば十分闘える Titanicの先へ行く入門 10 Kernel ~
4UPDLNBSL *OD .-ॳ৺ऀ͕.-0QTʹઓ やらせてください! ϊϦͰ"TUSBUFHZͷ.-0QTΛΒͤͯΒ͏͜ͱʹ
4UPDLNBSL *OD .-0QTͱɺͳͥඞཁ͔
4UPDLNBSL *OD .-0QTͱ • 明確な定義はなく、Googleの人が提唱したのが最初(自分の観測範囲) • DevOpsのML版 • MLOpsは、MLシステム開発(Dev)とMLシステムオペレーション(Ops)を統合することを目的とし たMLエンジニアリングの文化と実践です。MLOpsを実践するということは、統合、テスト、リリー
ス、デプロイ、インフラストラクチャ管理を含む、MLシステム構築のすべてのステップで自動化 とモニタリングを提唱することを意味します。 出典: MLOps: 機械学習における継続的デリバリーと自動化のパイプライン https://cloud.google.com/solutions/machine-learning/mlops-continuous-delivery-and- automation-pipelines-in-machine-learning?hl=ja
4UPDLNBSL *OD ͳͥ.-0QT͕ඞཁ͔ • 役割の溝 • データ収集 → データエンジニア •
モデル構築 → データサイエンティスト • 本番運用 → ソフトウェアエンジニア、SRE • 同一の予測結果を得る難しさ • CACEの原則 • データや実験の管理 • 経済的な問題 • 継続的な学習とサービングの必要性 • 予測時のデータが学習時から変わってくる
4UPDLNBSL *OD .-γεςϜෳࡶ ML システムの要素。機械学習システムの隠れた技術的負債からの抜粋
4UPDLNBSL *OD .-4VQFSIFSP なんでもできるML superheroに依存するとスケールしなくなる ML superhero What is ML
Ops? Best Practices for DevOps for ML (Cloud Next '18)から転載.
4UPDLNBSL *OD .-0QTΛ࣮ݱ͢Δ43&ͷܹಆͷྺ࢙
4UPDLNBSL *OD .-0QTΩοΫΦϑϛʔςΟϯά • MLエンジニアの感じている課題感を共有してもらう • コードとモデルのCI/CD機構がほしい • ニュース記事のローデータ(HTML)が欲しい •
オンプレで作成しているモデルのデプロイをもっといい感じにしたい • MLバッチシステムは構築済みなので、一緒にどこから手を付けて行けばよいかを深堀りすることに
4UPDLNBSL *OD ॳظߏ • CloudWatch Eventをトリガー • LambdaでRDSのデータを抽出 • S3にデータを格納
• EC2でバッチ処理 • Elasticsearchに登録
4UPDLNBSL *OD ॳظߏͷ՝ • コード更新のたびに手作業であたたかみのあるデプロイ • EC2 x 2(CPU, GPUインスタンス)
• SCPコマンドで開発環境からコードをアップロード • SCPコマンドでモデルのアップロード (合計10 GB超え) • SSHでEC2にログインし、Docker imageをビルド (1時間弱) • Lambda x 3にzipで固めたコードをコンソールからデプロイ • 直列で10種類のMLタスクを回すので実行時間が長くなる • デバッグが大変
4UPDLNBSL *OD MLタスク毎にインスタンスを用意して並列処理
4UPDLNBSL *OD MLタスク毎にインスタンスを用意して並列処理 インフラ構築、デプロイ、運用全て一人のMLエンジニアをがやっていた
4UPDLNBSL *OD σϓϩΠ͖ͭ͗͢ൃੜ コード x モデルを各インスタンスに手動デプロイで大半の時間を取られる
4UPDLNBSL *OD ՝ઃఆᶃ 1. 継続的インテグレーション (CI) 機構がない。 → テストで防げるような不具合が検知できないため、デ プロイ後に発覚して手戻りが発生する。
2. 継続的デプロイ (CD) 機構がない。 → デプロイ運用コストが大きく、かつ手動デプロイによるミスが 発生しやすい。 3. 監視機構がない。 → バッチ処理が無事完了したかどうかを毎日手動でElasticsearchとS3に確認しないと いけない。
4UPDLNBSL *OD $*$% $PEF .PEFM • CI • PR作成時にAWS CodeBuild上で自動テスト
• CD • PRマージ • Lambda: Serverless Framework • EC2 • Python boto3のec2とssm • ML model • S3にpush • EFSへ同期し、EC2からマウント
4UPDLNBSL *OD όονࢹ • Lambdaを定期実行し、期待するデータが 期待する場所に入っていることをチェック
4UPDLNBSL *OD ۤ࿑ͨ͜͠ͱ • 全体の構成の把握 • 構成図等はなく、MLエンジニアの頭の中をdumpしてまとめる作業 • Dockerビルドに長時間かかる •
マルチスレッドのPythonスクリプトを書いて並列リモートビルド • EC2へのコード、モデルのデプロイ方法
4UPDLNBSL *OD ޮՌ MLエンジニアの運用負荷が激減
4UPDLNBSL *OD ޮՌ MLエンジニアが本来のML研究開発など創造的な仕事に集中することができるようになった
4UPDLNBSL *OD ՝ઃఆᶄ • EC2インスタンスの管理が必要 • 新しいMLタスクができた時などは専用のEC2を立ててプロビジョニングする必要がある • 各EC2を起動するLambdaの作り込みが必要 •
S3更新を起点で処理が走り、記事数が多い時は複数データファイルに分割して並列処理をするようにし ているが、lock制御などをシェルスクリプトで作り込む必要がある • 実行結果監視用機構を作り込む必要がある • 全体のフローの把握が困難
4UPDLNBSL *OD ղܾํ๏ • コンピューティング環境は、EC2からAWS Batchに移行する • EC2の管理が不要になる • Step
Functionsから直接ジョブ登録できる • ワークフロー制御にはStep Functionsを使う • ワークフローを一元管理し、ジョブの依存関係(DAG)表現できる • フローの途中で通知処理を加えたい場合などに、アプリケーションロジックと分離して実装できる • 並列、配列処理やリトライ、例外処理がフローで実装でき、アプリケーションロジックをシンプル にできる • インフラはterraformでコード化する • インフラ構成をコードとしてドキュメント化 • 変更管理をGitでレビュー • インフラもCI/CDに組み込める
4UPDLNBSL *OD "84#BUDI4UFQ'VODUJPOT • 重いMLジョブもデータを分割して、配列ジョブとして実行 • 異なるMLタスクは並列実行
4UPDLNBSL *OD "84#BUDI4UFQ'VODUJPOT
4UPDLNBSL *OD "84#BUDI4UFQ'VODUJPOTʢޭ࣌ʣ
4UPDLNBSL *OD "84#BUDI4UFQ'VODUJPOTʢࣦഊ࣌ʣ
4UPDLNBSL *OD $*$% • GitHub & CodeBuild • ServerlssフレームワークでLambdaをデプロイ •
Terraformでインフラ管理 • DockerfileやPipfile変更時にDockerイメージをビル ドし、ECRにPUSH • モデルはS3からEFSに同期
4UPDLNBSL *OD ۤ࿑ͨ͜͠ͱ • 並列実行で、共有ファイルシステムの同じ名前のtmpファイルに同時に読み書き(想定外)に失敗 • Step Functionsで拾えない例外に遭遇し、GPUサーバーが暴走
4UPDLNBSL *OD ޮՌ • 全体のフローが可視化できて良い • リトライ処理などをアプリケーションに組み込 む必要がなくなり、コードが減り保守しやすく なった •
処理の途中経過をSNSに通知することで、他のア プリケーションが連携しやすくなった。 • トラブルシューティングが容易になった。 • MLタスクの追加が容易になった。
4UPDLNBSL *OD ՝ઃఆͱܧଓతͳվળ
4UPDLNBSL *OD ՝ઃఆͱܧଓతͳվળ • なぜやるのかを明確にする • 「MLOpsをする」ことは目的ではない • ツールありきではない •
ユーザー(MLエンジニア)と話したり、ボトルネックを特定し、課題を明確にする • どうやるのか • 自分のスキルで解決できそうな課題からやる。ドメイン知識やスキルが増えると徐々に他のところ にも手を出せるようになる。 • すぐに完璧を目指さない。
4UPDLNBSL *OD ͜Ε͔Β
4UPDLNBSL *OD ͜Ε͔Β • 実験管理, • データのバリデーション • データ・パイプラインのバージョン管理とか
4UPDLNBSL *OD ͜Ε͔Β • 実験管理, • データのバリデーション • データ・パイプラインのバージョン管理とか •
引き継つぎました
© 2020 Stockmark Inc. | Product | Anewsの機能 AIが人力では抽出できない膨大なビジネスニュースから、 組織や個人の関心事に合わせて、ビジネスに直結したニュースをレコメンド。
テーマに合わせてAIが組織に必要なニュースを配信 機能 01
4UPDLNBSL *OD ͜Ε͔Β • インフラもゼロから構築 • CI/CD • 運用・監視 •
B2B SaaSの推薦システム 独特の課題
4UPDLNBSL *OD ࢀߟ
4UPDLNBSL *OD ࢀߟ https://tech.stockmark.co.jp/
4UPDLNBSL *OD