Paddle Inference推理部署


Paddle Inference推理部署

飛槳(PaddlePaddle)是集深度學習核心框架、工具組件和服務平台為一體的技術先進、功能完備的開源深度學習平台,已被中國企業廣泛使用,深度契合企業應用需求,擁有活躍的開發者社區生態。提供豐富的官方支持模型集合,並推出全類型的高性能部署和集成方案供開發者使用。

技術優勢

  • 開發便捷的深度學習框架

飛槳深度學習框架基於編程一致的深度學習計算抽象以及對應的前后端設計,擁有易學易用的前端編程界面和統一高效的內部核心架構,對普通開發者而言更容易上手並具備領先的訓練性能。飛槳自然完備兼容命令式和聲明式兩種編程范式,並可以一行命令實現動靜轉換,兼顧靈活開發、高效訓練和便捷部署三大特點。此外,飛槳深度學習框架還提供了領先的深度學習自動化技術,網絡結構自動設計的模型效果可以媲美人類專家設計的模型效果。

  • 超大規模深度學習模型訓練技術

飛槳突破了超大規模深度學習模型訓練技術,領先其它框架實現了千億特征、萬億參數、數百節點並行訓練的能力,解決了超大規模深度學習模型的在線學習和部署難題,實現了超萬億規模參數模型的實時更新。此外,飛槳還覆蓋支持包括模型並行、流水線並行在內的最廣泛並行模式和加速策略,引領了大規模分布式訓練技術的發展趨勢。

  • 多端多平台部署的高性能推理引擎

飛槳對推理部署提供全方位支持,可以將模型便捷地部署到雲端服務器、移動端以及邊緣端等不同平台設備上,並擁有全面領先的推理速度,同時兼容其它開源框架訓練的模型。飛槳推理引擎支持廣泛的AI芯片,特別是對國產硬件做到了最全面的適配。

  • 產業級開源模型庫

飛槳建設了大規模的官方模型庫,算法總數達到140多個,包含經過產業實踐長期打磨的主流模型以及在國際競賽中的奪冠模型;同時提供面向語義理解、圖像分類、目標檢測、圖像分割、語音合成等場景的多個端到端開發套件,滿足企業低成本開發和快速集成的需求。

開發套件

ERNIE

飛槳語義理解套件, 基於持續學習語義理解預訓練框架,使用多任務學習增量式構建預訓練任務,支持各類訓練任務的Fine-tuning,保證極速推理的Fast-Inference API,兼具靈活部署的ERNIE Service和具備輕量方案的ERNIE Tiny系列工具集。

PaddleClas

飛槳圖像分類套件,目的是為工業界和學術界提供便捷易用的圖像分類任務預訓練模型和工具集,打通模型開發、訓練、壓縮、部署全流程,輔助其它高層視覺任務組網並提升模型效果,助力開發者訓練更好的圖像分類模型和應用落地。

PaddleSeg

飛槳圖像分割套件PaddleSeg覆蓋了U-Net、DeepLabv3+、ICNet、PSPNet和HRNet等主流的分割模型。通過模塊化的設計,以配置化方式驅動模型組合,幫助開發者更便捷地完成從訓練到部署的全流程圖像分割應用。

PaddleDetection

飛槳目標檢測開發套件,旨在幫助開發者更快更好地完成檢測模型的訓練、精度速度優化到部署全流程。PaddleDetection以模塊化的設計實現了多種主流目標檢測算法,並且提供了豐富的數據增強、網絡組件、損失函數等模塊,集成了模型壓縮和跨平台高性能部署能力。目前基於PaddleDetection已經完成落地的項目涉及工業質檢、遙感圖像檢測、無人巡檢等多個領域。

PaddleOCR

飛槳文字識別套件,旨在打造一套豐富、領先、實用的文字檢測、識別模型/工具庫,開源了超輕量級中文OCR模型和通用中文OCR模型,提供了數十種文本檢測、識別模型訓練方法,助力使用者訓練出更好的模型,並應用落地。

ElasticCTR

飛槳彈性計算推薦套件,可以實現分布式訓練CTR預估任務和基於Paddle Serving的在線個性化推薦服務。Paddle Serving服務化部署框架具有良好的易用性、靈活性和高性能,可以提供端到端的CTR訓練和部署解決方案。ElasticCTR具備產業實踐基礎、彈性調度能力、高性能和工業級部署等特點。

