<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          看我如何將 AI 算法,部署到服務(wù)器上,硬核分享!

          共 5858字,需瀏覽 12分鐘

           ·

          2021-11-11 20:45

          大家好,我是 Jack。


          好朋友阿 chai 最近寫了一個深度學(xué)習(xí)部署案例,推薦給大家~


          該項(xiàng)向我們展示了通過YoMo實(shí)時傳遞數(shù)據(jù),保證低時延有序傳輸,并且對采集的數(shù)據(jù)完成Foods Detection,適用于需要在后端做模型部署的場景。江湖規(guī)矩,先放Git再來視頻。

          GitHub: https://github.com/yomorun/yomo-wasmedge-tensorflow.git

          “掃盲掃盲”

          CC:“Demo依托YoMo、WasmEdge、WebAssembly、TFLite等?!?/p>


          阿chai:“TFLite聽過?!?/p>


          CC:“數(shù)據(jù)處理應(yīng)用程序可以在遠(yuǎn)端數(shù)據(jù)中心完成?!?/p>


          阿chai:“這都是啥。。。。。?!?/p>


          扎心了,除了TFLite之外別的啥也不知道,相信很多機(jī)器學(xué)習(xí)方面的小伙伴也有同樣的感受,那阿chai先上百度谷歌一下。

          1. YoMo

          YoMo 是為邊緣計(jì)算打造的低時延流式 Serverless 開發(fā)框架,基于 QUIC Transport 協(xié)議通訊,以 Functional Reactive Programming 為編程范式,簡化構(gòu)建可靠、安全的低時延計(jì)算應(yīng)用的復(fù)雜度,挖掘5G潛力,釋放實(shí)時計(jì)算價值。

          GitHub: https://github.com/yomorun/yomo.git

          阿chai的理解:低延時、高效、適用于邊緣計(jì)算。

          2. WebAssembly

          WebAssembly (Wasm)就是運(yùn)行在 Web 平臺上的 Assembly??梢钥醋鍪?Web 平臺的 x86 硬件通用指令集,上層對接Python、Rust、C++等。使這些語言都能編譯成統(tǒng)一的格式,用于 Web 平臺運(yùn)行。可以取代部分 JavaScript 代碼執(zhí)行更高效的 CPU 計(jì)算程序,同樣可運(yùn)行在非Web環(huán)境下。

          Docs: https://www.wasm.com.cn/docs/js/

          阿chai的理解:安全、高效。

          3.WasmEdge

          WasmEdge (之前名為 SSVM) 是為邊緣計(jì)算優(yōu)化的輕量級、高性能、可擴(kuò)展的 WebAssembly (Wasm) 虛擬機(jī),可用于云原生、邊緣和去中心化的應(yīng)用。WasmEdge 是目前市場上?最快的 Wasm 虛擬機(jī)。WasmEdge 是由 CNCF (Cloud Native Computing Foundation 云原生計(jì)算基金會)托管的官方沙箱項(xiàng)目。其應(yīng)用場景包括 serverless apps, 嵌入式函數(shù)、微服務(wù)、智能合約和 IoT 設(shè)備。

          GitHub: https://github.com/WasmEdge/WasmEdge.git

          阿chai的理解:高效輕量(比Docker好)、擴(kuò)展性強(qiáng)、沙盒概念。

          “化學(xué)反應(yīng)”

          阿chai之前給大家介紹過很多邊緣設(shè)備做算法推理的案例,可參考Tengine+VIM3。嵌入式的算力畢竟有限,只能依托服務(wù)端和邊緣設(shè)備協(xié)同做數(shù)據(jù)分析,但是低延時的數(shù)據(jù)傳輸是新的“大山”。

          YoMo本就是低時延流式 Serverless 開發(fā)框架,實(shí)時數(shù)據(jù)可在遠(yuǎn)端數(shù)據(jù)中心處理,WasmEdge 適用serverless apps場景,在 Wasm沙盒中中運(yùn)行數(shù)據(jù)處理功能,以實(shí)現(xiàn)隔離、安全和熱部署。



          總結(jié)一下這套“組合拳”就是:

          • 低延遲:YoMo 高效網(wǎng)絡(luò)服務(wù),流數(shù)據(jù)處理應(yīng)用可在遠(yuǎn)端數(shù)據(jù)中心完成。
          • 安全:WasmEdge 在 WebAssembly 沙箱中運(yùn)行數(shù)據(jù)處理功能,以實(shí)現(xiàn)隔離、安全和熱部署。
          • 高效:與流行的容器(如 Docker)相比,WasmEdge 的啟動速度可以提高 100 倍,并且占用空間更小。

          nice呀,看來很多模型可以放心的在服務(wù)端跑了。

          看一下模型

          模型使用的是TFHub中的food_v1,經(jīng)典的MobileNet V1模型,可對2000多種食物進(jìn)行分類。其部分網(wǎng)絡(luò)結(jié)構(gòu)如下所示:

          官方在移動端的測試數(shù)據(jù)如下:

          我們在TensorFlow中可以直接使用該模型:

          #?TF1
          import?tensorflow.compat.v1?as?tf
          import?tensorflow_hub?as?hub

          m?=?hub.Module('https://tfhub.dev/google/aiy/vision/classifier/food_V1/1')
          ...

          #?TF2?
          import?tensorflow.compat.v2?as?tf
          import?tensorflow_hub?as?hub

          m?=?hub.KerasLayer('https://tfhub.dev/google/aiy/vision/classifier/food_V1/1')
          ...

          Demo跑起來

          項(xiàng)目需準(zhǔn)備Linux設(shè)備,配置之前我們需要搭建Go、Rust、TensorFlow的環(huán)境。

          a. 基礎(chǔ)準(zhǔn)備

          測試視頻路徑:https://github.com/yomorun/yomo-wasmedge-tensorflow/releases/download/v0.1.0/hot-dog.mp4

          模型下載地址:https://storage.googleapis.com/tfhub-lite-models/google/lite-model/aiy/vision/classifier/food_V1/1.tflite

          (1)安裝YoMo
          $?go?install?github.com/yomorun/cli/yomo@latest

          YoMo的更多信息請移步官方GitHub。

          (2)安裝相關(guān)Tools
          $?sudo?apt-get?update
          $?sudo?apt-get?install?-y?ffmpeg?libjpeg-dev?libpng-dev
          (3)WasmEdge安裝

          此處為Linux命令,項(xiàng)目僅用于Linux設(shè)備。

          $?wget?https://github.com/WasmEdge/WasmEdge/releases/download/0.8.0/WasmEdge-0.8.0-manylinux2014_x86_64.tar.gz
          $?tar?-xzf?WasmEdge-0.8.0-manylinux2014_x86_64.tar.gz
          $?sudo?cp?WasmEdge-0.8.0-Linux/include/wasmedge.h?/usr/local/include
          $?sudo?cp?WasmEdge-0.8.0-Linux/lib64/libwasmedge_c.so?/usr/local/lib
          $?sudo?ldconfig

          b. WasmEdge-tensorflow

          (1)安裝 tensorflow 依賴項(xiàng)
          $?wget?https://github.com/second-state/WasmEdge-tensorflow-deps/releases/download/0.8.0/WasmEdge-tensorflow-deps-TF-0.8.0-manylinux2014_x86_64.tar.gz
          $?wget?https://github.com/second-state/WasmEdge-tensorflow-deps/releases/download/0.8.0/WasmEdge-tensorflow-deps-TFLite-0.8.0-manylinux2014_x86_64.tar.gz
          $?sudo?tar?-C?/usr/local/lib?-xzf?WasmEdge-tensorflow-deps-TF-0.8.0-manylinux2014_x86_64.tar.gz
          $?sudo?tar?-C?/usr/local/lib?-xzf?WasmEdge-tensorflow-deps-TFLite-0.8.0-manylinux2014_x86_64.tar.gz
          $?sudo?ln?-sf?libtensorflow.so.2.4.0?/usr/local/lib/libtensorflow.so.2
          $?sudo?ln?-sf?libtensorflow.so.2?/usr/local/lib/libtensorflow.so
          $?sudo?ln?-sf?libtensorflow_framework.so.2.4.0?/usr/local/lib/libtensorflow_framework.so.2
          $?sudo?ln?-sf?libtensorflow_framework.so.2?/usr/local/lib/libtensorflow_framework.so
          $?sudo?ldconfig
          (2)安裝 WasmEdge-tensorflow
          $?wget?https://github.com/second-state/WasmEdge-tensorflow/releases/download/0.8.0/WasmEdge-tensorflow-0.8.0-manylinux2014_x86_64.tar.gz
          $?wget?https://github.com/second-state/WasmEdge-tensorflow/releases/download/0.8.0/WasmEdge-tensorflowlite-0.8.0-manylinux2014_x86_64.tar.gz
          $?sudo?tar?-C?/usr/local/?-xzf?WasmEdge-tensorflow-0.8.0-manylinux2014_x86_64.tar.gz
          $?sudo?tar?-C?/usr/local/-xzf?WasmEdge-tensorflowlite-0.8.0-manylinux2014_x86_64.tar.gz
          $?sudo?ldconfig
          (3)安裝 WasmEdge-image:
          $?wget?https://github.com/second-state/WasmEdge-image/releases/download/0.8.0/WasmEdge-image-0.8.0-manylinux2014_x86_64.tar.gz
          $?sudo?tar?-C?/usr/local/?-xzf?WasmEdge-image-0.8.0-manylinux2014_x86_64.tar.gz
          $?sudo?ldconfig

          如果安裝有任何問題,請參考官方文檔。

          c. 運(yùn)行Demo

          (1) Streaming Serverless
          $?cd?yomo-wasmedge-tensorflow/flow
          $?go?get?-u?github.com/second-state/WasmEdge-go/wasmedge

          模型下載至rust_mobilenet_foods/src:

          $?wget?'?https://storage.googleapis.com/tfhub-lite-models/google/lite-model/aiy/vision/classifier/food_V1/1.tflite?'?-O?./rust_mobilenet_food/src/lite-model_aiy_vision_classifier_food_V1_1.tflite

          安裝rustc and cargo ,并設(shè)置Rust版本為1.50.0:

          $?curl?--proto?'=https'?--tlsv1.2?-sSf?https://sh.rustup.rs?|?sh
          $?export?PATH=$PATH:$HOME/.cargo/bin
          $?rustup?default?1.50.0

          安裝rustwasmc:

          $?curl?https://raw.githubusercontent.com/second-state/rustwasmc/master/installer/init.sh?-sSf?|?sh
          $?cd?rust_mobilenet_food
          $?rustwasmc?build

          WASM文件在pkg/rust_mobilenet_food_lib_bg.wasm,復(fù)制該文件到flow:

          $?cp?pkg/rust_mobilenet_food_lib_bg.wasm?yomo-wasmedge-tensorflow/flow
          (2)啟動服務(wù)

          啟動YoMo Orchestrator Server:

          $?yomo?serve?-c?./zipper/workflow.yaml

          運(yùn)行Streaming Serverless:

          $?cd?flow
          $?go?run?--tags?"tensorflow?image"?app.go
          (3) 演示
          $?wget?-P?source??'?https://github.com/yomorun/yomo-wasmedge-tensorflow/releases/download/v0.1.0/hot-dog.mp4?'?
          $?go?run?./source/main.go?./source/熱狗.mp4

          演示結(jié)果如下圖所示,image傳入和算法執(zhí)行的時間在左側(cè)。


          參考鏈接:

          https://github.com/yomorun/yomo

          https://github.com/yomorun/yomo-wasmedge-tensorflow

          https://gitee.com/mirrors/wasmedge/

          https://zhuanlan.zhihu.com/p/377563956

          https://tfhub.dev/google/lite-model/aiy/vision/classifier/food_V1/1

          ·················END·················

          推薦閱讀

          ?? ?我的十八般武器,這波穩(wěn)了?? ?LSP,強(qiáng)得離譜????保姆級神器,再也不用擔(dān)心搞崩了

          瀏覽 232
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  青青射里面 | 国产精品视频福利 | 国产精品 码一本A片 | 澳门成人无码视频免费播放 | 人人搞人人干 |