Submit Search
Upload
Clipper@datacon.2019.tw
•
1 like
•
109 views
Wei-Yu Chen
Follow
Apache Clipper Starter knowhow.
Read less
Read more
Software
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 31
Download now
Download to read offline
Recommended
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
Will Huang
Visual Studio 2017 新功能探索 (Study4.TW)
Visual Studio 2017 新功能探索 (Study4.TW)
Will Huang
Nuget介紹- 如何使用和建立自己的package
Nuget介紹- 如何使用和建立自己的package
Alan Tsai
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
Will Huang
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索
Will Huang
KSDG-ASP.NET MVC 5 Overview (偽三國誌)
KSDG-ASP.NET MVC 5 Overview (偽三國誌)
Bruce Chen
IKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 Java
建興 王
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
Will Huang
Recommended
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
TypeScript 開發實戰:開發即時互動的 html5 websocket 聊天室應用程式
Will Huang
Visual Studio 2017 新功能探索 (Study4.TW)
Visual Studio 2017 新功能探索 (Study4.TW)
Will Huang
Nuget介紹- 如何使用和建立自己的package
Nuget介紹- 如何使用和建立自己的package
Alan Tsai
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
快快樂樂學會 Angular 2 網站開發框架 (Modern Web 2016)
Will Huang
ASP.NET MVC 6 新功能探索
ASP.NET MVC 6 新功能探索
Will Huang
KSDG-ASP.NET MVC 5 Overview (偽三國誌)
KSDG-ASP.NET MVC 5 Overview (偽三國誌)
Bruce Chen
IKVM.NET 深入敵營的 Java
IKVM.NET 深入敵營的 Java
建興 王
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
JavaScript 物件導向觀念入門 v.s. TypeScript 開發實戰 (微軟實戰課程日)
Will Huang
如何在實務上使用TDD來開發 twmvc#12
如何在實務上使用TDD來開發 twmvc#12
twMVC
Workflow Overview
Workflow Overview
Kevin Cao
保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格
保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格
Will Huang
ASP.NET 5 的創新與變革
ASP.NET 5 的創新與變革
Will Huang
Entity framework + Linq 介紹
Entity framework + Linq 介紹
Alan Tsai
Android开发基础
Android开发基础
ykdsg
Angular.js & ASP.NET in Study4
Angular.js & ASP.NET in Study4
Kyle Shen
TypeScript-twmvc#16
TypeScript-twmvc#16
twMVC
除錯、測試與效能
除錯、測試與效能
Justin Lin
Spring boot 简介
Spring boot 简介
宇帆 盛
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具
taobao.com
動手打造 application framework-twMVC#15
動手打造 application framework-twMVC#15
twMVC
Angular js twmvc#17
Angular js twmvc#17
twMVC
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
Hsu Ping Feng
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
Max Lai
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略
Will Huang
Web development with zend framework
Web development with zend framework
thinkinlamp
Java 1(Java概述)
Java 1(Java概述)
xzdbd
專案分層架構 twMVC#18
專案分層架構 twMVC#18
twMVC
介紹前端 Web 技術在跨平台開發上的應用
介紹前端 Web 技術在跨平台開發上的應用
Jerry Lin
Asp.net mvc網站的從無到有
Asp.net mvc網站的從無到有
Wade Huang
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
More Related Content
What's hot
如何在實務上使用TDD來開發 twmvc#12
如何在實務上使用TDD來開發 twmvc#12
twMVC
Workflow Overview
Workflow Overview
Kevin Cao
保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格
保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格
Will Huang
ASP.NET 5 的創新與變革
ASP.NET 5 的創新與變革
Will Huang
Entity framework + Linq 介紹
Entity framework + Linq 介紹
Alan Tsai
Android开发基础
Android开发基础
ykdsg
Angular.js & ASP.NET in Study4
Angular.js & ASP.NET in Study4
Kyle Shen
TypeScript-twmvc#16
TypeScript-twmvc#16
twMVC
除錯、測試與效能
除錯、測試與效能
Justin Lin
Spring boot 简介
Spring boot 简介
宇帆 盛
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具
taobao.com
動手打造 application framework-twMVC#15
動手打造 application framework-twMVC#15
twMVC
Angular js twmvc#17
Angular js twmvc#17
twMVC
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
Hsu Ping Feng
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
Max Lai
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略
Will Huang
Web development with zend framework
Web development with zend framework
thinkinlamp
Java 1(Java概述)
Java 1(Java概述)
xzdbd
專案分層架構 twMVC#18
專案分層架構 twMVC#18
twMVC
介紹前端 Web 技術在跨平台開發上的應用
介紹前端 Web 技術在跨平台開發上的應用
Jerry Lin
What's hot
(20)
如何在實務上使用TDD來開發 twmvc#12
如何在實務上使用TDD來開發 twmvc#12
Workflow Overview
Workflow Overview
保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格
保哥線上講堂:利用 StyleCop 撰寫一致的 C# 程式碼風格
ASP.NET 5 的創新與變革
ASP.NET 5 的創新與變革
Entity framework + Linq 介紹
Entity framework + Linq 介紹
Android开发基础
Android开发基础
Angular.js & ASP.NET in Study4
Angular.js & ASP.NET in Study4
TypeScript-twmvc#16
TypeScript-twmvc#16
除錯、測試與效能
除錯、測試與效能
Spring boot 简介
Spring boot 简介
钱宝坤:多浏览器集成的JavaScript单元测试工具
钱宝坤:多浏览器集成的JavaScript单元测试工具
動手打造 application framework-twMVC#15
動手打造 application framework-twMVC#15
Angular js twmvc#17
Angular js twmvc#17
使用Javascript及HTML5打造協同運作系統
使用Javascript及HTML5打造協同運作系統
使用 Pytest 進行單元測試 (PyCon TW 2021)
使用 Pytest 進行單元測試 (PyCon TW 2021)
DEV305 - ASP.NET 5 開發攻略
DEV305 - ASP.NET 5 開發攻略
Web development with zend framework
Web development with zend framework
Java 1(Java概述)
Java 1(Java概述)
專案分層架構 twMVC#18
專案分層架構 twMVC#18
介紹前端 Web 技術在跨平台開發上的應用
介紹前端 Web 技術在跨平台開發上的應用
Similar to Clipper@datacon.2019.tw
Asp.net mvc網站的從無到有
Asp.net mvc網站的從無到有
Wade Huang
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Will Huang
Foundation of software development 2
Foundation of software development 2
netdbncku
谈谈模块化
谈谈模块化
衡锋 阳
Foundation of software development 1
Foundation of software development 1
netdbncku
Continuous integration
Continuous integration
netdbncku
大话Php之性能
大话Php之性能
liqiang xu
Kissy design
Kissy design
yiming he
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
Cevin Cheung
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
twMVC
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC
自动化运维管理
自动化运维管理
frankwsj
Se2009 ch8
Se2009 ch8
浒 刘
软件工程 第八章
软件工程 第八章
浒 刘
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰
Paul Chao
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
Paul Chao
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
Paul Chao
PHPUnit slide formal
PHPUnit slide formal
jameslabs
Wxpython In Action
Wxpython In Action
智锋 范
开源应用日志收集系统
开源应用日志收集系统
klandor
Similar to Clipper@datacon.2019.tw
(20)
Asp.net mvc網站的從無到有
Asp.net mvc網站的從無到有
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
Foundation of software development 2
Foundation of software development 2
谈谈模块化
谈谈模块化
Foundation of software development 1
Foundation of software development 1
Continuous integration
Continuous integration
大话Php之性能
大话Php之性能
Kissy design
Kissy design
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
Mvc架构在discuz!插件开发的应用 wps create_msoffice_check
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
自动化运维管理
自动化运维管理
Se2009 ch8
Se2009 ch8
软件工程 第八章
软件工程 第八章
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
PHPUnit slide formal
PHPUnit slide formal
Wxpython In Action
Wxpython In Action
开源应用日志收集系统
开源应用日志收集系统
More from Wei-Yu Chen
大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術
Wei-Yu Chen
加速開發! 在Windows開發hadoop程式,直接運行 map/reduce
加速開發! 在Windows開發hadoop程式,直接運行 map/reduce
Wei-Yu Chen
Hadoop sqoop
Hadoop sqoop
Wei-Yu Chen
Hadoop pig
Hadoop pig
Wei-Yu Chen
Hadoop hive
Hadoop hive
Wei-Yu Chen
Hadoop 2.0 之古往今來
Hadoop 2.0 之古往今來
Wei-Yu Chen
Hadoop ecosystem - hadoop 生態系
Hadoop ecosystem - hadoop 生態系
Wei-Yu Chen
Hadoop 0.20 程式設計
Hadoop 0.20 程式設計
Wei-Yu Chen
Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計
Wei-Yu Chen
Cloudslam09:Building a Cloud Computing Analysis System for Intrusion Detection
Cloudslam09:Building a Cloud Computing Analysis System for Intrusion Detection
Wei-Yu Chen
More from Wei-Yu Chen
(10)
大資料趨勢介紹與相關使用技術
大資料趨勢介紹與相關使用技術
加速開發! 在Windows開發hadoop程式,直接運行 map/reduce
加速開發! 在Windows開發hadoop程式,直接運行 map/reduce
Hadoop sqoop
Hadoop sqoop
Hadoop pig
Hadoop pig
Hadoop hive
Hadoop hive
Hadoop 2.0 之古往今來
Hadoop 2.0 之古往今來
Hadoop ecosystem - hadoop 生態系
Hadoop ecosystem - hadoop 生態系
Hadoop 0.20 程式設計
Hadoop 0.20 程式設計
Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計
Cloudslam09:Building a Cloud Computing Analysis System for Intrusion Detection
Cloudslam09:Building a Cloud Computing Analysis System for Intrusion Detection
Clipper@datacon.2019.tw
1.
使用clipper打造低延遲的 預測系統 speaker : 陳威宇
weiyu chen NCHC TW https://ppt.cc/fFpcHx 投影片位置
2.
微服務架構 優點: * 每個服務簡單 * 每個服務可獨立 開發 *
架構可鬆散耦合 * 可透過不同程式 語言實作 缺點: * 維運成本高 * DevOps !! * 程式碼重複 * 分散式系統的複雜 * 測試代價高 定義 : https://zh.wikipedia.org/wiki/%E5%BE%AE%E6%9C%8D%E5%8B%99 優缺點:https://kknews.cc/zh-tw/tech/oglv55m.html 架構圖:https://docs.microsoft.com/en-us/azure/architecture/guide/architecture-styles/microservices 微服務 (Microservices) 是一種軟體架構風格,它是以專注於單一責任與功能 的小型功能區段 (Small Building Blocks) 為基礎,利用模組化的方式組合出複 雜的大型應用程式,各功能區段使用與語言無關 (Language-Independent/Language agnostic) 的 API 集相互通訊。
3.
心中有個夢:擁抱微服務的優點,降低微服 務的門檻 優點: * 每個服務簡單 * 每個服務可獨立開發 *
架構可鬆散耦合 * 可透過不同程式語言 實作 缺點: * 維運成本高 * DevOps !! * 程式碼重複 * 分散式系統的複雜 * 測試代價高 Clipper : A Low-Latency Online Prediction Serving System
4.
Agenda ● 介紹 clipper ○
是什麼 ○ 使用者 ○ 特色 ● Demo ○ 環境介紹 ○ 案例 ● 如何快速使用 ○ 老司機的經驗談 ○ 常見問題 5分鐘-> out 陳威宇 WeiYu Chen 國家高速網路與計算中心 副研究員 勞工 / 學生 / 爸爸 / 自由軟體 / 系統維護 https://github.com/waue0920 waue0920 @ gmail.com
5.
Clipper : A
Low-Latency Online Prediction Serving System Clipper : 兼顧低延遲與高效能且高彈性的微服務架構 • 簡化模型部署 • // 若善用Caching、Batching機制能更增加效率 • // 通過智慧選擇和合併模型來改善預測的準確率 • Clipper支援以下幾種模型: • 純Python函數 / PyShark / PyTorch / Tensorflow / MXnet
6.
Offline Scoring Online Scoring
Prediction-Serving for interactive applications Timescale: ~10s of milliseconds +
7.
作者: RISE Lab https://rise.cs.berkeley.edu/
8.
誰會喜歡 Clipper ❖可以用REST API
與machine learning model 界接 ❖簡化model的佈署 ❖透過 clipper提供的batching, caching機 制提升效能與減少 latency ❖藉由整合與重組演算法能提升正確率 Product team Data Scientists Infra-Team User
9.
Clipper Decouples Applications
and Models
10.
Clipper Software Architecture
11.
Clipper Architecture
12.
Clipper w/ Spark
Integration Mode
13.
benchmark 1 :clipper
與原生 tensorFlow 比 較
14.
Benchmark 2 :
使用Batching 技術
15.
Demo Server (MicroService) TWCC VM from:
愛情釀的酒 - 林志炫版 前輩 == Never LiveDemo ============== Client 現場筆電 ● doc http://clipper.ai/ ● project https://github.com/ucbrise/clipper ● examples https://github.com/ucbrise/clipper/tree/develop/examples ● my github https://github.com/waue0920/clipper_study ● sample data https://scidm.nchc.org.tw/dataset/datacon2019clipper ● docker hub https://cloud.docker.com/repository/docker/waue0920/face_detect _cv2
16.
資料來源:資料市集 https://scidm.nchc.org.tw/dataset/da tacon2019clipper * 測試圖集 * 訓練圖集
17.
運算平台:TWCC ❖ 48 cores
+ 320GB memory 100GB HDD 1.5 % 10G 0 400 KB/s 10 % 13G
18.
老司機分享篇 ● 快速上手 ● 避免走冤枉路 ●
...沒別的了 我只是小司機 https://dailyview.tw/popular/detail/3478
19.
1. 啟動 clipper
cluster 並聯上 clipper manager clipper_conn.start_clipper() 同時會啟動五個 docker ● front_end exporter : no port ● query_frontend : 1337 / 7000 ● management_frontend : 1338 ● radis : 6379 ● prometheus : 9090
20.
2 載入model於container, 註冊app,
連結 • python_deployer.deploy_python_closure( clipper_conn, name, version=2, input_type="bytes", func=image_size, registry="waue0920", pkgs_to_install=['pillow'] ) • clipper_conn.register_application( name="image-example", input_type="bytes", default_output="-1.0", slo_micros=100000 ) • clipper_conn.link_model_to_app( app_name="image-example", model_name="image-example“ )
21.
2 載入model於container, 註冊app,
連結 in one function ❖ python_deployer.create_endpoint( clipper_conn=clipper_conn, name="image-example", input_type="bytes", func=image_size, pkgs_to_install=['pillow'] ) • python_deployer.deploy_python_closure( clipper_conn, name, version=2, input_type="bytes", func=image_size, registry="waue0920", pkgs_to_install=['pillow'] ) • clipper_conn.register_application( name="image-example", input_type="bytes", default_output="-1.0", slo_micros=100000 ) • clipper_conn.link_model_to_app( app_name="image-example", model_name="image-example“ )
22.
3. 分手的藝術 撤銷註冊 與
結束服務大不同 撤銷app & model 結束 clipper cluster ● clipper_conn.unlink_model_from_app( model_name=model_name, app_name=app_name ) ● clipper_conn.stop_models( model_name ) ● clipper_conn.delete_application( app_name ) ● clipper_conn.stop_all()
23.
4. get more
information to debug
24.
5. clipper 中的單元測試 ●
clipper 較難run time debug 因為error message 會被系統 吃掉。問題可能出在: ○ container : base image 裡沒有包含到 predict 用的 library ○ predict function : 有error message 但用restful API 展現不出來 ● 建議解法: 1. predict 的內容 應該先獨立測試,觀察結果如預期 2. 修改成predict function 結構,再進行測試 3. 註冊成微服務後 run time 測試非預期,用docker ps & docker log 觀察是否 container instance 起不起來 a. 若是因為 container 問題,如container 內沒裝所需要用的 library https://www.flickr.com/photos/xv erges/5202428477 MR Unit Test 1. Setup 2. Exercise 3. Verify 4. Tear down
25.
6. 建立 model
能運行的container import clipper_admin.deployers.keras clipper_admin.deployers.keras.deploy_keras _model( clipper_conn, … func=predict, batch_size=1, base_image="face_detect_cv2", pkgs_to_install=['pillow'] ) ● 先確定是container 出錯: ○ docker log 可以看到錯誤訊息 ○ 或用 docker exec -it <id> /bin/bash 進到instance 裡 用 python跑 predict function 那段 ● 在 container instance 裡裝好 環境套件 ○ 如 用到 opencv ,無法使用pip 安裝,只能用 apt install ● docker commit ○ docker commit <id> <name> ● 程式段,指定base_image
26.
常見問題 15分鐘-> out ●
若遇到 PyYAML 版本太舊又無法移除的錯誤導致無法安裝 ● clipper Manager run 不起來 ● clipper Manager 啟動錯誤,已經存在 ○ Error starting Clipper: Cluster default-cluster cannot be started because it already exists. ● container 無法載入 hub.docker 的 registry
27.
若遇到pip 版本太舊又無法移除的錯誤導致無法安裝 clipper 安裝過程中遇到某個python套件錯誤 (A)
移除並重新安裝: (ex: PyYAML) (B) 指定版本 (ex: cloudpickle ) # mv /opt/anaconda3/lib/python3.6/site-packages/yaml ./ # mv /opt/anaconda3/lib/python3.6/site-packages/PyYAML-3.12-py3.6.egg-info ./ # pip install PyYAML # pip install -U cloudpickle==0.5.3
28.
clipper Manager run
不起來 ● 檢查環境是否有裝 docker , k8s ● 確認目前使用者的權限是否能執行 docker & k8s ○ simplest way : by root # yum install docker kubelet kubeadm kubectl kubernetes-cni # systemctl enable docker # systemctl start docker # systemctl enable kubelet # systemctl start kubelet
29.
clipper Manager 啟動錯誤,已經存在 ●
使用 start_clipper() 會有重複存在的問題 ○ clipper_conn.start_clipper() ● 建議使用以下取代 from clipper_admin import ClipperException try: clipper_conn.start_clipper() except ClipperException as e: clipper_conn.connect() except Exception as e: print(e)
30.
container 無法載入 hub.docker
的 registry 1. ssh到該台機器,執行 docker login 2. deploy 的程式碼段,加入 registry & version 資訊 python_deployer.deploy_python_closure(clipper_conn, name="waue-sum-model", version=2, input_type="doubles", func=feature_sum, registry="waue0920" )
Download now