PLSC

飛槳海量類別分類套件,為用戶提供了大規模分類任務從訓練到部署的全流程解決方案。提供簡潔易用的高層API,通過數行代碼即可實現千萬類別分類神經網絡的訓練,並提供快速部署模型的能力。

Parakeet

飛槳語音合成套件,提供了靈活、高效、先進的文本到語音合成工具,幫助開發者更便捷高效地完成語音合成模型的開發和應用。

 Paddle Inference 是飛槳的原生推理庫, 作用於服務器端和雲端,提供高性能的推理能力。

由於能力直接基於飛槳的訓練算子,因此Paddle Inference 可以通用支持飛槳訓練出的所有模型。

Paddle Inference 功能特性豐富,性能優異,針對不同平台不同的應用場景進行了深度的適配優化,做到高吞吐、低時延,保證了飛槳模型在服務器端即訓即用,快速部署。

與主框架model.predict區別

飛槳推理產品paddle inference和主框架的Model.predict均可實現推理預測,Paddle Inference 是飛槳的原生推理庫, 作用於服務器端和雲端,提供高性能的推理能力,主框架的Model 對象是一個具備訓練、測試、推理的神經網絡。相比於Model.predict,inference可使用MKLDNN、CUDNN、TensorRT進行預測加速,同時支持用 X2Paddle 工具從第三方框架(TensorFlow、Pytorh 、 Caffe 等)產出的模型,可聯動PaddleSlim,支持加載量化、裁剪和蒸餾后的模型部署。Model.predict適用於訓練好的模型直接進行預測,paddle inference適用於對推理性能、通用性有要求的用戶,針對不同平台不同的應用場景進行了深度的適配優化,保證模型在服務器端即訓即用,快速部署。

預測流程圖

 

 高性能實現

內存/顯存復用提升服務吞吐量

在推理初始化階段,對模型中的OP輸出Tensor 進行依賴分析,將兩兩互不依賴的Tensor在內存/顯存空間上進行復用,進而增大計算並行量,提升服務吞吐量。

細粒度OP橫向縱向融合減少計算量

在推理初始化階段,按照已有的融合模式將模型中的多個OP融合成一個OP,減少了模型的計算量的同時,也減少了 Kernel Launch的次數,從而能提升推理性能。目前Paddle Inference支持的融合模式多達幾十個。

內置高性能的CPU/GPU Kernel

內置同Intel、Nvidia共同打造的高性能kernel,保證了模型推理高性能的執行。

多功能集成

集成TensorRT加快GPU推理速度

Paddle Inference采用子圖的形式集成TensorRT,針對GPU推理場景,TensorRT可對一些子圖進行優化,包括OP的橫向和縱向融合,過濾冗余的OP,並為OP自動選擇最優的kernel,加快推理速度。

集成oneDNN CPU推理加速引擎

一行代碼開始oneDNN加速,快捷高效。

支持PaddleSlim量化壓縮模型的部署

PaddleSlim是飛槳深度學習模型壓縮工具,Paddle Inference可聯動PaddleSlim,支持加載量化、裁剪和蒸餾后的模型並部署,由此減小模型存儲空間、減少計算占用內存、加快模型推理速度。其中在模型量化方面,Paddle Inference在X86 CPU上做了深度優化,常見分類模型的單線程性能可提升近3倍,ERNIE模型的單線程性能可提升2.68倍。

支持X2Paddle轉換得到的模型

除支持飛槳訓練的模型外,也支持用 X2Paddle 工具從第三方框架(比如 TensorFlow、Pytorch 或者 Caffe 等)產出的模型。

多場景適配

主流軟硬件環境兼容適配

支持服務器端X86 CPU、NVIDIA GPU芯片,兼容Linux/Mac/Windows系統,同時對飛騰、鯤鵬、曙光、昆侖等國產CPU/NPU進行適配。。支持所有飛槳訓練產出的模型,完全做到即訓即用。

主流、國產操作系統全適配

適配主流操作系統Linux、Windows、MacOS,同時適配麒麟OS、統信OS、普華OS、中科方德等國產操作系統

