英特爾張宇:軟硬結(jié)合創(chuàng)新助力邊緣智能應(yīng)用落地
人工智能的發(fā)展一次又一次打破了人們對(duì)技術(shù)的認(rèn)知。隨著行業(yè)數(shù)字化轉(zhuǎn)型,人們對(duì)于敏捷連接,實(shí)施的業(yè)務(wù)以及應(yīng)用的智能等方面的訴求,推動(dòng)了邊緣人工智能的發(fā)展。相比于火熱的大模型,張宇博士坦言,邊緣人工智能目前絕大部分的應(yīng)用還處于邊緣推理階段。利用大量數(shù)據(jù)以及極大算力在數(shù)據(jù)中心訓(xùn)練一個(gè)模型,把訓(xùn)練的結(jié)果推送到前端去執(zhí)行一個(gè)推理操作,這是目前絕大部分在邊緣實(shí)現(xiàn)人工智能的使用模式。這種模式不可避免會(huì)限制模型更新頻率,但是很多智能行業(yè)對(duì)模型的更新實(shí)際上是有訴求的。
張宇博士認(rèn)為人工智能發(fā)展的第二個(gè)階段應(yīng)該是邊緣訓(xùn)練階段,但是邊緣訓(xùn)練并不是把數(shù)據(jù)中心的訓(xùn)練方法照搬到邊緣來進(jìn)行實(shí)現(xiàn)。因?yàn)樵谶吘墎韺?shí)現(xiàn)訓(xùn)練,有很多特定問題和特定挑戰(zhàn)需要解決。比如在智能制造領(lǐng)域或者是在自動(dòng)駕駛領(lǐng)域?qū)崿F(xiàn)邊緣訓(xùn)練,執(zhí)行這些操作的人員往往是產(chǎn)線工人或汽車駕駛?cè)藛T。這些人員往往沒有人工智能經(jīng)驗(yàn),同時(shí)也沒有精力幫你做人工智能操作。
邊緣人工智能的發(fā)展,從歷史上來看,它應(yīng)該發(fā)展成三個(gè)階段:第一個(gè)階段是邊緣推理,第二個(gè)階段是邊緣訓(xùn)練,第三個(gè)階段是邊緣的自主機(jī)器學(xué)習(xí)。邊緣人工智能的發(fā)展實(shí)際上面臨著眾多的挑戰(zhàn),除了前面提到的有關(guān)邊緣訓(xùn)練的挑戰(zhàn)以外,還有邊緣設(shè)備面臨的挑戰(zhàn)。由于提供的算力所能夠承載的功耗往往是有限的,所以如何在有限資源的情況下去實(shí)現(xiàn)邊緣的推理及訓(xùn)練,這對(duì)芯片的性能、功耗比提出了更高的要求。另外,邊緣設(shè)備的碎片化非常明顯,如何利用軟件很好地實(shí)現(xiàn)在不同平臺(tái)之間的遷移,實(shí)際上也提出了更多要求。
張宇直言,如果我們要邊緣實(shí)現(xiàn)邊緣訓(xùn)練,就需要有更加自動(dòng)化的手段和工具去完成從數(shù)據(jù)標(biāo)注到模型的訓(xùn)練,以及模型部署一整套完整的開發(fā)流程。他認(rèn)為邊緣人工智能下一步的發(fā)展方向應(yīng)該是自主學(xué)習(xí)階段,也就是邊緣的auto machine learning。作為自主學(xué)習(xí),人工智能應(yīng)該能夠感知人的意圖。根據(jù)人的意圖,它能夠設(shè)計(jì)一個(gè)合理的網(wǎng)絡(luò)模型結(jié)構(gòu),或選取一個(gè)合理的人工智能網(wǎng)絡(luò)模型,然后自主選擇相應(yīng)訓(xùn)練數(shù)據(jù)集進(jìn)行訓(xùn)練,再把訓(xùn)練結(jié)果自主推送到前端去執(zhí)行相應(yīng)推理操作,完成一整套自主化的過程。
人工智能的發(fā)展離不開算力,離不開數(shù)據(jù),其實(shí)數(shù)據(jù)的背后又離不開通信技術(shù)以及存儲(chǔ)技術(shù)。應(yīng)該說推動(dòng)本輪人工智能發(fā)展最核心的要素,實(shí)際上是計(jì)算、通訊和存儲(chǔ)技術(shù)的不斷提升。張宇博士介紹,英特爾作為一家數(shù)據(jù)公司,產(chǎn)品恰恰涵蓋了計(jì)算、通訊和存儲(chǔ)的各個(gè)方面。在計(jì)算方面,英特爾提供的是包括CPU、GPU、FPGA和各種人工智能加速芯片在內(nèi)的多種產(chǎn)品,來滿足用戶對(duì)于算力的不同要求。在硬件方面,考慮到邊緣人工智能對(duì)于算力、功耗、安全的不同要求,英特爾所采取的思路是同時(shí)推動(dòng)通用處理器和通用GPU并舉的方案。在前端方面,我們會(huì)根據(jù)不同場景的要求選擇不同的產(chǎn)品組合,包括獨(dú)立顯卡、集成顯卡、CPU以及Habana。
英特爾有不同的計(jì)算資源可供用戶使用,但這需要考慮資源分配和調(diào)度問題。對(duì)于資源調(diào)度,需要一個(gè)統(tǒng)一的API接口,否則不同的資源調(diào)度都需要不同的接口,這是不經(jīng)濟(jì)的。因此,英特爾正在考慮如何在異構(gòu)平臺(tái)上合理分配負(fù)載,以進(jìn)行人工智能處理。在底層方面,英特爾采用了OneAPI的思路,它基于DPC++編程模式,利用OneAPI提供的優(yōu)化庫,在英特爾硬件平臺(tái)上高效調(diào)用底層資源。這是英特爾在底層方面的戰(zhàn)略,并且是我們目前一直在進(jìn)行的工作。
在上層調(diào)度方面,我們首先需要考慮資源分配的問題。對(duì)于大模型的訓(xùn)練,不同的應(yīng)用有不同的算法模型和算力要求,因此我們不能使用至強(qiáng)處理器來進(jìn)行訓(xùn)練。目前,我們主要推薦使用專門為大模型訓(xùn)練設(shè)計(jì)的Habana Gaudi 2。在最近的MLCommons公開的AI評(píng)測中,只有英特爾和另一家友商展示了在大模型訓(xùn)練方面的良好性能,其中英特爾是其中之一。我們計(jì)劃不久將其引入中國,并發(fā)布相關(guān)活動(dòng),這對(duì)英特爾來說非常重要。
在軟件推理方面,英特爾提供的OpenVINO深度學(xué)習(xí)的部署工具套件,可以將開發(fā)人員在開放的人工智能框架上所設(shè)計(jì)和訓(xùn)練好的網(wǎng)絡(luò)模型交給OpenVINO,它可以幫助開發(fā)人員完成從建模到優(yōu)化到部署的開發(fā)過程。在建模方面,OpenVINO提供三百多個(gè)預(yù)訓(xùn)練好的網(wǎng)絡(luò)模型。開發(fā)人員可以在模型基礎(chǔ)之上直接進(jìn)行應(yīng)用的開發(fā),或者在這些模型之上進(jìn)行二次訓(xùn)練,加速模型的構(gòu)建速度。在優(yōu)化方面,OpenVINO使用的是網(wǎng)絡(luò)壓縮的技術(shù),能夠?qū)⒛P驮诒WC精度的情況下進(jìn)行簡化。其實(shí)網(wǎng)絡(luò)壓縮是一個(gè)很大的概念,里面包含了若干技術(shù)。除了量化的技術(shù)以外,還包括低比特等一系列的技術(shù)。在訓(xùn)練完成后,將訓(xùn)練結(jié)果傳遞給OpenVINO進(jìn)行硬件平臺(tái)的適配。在OpenVINO的新版本中,它提供了Auto插件,用戶只需告訴OpenVINO自己關(guān)注的性能指標(biāo),如延遲或吞吐量,OpenVINO就能夠自動(dòng)探測硬件類型并進(jìn)行硬件配置,將工作負(fù)載下發(fā)到相應(yīng)的硬件上執(zhí)行人工智能操作。因此,我們希望通過OpenVINO來處理調(diào)度問題。
在調(diào)度之前,我們需要進(jìn)行模型壓縮。壓縮不是普通的壓縮,而是根據(jù)使用場景、行業(yè)和關(guān)注特征等進(jìn)行有針對(duì)性的優(yōu)化,以便于使用OpenVINO進(jìn)行部署和分配硬件負(fù)載。因此,在底層方面,我們采用OneAPI來進(jìn)行統(tǒng)一,而在推理方面,我們將利用OpenVINO來進(jìn)行負(fù)載的分配。對(duì)于大模型的訓(xùn)練,我們將使用Habana Gaudi 2來完成。
評(píng)論