天天看點

加速國産智能終端落地,百度亮出AI部署利器FastDeploy

飛槳目前為開發者提供了涵蓋多種領域的模型套件,開發者可以使用這些套件基于自身資料集快速完成深度學習模型的訓練。但在實際産業部署環境下,開發者在部署模型到不同硬體和不同場景時面臨以下三個痛點問題。

加速國産智能終端落地,百度亮出AI部署利器FastDeploy
  • 碎片化。在部署過程中,由于深度學習架構、硬體與平台的多樣化,開源社群以及各硬體廠商存在大量分散的工具鍊,很難通過一款産品,同時滿足開發者在服務端、移動端和邊緣端,以及服務化場景部署的需求。
  • 成本高。這與部署工具鍊碎片化的現狀相關。開發者在不同推理引擎、不同硬體上部署的流程、代碼API形态和體驗都不盡相同,這帶來了很高的學習成本。
  • 速度慢。部署中最大的問題是如何将模型在特定的硬體上實作高性能的優化。盡管目前模型套件提供各種輕量級的模型,或開源社群各類推理引擎不斷優化模型的推理速度。但在實際部署中,開發者更關注的是模型端到端的優化,包括預處理加速、模型壓縮、量化等等。而目前的推理産品都缺少這種端到端的體驗。

是以飛槳全新釋出新一代部署産品——FastDeploy部署工具,為産業實踐中需要推理部署的開發者提供最優解。

加速國産智能終端落地,百度亮出AI部署利器FastDeploy
  • 目前FastDeploy底層包含了飛槳的推理引擎、開源社群硬體廠商的推理引擎,結合飛槳統一硬體适配技術可以滿足開發者将模型部署到主流AI硬體的需求。
  • 模型壓縮與轉換工具使得開發者通過統一的部署API實作多架構模型的推理,同時,飛槳自研的PaddleSlim為大家提供更易用、性能更強的模型自動化壓縮功能。
  • 而在統一的部署API之上,我們還提供了豐富的多場景部署工程,滿足開發者對于服務端、移動端、網頁端的端到端部署需求。

FastDeploy三大特點

作為全場景高性能部署工具,FastDeploy緻力于打造三個特點,與上述提及的三個痛點相對應,分别是全場景、簡單易用和極緻高效。

加速國産智能終端落地,百度亮出AI部署利器FastDeploy

全場景

全場景是指FastDeploy的多端多引擎加速部署、多架構模型支援和多硬體部署能力。

多端部署

FastDeploy支援模型在多種推理引擎上部署,底層的推理後端,包括服務端Paddle Inference、移動端和邊緣端的Paddle Lite以及網頁前端的Paddle.js,并且在上層提供統一的多端部署API。這裡以PaddleDetection的PP-YOLOE模型部署為例,使用者隻需要一行代碼,便可實作在不同推理引擎後端間的靈活切換。

import fastdeploy as fd
import cv2

im = cv2.imread("test.jpg")

# 通過RuntimeOption配置後端
option = fd.RuntimeOption()
option.use_paddle_infer_backend()

# 加載飛槳PPYOLOE檢測模型
model = fd.vision.detection.PPYOLOE(“model.pdmodel”,           
                                    “model.pdiparams”,
                                    “infer_cfg.yml”,
                                    runtime option=option)
result = model.predict(im)
使用Paddle Inference部署
           
import fastdeploy as fd
import cv2

im = cv2.imread("test.jpg")

# 通過RuntimeOption配置後端
option = fd.RuntimeOption()
option.use_openvino_backend()

# 加載飛槳PPYOLOE檢測模型
model = fd.vision.detection.PPYOLOE(“model.pdmodel”,           
                                    “model.pdiparams”,
                                    “infer_cfg.yml”,
                                    runtime option=option)
result = model.predict(im)
使用OpenVINO部署
           

多架構支援

在多架構模型部署的支援上,FastDeploy內建了X2Paddle和Paddle2ONNX兩款模型轉換工具。截至目前,飛槳的轉換工具支援多種深度學習架構及ONNX的交換格式。在百度公司内部以及開源社群,我們支援了不同領域300多種模型的轉換,目前也在根據使用者的需求持續疊代。

加速國産智能終端落地,百度亮出AI部署利器FastDeploy

在FastDeploy1.0正式版本中,飛槳統一了模型轉換的功能入口。開發者隻需要一行指令就可以完成其他深度學習架構到飛槳的轉換,以及飛槳模型與ONNX交換格式的互轉,幫助開發者使用FastDeploy快速體驗飛槳的模型壓縮,以及推理引擎端到端的優化效果。

多硬體适配

加速國産智能終端落地,百度亮出AI部署利器FastDeploy