多語言接口支持

支持C++、Python、C、Go、Java和R語言API,對於其他語言,提供了ABI穩定的C API,提供配套的教程、API文檔及示例。

飛槳推理產品簡介

作為飛槳生態重要的一部分,飛槳提供了多個推理產品,完整承接深度學習模型應用的最后一公里。

整體上分,推理產品主要包括如下子產品

 

 

 各產品在推理生態中的關系如下

 

 用戶使用飛槳推理產品的工作流如下

  1. 獲取一個飛槳的推理模型,其中有兩種方法
  2. 利用飛槳訓練得到一個推理模型
  3. 用 X2Paddle 工具從第三方框架(比如 TensorFlow 或者 Caffe 等)產出的模型轉化
  4. (可選)對模型進行進一步優化, PaddleSlim 工具可以對模型進行壓縮,量化,裁剪等工作,顯著提升模型執行的速度性能,降低資源消耗
  5. 將模型部署到具體的推理產品上

Paddle Inference 簡介

Paddle Inference 是飛槳的原生推理庫, 作用於服務器端和雲端,提供高性能的推理能力。

由於能力直接基於飛槳的訓練算子,因此Paddle Inference 可以通用支持飛槳訓練出的所有模型。

Paddle Inference 功能特性豐富,性能優異,針對不同平台不同的應用場景進行了深度的適配優化,做到高吞吐、低時延,保證了飛槳模型在服務器端即訓即用,快速部署。

Paddle Inference的高性能實現

內存/顯存復用提升服務吞吐量

在推理初始化階段,對模型中的OP輸出Tensor 進行依賴分析,將兩兩互不依賴的Tensor在內存/顯存空間上進行復用,進而增大計算並行量,提升服務吞吐量。

細粒度OP橫向縱向融合減少計算量

在推理初始化階段,按照已有的融合模式將模型中的多個OP融合成一個OP,減少了模型的計算量的同時,也減少了 Kernel Launch的次數,從而能提升推理性能。目前Paddle Inference支持的融合模式多達幾十個。

內置高性能的CPU/GPU Kernel

內置同Intel、Nvidia共同打造的高性能kernel,保證了模型推理高性能的執行。

子圖集成TensorRT加快GPU推理速度

Paddle Inference采用子圖的形式集成TensorRT,針對GPU推理場景,TensorRT可對一些子圖進行優化,包括OP的橫向和縱向融合,過濾冗余的OP,並為OP自動選擇最優的kernel,加快推理速度。

子圖集成Paddle Lite輕量化推理引擎

Paddle Lite 是飛槳深度學習框架的一款輕量級、低框架開銷的推理引擎,除了在移動端應用外,還可以使用服務器進行 Paddle Lite 推理。Paddle Inference采用子圖的形式集成 Paddle Lite,以方便用戶在服務器推理原有方式上稍加改動,即可開啟 Paddle Lite 的推理能力,得到更快的推理速度。並且,使用 Paddle Lite 可支持在百度昆侖等高性能AI芯片上執行推理計算。

支持加載PaddleSlim量化壓縮后的模型

PaddleSlim是飛槳深度學習模型壓縮工具,Paddle Inference可聯動PaddleSlim,支持加載量化、裁剪和蒸餾后的模型並部署,由此減小模型存儲空間、減少計算占用內存、加快模型推理速度。其中在模型量化方面,Paddle Inference在X86 CPU上做了深度優化,常見分類模型的單線程性能可提升近3倍,ERNIE模型的單線程性能可提升2.68倍。

Paddle Inference的通用性

主流軟硬件環境兼容適配

支持服務器端X86 CPU、NVIDIA GPU芯片,兼容Linux/Mac/Windows系統。支持所有飛槳訓練產出的模型,完全做到即訓即用。

多語言環境豐富接口可靈活調用

支持C++, Python, C,接口簡單靈活,20行代碼即可完成部署。對於其他語言,提供了ABI穩定的C API, 用戶可以很方便地擴展。

  • 2020年2月,開源框架 v1.7發布:

