Slide 1

Slide 1 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 スカイマインド株式会社 本橋 和貴 konduit-serving と Spring Cloud Data Flow を⽤いたMLアプリケーション開発

Slide 2

Slide 2 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 ‣本橋 和貴 @kmotohas - スカイマインド株式会社 • Deep Learning Engineer (前職ではDL+ROS) - 素粒⼦物理学実験(LHC-ATLAS実験)出⾝ • 博⼠(理学) - 好きな本︓詳説 Deep Learning ̶ 実務者のためのアプローチ 2 ࣗݾ঺հ

Slide 3

Slide 3 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 3 ैདྷͷϓϩάϥϛϯάͱػցֶश https://www.coursera.org/learn/introduction-tensorflow

Slide 4

Slide 4 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 4 ػցֶशͷ࣌୅ ‣ ルールの記述が難しかった事象も⾃動化できる可能性がでてきた - 観測 - 実験 - 解析

Slide 5

Slide 5 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 5 ػցֶशͷϥΠϑαΠΫϧ ‣ Phase 1: 収集したデータセットで機械学習モデルを訓練 ‣ Phase 2: 訓練したモデルをシステムに統合 ‣ (Phase 3: 新たに収集したデータセットで再学習)

Slide 6

Slide 6 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 6 ػցֶशͷϥΠϑαΠΫϧ Raw Data Data Loading Data Analysis Data Preprocessing Model Design Train (CPU/GPU/ Cluster) Evaluation Deploy (Streaming/ Batch) Monitoring

Slide 7

Slide 7 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 7 1ZUIPO.-&DPTZTUFN Raw Data Data Loading Data Analysis Data Preprocessing Model Design Train (CPU/GPU/ Cluster) Evaluation Deploy (Streaming/ Batch) Monitoring

Slide 8

Slide 8 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 8 #JH%BUB&DPTZTUFN IUUQTXXXDMFBSQFBLTDPNCJHEBUBFDPTZTUFNTQBSLBOEUBCMFBV

Slide 9

Slide 9 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 9 IUUQTXXXTMJEFTIBSFOFUUFDICMPHZBIPPTQSJOHDMPVEEBUBqPXTUSFBNDUKQ Spring Cloud Data Flow とは • ス ー と ッチ に する Springア ケーシ の デ イ Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. ・ 5 Spring Cloud Data Flow Spring Cloud Stream Spring Cloud Task Spring Integration Spring Boot Spring Batch Batch Streaming deploy use use

Slide 10

Slide 10 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 10 IUUQTHJUIVCDPNTQSJOHDMPVETUSFBNBQQTUBSUFSTUFOTPSqPXUSFFNBTUFSTQSJOHDMPVETUBSUFSTUSFBNQSPDFTTPSUXJUUFSTFOUJNFOU (6*ϕʔεͰϫʔΫϑϩʔΛఆٛՄೳ

Slide 11

Slide 11 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 11 4PVSDF1SPDFTTPS4JOL

Slide 12

Slide 12 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 12 ֤ίϯϙʔωϯτ͸ϚΠΫϩαʔϏε ‣ 様々な環境下で動作 • Cloud Foundry • Kubernetes • Hadoop YARN • Apache Mesos • ローカルコンピューター Spring Cloud Data Flow とは Copyright (C) 2016 Yahoo Japan Corporation. All Rights Reserved. 用・ 9 SCDF Server REST-API Deployer SPI deploy RDBMS Data Source Data Source Web UI Shell IUUQTXXXTMJEFTIBSFOFUUFDICMPHZBIPPTQSJOHDMPVEEBUBqPXTUSFBNDUKQ 3BCCJU.2,BGLB

Slide 13

Slide 13 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 13 Ϟσϧਪ࿦ͷߏ੒ Input Data Stream Java Process Output Predictions Stream External System ML Model Input Data Stream Java Process Output Predictions Stream ML Model .PEFM4FSWJOH .PEFM&NCFEEJOH FH 3&45"1* FH 5FOTPS'MPXGSP[FONPEFM1..-0//9 ˎ1ZUIPOͰ΋Մ 'MBTL4FMEPOLPOEVJUTFSWJOHFUD ˎ1ZUIPOͰॻ͍͍ͯͨલॲཧɾޙॲཧΛ+BWBͰ࠶هड़

Slide 14

Slide 14 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 14 LPOEVJUTFSWJOH ‣ Deeplearning4j 開発者 Adam Gibson を中⼼に開発されているJavaベース のオープンソースのMLモデルデプロイツール • JavaCPP: C++で書かれたコード (CUDA/TensorFlow/NumPy/etc) の Javaラッパーを作成 • Vert.x: イベントドリブンアプリ開発フレームワーク • Deeplearning4j: JVM⽤DLフレームワーク、Keras model import ‣ Python SDK、Kubernetes統合、 Grafana/Prometheus連携モニタリング

Slide 15

Slide 15 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 15 LPOEVJUTFSWJOH1ZUIPO4%, IUUQTXXXYFOPOTUBDLDPNJOTJHIUTXIBUJTBQBDIFBSSPX pip install konduit Configuration - input/output type/name - #parallel workers - pre/post-processing - served model type ML Server - TensorFlow / Keras - DL4J - PMML / ONNX / PFA
 - Python code itself !! 4UBSU 4FSWFS Input - Json / Numpy / ND4J - Arrow (pandas/spark/…) Output - RAW / Class label / Regression - YOLO / SSD bounding box from konduit import * serving_config = ServingConfig(..) model_pipeline_step = ModelPipelineStep(..) inference_config = InferenceConfiguration(..) server = Server(config=inference_config) server.start() client = Client(..) result = client.predict(input_data)

Slide 16

Slide 16 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 16 &NCFEEFE1ZUIPOJO+BWB Konduit Java Process Embedded Python Interpreter *OGFSFODF1ZUIPO$PEF import torch input_variable = # some tensor # pre process here model = load_model() # post process here output_variable = model.predict(input_variable) … input_variable … output_variable JOQVU@WBSJBCMF PVUQVU@WBSJBCMF HTTP Client DPOpHVSF1ZUIPO1JQFMJOF4UFQ DMJFOUTFOETJOQVUEBUBUPTFSWFS TUPSFJOQVUEBUBJONFNPSZ PWFSXSJUFJUUPUIFQPJOUFSPG lJOQVU@WBSJBCMFz EPJOGFSFODF DMJFOUSFUSJFWFTPVUQVUWBSJBCMF anaconda

Slide 17

Slide 17 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 17 EFNP ‣ PyTorchで記述された顔認識コードを konduit-serving でデプロイ - https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB ‣ Spring Cloud Data Flow • “file” source でディレクトリを監視 • 画像ファイルがディレクトリに追加されたら “httpclient” processer が base64 encode さ れた画像をPOST • Pythonコード内で画像を受け取り、顔認識を⾏い、画像に写っている顔の数を返す • “log” sink でログ出⼒

Slide 18

Slide 18 text

Kazuki Motohashi - Skymind K.K. 実践者向けディープラーニング勉強会 第7回 - 23/October/2019 18 ·ͱΊ ‣ Spring Cloud Data Flow で簡単にデータ処理のフローを構築できる • 各コンポーネントは Spring Boot のマイクロサービスとして振る舞う ‣ konduit-serving は Java ベースのMLデプロイツール • 様々な形式のモデルをサポート • Pythonコードそのもの⾃体デプロイできる • “httpclient” を通じて Spring Cloud Data Flow と疎通