Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduction to argo

4,263 views

Published on

6

Kubeflow Meetup #1
https://cloudnative.connpass.com/event/100600/
#kfmeetup
https://docs.google.com/presentation/d/1Ik5mibmqjDHwPlq6BQ5XbmbfOWWnnWX2dLsDB8wFPMo/edit?usp=sharing

Published in: Engineering
  • Be the first to comment

Introduction to argo

  1. 1. Introduction to Argo Kubeflow meetup #1 @hurutoriya 2018/09/26
  2. 2. 今日のお話 ● Speaker::自分 I am a 機械学習エンジニア not SRE ● Audience::皆様 ○ 機械学習システム構築の困難性に直面した経験 ○ k8s チョットデキル
  3. 3. $ whoami ● 上田隼也 :: @hurutoriya ● 株式会社メルカリ 機械学習エンジニア ● Machine Learning Casual Talks Co-Organizer ● https://shunyaueta.com/
  4. 4. 最近の発表
  5. 5. 機械学習システム構築に立ちはだかる壁 ● 継続的再学習 (Continuous Learning) ● システムに必ずヒトが介在する (Human-in-the-loop) ● データは不変の存在ではない (Data is mutable) 引用 : Hidden Technical Debt in Machine Learning Systems (NIPS2015)
  6. 6. Kubeflow ● kubernetes 上で動く機械学習ツールキット ○ Goal: End to End の機械学習システムを提供 ● Current Ver. : 0.2 (2018.12.16 に1.0リリース予定) ○ Simple : 数々の機能を Kubeflow上で提供 ○ Portable : k8sが動く場所ならどこでも動く ○ Scalable : k8sの機能を使ってスケーラビリティも担保
  7. 7. Kubeflow overview Data Split Roll-out Serving Monitoring Logging Trainer Building a Model Model Validation Training at Scale Data ingestion Data Analysis Data Transfor- mation Data Validation Ref: Kubeflow Deep Dive – David Aronchick & Jeremy Lewi, Google (Intermediate Skill Level) TF Serving Katib TFMA TFDVT
  8. 8. Argoの守備範囲 Data Split Roll-out Serving Monitoring Logging Trainer Building a Model Model Validation Training at Scale Data ingestion Data Analysis Data Transfor- mation Data Validation Ref: Kubeflow Deep Dive – David Aronchick & Jeremy Lewi, Google (Intermediate Skill Level)
  9. 9. Argo: container-native workflows for Kubernetes ● ver. 2.2.0 (2018-08-30) ● コンテナネイティブなワークフローエンジン ○ 各ジョブはPodにより実行 ● k8sのクラスター上で実行可能 (k8s 1.9 later) ● argo-ui: ワーク風呂のダッシュボードを提供 argo/readme
  10. 10. Workflow engine on ML System ● Argo, Airflow, Digdag ● データの前処理に関係する複雑なパイプラインの乱立 ○ e.g. BigQuery→Proprocessing→Learning→Serving ○ グルーコード、設定ファイルの発生 ● タスクスケジューリング ○ 継続的にモデルを学習させる ■ e.g. 一ヶ月ごとに値段推定のモデルを更新させたい ■ 時系列データを扱うモデルには必須
  11. 11. Container as a Package ● 同一処理をデータに依存せずに使いたい ■ e.g. データは異なるが、処理は同一 画像の特徴ベクトル DeepFeature3 文章の特徴ベクトル TF-IDF, word2vec スタッキング アンサンブル データ α データ β Validation 精度監視
  12. 12. 環境依存性があるものをコンテナとして隔離 ● Case: このパッケージを使いたいけど、環境依存が強くて組み 込めない.. ○ コンテナを使うことで、環境依存性を隔離・隠蔽 ● e.g. Apache Beamの影響でPython2でのみ動くTFXを隔離実行 Go, R, Julias, Rust を使いたいなど(用法・容量は適切に)
  13. 13. Optimized Resource Allocation for workflow ● パイプラインは各段階により要求するスペックが異なる ● 各処理に必要十分なリソースを割り当てる 学習時:GPUモリモリ 推論時:CPUモリモリ (安価) 前処理 画像 or 文章 モデルの学習 推論
  14. 14. Argo: workflow ● 処理ごとにパラメータの変更可能 ● CPU, Memoryをresourcesで設定可能 ● データの共有が可能 (k8sのPVを利用) ● CI, CD 可能ですか? ● 定期実行 (開発中のArgo Eventsで実行可能) ○ k8s CronJob でも代用可能?
  15. 15. Argo: Basic Usage ● Features ○ DAG or Step based declaration of workflow ○ Artifact support ○ Step level input & outputs, ….more and more! ● argo: workflow ○ argo-ci ○ argo-cd ○ argo-events
  16. 16. Argo: Continuous Delivery ● argoproj/argo-cd: 宣言的かつGitOpsな継続的開発ツール ● v0.9.1 ● ksonnet, kustomize, helm, etc. ● Pull Requestからデプロイ
  17. 17. Argo: Continuous Delivery
  18. 18. Argo: Continuous Integration ● argoproj/argo-ci: argoが提供するCIツール ● v1.0 alpha ● 現状 Github を通したCIが提供されている ● Automatically run each push/pull request. ● Github Webhook handler
  19. 19. Argo: Events ● argoproj/argo-events:スケジューリング・イベントトリガー ● v. 0.5-beta1 ● Sensor: signals, triggers を包括する概念 ○ signals: 駆動方法 ■ Stream, Artifact, Calendar, Resource, Webhook. ○ triggers: 実行方法 ■ inline, file, url.
  20. 20. まとめ ● Container as a package ● 各モジュールをコンテナとして隔離可能 ● Resource allocation for ML Components ● Argo ○ k8sの実装なのでk8sと親和性が高い ○ ワークフローを宣言的に書ける ○ Dashboardに限界が見える? ○ まだまだ発展途上...
  21. 21. Reference ● TFX: A TensorFlow-Based Production-Scale Machine Learning Platform ● Applied Machine Learning at Facebook: A Datacenter Infrastructure Perspective ● Introducing FBLearner Flow: Facebook’s AI backbone ● Machine Learning in Uber's Data Science Platforms ● Bighead: Airbnb’s End-to-End Machine Learning Platform ● Machine Learning Platform meetup ● Argo によるコンテナネイティブなデータパイプラインのワークフロー管理

×