28.9K Views
August 29, 22
スライド概要
「ヤフーのオンプレ機械学習基盤AIPFについて #ml_kubernetes」
オンプレミスで大規模なKubernetesクラスタを運用しているヤフーとPFNの合同イベントの二回目のオープニングにヤフーが発表した資料です。
ヤフーのMLOpsを支えるプラットフォームの裏側を紹介します。
https://ml-kubernetes.connpass.com/event/255797/
2023年10月からSpeaker Deckに移行しました。最新情報はこちらをご覧ください。 https://speakerdeck.com/lycorptech_jp
ヤフーのオンプレ機械学習基盤 AIプラットフォームについて Copyright ©2022 (C)Yahoo 2020 Japan Yahoo Corporation Japan Corporation. All rightsAllreserved. Rights Reserved.
⾃⼰紹介 ⿊松 信⾏ ヤフー株式会社 @kuromt_ AIプラットフォームチーム Kubernetesを使った機械学習基盤の開発と運⽤ ヤフー社内のKubernetes技術コミュニティの運営 ヤフー社内のMLOpsコミュニティの運営 ©2022 Yahoo Japan Corporation All rights reserved. 2
AIPF(AI Cloud Platform)とは ヤフーのデータセンターにホスティングしたKubernetesを基盤としたMLOpsのため のプラットフォーム プロダクト 概要 ACP 機械学習/ディープラーニング向けのマルチテナントK8S環境 MLflow, Airflow, Argo Workflows, Argo CD など様々なアプリケーションを提供 MLflow モデル学習時のメタ情報の記録、学習モデルのレジストリ Argo Workflows/ Argo CD ワークフローツール / デプロイツール LakeTahoe Job API/ LakeTahoe Notebooks 機械学習を簡単に実⾏できるAI Platform Training API の提供/ ブラウザから⾃由に⽴ち上げられるモデリング環境(Jupyter環境)の提供 CuttySark Tensorflow Serving ,Tritonを使ったマネージドな推論環境を提供 Dronach 機械学習モデルの継続的なモニタリングシステム ©2022 Yahoo Japan Corporation All rights reserved. 3
社内のデータ基盤と連携しながら様々なMLワークロードをサポート ©2022 Yahoo Japan Corporation All rights reserved. 4
Trainingコンポーネント 下線はヤフーで内製したツール (Kubernetes) • マネージド MLflow • Notebook • 学習用WebAPI • マネージド Notebook 参考:ヤフーのAIプラットフォーム紹介 〜 AI開発をより手軽に ©2022 Yahoo Japan Corporation All rights reserved. 5
Servingコンポーネント 下線はヤフーで内製したツール (Kubernetes) • マネージド推論 サービス 参考:ヤフーのAIプラットフォーム紹介 〜 AI開発をより手軽に ©2022 Yahoo Japan Corporation All rights reserved. 6
Workflowコンポーネント 下線はヤフーで内製したツール (Kubernetes) • 汎⽤的なジョブ • Kubernetesに 閉じたジョブ 利⽤者が業務に集中できるように 利⽤頻度が⾼い処理は ArgoのClusterWorkflowTemplate としてAIPFチームが提供・保守 参考:ヤフーのAIプラットフォーム紹介 〜 AI開発をより手軽に ©2022 Yahoo Japan Corporation All rights reserved. 7
MLOpsの概念図とプロダクトの関係 MLOps: 機械学習における継続的デリバリーと自動化のパイプライン を参考に作成 ©2022 Yahoo Japan Corporation All rights reserved. 8
MLOpsの概念図とプロダクトの関係 モデリングチーム が各々で整備 Hive/Cassandra などを使い実装 LakeTahoe Notebooks/ LakeTahoe Job API MLOps: 機械学習における継続的デリバリーと自動化のパイプライン を参考に作成 Github Enterprise ArgoCD/ Screwdriver MLflow Model Registry Argo Workflows/ Airflow MLflow Tracking CuttySark Dronach ©2022 Yahoo Japan Corporation All rights reserved. 9
Kubernetesを構成するサーバ ©2022 Yahoo Japan Corporation All rights reserved. 10
Network • IP Clos Fabric NW • データ分析基盤のように「East-West」なサーバ間トラフィックに強い構成 • ⾼帯域で耐障害性があるNetwork •NW Security • コアスイッチではなくサーバ(HV)でNetwork ACLを管理 参考:データドリブンなサービスを支えるネットワークの作り方〜 ヤフーのデータセンターネットワーク紹介 https://techblog.yahoo.co.jp/entry/20200323819517/ ©2022 Yahoo Japan Corporation All rights reserved. 11
Server •OpenStack + KVMを⽤いたIaaS基盤 •基本的に1HV1VM構成※ •実機と比較して95%程度のパフォーマンス •GPU/NVMe/NICパススルーの活⽤ •合計130台近くのGPUサーバ •SmartNICを活⽤した⾼速な通信 •パケット処理をHWにオフロードすることで高いパフォーマンスを実測 ※ K8S MASTER, INGRESS,ETCDなどのVMは除く ©2022 Yahoo Japan Corporation All rights reserved. 12
Server Spec CPU GPU MEMORY DISK NETWORK Xeon Gold 6138 x 2 V100 x 4 384GB NVMe 8TB 100G Xeon Gold 6238 x 2 V100 x 4 384GB NVMe 1.6TB 100G Xeon Gold 6238 x 2 V100 x 8 384GB NVMe 1.6TB 100G EPYC 7532 2.40GHz x 2 A100 x 4 1024GB NVMe 3.2TB 100G Xeon Gold 6238 x 2 なし 384GB NVMe 1.6TB 25G EPYC 7702 x 1 なし 512GB NVMe 3.2TB 25G ©2022 Yahoo Japan Corporation All rights reserved. 13
プラットフォームとしてのKubernetes ©2022 Yahoo Japan Corporation All rights reserved. 14
Kubernetesクラスタの概要 • Multitenant CPU/GPU Heterogeneous Cluster • 個⼈/ProjectでNameSpaceごとにOIDCで権限管理(認証:dex, 認可:Garm+Athenz) • Namespaceごとに全体の1/3のResourceQuota(⼀⼈で全体を壊さなければ良い) • IngressなどのDomainはOPAなどで重複排除 • PodのPriority • 定期Job High, 通常 Middle, 実験的に⼤量のジョブを実⾏する時は low • ユーザのシステム監視は個別にPrometheus+Alertmanager+Grafanaを⽴てる • ユーザ間のデータの共有はKubernetes外部のストレージであるHDFS、もしくは Dragon(ヤフーのS3互換のオブジェクトストレージ)を使う ©2022 Yahoo Japan Corporation All rights reserved. 15
Security for Data 特殊な通信の許可 通信先/量など を落とす •抑制対策 ACL Ingress • 最⼩限のポート開放 • FalcoでコマンドやNetwork等を監視し、 怪しい挙動のPodがあればアラート 通信先の抑制 • Input • Ingressのログを監視しデータが持ち出されていない か監視 • ロギングが不⼗分なものやIPアドレスで制限できない ものは外部通信⽤Ingressを経由させることで制御 Telegraf アラート 集計 A C L container • Output • Output先を監査が⼗分で、かつ認証がかかっている ものに制限 Log送信 falco コマンドや ネットワークの監視 ©2022 Yahoo Japan Corporation All rights reserved. NiFi HDFS コンテナログの 保管/監査 16
認証系 • ⽤途に合わせて様々な仕組みを導⼊ • ポリシーの管理をAthenzに寄せている システム 概要 Athenz Roleごとのアクセス管理 dex/oauth2-proxy Oauth2を利⽤した認証/認可 主にUIを持つアプリケーション⽤途 AthenzSidecar X509 Method URLでの認可 主にWebAPI⽤途 open-policy-agent CopperArogsを利⽤したCluster/Namespace/Service AccountのX509証明書の発⾏ Kerberos PKINIT X509証明書に対応したKerberosTokenを⾃動発⾏しHadoopを操作 社内Secret管理システム X509証明書を使った権限管理を⾏い、鍵の取得 ©2022 Yahoo Japan Corporation All rights reserved. 17
データの保存 ©2022 Yahoo Japan Corporation All rights reserved. 18
KubernetesのStorage(PVC) • NetApp • NFS + ISCSIをサポート • ランダムなRead/Writeで⾼スループットを実現 • 主な⽤途︓DB(MySQL, NoSQL)、データキャッシュなど • Quobyte • File Storage + Object Storage(S3)をサポート • 安価なコモディティハードウェア上で動作 • サーバを追加することで容量と性能がスケール • 主な⽤途︓モデルデータ、メトリクス、ログなど ©2022 Yahoo Japan Corporation All rights reserved. 19
内製したプロダクト ©2022 Yahoo Japan Corporation All rights reserved. 20
LakeTahoe • LakeTahoe Notebooks •LakeTahoe Job API • 機械学習ジョブを実⾏するAPI • マネージドなNotebookサービス trainingInput: • 分散学習のためのリソース確保 scaleTier: BASIC_GPU •masterConfig: システム組み込みのハイパーパラメータ探索 imageUri: ”containerregistry.example.com/aipf/laketahoe-custom-tensorflow• ランダムサーチ、グリッドサーチ、ベイズ最適化(デフォルト) gpu:latest" args: • 並列での探索も可能 - "--module-name" - "trainer.task" - "--packages" - "hdfs://path/to/packages/tf_probability_mnist1.0.tar.gz" - "--data-path" - "hdfs://path/to/data/mnist.npz" - "--num-epochs" - "10" - "--num-monte-carlo" - "50" - "--fake-data" - "False” hyperparameters: ©2022 Yahoo Japan Corporation All rights reserved. 21
CuttySark Tensorflow ServingとTritonをサポートするマネージド推論サービス オブジェクトストレージに保存した学習済みモデルを指定して推論サーバを作成 ©2022 Yahoo Japan Corporation All rights reserved. 22
Dronach 統計情報の変化 モデルモニタリングツール 機能 • データドリフト検知 • Feature AYribuZonのドリフト検知 • サービスKPIの収集・監視 • データの統計情報の収集 • アラート • 計測した情報を確認するダッシュボード 参考: 継続的なモデルモニタリングを実現するKubernetes Operator ©2022 Yahoo Japan Corporation All rights reserved. 23
AIPFチーム ©2022 Yahoo Japan Corporation All rights reserved. 24
この1年に中途⼊社としてジョインしたエンジニア 前職の ポジション 機械学習の経験 Kubernetesの経験 プラットフォーム としての運⽤経験 K8sで動かすアプリ の開発経験 機械学習基盤の 開発・運⽤経験 前職の経験で 活かせていること ⼊社前と⼊社後のギャップ モデリング 経験 分析 コンサルタント クラウド上での構築と 運⽤ なし 商⽤ソフトウェアを 使い運⽤ 予測問題や セグメン テーション k8sの知識、ユーザ視 点のML基盤利⽤経験 作りたいものを⾃由に作れる雰囲 気が印象的です︕ MLOps エンジニア ML・分散データ処理・ 推論APIなどを担うk8s ネイティブなMLOpsク ラスタの運⽤ IstioとgRPC GoでAPI、 AI事業の⽴ち上げと TektonでCI/CDシス MLOps基盤の提案、 テムの構築、Spark 設計開発など やTensorFlowなど のジョブ開発など 様々なサー ビスのモデ リング業務 を経験 ビジネス課題からML、 Dev、Opsまで⼀気通貫 で担当することで得ら れた視座・視点・視野 の違いの経験 良くも悪くも⾃由な環境。⾃律的 に⾏動できなければすることがな い。個⼈的には好きなところです。 システム エンジニア なし なし 分析⽤のDockerイメー ジとデータフロー⽤の 構築しシステムとして 提供プロトタイプとし て提供 時系列分析 と簡単な テキストマ イニング 利⽤者が⾔っているこ とと本当に欲しいもの は違うこと。技術にこ だわりすぎないこと 主体的に仕事を進めるのに慣れて おらず最初は⼾惑った。今は多少 慣れたはず︕ MLOpsシステム の研究開発 なし なし MLライブラリの開発 経験、OSSを活⽤した ML基盤の研究開発経 験あり 異常検知、 物体検出の モデリング ML基盤の研究開発で 利⽤したOSSのノウハ ウが活⽤できています 前職では必要なものを⾃分で⽤意 していましたが、ヤフーでは社内 インフラが整備されており、やり たいことに集中できると感じてい ます。 ソフトウェア エンジニア 社内KaaSで⽴てた クラスタの運⽤ あり OSSを活⽤した 社内ML基盤 なし Docker、k8sの知識 ユーザに寄り添いながらものを 作っているのが印象的です。 ラズパイ上で構築した ことがある程度 ©2022 Yahoo Japan Corporation All rights reserved. 25
We are Hiring !! データプラットフォームエンジニア(AIプラットフォーム/データ基盤/DBA) ・機械学習を推進することで⽇本をUPDATEしたい⼈ ・OSS/内製を問わずエンジニアリング/サイエンスを活⽤してML基盤を作りたい⼈ ・ユーザ視点に⽴って、使いやすいプラットフォームの開発をしたい⼈ TensorFlow PyTorch • Argo Workflows • • Argo CD • MLflow インフラ • • Kubernetes NW高速化 • • LakeTahoe CuttySark Dronach GPU VM ©2022 Yahoo Japan Corporation All rights reserved. 視 点 PF ミドルウェア • • • LakeTahoe Notebooks ML アプリケーション • • 視 点 26
カジュアル⾯談の応募⽅法と過去の資料 •カジュアル⾯談希望の連絡お待ちしています •⿊松: @kuromt_ (Twi4er) •北嶋: nkitajim (YamaReco) •資料 •オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 •ヤフーのAIプラットフォーム紹介 〜 AI開発をより⼿軽に •MLOpsを⽀えるヤフー独⾃のモデルモニタリングサービス •AI Pla?orm with Kubernetes and GPU in Private Cloud #GTC21 •Yahoo!Japan AIPla?ormとWorkflow管理 ©2022 Yahoo Japan Corporation All rights reserved. 27
©2022 Yahoo Japan Corporation All rights reserved.