第30回 MLOps 勉強会の発表資料です。Money Forward でのこれまでの取り組みについて、振り返った内容を共有します。
MLOps のはじめかたAsei Sugiyama
View Slide
自己紹介杉山 阿聖 (@K_Ryuichirou)Software Engineer @ Citadel AIAdvisor @ Money ForwardGoogle Cloud Innovators Champion @ CloudAI/MLMLSE 機械学習オペレーション WG機械学習図鑑 共著
背景機械学習は未だ日進月歩Foundation Model 登場以降の動きは凄まじいさまざまな機械学習の運用に関する事例も出てきている一方、これから始める組織も数多くあるその場合、出てくる事例は最初に参考とするには難しすぎる
最近の例 NTT Docomo分析用基盤に papermil &AirflowスケーラビリティをKubernetes で確保費用と運用負荷から考えてはじめた直後にはオススメできないたった3人で運用するドコモを支える機械学習基盤の作り方 ー Kubernates ×Airflow × DataRobot を使ったMLOpsパイプライン ー - ENGINEERING BLOGドコモ開発者ブログ https://nttdocomo-developers.jp/entry/202212191200_2
主旨機械学習を運用し始めるための技術的な取り組みについて、MoneyForward でのこれまでの活動を振り返りつつ共有します
まとめMoney Forward のこれまでの MLOps に関する取り組みを振り返りre:Invent で発表した Inferentia に取り組みへ至るまでには複数の取り組みがあった堅牢なものを時間をかけて目指すのではなく、小さくはじめて少しずつステップアップするほうが良い自分たちのスキルセットとマッチする技術を選ぶことは大事
TOCこれまでの歩み <-はじめての機械学習パイプラインの構築これまでのふりかえり
これまでの歩み次の3つが大きなイベントAI 推進部設立Step Functions による機械学習パイプライン構築AWS Inferentia を用いた推論API開発
AI 推進部設立2名からスタート担当者の Note 記事採用がすごい速度で進んでいったAI推進部って何だ?|Tatsuya Kono|notehttps://note.com/tatsuyakono/n/n305d8d614f16
Step Functions による機械学習パイプライン構築AWS Step Functions で機械学習パイプラインを構築当時の新機能を用いて、カナリアリリースを実装StepFunctionsを使ってSageMakerエンドポイントのデプロイを実行する - MoneyForward Developers Blog https://moneyforward-dev.jp/entry/2021/11/16/stepfunctions-sagemaker-endpoint-deploy/
AWS Inferentia を用いた推論API開発チャットボット用機械学習基盤の新基盤への移行ユーザーに学習、推論の機能を開放短期間 (2ヶ月) で実施AWS re:Invent 2022 - How four customers reduced ML inference costs anddrove innovation (CMP226) - YouTube https://youtu.be/dVlNobmvoTg?t=1073
Money Forward Techbook#5Inferentia を含めたさまざまな推論環境でのベンチマークが記されているMoney Forward Techbook #5:まねふぉ執筆部https://techbookfest.org/product/6NXreHXRLLWVPx9g4DRTsZ?productVariantID=pWr6n1KxikP4g9YC2uqTyj
これまでの歩みを振り返って最初は「MLOpsってなんですか?」から始まっていたDevOps との違いは?ML 特有な問題は?HiTTO では超短期間で高負荷に耐えるサービス基盤を作成しているが、それまでの経験の上に成り立っている
次のポイントを移行で重点的にふりかえり初期のチームビルディングでどのような議論をしたか?どのように技術選定を行ったのか?
TOCこれまでの歩みはじめての機械学習パイプラインの構築 <-これまでのふりかえり
はじめての機械学習パイプラインの構築勉強会読書会機械学習パイプラインの構築
勉強会MLOpsや機械学習の一般論について情報提供テーマを決めて1時間で実施月1ペースで実施
読書会MLOps に関する書籍を用いて週1ペースで読書会i. Introducing MLOpsii. 入門 機械学習パイプライン該当箇所の内容の確認と、業務適用についての議論
Introducing MLOpsMLOps に関連する概念を実装に依存しないように述べた書籍広く MLOps について調べたいときには良い実際に自分たちの現場に適用しようとすると迷うIntroducing MLOps https://www.oreilly.com/library/view/introducing-mlops/9781492083283/
入門 機械学習パイプラインTFX (TensorFlow Extended) に基づいて機械学習パイプラインの実装方法について述べた書籍具体的な実装方法について述べているので業務をイメージしやすいTensorFlow や Google Cloud を前提としているので癖は強い入門 機械学習パイプライン https://www.oreilly.co.jp/books/9784873119519/
読書会での議論内容 (1/2)本当にこれやる?モデルの精度評価に基づくデプロイって必要?Fairness とか今やる?本当にこれ使う?TFX 使う?Kubeflow Pipelines 使う?TF Serving 使う?
読書会での議論内容 (2/2)自分たちのスキルセットと照らし合わせたときに、それらのプラクティスや技術を採用すべきか議論大概の場合は「最初はスキップしたほうがいい」「やめたほうが良い」と答えた
機械学習パイプラインの構築AWS Step Functions による構築AWS のサービスの中でもっともミニマムに構築できるサービスだったアップデートがあり、AWS のほぼすべての機能を使えるようになったStepFunctionsを使ってSageMakerエンドポイントのデプロイを実行する - MoneyForward Developers Blog https://moneyforward-dev.jp/entry/2021/11/16/stepfunctions-sagemaker-endpoint-deploy/
TOCこれまでの歩みはじめての機械学習パイプラインの構築これまでのふりかえり <-
これまでのふりかえり技術選定に際しての考慮事項構築したあとで直面した課題もしもう一度始めるならば
技術選定に際しての考慮事項自分たちのスキルセットとマッチする技術を選ぶことは大事MLOps だからという理由で新しい技術に手を出すと痛い目を見る困難に直面した際に頼れる先があることは大事サポートコミュニティ
構築したあとで直面した課題 (1/2)ML 特有の事情で困ったこと結構 ML 特有の事情で困るので、それ以外の箇所で困らないようにしておくのが理想HW の制約上、典型的なサーバレス用サービスを活用できない (Fargateではなく EC2 が必要)自然言語処理で想定していなかった入力が与えられ緊急対応
構築したあとで直面した課題 (2/2)ステークホルダーが多様になる点は注意が必要データの利用についての価値観の差異セキュリティを保ちたいチームデータを利用したいチームきれいなワークフローを構築してからリリースしたいものの、最初のリリースではさまざまな事情で難しい事前の期待とマッチしない場合の対応も大変 (思っていたほど使われない、思っていた精度が出ない、など)
もしもう一度始めるならば最初のリリースはミニマムに始められるよう注力する想定外のことや未知の課題に直面することが不可避堅牢なものを時間をかけて目指すのではなく、小さくはじめて少しずつステップアップするほうが良い