【導(dǎo)讀】
「是什么黑科技,成全了AI又快又準又省的心愿?」
有什么比禿頭更心酸的嗎?
有,比如智能機器人將禿了的后腦勺識別成未戴口罩的臉,跟隨一路提醒佩戴口罩。
如今AI應(yīng)用已非常普遍,這過程中也收獲了不少“人工智障”的笑話,上述只是其中一個,除了離譜的圖像自動識別,還有答非所問的智能對話。
自迎來以深度學(xué)習(xí)為代表的第三次發(fā)展浪潮,人工智能技術(shù)已被廣泛應(yīng)用在目標(biāo)檢測、圖像識別、自然語言處理(NLP)等場景,從語音識別、自動送餐機器人到生產(chǎn)線影像監(jiān)控,AI的身影無處不在。
客戶的業(yè)務(wù)需求與創(chuàng)新應(yīng)用對AI推理和訓(xùn)練的效率和質(zhì)量都提出了更為嚴格的要求,推動人工智能發(fā)展從三個方面——數(shù)據(jù)、算力、算法都需要進一步調(diào)優(yōu)和高效。
兩全其美之事已是世間難得,倘若想要在一件事上達到“三全”,著實有些困難且“貪心”。
但踏平“人工智障”,真的需要“貪心”一些。
數(shù)據(jù)精度、存儲空間、處理速度,發(fā)展AI必須三者共同進步
數(shù)據(jù)、算力和算法之間存在一些原生矛盾。
通常來說,數(shù)據(jù)類型的寬度越大,能表達的動態(tài)范圍和精度也就越高。
更大的動態(tài)范圍和更高的精度意味著更多的存儲空間 ,譬如FP32就需要FP16兩倍的內(nèi)存占用,并給內(nèi)存帶寬帶來成倍的壓力,對算力帶來挑戰(zhàn)。
同時算法層面,盡管深度學(xué)習(xí)是人工智能(AI)近幾年重新走紅的功臣,也是吞噬算力的巨大 “黑洞”。
這三者平衡起來依然也會存在困難,從數(shù)據(jù)類型的層面,要節(jié)省存儲空間就需要做出一定的讓步或犧牲,例如,Google為加速AI深度學(xué)習(xí)而引入的BFloat16(BF16)數(shù)據(jù)類型,用FP16的數(shù)據(jù)寬度實現(xiàn)了與FP32相當(dāng)?shù)膭討B(tài)范圍,其代價是精度有所降低。
這只是解決了一方面,但如果實現(xiàn)“既準,又省,還快”三重快樂AI,三大要素必須共同發(fā)力:簡化數(shù)據(jù),強化算力,優(yōu)化算法。
英特爾深度學(xué)習(xí)加速技術(shù):準、省、快,低精度成就高效率!
算法上的革新是重中之重。
如同上述所說,大多數(shù)深度學(xué)習(xí)應(yīng)用在其訓(xùn)練和推理工作負載中多采用 32 位浮點精度(FP32),盡管精度高但占用更大內(nèi)存,進而影響計算效率。
當(dāng)數(shù)據(jù)格式由 FP32 轉(zhuǎn)為 8 位整數(shù)(INT8)或 16 位浮點數(shù)(BF16)時,內(nèi)存可以移動更多的數(shù)據(jù)量,進而更大化地利用計算資源。
圖說:不同數(shù)據(jù)格式對內(nèi)存利用率的影響
這種精度的降低會對數(shù)據(jù)處理的準確率造成影響嗎?
答案是:并不會,或者說影響微乎其微。
近年來已有眾多研究和實踐表明,以較低精度的數(shù)據(jù)格式進行深度學(xué)習(xí)訓(xùn)練和推理,并不會對結(jié)果的準確性帶來太多影響, 譬如BF16用于訓(xùn)練,INT8用于推理,能夠?qū)蚀_率的損失降至最低,甚至完全沒有損失。
而低精度數(shù)據(jù)格式帶來的優(yōu)勢,也不僅在于提升內(nèi)存利用效率,在深度學(xué)習(xí)常見的乘法運算上,它也能減少處理器資源消耗并實現(xiàn)更高的操作速度(OPS)。
算法的升級助力了“準”和“省”的達標(biāo),但“快”的層面還略有些差強人意。
為了保證推理過程中的精度,在CPU的向量處理單元中進行矩陣運算的時候,先將8位值相乘再累加到32位,需要3條指令來完成,代價是3倍的指令數(shù),這也導(dǎo)致峰值運算性能只提高了33%。
那么“提速”任務(wù)就交給了算力單元。
英特爾® 深度學(xué)習(xí)加速(英特爾®Deep Learning Boost,簡稱DL Boost)技術(shù)的精髓,就是把對低精度數(shù)據(jù)格式的操作指令融入到了 AVX-512 指令集中, 即AVX-512_VNNI (Vector Neural Network Instruction,矢量神經(jīng)網(wǎng)絡(luò)指令) 和 AVX-512_BF16 (bfloat16),分別提供了對 INT8(主打推理)和 BF16(兼顧推理和訓(xùn)練)的支持。
英特爾® 深度學(xué)習(xí)加速技術(shù)帶來訓(xùn)練和推理效率提升
至此,英特爾® DL Boost技術(shù)可以讓人工智能達到三全,即:
?。?/strong> 簡化數(shù)據(jù),提高內(nèi)存容量和帶寬的利用率,緩解內(nèi)存壓力;
準: 優(yōu)化算法,模型量化使用較低的數(shù)值精度也能保證結(jié)果的準確性,特別是推理應(yīng)用;
快: 強化算力,避免增加額外操作,保證性能與內(nèi)存利用率同步提升。
推理與訓(xùn)練,硬件加速雙管齊下
如同一條道路上,通過車輛的體型變小(簡化后的數(shù)據(jù)),通過的車輛數(shù)量自然就上來了。
兩種新的、針對 AI 應(yīng)用的 AVX-512 指令集使道路(寄存器)上通過了更多的 車輛(數(shù)據(jù)量),新的指令集無疑能使計算效率獲得大幅提升。
點擊此處回顧英特爾AVX指令集的前世今生《這項15年前的「超前」技術(shù)設(shè)計,讓CPU在AI推理時代大放光彩》
這兩種不同指令集的優(yōu)勢也有所不同。
從代號Cascade Lake的英特爾第二代至強可擴展處理器開始,AVX-512指令集就增加了VNNI,用一條FMA指令就可以完成8位乘法再累加到32位的操作。
2020 年問世的第三代英特爾® 至強® 可擴展處理器已集成了英特爾® 深度學(xué)習(xí)加速技術(shù)這兩種 AI 加速指令集,并被廣泛運用于商業(yè)深度學(xué)習(xí)應(yīng)用的訓(xùn)練和推理過程。
在指令集的支持下,簡化數(shù)據(jù)的同時避免了額外的開銷,讓性能可以獲得與內(nèi)存利用率一致的提升。AVX-512_VNNI 使用INT8做推理,對比使用FP32,理論上可以獲得4倍的性能,而將內(nèi)存要求降至 ¼。
內(nèi)存的減少和頻率的提高加快了低數(shù)值精度運算的速度,最終加速 AI 和深度學(xué)習(xí)推理,適合圖像分類、語音識別、語音翻譯、對象檢測等眾多方面。
而AVX-512_BF16 的優(yōu)勢是既可以用于推理,也可以用于訓(xùn)練,能幫助訓(xùn)練性能提升達 1.93 倍。代號Cooper Lake的英特爾第三代至強可擴展處理器就集成了bfloat16加速功能,在與FP32相似的精度下,提升性能和內(nèi)存利用率。
軟硬協(xié)同設(shè)立“AI改造車間”,CPU多場景應(yīng)用優(yōu)勢盡顯
算力、算法、數(shù)據(jù)如今都有各自標(biāo)準以及解決辦法,當(dāng)三者形成完整閉環(huán)時,如何讓整個流程的效率更上一層?
依然還有可以繼續(xù)進步的地方,那就是:AI 應(yīng)用原生的數(shù)據(jù)格式并不統(tǒng)一的情況下,如何高效的把大量采用傳統(tǒng)FP32數(shù)據(jù)格式的AI模型轉(zhuǎn)換成BF16或INT8格式使用。
由英特爾推出的 OpenVINO™ 工具套件提供了模型量化功能,為上述問題提供了應(yīng)對良方。
它能讓基于不同 AI 框架,如 TensorFlow、MXNet、PyTorch 等構(gòu)建的 FP32 數(shù)據(jù)格式 AI 模型,在損失很少精度的情況下轉(zhuǎn)化為 INT8 和 BF16 數(shù)據(jù)格式。
除模型量化功能外,針對一系列 AI 應(yīng)用場景,如視覺模擬、自動語音識別、自然語言處理及推薦系統(tǒng)等,OpenVINO™ 工具套件還提供了能提升它們開發(fā)和部署效率的組件,例如 OpenVINO™ Model Server 和 OpenVINO™ Model Zoo 等組件可對基于 TensorFlow、PyTorch、MxNet、Keras 等不同框架構(gòu)建的訓(xùn)練模型實施更為高效的優(yōu)化,并簡化這些模型部署的流程及耗時。
AI應(yīng)用場景頗多,那何種場景更能突顯AVX-512_BF16等深度學(xué)習(xí)加速技術(shù)的優(yōu)勢?
例如在醫(yī)療影像此類重視準確性多過于實時性 的場景中,匯醫(yī)慧影在乳腺癌影像分析場景中引入了集成有英特爾® 深度學(xué)習(xí)加速技術(shù)的第二代英特爾® 至強® 可擴展處理器,配合 OpenVINO™ 工具套件,在對檢測模型進行了 INT8 轉(zhuǎn)換和優(yōu)化后,推理速度較原始方案提升高達 8.24 倍,且精確度損失不到 0.17%。
企業(yè)啟動構(gòu)建AI應(yīng)用,改弦更張并非性價比之選,可以充分評估既有的數(shù)據(jù)存儲、處理和分析平臺,如此一來,基于又準又快又省的CPU,或借助它構(gòu)建和部署符合自身需求的AI應(yīng)用。
更何況,CPU自身的AI能力也在不斷進化中,即將發(fā)布的代號為Sapphire Rapids的英特爾第四代至強可擴展處理器,就加入了簡稱AMX的高級矩陣擴展(Advanced Matrix Extensions)技術(shù)。
AMX是新的x86擴展,具有自己的存儲和操作,主要針對AI領(lǐng)域非常重要的平鋪矩陣乘法,比前兩種DL Boost的實現(xiàn)更為復(fù)雜,那效果呢?我們(帶上顯微鏡)拭目以待吧~
點擊鏈接:https://www.intel.cn/content/www/cn/zh/artificial-intelligence/deep-learning-boost.html, 了解更多深度學(xué)習(xí)加速技術(shù)。
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!