飛槳硬體适配統一方案

在多硬體适配上,FastDeploy基于飛槳硬體适配統一方案進行擴充,實作最大化AI模型部署通路。

在最新版本中,FastDeploy和英特爾、英偉達、瑞芯微和GraphCore等硬體廠商完成了硬體适配。期待更多硬體生态夥伴使用FastDeploy拓展更多領域,完成更多模型的端到端推理部署。

加速國産智能終端落地,百度亮出AI部署利器FastDeploy

簡單易用

FastDeploy提供主流産業場景和SOTA模型端到端的部署,以及多端部署的統一開發體驗。

加速國産智能終端落地,百度亮出AI部署利器FastDeploy

在FastDeploy的部署套件中,飛槳提供覆寫20多個主流AI場景,以及150多個SOTA産業模型的端到端部署示例,讓開發者從場景入手,快速通過自行訓練或預訓練模型完成部署工作。

以下是Python部署和C++部署:

import fastdeploy.vision as vision

model = vision.detection.PPYOLOE(“model.pdmodel”,           
                                 “model.pdiparams”,
                                 “infer_cfg.yml”)
result = model.predict(im)
           
#include “fastdeploy/vision.h”
namespace vision = fastdeploy::vision;

int main(int argc, char* argv[]) {
  ...
  auto model = vision::detection::PPYOLOE(“model.pdmodel”,
                                          ”model.pdiparams”,
                                          ”infer_cfg.yml”)
  vision::DetectionResult result;
  model.Predict(image, &result);
  ...
           

在開發體驗上,FastDeploy從統一的角度設計了部署的API,確定在不同端和不同開發語言下,開發者能夠擁有統一的開發體驗,并且使用盡可能少的代碼實作模型端到端的高性能推理。

加速國産智能終端落地,百度亮出AI部署利器FastDeploy
加速國産智能終端落地,百度亮出AI部署利器FastDeploy
加速國産智能終端落地,百度亮出AI部署利器FastDeploy

此外,飛槳關聯EasyEdge提供了10多個端到端的部署工程Demo,幫助開發者快速體驗AI模型效果,滿足開發者産業使用中快速內建需求。同時EasyEdge提供了更易用的開發平台,便于開發者體驗。

加速國産智能終端落地,百度亮出AI部署利器FastDeploy

極緻高效

FastDeploy的極緻高效,包括模型無損量化壓縮、推理部署軟硬協同加速和模型端到端全流程的部署性能優化。

無損量化壓縮,軟硬協同加速

加速國産智能終端落地,百度亮出AI部署利器FastDeploy

FastDeploy內建了飛槳壓縮和推理的特色,實作了自動化壓縮與推理引擎深度關聯,為開發者提供更高效的量化推理部署體驗。以PP-LCNetV2和ERNIE 3.0模型為例,傳統的KL離線量化會明顯降低模型壓縮後的精度,但在FastDeploy的最新版本中,飛槳通過內建PaddleSlim最新的ACT自動壓縮技術,實作模型幾乎無損的壓縮功能。

如果壓縮後的模型想達到更高的推理性能,需要後端推理引擎的軟硬體協同優化工作。基于最新版本的Paddle Inference,在CPU上通過英特爾VNNI指令集以及GPU上深度融合和優化,性能全面領先ONNX Runtime。在移動端上,Paddle Lite對ARM v9指令集進行了全面适配,INT8推理性能相對比同類的産品有更大幅度的性能提升。

端到端全流程優化

但也正如上文提到,模型推理隻是端到端部署中的一個環節,是以FastDeploy在端到端的全流程部署上做了大量優化工作,并且對于此前飛槳的CV模型部署代碼進行了全面優化更新。

加速國産智能終端落地,百度亮出AI部署利器FastDeploy

在CPU上,對預處理操作進行融合,減少資料預處理過程中記憶體建立、拷貝和計算量。在GPU上,飛槳引入了自定義的CUDA預處理算子優化,實作了服務端上模型端到端部署性能的大幅提升。在移動端,飛槳與百度視覺技術部合作,通過百度在業務實踐中自研打磨的高性能圖像預處理庫FlyCV,顯著提升圖像資料預處理的性能。

總體而言,本次全新釋出的FastDeploy部署套件可以滿足開發者全場景的高性能部署需求,大幅提升在AI産業部署中的開發效率。FastDeploy的目标和使命是讓開發者簡單高效地将AI模型部署到任何場景。目前,開源項目仍在高效疊代中,每月都會有新版本和新部署功能更新釋出。歡迎大家點選閱讀原文或通路下方連結關注。

  • FastDeploy開源項目位址
加速國産智能終端落地,百度亮出AI部署利器FastDeploy

繼續閱讀