Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DeNA の MLops エンジニアは何をしてるのか【DeNA TechCon 2021 Wi...

DeNA_Tech
December 27, 2021

DeNA の MLops エンジニアは何をしてるのか【DeNA TechCon 2021 Winter】/techcon2021 winter_5

DeNA では様々な事業で AI を活用しており、事業毎に異なる制約条件のもとデータサイエンティストが様々なモデルをつくっています。

データサイエンティストがつくったモデルはそのままでは利用できず、実際に利用するために機械学習基盤やインフラを用意したり、フロントエンドの開発を行うなど、様々なサポートが必要となります。そういった AI 以外の全てをサポートするのが MLOps エンジニアであり、様々な課題を解決することが求められます。

本発表では、DeNA の MLOps エンジニアの業務を俯瞰しながら、主に機械学習基盤周りの話をご紹介するとともに、MLOps エンジニアがどのような課題と日々向き合っているのかお話します。

DeNA_Tech

December 27, 2021
Tweet

More Decks by DeNA_Tech

Other Decks in Technology

Transcript

  1. MLOps って何? - DevOps + AI が組み合わさった概念で、特に AI 周りのサポートをする -

    DeNA では AI 以外のすべてをスコープとする - その集団が MLOps エンジニア - もちろん AI のドメイン知識があると尚良い - 少ない人数でも業務が回る(スケールする)ように主に自動化を頑張る
  2. 具体的に何をしているの(主なスキルセット) - フロントエンドの開発 - React, Vue, TypeScript - バックエンドの開発 -

    Python, Go, Database(MySQL, NoSQL…) - クラウド - Amazon Web Services, Google Cloud Platform, Terraform - コンテナ - Docker, Kubernetes(K8s) - CI/CD, セキュリティ、ネットワーク、アーキテクチャ etc...
  3. 今自分がしていること - データサイエンティスト (DS) が作った成果物を提供する - フロントエンド開発(Nuxt.js → Next.js) -

    バックエンド開発(FastAPI, MySQL) - インフラ(AWS) - ツールの作成 - AI を活用した web API の運用 - Pococha 関連の AI を実際に運用中 - 不正な配信を自動検出し、サポートの負担減 - 機械学習基盤 Hekatoncheir の開発(メイントピック) - Web API サービング機能の整備
  4. 機械学習基盤 Hekatoncheir - DS が作ったモデルをプロダクションに持っていくにはいくつか ハードルがある - 各々の環境で作られたモデルを web API

    として使えるようにする - 継続的なモデルやデータセットの更新 - 学習から推論用の web API サーバーの Docker イメージ(アーティファクト)の生成までを行う GCP 上に構築された一連のパイプライン
  5. Hekatoncheir Serving 要件 - 既存のパイプラインの延長として、アーティファクトを web API として サービングする -

    MLOps エンジニアの数は限られるため、とにかく自動化をしたい - 認証機構を入れてアクセス制限をする - 動的に web API を作成更新削除ができる - アクセス数に応じてスケールさせる - Kubernetes(Google Kubernetes Engine)を採用
  6. - POST リクエストを受けると、イメージをデプロイ - DELETE リクエストを受けると、デプロイされた web API を破棄 検証機構のサーバ実装

    POST イメージデプロイ エンドポイント払い出し 試しにリクエストを飛ばして 想定されたレスポンスが 返ってくるかチェック
  7. Hekatoncheir Serving 要件(再掲) - 既存のパイプラインの延長として、アーティファクトを web API として サービングする -

    MLOps エンジニアの数は限られるため、とにかく自動化をしたい - 認証認可機構を入れてアクセス制限をする - 動的に web API を作成更新削除ができる - アクセス数に応じてスケールさせる - Kubernetes(Google Kubernetes Engine)を採用
  8. サービスメッシュ(Istio) - K8s のネットワークを拡張してくれる - 高度なルーティング制御 - ネットワーク状況の監視 - 認証認可の機能を提供

    認証されたユーザのみによるアクセス 各コンポーネントが通信し合うような構成 (=マイクロサービス)
  9. Knative - Istio 上で動く、サーバーレス基盤用プラットフォーム - Knative のマネージドサービスが Cloud Run -

    イメージのデプロイとルーティングなどをよしなにしてくれる - 検証機構で色々頑張っていた部分をそのまま代わりにやってくれる - 動的に web API の作成と削除が可能 POST Knative によるデプロイとルーティング
  10. Hekatoncheir のリアーキクテト - 実際に使われていく上で、より良いアーキテクチャが提案された - web API への移行 - 現状

    cli が分厚いが web API を作ってサーバに処理を持っていく - Vertex Pipelines(マネージドな Kubeflow Pipelines) - 複雑なユースケースが出てきており、既存のパイプラインでは 無理が生じてきた - 分岐 - 待ち合わせ - 途中からの実行
  11. Cloud Run VS AI Platform Prediction VS GKE - Cloud

    Run - GPU が使えないのはユースケースが限定されてしまう - AI Platform Prediction - 機能的には十分 - リクエストとレスポンスのサイズ上限(1.5MB)が不安 - GKE(Kubernetes, k8s) - あらゆるユースケースに対応できる - 将来的に AWS にも展開できる可能性 - 学習コストは高そうだが、メンバー的にもモチベ高い
  12. GKE standard VS GKE autopilot - GCP には2つの GKE のモードが存在する

    - GKE standard - ノードを管理する必要がある - GKE autopilot - ノードの管理が必要ない - いくつかの制約が存在する(した) - admission webhook - cert-manager, istio - GPU が使えない - requests = limits になる - ユーザにこの辺を設定してもらうのは難しい
  13. Anthos Service Mesh - Hekatoncheir では Istio を採用 - アップデートが大変

    - Anthos Service Mesh は GCP のマネージドな Istio - アップデートの煩雑さがなくなる