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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
生成AIと余白 〜開発スピードが向上した今、何に向き合う?〜
kakehashi
PRO
0
170
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
370
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
AWS Network Firewall Proxyを触ってみた
nagisa53
1
250
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
780
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
480
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
340
【Oracle Cloud ウェビナー】[Oracle AI Database + AWS] Oracle Database@AWSで広がるクラウドの新たな選択肢とAI時代のデータ戦略
oracle4engineer
PRO
2
190
SchooでVue.js/Nuxtを技術選定している理由
yamanoku
3
210
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
220
猫でもわかるKiro CLI(セキュリティ編)
kentapapa
0
120
(技術的には)社内システムもOKなブラウザエージェントを作ってみた!
har1101
0
330
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
72
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
96
WENDY [Excerpt]
tessaabrams
9
36k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
150
The SEO Collaboration Effect
kristinabergwall1
0
360
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.1k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Unsuck your backbone
ammeep
671
58k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
320
Code Review Best Practice
trishagee
74
20k
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