推理識別是人工智能最重要的落地應(yīng)用,其他與深度學(xué)習(xí)相關(guān)的數(shù)據(jù)收集、標(biāo)注、模型訓(xùn)練等工作,都是為了得到更好的最終推理性能與效果。
幾乎每一種深度學(xué)習(xí)框架都能執(zhí)行個別的推理工作,包括 Tensorflow、Pytorch、MXNet 等通用型框架與 YOLO 專屬的 Darknet 框架,此外還有 ONNX 開發(fā)推理平臺、NVIDIA TensorRT 加速推理引擎,也提供推理相關(guān)的 C / C++ 與 Python 開發(fā)接口,這是大部分技術(shù)人員所熟悉的方法。
在垂直應(yīng)用方面,NVIDIA 的DeepStream智能分析工具是非常適合用在種類固定且需要長期統(tǒng)計(jì)分析的場景,包括各種交通場景的人 / 車流量分析、工業(yè)流水線質(zhì)量檢測等應(yīng)用,并且在早期視覺(Visualization)類推理功能之上,再添加對話(Conversation)類推理功能,讓使用范圍更加完整。
上述的推理方式通常適合在識別固定種類與固定輸入源的使用場景,在交通、工業(yè)自動化領(lǐng)域、無人設(shè)備等領(lǐng)域的使用比較普及。
但是這種方式并不適合在網(wǎng)絡(luò)相關(guān)的服務(wù)類應(yīng)用中使用,包括在線的產(chǎn)品推薦、圖像分類、聊天機(jī)器人等應(yīng)用,因?yàn)樵诰€服務(wù)需要同時(shí)面對未知數(shù)量與類型的數(shù)據(jù)源,并且透過 HTTP 協(xié)議進(jìn)行數(shù)據(jù)傳輸?shù)难舆t問題,也是嚴(yán)重影響用戶體驗(yàn)感的因素,這是絕大部分網(wǎng)路服務(wù)供應(yīng)商要導(dǎo)入 AI 智能識別技術(shù)所面臨的共同難題。
NVIDIA Triton推理服務(wù)器的最大價(jià)值,便是為服務(wù)類智能應(yīng)用提供一個完整的解決方案,因此首先需要解決以下的三大關(guān)鍵問題:
1. 高通用性:
(1) 廣泛支持多種計(jì)算處理器:包括具備 NVIDIA GPU 的 x86 與 ARM CPU 設(shè)備,也支持純 CPU 設(shè)備的推理計(jì)算。
(2) 廣泛支持各種訓(xùn)練框架的文件格式:包括 TensorFlow 1.x/2.x、PyTorch、ONNX、TensorRT、RAPIDS FIL(用于 XGBoost、Scikit-learn Random Forest、LightGBM)、OpenVINO、Python 等。
(3) 廣泛支持各種模型種類:包括卷積神經(jīng)網(wǎng)絡(luò) (CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN)、決策樹、隨機(jī)森林和圖神經(jīng)網(wǎng)絡(luò)等算法。
2.部署便利:
(1) 可在橫向擴(kuò)展的云或數(shù)據(jù)中心、企業(yè)邊緣,甚至 NVIDIA Jetson 等嵌入式設(shè)備上運(yùn)行。
(2) 支持用于 AI 推理的裸機(jī)和虛擬化環(huán)境,包括 VMware vSphere 與基于 Docker 技術(shù)的 Kubernetes 管理機(jī)制。
(3) 可托管于多種人工智能云平臺,包括 Amazon SageMaker、Azure ML、Google Vertex AI、阿里巴巴 AI、騰訊 TI-EMS 等平臺。
3.性能優(yōu)化:
(1)動態(tài)批量處理:推理優(yōu)化的一個因素是批量大小,或者您一次處理多少個樣本,GPU 以更高的批量提供高吞吐量。然而,對于實(shí)時(shí)應(yīng)用程序,服務(wù)的真正限制不是批量大小甚至吞吐量,而是為最終客戶提供出色體驗(yàn)所需的延遲。
(2)模型并發(fā)執(zhí)行:GPU 是能夠同時(shí)執(zhí)行多個工作負(fù)載的計(jì)算設(shè)備,NVIDIA Triton 推理服務(wù)器通過在 GPU 上同時(shí)運(yùn)行多個模型來最大限度地提高性能并減少端到端延遲,這些模型可以是相同的,也可以是來自不同框架的不同模型。GPU 內(nèi)存大小是同時(shí)運(yùn)行模型數(shù)量的唯一限制,這會影響GPU利用率和吞吐量。
以上是 NVIDIA Triton 推理服務(wù)器的基本特性說明,要滿足上面所列的特性,是相對復(fù)雜的內(nèi)容,這是本系列文章所要為讀者逐一探索的內(nèi)容,不過在講解技術(shù)內(nèi)容之前,我們可以先看看有哪些比較具有代表性成功案例,能讓大家對于 Triton 推理服務(wù)器的使用場景有更進(jìn)一步的了解。
案例1:微軟 Teams 會議系統(tǒng)使用 Triton 提升生成實(shí)時(shí)字幕和轉(zhuǎn)錄性能
微軟 Teams是全球溝通和協(xié)作的重要工具,每月有近 2.5 億活躍用戶,其 Azure 認(rèn)知服務(wù)提供 28 種語言的字幕和轉(zhuǎn)錄,實(shí)時(shí)字幕功能幫助與會者實(shí)時(shí)跟蹤對話,轉(zhuǎn)錄功能方便與會者在日后回顧當(dāng)時(shí)的創(chuàng)意或回看未能參與的會議,實(shí)時(shí)字幕對聾啞人、聽力障礙者,或者異國與會者特別有用。
底層語音識別技術(shù)作為認(rèn)知服務(wù)中的一個 API,開發(fā)人員可以使用它定制和運(yùn)行自己的應(yīng)用程序,例如客服電話轉(zhuǎn)錄、智能家居控制或?yàn)榧本热藛T提供 AI 助手。認(rèn)知服務(wù)會生成 Teams 的轉(zhuǎn)錄和字幕,將語音轉(zhuǎn)換為文本,并識別說話人。同時(shí)也能夠識別專業(yè)術(shù)語 、姓名和其他會議背景,提高字幕的準(zhǔn)確性。
微軟 Teams 首席項(xiàng)目經(jīng)理 Shalendra Chhabra 表示:“這樣的 AI 模型非常復(fù)雜,需要數(shù)千萬個神經(jīng)網(wǎng)絡(luò)參數(shù)才能識別幾十種不同的語言。但模型越大,就越難以經(jīng)濟(jì)高效地實(shí)時(shí)運(yùn)行。”
為了提高服務(wù)質(zhì)量,微軟使用 NVIDIA Triton 開源推理服務(wù)軟件,來幫助 Teams 使用認(rèn)知服務(wù)優(yōu)化語音識別模型,以及認(rèn)知服務(wù)所支持的高度先進(jìn)語言模型,在極低的延遲狀態(tài)下提供高度準(zhǔn)確、個性化的語音轉(zhuǎn)文本結(jié)果,同時(shí)可以保證運(yùn)行這些語音轉(zhuǎn)文本模型的NVIDIA GPU充分發(fā)揮計(jì)算資源,在消耗更少計(jì)算資源的同時(shí)為客戶提供更高的吞吐量,進(jìn)而降低成本。
NVIDIA GPU 和 Triton 軟件能夠幫助微軟,在不犧牲低延遲的情況下,通過強(qiáng)大的神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)高準(zhǔn)確性,確保語音-文本的實(shí)時(shí)轉(zhuǎn)換,當(dāng)啟用轉(zhuǎn)錄功能時(shí),與會者可以在會議結(jié)束后輕松補(bǔ)上錯過的內(nèi)容。
Triton 推理服務(wù)器有助于簡化 AI 模型部署并解鎖高性能推理,用戶甚至可以為自己的應(yīng)用開發(fā)自定義后端。下面三種關(guān)鍵功能,是協(xié)助微軟將 Teams 的字幕和轉(zhuǎn)錄功能擴(kuò)展到更多會議和用戶的效能:
流推理:新型流推理功能—通過跟蹤語音上下語境,提高延遲、敏感性字幕的準(zhǔn)確度,協(xié)助 Azure 認(rèn)知服務(wù)合作定制語音轉(zhuǎn)文本的應(yīng)用程序。
動態(tài)批量處理:批量大小指神經(jīng)網(wǎng)絡(luò)同時(shí)處理的輸入樣本數(shù)量,通過 Triton 的動態(tài)批量處理功能,單項(xiàng)推理請求被自動組合成一個批次,因此能夠在不影響模型延遲的情況下更好地利用 GPU 資源。
并發(fā)模型執(zhí)行:實(shí)時(shí)字幕和轉(zhuǎn)錄需要同時(shí)運(yùn)行多個深度學(xué)習(xí)模型,Triton 使開發(fā)人員能夠在單個 GPU 上同時(shí)完成這些工作,包括使用不同深度學(xué)習(xí)框架的模型。
案例2:Triton 助力微信加速視覺應(yīng)用,提高可靠性
本案例中,通過 NVIDIA 的 GPU 執(zhí)行 Triton 推理服務(wù)器與TensorRT推理加速引擎, 幫助微信的二維碼光學(xué)識別(OCR)計(jì)算降低 46%時(shí)間,并將系統(tǒng)的失敗率降低 81%,同時(shí)減少 78% 的服務(wù)器使用數(shù)量。
騰訊微信是一款跨平臺的通訊工具,支持通過手機(jī)網(wǎng)絡(luò)發(fā)送語音、圖片、視頻和文字等。截至 2021 年 6 月,微信在全球擁有超過 12 億活躍用戶,是國內(nèi)活躍用戶最多的社交軟件。
微信識物是一款主打物品識別的 AI 產(chǎn)品,通過相機(jī)拍攝物品,更高效、更智能地獲取信息。2020 年微信識物拓展了更多識別場景,上線了微信版的圖片搜索,打開微信掃一掃,左滑切換到 “識物” 功能,對準(zhǔn)想要了解的物品正面,可以獲取對應(yīng)的物品信息,包括物品百科、相關(guān)資訊、相關(guān)商品。
2021 年 1 月,微信發(fā)布的 8.0 版本更新支持圖片文字提取的功能,用戶在聊天界面和朋友圈中長按圖片就可以提取圖片中文字,然后一鍵轉(zhuǎn)發(fā)、復(fù)制或收藏。
在識物的過程包含檢測、圖像召回、信息提煉等環(huán)節(jié),其中二維碼掃描的使用頻率也是非常高,主要包括識別和檢測,這兩種應(yīng)用都有非常大的計(jì)算量。但原本使用 Pytorch 進(jìn)行模型的推理時(shí),遇到以下三大問題:
請求的延遲很大,影響用戶體驗(yàn)感;
顯存占用很大,單張 NVIDIA T4 GPU 卡能部署的模型數(shù)比較少,導(dǎo)致推理請求的并發(fā)數(shù)上不去,請求失敗的概率太高,只能通過增加機(jī)器的方式來提高并發(fā)能力,業(yè)務(wù)部署成本較高。
使用的模型經(jīng)常變化,而業(yè)務(wù)需要更換后的模型需要能夠快速地加速和上線部署。
為了解決上述問題,微信團(tuán)隊(duì)使用 Triton 推理服務(wù)器結(jié)合 TensorRT 加速推理器的綜合方案,主要技術(shù)內(nèi)容如下:
通過使用 TensorRT 對微信識物和 OCR 的模型進(jìn)行加速,在都使用 FP32 的情況下,比 Pytorch 的延遲降低 50% 左右;
在 OCR 的識別和檢測階段,使用 TensorRT 結(jié)合 NVIDIA T4 GPU 的 FP16 Tensor Core,在保證精度的前提下,識別的延遲降低 50%、檢測的延遲降低 20%;
在微信識物的分類和檢測任務(wù)中,通過使用 NVIDIA T4 GPU 的 int8 Tensor Core 并結(jié)合 QAT,在滿足精度要求的前提下,進(jìn)一步大幅提升了性能;
通過使用 FP16 和 int8 低精度模式,在大幅降低推理延遲的同時(shí),大大減少了顯存的占用,在 FP16 模式下,單模型顯存占用僅占 FP32 模式的 40%–50%, 而在 int8 模式下,單模型顯存占用僅占 FP32 模式的 30% 左右。在提高單張 T4 卡上部署的模型數(shù)量的同時(shí),大幅提高了單 GPU 的推理請求并發(fā)能力;
Triton 的動態(tài)批量處理(dynamic batch)和多實(shí)例等特性,幫助微信將在滿足延遲要求的同時(shí),提高了系統(tǒng)整體的并發(fā)能力,將系統(tǒng)失敗降低了 81%;
TensorRT 對個別模型得到推理的加速,Triton 則對加速后的模型進(jìn)行快速的部署,滿足了業(yè)務(wù)對修改后的模型進(jìn)行快速部署的需求,也大大減少工程人員的工作量。
通過使用 NVIDIA 的 TensorRT 對微信識物和 OCR 的模型進(jìn)行加速,在降低單次推理延遲 50% 以上的同時(shí),節(jié)約了多達(dá) 64% 的顯存。結(jié)合 Triton 的動態(tài)批量處理和多實(shí)例的功能,OCR 的整體時(shí)延降低了 46%,系統(tǒng)失敗率降低了 81%。大大提高了用戶的體驗(yàn),并且服務(wù)器的數(shù)量減少了多達(dá) 78%,極大降低了服務(wù)的成本。
案例3:騰訊 PCG 使用 Triton 加速在線推理,提高設(shè)備效能
騰訊平臺與內(nèi)容事業(yè)群(簡稱 騰訊 PCG)負(fù)責(zé)公司互聯(lián)網(wǎng)平臺和內(nèi)容文化生態(tài)融合發(fā)展,整合 QQ 軟件、QQ 空間等社交平臺,和應(yīng)用寶、瀏覽器等流量平臺,以及新聞資訊、視頻、體育、直播、動漫、影業(yè)等內(nèi)容業(yè)務(wù),推動 IP 跨平臺、多形態(tài)發(fā)展,為更多用戶創(chuàng)造海量的優(yōu)質(zhì)數(shù)字內(nèi)容體驗(yàn)。
騰訊 PCG 機(jī)器學(xué)習(xí)平臺部旨在構(gòu)建和持續(xù)優(yōu)化符合 PCG 技術(shù)中臺戰(zhàn)略的機(jī)器學(xué)習(xí)平臺和系統(tǒng),提升 PCG 機(jī)器學(xué)習(xí)技術(shù)應(yīng)用效率和價(jià)值,建設(shè)業(yè)務(wù)領(lǐng)先的模型訓(xùn)練系統(tǒng)和算法框架,提供涵蓋數(shù)據(jù)標(biāo)注、模型訓(xùn)練、評測、上線的全流程平臺服務(wù),實(shí)現(xiàn)高效率迭代,在內(nèi)容理解和處理領(lǐng)域,輸出業(yè)界領(lǐng)先的元能力和智能策略庫。
這個機(jī)器學(xué)習(xí)平臺服務(wù)于 PCG 所有業(yè)務(wù)產(chǎn)品,面對上述所提到的綜合需求,有以下三大挑戰(zhàn):
1.業(yè)務(wù)繁多,場景復(fù)雜:
(1) 業(yè)務(wù)開發(fā)語言包括 C++ 與 Python;
(2)模型格式繁多,包括 ONNX、Pytorch、TensorFlow、TensorRT 等;
(3)模型預(yù)處理涉及圖片下載等網(wǎng)絡(luò) io;
(4)多模型融合流程比教復(fù)雜,涉及循環(huán)調(diào)用;
(5)支持異構(gòu)推理;
2.模型推理結(jié)果異常時(shí),難以便利地調(diào)試定位問題;
3.需要與公司內(nèi)現(xiàn)有協(xié)議 / 框架 / 平臺進(jìn)行融合。
基于以上挑戰(zhàn),騰訊 PCG 選擇了采用 NVIDIA 的 Triton 推理服務(wù)器,以解決新場景下模型推理引擎面臨的挑戰(zhàn),在提升用戶研效的同時(shí),也大幅降低了服務(wù)成本。
NVIDIA 的 Triton 推理服務(wù)器是一款開源軟件,對于所有推理模式都可以簡化在任一框架中以及任何 GPU 或 CPU 上的運(yùn)行方式,從而在生產(chǎn)環(huán)境中使用推理計(jì)算,并且支持多模型 ensemble,以及 TensorFlow、PyTorch、ONNX 等多種深度學(xué)習(xí)模型框架,可以很好的支持多模型聯(lián)合推理的場景,構(gòu)建起視頻、圖片、語音、文本整個推理服務(wù)過程,大大降低多個模型服務(wù)的開發(fā)和維護(hù)成本。
通過將 Triton 編譯為動態(tài)鏈接庫,可以方便地鏈入公司內(nèi)部框架,對接公司的平臺治理體系,符合 C 語言規(guī)范的 API 也極大降低了用戶的接入成本,借助 Python 后端和自定義后端,用戶可以自由選擇使用 C++ 或 Python 語言進(jìn)行二次開發(fā)。
NVIDIA DALI是 GPU 加速的數(shù)據(jù)增強(qiáng)和圖像加載庫,使用 Triton 的 DALI 后端可以替換掉原來的圖片解碼、縮放等操作,Triton 的 FIL 后端可以替代 Python XGBoost 模型推理,進(jìn)一步提升服務(wù)端推理性能。
借助 NVIDIA Triton 推理框架,配合 DALI / FIL / Python 等后端與 TensorRT,整體推理服務(wù)的吞吐能力最大提升 6 倍,延遲最大降低 40%。幫助騰訊 PCG 各業(yè)務(wù)場景中,以更低的成本構(gòu)建了高性能的推理服務(wù),同時(shí)更低的延遲降低了整條系統(tǒng)鏈路的響應(yīng)時(shí)間,優(yōu)化了用戶體驗(yàn),也降低了 20%-66% 總成本。
透過以上三個成功案例,就能很明顯看出,Triton 推理服務(wù)器在面對復(fù)雜的智能識別應(yīng)用場景時(shí),能發(fā)揮非常有效的整合功能,特別是模型來自不同訓(xùn)練平臺時(shí),以及面對不同前端開發(fā)語言時(shí),更能體現(xiàn)其便利性。
在后面的文章會帶著大家,先從宏觀的角度來了解 Triton 推理服務(wù)器的應(yīng)用架構(gòu)以及所需要的配套資源,接著搭建 Triton 的使用環(huán)境,包括建立模型倉、安裝服務(wù)端/用戶端軟件,然后執(zhí)行一些實(shí)用性強(qiáng)的基礎(chǔ)范例,以及結(jié)合 NVIDIA 的 TensorRT 與 DeepStream 等推理工具,讓更多開發(fā)人員能利用 Triton 整合更多 AI 推理資源。
審核編輯:湯梓紅
-
NVIDIA
+關(guān)注
關(guān)注
14文章
5076瀏覽量
103728 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9308瀏覽量
86071 -
Triton
+關(guān)注
關(guān)注
0文章
28瀏覽量
7060
原文標(biāo)題:NVIDIA Triton系列文章(1):應(yīng)用概論
文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達(dá)企業(yè)解決方案】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論