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
1.3k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MLOpsを実現するSRE激闘の歴史
XP祭り2020登壇資料
MLOpsを実現するSRE激闘の歴史
Kenta Sato
September 19, 2020
More Decks by Kenta Sato
See All by Kenta Sato
Infra Study #4 AI SaaSの機械学習インフラ基盤とMLOpsの取り組み
kenta_sato3
1
1.2k
Other Decks in Technology
See All in Technology
5分でわかるDuckDB Quack
chanyou0311
3
250
水を運ぶ人としてのリーダーシップ
izumii19
4
1k
2026 AI Memory Architecture
nagatsu
0
270
飲食店もAIで。レジ締めやハンディシステムをつくってる話 / Using AI for restaurant management
vtryo
0
180
自宅LLMの話
jacopen
1
720
自分が詳しくない領域でAIを使う #プロヒス2026
konifar
20
7.5k
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
1
430
AWS Security Hub CSPMの成功・失敗体験
cmusudakeisuke
0
550
Kiro Ambassador を目指す話
k_adachi_01
0
130
【2026年版】 ベクトル検索とEmbedding最前線
mocobeta
24
7.6k
“詰む”前に仕組みを作れ 〜技術の波に溺れないためのキャッチアップ術〜
takasyou
7
3.9k
Lightning近況報告
kozy4324
0
220
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
350
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
390
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
360
Test your architecture with Archunit
thirion
1
2.3k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
400
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.7k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
A better future with KSS
kneath
240
18k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
190
30 Presentation Tips
portentint
PRO
1
330
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
210
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