我們擅長(zhǎng)商業(yè)策略與用戶體驗(yàn)的完美結(jié)合。
歡迎瀏覽我們的案例。
11 月 1 日,騰訊 AI Lab 在南京舉辦的騰訊全球合作伙伴論壇上宣布正式開源“PocketFlow”項(xiàng)目, 該項(xiàng)目是一個(gè)自動(dòng)化深度學(xué)習(xí)模型壓縮與加速框架,整合多種模型壓縮與加速算法并利用強(qiáng)化學(xué)習(xí)自動(dòng)搜索合適壓縮參數(shù),解決傳統(tǒng)深度學(xué)習(xí)模型由于模型體積太大,計(jì)算資源消耗高而難以在移動(dòng)設(shè)備上部署的痛點(diǎn),同時(shí)極大程度的降低了模型壓縮的技術(shù)門檻,賦能移動(dòng)端 AI 應(yīng)用開發(fā)。
這是一款適用于各個(gè)專業(yè)能力層面開發(fā)者的模型壓縮框架,基于 Tensorflow 開發(fā),集成了當(dāng)前主流與 AI Lab 自研的多個(gè)模型壓縮與訓(xùn)練算法,并采用超參數(shù)優(yōu)化組件實(shí)現(xiàn)了全程自動(dòng)化托管式的模型壓縮。開發(fā)者無需了解具體模型壓縮算法細(xì)節(jié),即可快速地將 AI 技術(shù)部署到移動(dòng)端產(chǎn)品上,實(shí)現(xiàn)用戶數(shù)據(jù)的本地高效處理。
目前該框架在騰訊內(nèi)部已對(duì)多個(gè)移動(dòng)端 AI 應(yīng)用模型進(jìn)行壓縮和加速,并取得了令人滿意的效果, 對(duì)應(yīng)用整體的上線效果起到了非常重要的作用。
隨著移動(dòng)互聯(lián)網(wǎng)的普及和 AI 算法的愈加成熟,移動(dòng)端 AI 的需求和應(yīng)用場(chǎng)景也愈加豐富,如智能美顏,瘦身,手勢(shì)識(shí)別,場(chǎng)景識(shí)別,游戲 AI,視頻檢測(cè),車載語(yǔ)音交互,智能家居,實(shí)時(shí)翻譯等。將模型部署在移動(dòng)端代替服務(wù)器端可以實(shí)現(xiàn)實(shí)時(shí)交互,在無網(wǎng)絡(luò)環(huán)境的情況下也可正常運(yùn)行,并且保護(hù)了數(shù)據(jù)的隱私和安全性,降低運(yùn)維成本。而在移動(dòng)端 AI 模型部署方面,小而快變成了模型推理最渴望的要求之一,因?yàn)樾〉哪P涂梢允沟谜麄€(gè)應(yīng)用的存儲(chǔ)空間減小;而提高模型的推理速度則可以使得整個(gè)模型應(yīng)用場(chǎng)景的反應(yīng)速度加快,同時(shí)也可以在低配設(shè)備上取得很好的效果。因此,模型的推理速度逐漸已經(jīng)成為了各大 AI 應(yīng)用市場(chǎng)競(jìng)爭(zhēng)力上最重要的評(píng)測(cè)指標(biāo)之一。然而往往訓(xùn)練出來的模型推理速度或者尺寸大小不能滿足需求,大部分開發(fā)者對(duì)極致的模型壓縮和加速方法又感到困惑。
PocketFlow 的出現(xiàn)就是為了解決這個(gè)令眾多 AI 應(yīng)用開發(fā)者頭痛的問題。
框架開源內(nèi)容:
PocketFlow 框架本次開源內(nèi)容主要由兩部分組件構(gòu)成,分別是模型壓縮/加速算法部分和超參數(shù)優(yōu)化部分,具體結(jié)構(gòu)如下圖所示:
模型壓縮/加速算法部分包括多種深度學(xué)習(xí)模型壓縮和加速算法:
通道剪枝(channel pruning): 在 CNN 網(wǎng)絡(luò)中,通過對(duì)特征圖中的通道維度進(jìn)行剪枝,可以同時(shí)降低模型大小和計(jì)算復(fù)雜度,并且壓縮后的模型可以直接基于現(xiàn)有的深度學(xué)習(xí)框架進(jìn)行部署。PocketFlow 還支持通道剪枝的分組 finetune/retrain 功能,通過實(shí)驗(yàn)我們發(fā)現(xiàn)此方法可以使原本壓縮后的模型精度有明顯的提升。
權(quán)重稀疏化(weight sparsification):通過對(duì)網(wǎng)絡(luò)權(quán)重引入稀疏性約束,可以大幅度降低網(wǎng)絡(luò)權(quán)重中的非零元素個(gè)數(shù);壓縮后模型的網(wǎng)絡(luò)權(quán)重可以以稀疏矩陣的形式進(jìn)行存儲(chǔ)和傳輸,從而實(shí)現(xiàn)模型壓縮。
權(quán)重量化(weight quantization):通過對(duì)網(wǎng)絡(luò)權(quán)重引入量化約束,可以降低用于表示每個(gè)網(wǎng)絡(luò)權(quán)重所需的比特?cái)?shù);我們同時(shí)提供了對(duì)于均勻和非均勻兩大類量化算法的支持,可以充分利用 ARM 和 FPGA 等設(shè)備的硬件優(yōu)化,以提升移動(dòng)端的計(jì)算效率,并為未來的神經(jīng)網(wǎng)絡(luò)芯片設(shè)計(jì)提供軟件支持。
網(wǎng)絡(luò)蒸餾(network distillation):對(duì)于上述各種模型壓縮組件,通過將未壓縮的原始模型的輸出作為額外的監(jiān)督信息,指導(dǎo)壓縮后模型的訓(xùn)練,在壓縮/加速倍數(shù)不變的前提下均可以獲得 0.5%-2.0% 不等的精度提升。
多 GPU 訓(xùn)練(multi-GPU training):深度學(xué)習(xí)模型訓(xùn)練過程對(duì)計(jì)算資源要求較高,單個(gè) GPU 難以在短時(shí)間內(nèi)完成模型訓(xùn)練,因此我們提供了對(duì)于多機(jī)多卡分布式訓(xùn)練的全面支持,以加快使用者的開發(fā)流程。無論是基于 ImageNet 數(shù)據(jù)的 Resnet-50 圖像分類模型還是基于 WMT14 數(shù)據(jù)的 Transformer 機(jī)器翻譯模型,均可以在一個(gè)小時(shí)內(nèi)訓(xùn)練完畢。
超參數(shù)優(yōu)化(hyper-parameter optimization)部分可以通過強(qiáng)化學(xué)習(xí)或者 AutoML,在整體壓縮率一定的情況下,搜索出每一層最合適的壓縮比例使得整體的精度最高。多數(shù)開發(fā)者對(duì)模型壓縮算法往往了解較少,調(diào)節(jié)壓縮算法參數(shù)需要長(zhǎng)期的學(xué)習(xí)和實(shí)驗(yàn)才能有所經(jīng)驗(yàn), 但超參數(shù)取值對(duì)最終結(jié)果往往有著巨大的影。PocketFlow 的超參數(shù)優(yōu)化部分正是幫助開發(fā)者解決了這一大痛點(diǎn),并且通過實(shí)驗(yàn)我們發(fā)現(xiàn),其優(yōu)化結(jié)果也要好于專業(yè)的模型壓縮工程師手工調(diào)參的結(jié)果。其結(jié)構(gòu)如下圖:
PocketFlow 性能
通過引入超參數(shù)優(yōu)化組件,不僅避免了高門檻、繁瑣的人工調(diào)參工作,同時(shí)也使得 PocketFlow 在各個(gè)壓縮算法上全面超過了人工調(diào)參的效果。以圖像分類任務(wù)為例,在 CIFAR-10 和 ImageNet 等數(shù)據(jù)集上,PocketFlow 對(duì) ResNet 和 MobileNet 等多種 CNN 網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行有效的模型壓縮與加速。
在 CIFAR-10 數(shù)據(jù)集上,PocketFlow 以 ResNet-56 作為基準(zhǔn)模型進(jìn)行通道剪枝,并加入了超參數(shù)優(yōu)化和網(wǎng)絡(luò)蒸餾等訓(xùn)練策略,實(shí)現(xiàn)了 2.5 倍加速下分類精度損失 0.4%,3.3 倍加速下精度損失 0.7%,且顯著優(yōu)于未壓縮的 ResNet-44 模型; 在 ImageNet 數(shù)據(jù)集上,PocketFlow 可以對(duì)原本已經(jīng)十分精簡(jiǎn)的 MobileNet 模型繼續(xù)進(jìn)行權(quán)重稀疏化,以更小的模型尺寸取得相似的分類精度;與 Inception-V1、ResNet-18 等模型相比,模型大小僅為后者的約 20~40%,但分類精度基本一致(甚至更高)。
相比于費(fèi)時(shí)費(fèi)力的人工調(diào)參,PocketFlow 框架中的 AutoML 自動(dòng)超參數(shù)優(yōu)化組件僅需 10 余次迭代就能達(dá)到與人工調(diào)參類似的性能,在經(jīng)過 100 次迭代后搜索得到的超參數(shù)組合可以降低約 0.6% 的精度損失;通過使用超參數(shù)優(yōu)化組件自動(dòng)地確定網(wǎng)絡(luò)中各層權(quán)重的量化比特?cái)?shù),PocketFlow 在對(duì)用于 ImageNet 圖像分類任務(wù)的 MobileNet-v1 模型進(jìn)行壓縮時(shí),取得了一致性的性能提升;用 PocketFlow 平均量化比特?cái)?shù)為 8 時(shí),準(zhǔn)確率不降反升,從量化前的 70.89% 提升到量化后的 71.29%。
PocketFlow 落地助力內(nèi)部移動(dòng)應(yīng)用 AI 落地
在騰訊公司內(nèi)部,PocketFlow 框架正在為多項(xiàng)移動(dòng)端業(yè)務(wù)提供模型壓縮與加速的技術(shù)支持。例如,在手機(jī)拍照 APP 中,人臉關(guān)鍵點(diǎn)定位模型是一個(gè)常用的預(yù)處理模塊,通過對(duì)臉部的百余個(gè)特征點(diǎn)(如眼角、鼻尖等)進(jìn)行識(shí)別與定位,可以為后續(xù)的人臉識(shí)別、智能美顏等多個(gè)應(yīng)用提供必要的特征數(shù)據(jù)。我們基于 PocketFlow 框架,對(duì)人臉關(guān)鍵點(diǎn)定位模型進(jìn)行壓縮,在保持定位精度不變的同時(shí),大幅度地降低了計(jì)算開銷,在本身已經(jīng)十分精簡(jiǎn)的網(wǎng)絡(luò)上取得了 1.3 ~ 2 倍不等的加速效果,壓縮后的模型已經(jīng)在實(shí)際產(chǎn)品中得到部署。
在人體體態(tài)識(shí)別項(xiàng)目中,PocketFlow 更是在滿足上線精度的要求下,使得模型推理速度有 3 倍以上的加速, 為項(xiàng)目的移動(dòng)端落地起到了決定性的作用。
(邯鄲建站)
小米應(yīng)用商店發(fā)布消息稱 持續(xù)開展“APP 侵害用戶權(quán)益治理”系列行動(dòng) 11:37:04
騰訊云與CSIG成立政企業(yè)務(wù)線 加速數(shù)字技術(shù)在實(shí)體經(jīng)濟(jì)中的落地和應(yīng)用 11:34:49
樂視回應(yīng)還有400多人 期待新的朋友加入 11:29:25
亞馬遜表示 公司正在將其智能購(gòu)物車擴(kuò)展到馬薩諸塞州的一家全食店 10:18:04
三星在元宇宙平臺(tái)推出游戲 玩家可收集原材料制作三星產(chǎn)品 09:57:29
特斯拉加州San Mateo裁減229名員工 永久關(guān)閉該地區(qū)分公司 09:53:13