近日,“算網(wǎng)筑基、開源啟智、AI賦能”第四屆OpenI/O啟智開發(fā)者大會(huì)于深圳成功舉行。大會(huì)圍繞中國(guó)算力網(wǎng)資源基座、開源社區(qū)服務(wù)支撐環(huán)境、國(guó)家級(jí)開放創(chuàng)新應(yīng)用平臺(tái)三大部分,探討如何高效建設(shè)適合我國(guó)的人工智能開源生態(tài)體系。
會(huì)上,百度飛槳聯(lián)合大會(huì),圍繞“引領(lǐng)前沿技術(shù),推動(dòng)產(chǎn)業(yè)升級(jí)”的主題,舉辦“深度學(xué)習(xí)與大模型產(chǎn)業(yè)應(yīng)用專場(chǎng)”論壇。
作為飛槳的生態(tài)合作伙伴,昆侖芯科技受邀參與該論壇并進(jìn)行主題演講,與多位人工智能技術(shù)專家和資深工程師,從算法、硬件及大模型等不同視角進(jìn)行深入探討,介紹各領(lǐng)域深度學(xué)習(xí)及大模型在產(chǎn)業(yè)應(yīng)用的最新進(jìn)展與技術(shù)突破。
昆侖芯科技資深架構(gòu)師 侯玨
本篇以下內(nèi)容整理于昆侖芯科技資深架構(gòu)師侯玨題為《昆侖芯×飛槳——AI產(chǎn)業(yè)實(shí)踐與“芯”生態(tài)》演講實(shí)錄。
大家好,我是來自昆侖芯科技的侯玨。很高興有這個(gè)機(jī)會(huì)跟大家交流和分享。我分享的題目是《昆侖芯×飛槳——AI產(chǎn)業(yè)實(shí)踐與“芯”生態(tài)》。本次主題演講分為四個(gè)方面:
1. 關(guān)于昆侖芯科技
2. 昆侖芯x飛槳生態(tài)
3. 大模型:訓(xùn)練和推理
4. AI產(chǎn)業(yè)實(shí)踐
01
關(guān)于昆侖芯科技
昆侖芯科技前身是百度智能芯片及架構(gòu)部,2011年開始研發(fā)基于FPGA的加速器,截止2017年,F(xiàn)PGA系列的加速器部署數(shù)量超過12000片。2018年,我們正式啟動(dòng)了昆侖芯AI芯片產(chǎn)品的研發(fā),發(fā)布第一代產(chǎn)品,2020年成功進(jìn)行了大規(guī)模部署。緊接著,第二代系列產(chǎn)品于2021年8月成功量產(chǎn),到了2022年,昆侖芯二代產(chǎn)品就開始啟動(dòng)互聯(lián)網(wǎng)及相關(guān)行業(yè)的交付,不斷有項(xiàng)目在落地中。
從我們十幾年來的AI芯片及其相關(guān)行業(yè)的經(jīng)驗(yàn)來看,AI芯片產(chǎn)業(yè)化要重點(diǎn)解決三個(gè)問題。我們內(nèi)部一致認(rèn)為,可以把三個(gè)問題稱為三道窄門:一定要過的門,而且門還挺窄。
首先芯片要量產(chǎn),量產(chǎn)是前提。只有把芯片做到量產(chǎn)、規(guī)?;拍芷綌偳捌诹髌?、研發(fā)、設(shè)計(jì)等一系列成本。并且,一個(gè)芯片是不是能夠成功量產(chǎn),也是衡量芯片本身是否成熟的一個(gè)標(biāo)志。
其次,有配套的軟件生態(tài)。這個(gè)軟件生態(tài)指的是芯片自己的軟件以及周邊的一些軟件。顯而易見,如果我們只做了一個(gè)芯片給客戶,客戶不知道如何使用芯片,或者說不知道芯片能夠給其業(yè)務(wù)帶來怎樣的幫助,在市場(chǎng)上就沒有什么競(jìng)爭(zhēng)力。所以,我們?cè)谧鲕浖鷳B(tài)時(shí),除了做昆侖芯自己的一套軟件棧,包括編譯器、SDK、算子庫(kù)、模型庫(kù)等,還為開發(fā)者社區(qū)以及一定量的用戶構(gòu)建了整個(gè)的軟件生態(tài)。
最后,做產(chǎn)品化。雖然我們說一定要成就客戶,要完成具體的項(xiàng)目來實(shí)現(xiàn)我們的業(yè)務(wù)落地,但實(shí)際上更重要的是投入長(zhǎng)期努力,把一款芯片做好,把一組芯片做好,長(zhǎng)期地做出產(chǎn)品來,才能夠保證我們的商業(yè)模式是可持續(xù)發(fā)展的狀態(tài)。
然后介紹一下昆侖芯科技的產(chǎn)品。首先向大家展示的是昆侖芯二代產(chǎn)品系列中的R200加速卡,是一個(gè)全高全長(zhǎng)雙槽位的卡,可以進(jìn)行INT8、INT16、FP16、FP32多種精度的計(jì)算。算力、內(nèi)存、訪存帶寬等細(xì)節(jié)可參見上圖表格。R200可以搭配昆侖芯軟件棧,也可以搭配飛槳上層的軟件棧。例如,昆侖芯可支持飛槳的深度學(xué)習(xí)框架,同時(shí)支持飛槳框架的各種相關(guān)周邊套件,進(jìn)行推理、訓(xùn)練。
大家會(huì)想,只有一張卡也許干不了什么事。因此,針對(duì)多卡并行計(jì)算的需求,我們又做了一個(gè)加速器組。大家可以買一些R200加速卡自己拼,但應(yīng)該沒有我們拼的好,因?yàn)槲覀冊(cè)谧黾铀倨鹘M時(shí),專門做了卡片間的互聯(lián),可達(dá)200GB/s。當(dāng)然,8張卡在一起,算力和顯存也達(dá)到了原來的8倍。單機(jī)多卡的形式基本上可以滿足最常見的單機(jī)的推理或者并行訓(xùn)練的需求。
有的朋友可能仍覺得不方便,為此,我們聯(lián)合飛槳以及百度的全功能AI開發(fā)平臺(tái)BML,做了一個(gè)開箱即用的昆侖芯軟硬集成一體機(jī)。圖上是一個(gè)2U的服務(wù)器,里面有面板、CPU、內(nèi)存、開發(fā)平臺(tái)等所有東西。此外,還集成了飛槳的穩(wěn)定發(fā)布版本,以及內(nèi)置了100多個(gè)各行各業(yè)的模型,真正做到了開箱即用。也就是說,從我們這買了一臺(tái)2U或4U的服務(wù)器,只需要插個(gè)電線和網(wǎng)線,就可以用了。
02
昆侖芯×飛槳生態(tài)
首先,我們說深度學(xué)習(xí)框架是AI時(shí)代的操作系統(tǒng),AI芯片是AI時(shí)代的核心算力支撐??蚣芎托酒年P(guān)系大概就如圖所示:框架在中間,上面是應(yīng)用和服務(wù)編排,底下是芯片。大家的業(yè)務(wù)應(yīng)用都需要通過業(yè)務(wù)模型和服務(wù)編排,再跑到框架,框架負(fù)責(zé)把用戶的腳本、組網(wǎng)代碼、參數(shù)、優(yōu)化器等拿到。更準(zhǔn)確的說,框架把各種神經(jīng)網(wǎng)絡(luò)層、優(yōu)化算法、學(xué)習(xí)率衰減等數(shù)據(jù)拿到之后,會(huì)把實(shí)際的計(jì)算過程翻譯成各個(gè)算子,下發(fā)到AI芯片上進(jìn)行真正的計(jì)算,算好了之后再把結(jié)果拿回框架里,繼續(xù)調(diào)下一個(gè)算子。
我們按照這個(gè)邏輯做了昆侖芯和飛槳的適配,原則是你要什么,我就有什么。接下來為大家介紹下重點(diǎn)。
首先從下往上說,最底下是設(shè)備管理層。飛槳的框架有一個(gè)設(shè)備管理模塊,對(duì)接著我們提供的驅(qū)動(dòng)和運(yùn)行時(shí)模塊,也就是昆侖芯的runtime,這樣框架就能識(shí)別到我們的設(shè)備,并且往我們的設(shè)備上下發(fā)指令,包括申請(qǐng)內(nèi)存等。
再往上是計(jì)算執(zhí)行層。這一層是以飛槳的算子庫(kù)為主,飛槳的算子庫(kù)有大量的算子,其中很多是昆侖芯提供的,也有很多是昆侖芯與飛槳一起提供的。在昆侖芯軟件棧中,有XDNN算子庫(kù)和XTDK編程接口。從飛槳角度看,可以像調(diào)用其它異構(gòu)計(jì)算硬件一樣,把要執(zhí)行的操作,通過算子調(diào)用的方式下發(fā)到設(shè)備上,也就是大家所說的:我們要launch一個(gè)kennel,然后去拿結(jié)果,在host上發(fā)起操作,在device上執(zhí)行,設(shè)備內(nèi)部算好了再返回給框架。有了這兩件事,單機(jī)單卡所有的事都能搞定。
但大家會(huì)發(fā)現(xiàn)單機(jī)單卡越來越不夠用,所以上面還有一個(gè)分布式通信層。昆侖芯有集合通信庫(kù)(Communication library),把它和飛槳的分布式通信(fleet)模塊結(jié)合起來,就可以做到通信所需要的send、receive、all_reduce等,也就可以實(shí)現(xiàn)單機(jī)多卡、多機(jī)多卡的訓(xùn)練和推理。
從時(shí)間軸上來看,我們跟飛槳的合作從2018開始,合作經(jīng)歷了從簡(jiǎn)單到困難、從推理到訓(xùn)練、從相對(duì)單一的場(chǎng)景擴(kuò)展到了更復(fù)雜的場(chǎng)景的不同階段。我們一共支持了大概300多個(gè)算子,還有大規(guī)模驗(yàn)證的50多個(gè)模型。(沒準(zhǔn)兒我正在做主題演講的同時(shí),昆侖芯和飛槳的QA同學(xué)又測(cè)試通過了模型,這個(gè)數(shù)兒還得往上加。)對(duì)應(yīng)的流水線和單元測(cè)試我們也都有,這是穩(wěn)定、正式的發(fā)布情況。此外,還有200多個(gè)小模型跑通了飛槳TIPC認(rèn)證的全流程。
需要注意的是,并不是只有50多個(gè)模型可以跑,而是因?yàn)轱w槳框架已經(jīng)有了這個(gè)機(jī)制,萬一遇到了個(gè)別很奇怪的算子,沒法放在device上算,就可以自動(dòng)fallback到CPU上,速度也許會(huì)慢點(diǎn),但也能算。并且我們也在不斷更新中,將業(yè)界最新的論文、百度各種自研的模型加入到我們的支持列表中來。
上圖列出了一些我們已經(jīng)適配好的模型,有圖像分類、檢測(cè)、分割、OCR、自然語言處理(NLP)等。其中有一些是飛槳特色的模型,例如PPYOLO、PPOCR等“PP”開頭的模型。在飛槳的官方網(wǎng)站上也可以看到,如何使用昆侖芯進(jìn)行編譯、安裝,運(yùn)行飛槳的各種操作,可供大家參考。
03
大模型:訓(xùn)練和推理
下一部分是介紹我們?cè)诖竽P蜕蠈iT進(jìn)行的一些工作,包括訓(xùn)練和推理兩部分。
訓(xùn)練部分,昆侖芯可全部支持飛槳的四種數(shù)據(jù)并行方式:數(shù)據(jù)并行(DP)、分組切分并行(Sharding)、張量模型并行(MP)、流水線并行(PP)。如果大家用飛槳運(yùn)行這四種并行方式時(shí)很順利,在用昆侖芯計(jì)算時(shí)應(yīng)該也不會(huì)有什么問題,只需要把大家熟悉的set_device操作,在昆侖芯的設(shè)備上執(zhí)行。原理很簡(jiǎn)單,所有飛槳需要的操作我們都可以支持,有kennel、通信算子,那么這些支持就都不是難事。
此外,我們也支持飛槳的各種套件,例如PaddleClass、PaddleDetection等。大家在用PaddleClass、PaddleDetection時(shí),把模型配置中的yaml文件中的項(xiàng)目use_xpu=true打開一下即可。
推理部分,針對(duì)Transformer,我們專門開發(fā)了XPU Faster Transformer工具,可以對(duì)算子進(jìn)行fusion,在針對(duì)這些Transformer類型的網(wǎng)絡(luò)結(jié)構(gòu)時(shí)進(jìn)行加速,并且可以節(jié)約很多顯存。我們?cè)谏厦孢M(jìn)行了很多針對(duì)性的性能優(yōu)化,使它可以在昆侖芯硬件上充分發(fā)揮優(yōu)勢(shì)。
04
AI產(chǎn)業(yè)實(shí)踐
首先來看一個(gè)典型的工業(yè)質(zhì)監(jiān)場(chǎng)景。一個(gè)工業(yè)攝像機(jī)拍攝一組零件的健康狀況,通過機(jī)械臂把不合格的產(chǎn)品踢掉。
這個(gè)原理看似是圖片上那么簡(jiǎn)單,但需要做到推理、訓(xùn)練兩件事才能實(shí)現(xiàn)。例如要有機(jī)構(gòu)硬件、深度學(xué)習(xí)平臺(tái)、推理引擎、Serving、模型訓(xùn)練等等,這些事情做完后就可以拿到一個(gè)高效率、高速度的工業(yè)質(zhì)檢流水線。
還有一個(gè)文檔相關(guān)的案例??赡苡蟹山缁蛳嚓P(guān)行業(yè)的朋友知道“三書一函”。首先需要對(duì)文檔進(jìn)行分析、導(dǎo)入,包括文字識(shí)別、語義分析、語義理解,做成一個(gè)知識(shí)圖譜并保存,就可以進(jìn)行完整的檢測(cè)和語義分析,最后拿到結(jié)果排序,實(shí)現(xiàn)了業(yè)務(wù)全流程的數(shù)字化,同時(shí)支持用戶的自定義模型。
昆侖芯落地案例豐富,前面兩個(gè)案例是選擇的比較通俗易懂的進(jìn)行講解。上圖是一個(gè)全棧的技術(shù)生態(tài)圖景,從底層的芯片、服務(wù)器,到中間的昆侖芯SDK,再到飛槳框架,我們就可以幫助大家把業(yè)務(wù)目標(biāo)落地。
本次主題分享的題目是“芯”生態(tài),“芯”是“芯片”的“芯”,也是“昆侖芯”的“芯”。我希望昆侖芯和飛槳,以及一系列上層應(yīng)用,可以在各行各業(yè)發(fā)揮出力量,從芯片、框架到算法,從軟件到硬件,持續(xù)做大做強(qiáng),和各位開發(fā)者、客戶一起互相促進(jìn)、互相成就、共同進(jìn)步。
最后,非常感謝大家的聆聽,歡迎大家訪問昆侖芯科技的官網(wǎng)。
-
AI
+關(guān)注
關(guān)注
87文章
31442瀏覽量
269836 -
開發(fā)者
+關(guān)注
關(guān)注
1文章
590瀏覽量
17055 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5511瀏覽量
121393 -
飛槳
+關(guān)注
關(guān)注
0文章
33瀏覽量
2322 -
昆侖芯科技
+關(guān)注
關(guān)注
0文章
28瀏覽量
639
原文標(biāo)題:分享|昆侖芯科技資深架構(gòu)師侯玨:昆侖芯×飛槳——AI產(chǎn)業(yè)實(shí)踐與“芯”生態(tài)
文章出處:【微信號(hào):昆侖芯科技,微信公眾號(hào):昆侖芯科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論