訓練框架:增加自動混合精度訓練AMP接口和新控制流接口;優化Tensor使用方式和顯存分配策略;新增支持NVIDIA DALI GPU數據預處理庫;持續優化基礎OP的功能和性能;動態圖的功能進一步完善,性能大幅提升,對Data Independent的動態圖模型提供轉為靜態圖可預測部署模型的功能;框架調試分析功能和易用性全面提升。

預測部署:服務器端預測庫的Python API大幅優化,新增R語言、Go語言的預測API,並增加相關的使用方法和示例,強化了量化支持能力;Paddle Lite支持無校准數據的訓練后量化方法生成的模型,加強對OpenCL的支持,支持昆侖XPU的預測;模型壓縮庫PaddleSlim重構裁剪、量化、蒸餾、搜索接口,與模型庫充分打通,新增大規模可擴展知識蒸餾框架Pantheon。

分布式訓練:參數服務器模式下統一了Transpiler半異步、全異步和GEO的實現模式,后端實現上統一到Communicator中,前端接口統一到fleet中,通過fleet strategy靈活選擇不同模式;發布大規模分類庫PLSC,通過模型並行支持超多類別的分類任務。

基礎模型庫:發布語音合成庫Parakeet,包括多個前沿合成算法;PaddleCV新增14個圖像分類預訓練模型,3D和跟蹤方向模型持續豐富;PaddleNLP的分詞和詞性標注模型支持jieba分詞;PaddleRec增加多任務模型MMoE;模型庫整體增加了廣泛的動態圖模型實現。模型庫整體層次結構做了調整優化。

端到端開發套件:PaddleDetection和PaddleSeg新增大量模型實現及預訓練模型,提升了典型模型的訓練速度和精度,大幅提高模型壓縮和部署能力,使用體驗得到了全面優化;發布ElasticRec推薦排序系統,通過K8S進行部署,支持流式訓練和在線預測服務。

工具組件:PaddleHub新增52個預訓練模型,總數超過100,功能和體驗持續優化;多任務學習框架PALM升級內核,開放API調用,支持更多的任務類型;聯邦學習PaddleFL新增了公開數據集;深度強化學習框架PARL和飛槳圖學習框架PGL也對應版本升級,支持更多功能,開放更多算法和基線。

  • 2020年5月,開源框架 v1.8發布:

訓練框架:深度優化了命令式編程(動態圖)功能、性能和體驗,特別是增強了動靜轉換的能力,能支持依賴數據的控制流的動態圖實現進行靜態存儲部署,也可以轉為靜態圖模式訓練;Data Loader的功能和梯度裁剪的使用方式進一步優化;聲明式編程模式下多卡運行時fetch不定長Tensor等問題得到解決,混合精度配合重計算顯示出支持大Batch訓練很好的成效。新增了大量API,並新增 ComplexVariable,支持復數張量的表示和常見的復數運算。

預測部署:Paddle Inference 新增CUDA下多線程多流支持、TRT子圖對動態shape輸入的支持,強化量化推理,性能顯著優化;Paddle Serving 全面升級,功能完善,易用性顯著提升;Paddle Lite進一步優化編譯安裝體驗,全面提升對支持芯片的覆蓋度(包括RK、MTK、百度昆侖、寒武紀、比特大陸、華為NPU等等)以及對應的模型數量和性能;PaddleSlim量化、裁剪和NAS功能持續強化;發布國內首個開源JavaScript深度學習前端推理引擎Paddle.js,可以幫助用戶實現網頁端深度學習模型部署。

開發套件:全新發布PaddleClas,包含23個圖像分類網絡實現,117個圖像預訓練模型,並添加了數據增廣、SSLD蒸餾等輔助策略,以及特色應用案例;PaddleSeg人像分割系列模型全面升級,新增多種遙感相關的策略方案;PaddleDetection、PaddleOCR和語音合成套件Parakeet算法覆蓋更全面,速度顯著提升。

工具組件:PaddleHub新增包括一系列視覺預訓練模型在內更多的模型,模型總數120+; PaddleFL發布1.0版本,開源基於Mulit-party Computation (MPC)的聯邦學習,支持橫向、縱向等多個聯邦學習場景;PGL發布業界首個結合語義信息與結構信息的圖神經網絡模型ERNIESage;PARL開源工業界首個進化學習應用框架Evokit;全新發布量子機器學習框架量槳Paddle Quantum。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM