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

MLOps勉強会_リアルタイムトラフィックのサーバレスMLOps基盤_20220810

 MLOps勉強会_リアルタイムトラフィックのサーバレスMLOps基盤_20220810

satoru saito

August 10, 2022
Tweet

Other Decks in Programming

Transcript

  1. /55ίϛϡχέʔγϣϯζ Πϊϕʔγϣϯηϯλʔ ςΫϊϩδʔ෦໳ 宇野貴⼠ 齋藤暁 鈴ヶ嶺聡哲 切通恵介 リアルタイムネットワークトラフィックの サーバレスMLOps基盤

  2. © NTT Communications Corporation All Rights Reserved. 2 1. サーバレスMLOpsの概要

    2. 解きたい課題 3. なぜサーバレスMLOpsでの解決が必要なのか 4. 構築したサーバレスMLOpsについて 5. まとめと今後の展望 もくじ
  3. © NTT Communications Corporation All Rights Reserved. 3 ⾃⼰紹介 @u_not_401

    Uno-Takashi NTTCom2021⼊社(R&Dの部署) Node-AI開発PJ : ローコード時系列データ分析ツール 開発 Django , Responsible AI , ウェブアプリケーション セキュリティ , PyTorch Annual Hackathon2021 責 任あるAI開発部⾨ 2位 NodeAI開発 PJ - 2年目 - 宇野 貴士 UNO Takashi
  4. © NTT Communications Corporation All Rights Reserved. 4 ⾃⼰紹介 str-saito

    開発者ブログ NTTCom2021⼊社(R&Dの部署) メディア解析、ハイブリッドクラウド、MLOps 等の統合開発検証 社内ブログ 齋藤 暁 Saito Satoru
  5. © NTT Communications Corporation All Rights Reserved. 5 会社・組織紹介 ▪イノベーションセンターのミッション

    R&D部⾨ 1. 新規事業の創出 2. 社内イノベーションの推進、⽀援 ▪テクノロジー部⾨のミッション テクノロジーの力でコミュニケーションを1つ先へ ▪イノベーションセンターのミッション 新規事業開発、イノベーション推進、技術戦略、知財戦略、エンジニアCoE、デ ザイナーCoE
  6. © NTT Communications Corporation All Rights Reserved. 6 αʔόʔϨε.-0QTͷ֓ཁ

  7. © NTT Communications Corporation All Rights Reserved. 7 MLOpsが求められる理由 ⼀定期間の

    データを受領 (csvなど) 精度の⾼い 学習済モデル データの前処理 特徴量作成 (Python・R) モデルの設計 モデルの学習 (Python・R) 予測値の算出 モデルの評価 (Python・R) • データサイエンティストは精度の⾼い分析結果や予測モデルの構築 を⾏う → これで運⽤中のサービスにMLモデルを組み込める︖ ⼀般的な静的データ解析フロー
  8. © NTT Communications Corporation All Rights Reserved. 8 MLOpsが求められる理由 熟練の職人が

    退職 4月 6月 繁忙期 8月 12月 10月 天候悪化 2月 新入社員配属 改装工事 年末 • 実際の現場やサービス運⽤では常に状況や環境は変わり続ける • 状況が変わり続ける≒⼊⼒データの分布が変わり続ける → 変わり続ける状況に対してAIモデルも対応させ続ける必要がある
  9. © NTT Communications Corporation All Rights Reserved. 9 AIモデル開発(ML)と運⽤(Ops)を統合したMLOpsが必要となってきた MLOpsが求められる理由

    ⼀般的にはMLOpsでは以下の⾃動化基盤などを構築する • リアルタイムなデータ収集 • 前処理・学習・推論の⾃動実⾏ • アプリケーションによるユーザー提供
  10. © NTT Communications Corporation All Rights Reserved. 10 GoogleがMLOpsに対応させるための3STEPを定義している level

    0: Manual process : 静的解析 ⾃動化を含まない解析フローの構築(Jupyter Notebookなど) level 1: ML pipeline automation : ML部分のみ⾃動化 MLパイプラインを⾃動化 level 2: CI/CD pipeline automation : パイプライン全体を⾃動化 MLパイプラインおよびCI/CDパイプラインを⾃動化 今回はLevel2の部分をサーバレスで実装を⽬指す MLOpsの3STEP
  11. © NTT Communications Corporation All Rights Reserved. 11 サーバーレスが求められる理由 •

    MLOps基盤を構築することによって、AIの学習からサービスへのデ プロイを⼀つのフローでつなぐことができた • 巨⼤なパラメータを持つMLモデルにおいては、巨⼤なGPUリソース が必要であるとされている。 • 従来のサーバー型の学習⽅式では巨⼤なGPUリソースを確保し続け る必要がある
  12. © NTT Communications Corporation All Rights Reserved. 12 サーバーレスが求められる理由 サーバレス構成

    サーバ構成 学習パイプライン 必要な学習が終われ ば⾃動的にリソース が開放される。 デプロイサーバ 学習パイプライン リソースを確保し続 ける。場合によって はスケジューラ―も 必要になる デプロイサーバ
  13. © NTT Communications Corporation All Rights Reserved. 13 サーバーレスが求められる理由 •

    近年では実験的にパラメータ数が多い ほど精度が向上することが⽰されてお り、要求されるリソースの⽔準も⾼く なっている • ⾔語モデルにおいてSOTAを獲得した GPT-3においては1度の学習に12 million $(約15億円)が必要という試算 がある • 多額の費⽤が掛かるサーバーを確保し 続けることは無駄が多い ⾦銭⾯、環境負荷⾯などからサーバレスが求められている
  14. © NTT Communications Corporation All Rights Reserved. 14 ղ͖͍ͨ՝୊

  15. © NTT Communications Corporation All Rights Reserved. 15 Testbedとは︖ •

    最新技術・機器を検証するための社内ネットワーク • ⽬的 ◦ トラフィック分析によるネットワーク設計⽀援や異常検知 • 特徴 ◦ ユーザ要求によって拠点追加が頻繁に⾏われる ◦ 様々なSOが⾛る ◦ 拠点追加に伴いトラフィック量が変化し続ける ◦ リアルタイムにトラフィックデータを分析する必要がある
  16. © NTT Communications Corporation All Rights Reserved. 16 Testbed(検証網)の リアルタイムトラフィック予測

    • ネットワークのトラフィックデータを解析するための技術であるFlowデータ (Netflow v5, Netflow v9, IPFIX, sFlow) ◦ データ量 Byte(今回の主な分析対象) ◦ 送信元・送信先IPアドレス ◦ 送信元・送信先ポート番号 ◦ プロトコル番号 ◦ etc… データ変化が頻繁に起こる中でのトラフィック予測
  17. © NTT Communications Corporation All Rights Reserved. 17 ͳͥαʔόϨε.-0QTͰͷղܾ͕ඞཁͳͷ͔

  18. © NTT Communications Corporation All Rights Reserved. 18 Testbed(検証網)の リアルタイムトラフィック予測

    3つの解決すべき障壁 1. 取得データの変化 1. ビジネス要件やアプリケーションの変化 1. モデルの劣化
  19. © NTT Communications Corporation All Rights Reserved. 19 取得データの変化 データ量の変化に対応するスケーラブルなデータ収集基盤の構築

    技術検証・拠点追加に伴いトラフィック量が変化し続ける≒モデルも変化し続ける必要がある トラフィック量の増加 そもそもなんでこんなにデータの分布が変わるんだっけ︖
  20. © NTT Communications Corporation All Rights Reserved. 20 ビジネス要件やアプリケーションの変化 特定の通信トラフィックの追加分析

    リモートワークによる VPN利⽤のトラフィック の分析を追加したい 特定の拠点Aの検証期間中のデ ータを分析してほしい • もし静的解析によって対応しようとすると︖ ◦ 当初予定していなかった分析の追加 ◦ 特定の拠点・期間中のデータ分析 ◦ 分析するデータが多い場合は膨⼤な時間がかかる いたるところこうした変更が起きるのでいちいちすべて把握して反映していられない
  21. © NTT Communications Corporation All Rights Reserved. 21 モデルの劣化 新しいデータによるモデルの継続的な再学習

    運⽤直後(3⽉) 3ヶ⽉後(6⽉) 精度90% 精度60% • もし静的解析で対応しようとすると︖ ◦ 時間が経過することでモデルの精度が下がるため定期的な再学習が必要 ◦ モデル構造や前処理の改善/改修が必要になる ◦ ⾃動で学習を⾏う時は精度の劣化を可視化とモニタリングする仕組みが重要 ◦ 学習⾃動化リソースが⼀時的に⼤量に必要なので管理が⼤変
  22. © NTT Communications Corporation All Rights Reserved. 22 モデルの劣化 より良い学習⼿法の発⾒による前処理・学習・モデルの作り直し

    • データの傾向(季節性,ユーザ増加etc...)が変わればモデルは役に⽴たなくなる • より精度の良い最新の機械学習モデルを検証するための実験環境 • 学習⼿法の検証には常時リソースが必要なわけではない → サーバレス構成 データ傾向の変化 最新の機械学習モデルの対応 精度 時間 変化前 変化後
  23. © NTT Communications Corporation All Rights Reserved. 23 ߏஙͨ͠αʔόϨε.-0QTʹ͍ͭͯ

  24. © NTT Communications Corporation All Rights Reserved. 24 なにで構築したのか Vertex

    AI
  25. © NTT Communications Corporation All Rights Reserved. 25 構築で使⽤したGCPのサービス Pub/Sub

    柔軟で信頼性の高いリアルタイムのメッセージングサービス イベントドリブンシステムとストリーミング分析のためにメッ セージングと取り込みが可能 Dataflow フルマネージドのデータ処理サービス サーバーレスかつ高速で費用対効果の高い、統合されたストリ ームデータ処理とバッチデータ処理が可能 Cloud Scheduler Cloud Scheduler は、 cron ジョブ スケジューラ バッチ処理、ビッグデータ ジョブ、クラウド インフラストラ クチャ オペレーションなど、実質的にほぼすべてのジョブを スケジューリング可能 BigQuery サーバーレスでスケーラビリティと費用対効果が高いデータ ウェアハウス Vertex AI Vertex AIはGoogle Cloudの機械学習関連のサービスを統合し たプラットフォーム サーバレスでのMLの学習〜デプロイまで可能 Data Portal データを視覚化してメンバー間で共有することができるダッシ ュボードサービス SpreadSheetやBigQueryなど様々なデータソースを可視化可能
  26. © NTT Communications Corporation All Rights Reserved. 26 アーキテクチャ Testbed

    Flow Collector Report & Share Business Analysis Inference Pipeline Vertex AI Pipeline Data Warehouse BigQuery Data Streaming Cloud Pub/Sub ETL Cloud Dataflow Predicted Network Traffic BigQuery ML Model Cloud Storage Data Portal Vertex AI User Train Pipeline Vertex AI Pipeline Cron Cloud Scheduler Pipeline Creator Cloud Run Experiment Vertex AI Workbench CI/CD Cloud Build 全ての構成がサーバーレス
  27. © NTT Communications Corporation All Rights Reserved. 27 実現したこと ❶

    継続的なデータ収集基盤 ❷ CI/CD ❸ モデルの学習と推論の 定期実⾏ ❹ Vertex Pipelinesを ⽤いたモデルの構築 ❺ 結果の可視化 ❶ ❷ ❸ ❹ ❺
  28. © NTT Communications Corporation All Rights Reserved. 28 Testbedのリアルタイムトラフィック予測の 課題と解決⽅法

    1. 取得データの変化 ❶ 継続的なデータ収集基盤 1. モデルの劣化 ❷ CI/CD ❸ 定期実⾏により継続的なモデルの学習と推論 ❹ Vertex Pipelinesを⽤いたモデルの構築 1. ビジネス要件やアプリケーションの変化 ❺ 結果の可視化(BIツールであるDataPortalの利⽤)
  29. © NTT Communications Corporation All Rights Reserved. 29 データ収集基盤 Testbed

    Flow Collector Report & Share Business Analysis Inference Pipeline Vertex AI Pipeline Data Warehouse BigQuery Data Streaming Cloud Pub/Sub ETL Cloud Dataflow Predicted Network Traffic BigQuery ML Model Cloud Storage Data Portal Vertex AI User Train Pipeline Vertex AI Pipeline Cron Cloud Scheduler Pipeline Creator Cloud Run Experiment Vertex AI Workbench CI/CD Cloud Build
  30. © NTT Communications Corporation All Rights Reserved. 30 Workbentch Pub/SubとDataflowによるスケーラブルなデータパイプライン

    データ収集基盤 データ量の変化に対応するスケーラブルなデータ収集基盤の構築 Pub/Sub 柔軟で信頼性の高いリアルタイムのメッセージングサービス イベントドリブンシステムとストリーミング分析のためにメッ セージングと取り込みが可能 Dataflow フルマネージドのデータ処理サービス サーバーレスかつ高速で費用対効果の高い、統合されたストリ ームデータ処理とバッチデータ処理が可能 Data Ware House BigQuery Data Streaming Cloud Pub/Sub ETL Cloud Dataflow Flow Collector トラフィックデ ータ 実現したこと: 継続的なデータ収集が可能な状態
  31. © NTT Communications Corporation All Rights Reserved. 31 CI/CD &

    定期実⾏ Testbed Flow Collector Report & Share Business Analysis Inference Pipeline Vertex AI Pipeline Data Warehouse BigQuery Data Streaming Cloud Pub/Sub ETL Cloud Dataflow Predicted Network Traffic BigQuery ML Model Cloud Storage Data Portal Vertex AI User Train Pipeline Vertex AI Pipeline Cron Cloud Scheduler Pipeline Creator Cloud Run Experiment Vertex AI Workbench CI/CD Cloud Build CI/CD 定期実⾏
  32. © NTT Communications Corporation All Rights Reserved. 32 Workbentch CI/CDツール

    Cloud Build • Cloud Build • CircleCI • Travis CI • Code Build • GitHub Actions • Azure DevOps Pipeline • AWS CodePipeline GCPが提供するビルドツールであるCloud Buildを選択
  33. © NTT Communications Corporation All Rights Reserved. 33 Workbentch Workbentch

    実現したこと: モデルの学習と推論の定期実行 Cloud Scheduler 定期実行できると何が嬉しいのか MLのモデルは、学習データとモデルに入力されるデータの間に 特徴の差が生じるとモデルの予測精度が低くなりやすくなる どんな時に起きるか ・季節性 ・ユーザーの増減 etc… 定期実行の機能があるCloud Scheduler でモデルの劣化を防ぐ
  34. © NTT Communications Corporation All Rights Reserved. 34 Workbentch 構築したCI/CDと定期実⾏のレシピ

    Cloud Build Pipeline Genereator Cloud Build Members PC Git Push Cloud Source Repository ❶ ❷ ❹ ❶ Cloud Build の命令が含まれるyaml or json ファイルとCloud Schedulerの命令が書いてある txtファイルの作成 ❷ ❶を含むソースコードをCloud Build にpush ❸ Cloud BuildからCloud Source Repositoryに登録 ❹ モデルの学習と推論の定期実⾏ 定期実⾏ or 任意のタイミングでデプロイ可能 ※Cloud Buildに関する詳細 ❸ Cloud Scheduler ❺ Cloud Scheduler
  35. © NTT Communications Corporation All Rights Reserved. 35 Vertex AIによるモデルの構築

    Testbed Flow Collector Report & Share Business Analysis Inference Pipeline Vertex AI Pipeline Data Warehouse BigQuery Data Streaming Cloud Pub/Sub ETL Cloud Dataflow Predicted Network Traffic BigQuery ML Model Cloud Storage Data Portal Vertex AI User Train Pipeline Vertex AI Pipeline Cron Cloud Scheduler Pipeline Creator Cloud Run Experiment Vertex AI Workbench CI/CD Cloud Build モデルの構築
  36. © NTT Communications Corporation All Rights Reserved. 36 Vertex AI

    AutoML ・学習→テスト→運用の自動化 Dataset作成 ・データ登録 ・ラベル付け Workbentch ・Jupyter notebook Pipelines ・MLワークフロー そもそもVertex AIとは
  37. © NTT Communications Corporation All Rights Reserved. 37 Workbentch Workbentchでできること

    • インタラクティブにコードの 実行が可能で複数人が 新しいモデルを試す環境の提供 • 実験したモデルを パイプラインに組み込むか検討 Workbentch
  38. © NTT Communications Corporation All Rights Reserved. 38 Workbentch Workbentch

    マネージド ノートブック 強み: ⾼いカスタマイズ性 ・カスタムなDockerイメージも利⽤可能 ・Google Cloud が提供するインスタンスから GPUの選択(A100 8枚なども可能) ・シャットダウンまでの時間の設定可能 インスタンスの停⽌し忘れを防ぐ ユーザー管理 ノートブック 強み: お⼿軽感 ・環境がpreinntall されたnotebook が 利⽤可能(Pytorch、TensorFlow etc) ・GPU環境(TeslaT4 最⼤4枚) ノートブックの種類
  39. © NTT Communications Corporation All Rights Reserved. 39 © NTT

    Communications Corporation All Rights Reserved. 39 © NTT Communications Corporation All Rights Reserved. Workbentch MLにおけるパイプラインとは Pipelines • 処理を分けて実装(前処理と 学習、推論を分割するなど) • それぞれの処理(component)を 組み合わせて設計する • component同⼠はGoogle Cloud Storage を⽤いてデータの⼊出⼒を⾏ う データ 前処理 モデル デプロイ モデルの 学習 データの 推論 データの 受領 ・・・コンポーネント csv h5
  40. © NTT Communications Corporation All Rights Reserved. 40 Workbentch Workbentch

    様々なパイプライン Pipelines • Vertex Pipelines • Cloud Composer • Digdag on GKE • Kubeflow Pipelines on GKE • AI Platform • Amazon SageMaker AWS Cloud • Azure Machine Learning Pipeline Azure • TensorFlow Extended • MLflow
  41. © NTT Communications Corporation All Rights Reserved. 41 Workbentch Workbentch

    Vertex Pipelinesを選定した良いポイント Pipelines • サーバレスなMLパイプラインの構築可能 • インフラの管理が簡単になったため • Kubeflow Pipelines SDK V2の使⽤
  42. © NTT Communications Corporation All Rights Reserved. 42 Workbentch Workbentch

    Vertex Pipelinesをすすめる3つの理由 Pipelines ❶サーバレスなMLパイプラインの構築可能 サーバレスな構成では常にGPUを 起動しなくてよいため 使った分だけGPUの料⾦がかかる GPUのインスタンスを常に起動させると 約⽉21,000円(分あたり約30円)
  43. © NTT Communications Corporation All Rights Reserved. 43 Workbentch Workbentch

    Vertex Pipelinesをすすめる3つの理由 Pipelines ❷インフラの管理が簡単になったため 前⾝のAI Plattformでは... GKE上にKubernetesをデプロイしコンポーネントごとにPodとして管理していた 他にも... GCPの機能の⼀つであるため、Bigquery を利⽤したデータ基盤と親和性が⾼い インスタンスの選択をするだけで利用できインフラの管理が簡単になる
  44. © NTT Communications Corporation All Rights Reserved. 44 Workbentch Workbentch

    Vertex Pipelinesをすすめる3つの理由 Pipelines ❸Kubeflow Pipelines SDK V2を利⽤している • 前⾝のKubeflow Pipelines SDK V1は、AI Platformで利⽤していた KubernetesのPodが起動しないバグが存在していた • Kubeflow Pipelines SDK V2を利⽤すると他のパイプラインからも移⾏可能
  45. © NTT Communications Corporation All Rights Reserved. 45 Workbentch Workbentch

    構築したパイプライン例1 Pipelines クエリの⽣成 実⾏&抽出 学習の実⾏
  46. © NTT Communications Corporation All Rights Reserved. 46 Workbentch Workbentch

    構築したパイプライン例1 Pipelines クエリの⽣成 実⾏&抽出 学習の実⾏
  47. © NTT Communications Corporation All Rights Reserved. 47 Pipelines Noise2Noiseによる

    学習可能なノイズ除去 Multiinput-CNNによる 分類 クエリ⽣成&実⾏抽出 構築したパイプライン例2 真のMLOpsを⽬指すために 前処理のMLモデル化を⾏い、 ⼊⼒データに依存しない前 処理を実装
  48. © NTT Communications Corporation All Rights Reserved. 48 Workbentch 構築したパイプライン例3

    Pipelines Noise2Noiseによる 学習可能なノイズ除去 Informerの学習 クエリ⽣成&実⾏抽出 • 前述のパイプライン1とパイ プライン2では学習のモデル が異なっている • コンポーネント単位で分割さ れているので、容易に結合が 可能になる
  49. © NTT Communications Corporation All Rights Reserved. 49 構築した所感 よかった部分

    • モデルが個⼈に依存しない形で構築・管理可能 • モデルの新規追加を⾏う際に、ワークベンチ(Jupyter notebook)で実験可能 • Podの管理をしなくても良い • component単位のため、コードの再利⽤性が⾼い ⼤変だった部分 • クラウド上で実⾏しているためエラーが発⽣した際に、どこでエラーが出てい るのかわかりずらい • Kubeflow Pipelines SDK V2に学習コストを要した • ログが⾒づらい • Tensorflowは通常状態でもwarningを出すのでより⾒えない
  50. © NTT Communications Corporation All Rights Reserved. 50 結果の可視化 Testbed

    Flow Collector Report & Share Business Analysis Inference Pipeline Vertex AI Pipeline Data Warehouse BigQuery Data Streaming Cloud Pub/Sub ETL Cloud Dataflow Predicted Network Traffic BigQuery ML Model Cloud Storage Data Portal Vertex AI User Train Pipeline Vertex AI Pipeline Cron Cloud Scheduler Pipeline Creator Cloud Run Experiment Vertex AI Workbench 可視化 CI/CD Cloud Build
  51. © NTT Communications Corporation All Rights Reserved. 51 Workbentch Workbentch

    課題 Data Portal 51 解決⽅法: Googleが提供するBIツールであるDataPortalの利⽤ • GCP(BigQuery, Google Cloud Storage など)やその他Googleのサービスと接続 • GUIによる簡単な操作性 • BigQueryによる迅速なデータの表示 ビジネス要件やアプリケーションの変化 • 当初予定していなかった分析の追加 • 特定の拠点・期間中のデータ分析 • 分析するデータが多い場合は膨⼤な時間がかかる
  52. © NTT Communications Corporation All Rights Reserved. 52 Workbentch Workbentch

    実現したこと: 素早く可視化アプリケーションの構築が可能に Data Portal IPアドレスごとのフローレコードの割合 実測値と各モデルの予測値 52 VPN利⽤のフロー
  53. © NTT Communications Corporation All Rights Reserved. 53 Workbentch Workbentch

    Data Portal モデルの評価 BigQueryでモデルごとのRMSE、MAE、MSEを算出 Data Portalで可視化 53 評価条件 評価時間: 72時間 指標 : RMSE, MAE, MSE モデル : mlp, dnn, transformer, tcn, ets, ses, cnn , knn, ridge, linear regression, robets, elasticnet, tbats, ar burg
  54. © NTT Communications Corporation All Rights Reserved. 54 Workbentch Workbentch

    Data Portal 評価結果から予測するモデルの選択
  55. © NTT Communications Corporation All Rights Reserved. 55 ·ͱΊ

  56. © NTT Communications Corporation All Rights Reserved. 56 まとめ 課題

    • 取得データの変化 • ビジネス要件やアプリケーションの変化 • モデルの劣化 解決⽅法 • ⼤規模かつ柔軟なデータ集積基盤 a. Pub/Sub, Dataflow • 迅速に可視化する a. Data Potral, BigQuery • 継続的なモデルの更新 a. Vertex Workbench/Pipelines b. Cloud Scheduler c. Cloud Build
  57. © NTT Communications Corporation All Rights Reserved. 57 ࠾༻৘ใ