在人工智能時(shí)代,深度學(xué)習(xí)框架下接芯片,上承各種應(yīng)用,是“智能時(shí)代的操作系統(tǒng)”。近期,我國(guó)首個(gè)自主研發(fā)、功能完備、開(kāi)源開(kāi)放的產(chǎn)業(yè)級(jí)深度學(xué)習(xí)框架飛槳發(fā)布了2.0正式版,實(shí)現(xiàn)了一次跨時(shí)代的升級(jí)。
這次2.0版本的發(fā)布對(duì)于飛槳來(lái)說(shuō),可以說(shuō)是一次“基礎(chǔ)設(shè)施”的全面更新?lián)Q代!生活中,我們看到過(guò)很多基礎(chǔ)設(shè)施建設(shè)工程,例如西電東送、南水北調(diào)、高鐵建設(shè)等等,這些在保證生產(chǎn)生活設(shè)施正常運(yùn)行、推動(dòng)整個(gè)社會(huì)的經(jīng)濟(jì)發(fā)展和人們生活水平改善的過(guò)程中,以一種 “潤(rùn)物細(xì)無(wú)聲”的形式扮演著關(guān)鍵基礎(chǔ)性角色!此次飛槳升級(jí)就是以這樣方式悄然為整個(gè)產(chǎn)業(yè)及生態(tài)的發(fā)展繁榮奠定基礎(chǔ)、積蓄能量、增添后勁!下面將為廣大開(kāi)發(fā)者詳細(xì)介紹飛槳都做了哪些“基礎(chǔ)設(shè)施”級(jí)別的關(guān)鍵工程。
使用飛槳框架2.0更高效地開(kāi)發(fā)AI模型
成熟完備的動(dòng)態(tài)圖模式
此次升級(jí),飛槳將默認(rèn)的開(kāi)發(fā)模式升級(jí)為命令式編程模式,即大家常說(shuō)的動(dòng)態(tài)圖。飛槳框架2.0支持用戶(hù)使用動(dòng)態(tài)圖完成深度學(xué)習(xí)相關(guān)領(lǐng)域全類(lèi)別的模型算法開(kāi)發(fā)。動(dòng)態(tài)圖模式下可以讓開(kāi)發(fā)者隨時(shí)查看變量的輸入、輸出,方便快捷的調(diào)試程序, 帶來(lái)最佳的開(kāi)發(fā)體驗(yàn)。為了解決動(dòng)態(tài)圖的部署問(wèn)題,飛槳提供了全面完備的動(dòng)轉(zhuǎn)靜支持,在Python語(yǔ)法支持覆蓋度上達(dá)到領(lǐng)先水平。開(kāi)發(fā)者在動(dòng)態(tài)圖編程調(diào)試的過(guò)程中,僅需添加一個(gè)裝飾器,即可無(wú)縫平滑地自動(dòng)實(shí)現(xiàn)靜態(tài)圖訓(xùn)練或模型保存。同時(shí)飛槳框架2.0還做到了模型存儲(chǔ)和加載的接口統(tǒng)一,保證動(dòng)轉(zhuǎn)靜之后保存的模型文件能夠被純動(dòng)態(tài)圖加載和使用。
在飛槳框架2.0版本上,官方支持的動(dòng)態(tài)圖算法數(shù)量達(dá)到了200+,涵蓋計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理、語(yǔ)音、推薦等多個(gè)領(lǐng)域,并且在動(dòng)態(tài)圖的訓(xùn)練效率和部署效率方面都有所提升。2.0版本的動(dòng)態(tài)圖支持了自動(dòng)混合精度和量化訓(xùn)練功能,實(shí)現(xiàn)了比靜態(tài)圖更簡(jiǎn)潔靈活的混合精度訓(xùn)練接口,達(dá)到媲美靜態(tài)圖的混合精度和量化訓(xùn)練效果。無(wú)論從功能還是性能角度,飛槳的動(dòng)態(tài)圖在國(guó)產(chǎn)深度學(xué)習(xí)框架中都處于領(lǐng)先地位!
同時(shí),為了推進(jìn)各個(gè)主流場(chǎng)景的產(chǎn)業(yè)級(jí)應(yīng)用,飛槳的系列開(kāi)發(fā)套件也隨飛槳框架2.0完成了升級(jí),全面支持動(dòng)態(tài)圖開(kāi)發(fā)模式。從開(kāi)發(fā)、訓(xùn)練到預(yù)測(cè)部署提供優(yōu)質(zhì)體驗(yàn)。如視覺(jué)領(lǐng)域的圖像分割套件PaddleSeg,隨飛槳框架2.0升級(jí)后,涵蓋了高精度和輕量級(jí)等不同特點(diǎn)的大量高質(zhì)量分割模型,采用模塊化的設(shè)計(jì),提供了配置驅(qū)動(dòng)和API調(diào)用兩種應(yīng)用方式,幫助開(kāi)發(fā)者更便捷地完成全流程圖像分割應(yīng)用;又如自然語(yǔ)言處理領(lǐng)域的PaddleNLP,與飛槳框架2.0深度適配,擁有覆蓋多場(chǎng)景的網(wǎng)絡(luò)模型、簡(jiǎn)潔易用的全流程API,以及動(dòng)靜統(tǒng)一的高性能分布式訓(xùn)練能力,非常便于二次開(kāi)發(fā),大大提升建模效率。具體可以參見(jiàn)下面鏈接中的項(xiàng)目示例。
飛槳框架2.0動(dòng)態(tài)圖模型:
https://github.com/PaddlePaddle/models/tree/develop/dygraph
全新PaddleSeg項(xiàng)目應(yīng)用實(shí)例:
https://aistudio.baidu.com/aistudio/projectdetail/1339458
全新PaddleNLP項(xiàng)目應(yīng)用示例:
https://aistudio.baidu.com/aistudio/projectdetail/1329361
API體系全新升級(jí)
API是用戶(hù)使用深度學(xué)習(xí)框架的直接入口,對(duì)開(kāi)發(fā)者使用體驗(yàn)起著至關(guān)重要的作用,飛槳一直以來(lái)對(duì)API設(shè)計(jì)以及整體API體系的完善給予高度重視。飛槳框架2.0對(duì) API體系進(jìn)行了全新升級(jí),讓開(kāi)發(fā)者們?cè)谑褂蔑w槳研發(fā)的過(guò)程中可以體驗(yàn)到隨心所欲、暢通無(wú)阻的愉悅感覺(jué)。
體系化: 基于長(zhǎng)期的產(chǎn)業(yè)實(shí)踐積累與用戶(hù)使用習(xí)慣的洞察,飛槳重新梳理和優(yōu)化了API的體系結(jié)構(gòu),使其更加清晰、科學(xué),讓廣大開(kāi)發(fā)者可以更容易地根據(jù)開(kāi)發(fā)使用場(chǎng)景找到想要的API。此外可以通過(guò)class和functional兩種形式的API來(lái)模塊化的組織代碼和搭建網(wǎng)絡(luò),提高開(kāi)發(fā)效率。同時(shí),API的豐富度有了極大的提升,共計(jì)新增API 217個(gè),優(yōu)化修改API 195個(gè)。
簡(jiǎn)潔化:提供更適合低代碼編程的高層API。像數(shù)據(jù)增強(qiáng)、建立數(shù)據(jù)流水線(xiàn)、循環(huán)批量訓(xùn)練等可以標(biāo)準(zhǔn)化的工作流程,以及一些經(jīng)典的網(wǎng)絡(luò)模型結(jié)構(gòu),在飛槳框架2.0中,都被封裝成了高層API?;陲w槳高層API,開(kāi)發(fā)者只需10行左右代碼就可以編寫(xiě)完成訓(xùn)練部分的程序。最為重要的是,高層API與基礎(chǔ)API采用一體化設(shè)計(jì),即在編程過(guò)程中可以同時(shí)使用高層API與基礎(chǔ)API,讓用戶(hù)在簡(jiǎn)捷開(kāi)發(fā)與精細(xì)化調(diào)優(yōu)之間自由定制。新API體系完全兼容歷史版本,同時(shí)飛槳提供了升級(jí)工具,幫助開(kāi)發(fā)者降低升級(jí)遷移成本。
飛槳開(kāi)源框架2.0 API參考文檔:
https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html
使用飛槳框架2.0更高效地訓(xùn)練AI模型
訓(xùn)練更大規(guī)模的模型
眾所周知,飛槳框架的英文名Paddle便是并行分布式訓(xùn)練學(xué)習(xí)的縮寫(xiě),分布式可以說(shuō)是飛槳與生俱來(lái)的特性。飛槳支持包括數(shù)據(jù)并行、模型并行、流水線(xiàn)并行在內(nèi)的廣泛并行模式和多種加速策略。在飛槳框架2.0版本中,新增支持了混合并行模式,即數(shù)據(jù)并行、模型并行、流水線(xiàn)并行這三種并行模式可以相互組合使用,更高效地將模型的各網(wǎng)絡(luò)層甚至某一層的參數(shù)切分到多張GPU卡上進(jìn)行訓(xùn)練,從而實(shí)現(xiàn)支持訓(xùn)練千億參數(shù)規(guī)模的模型。
業(yè)內(nèi)首個(gè)通用異構(gòu)參數(shù)服務(wù)器架構(gòu)
飛槳框架2.0推出了業(yè)內(nèi)首個(gè)通用異構(gòu)參數(shù)服務(wù)器技術(shù),解除了傳統(tǒng)參數(shù)服務(wù)器模式必須嚴(yán)格使用同一種硬件型號(hào)Trainer節(jié)點(diǎn)的枷鎖,使訓(xùn)練任務(wù)對(duì)硬件型號(hào)不敏感,即可以同時(shí)使用不同的硬件進(jìn)行混合異構(gòu)訓(xùn)練,如CPU、GPU(也包括例如V100、P40、K40的混合)、AI專(zhuān)用加速硬件如昆侖芯片等,同時(shí)解決了搜索推薦領(lǐng)域大規(guī)模稀疏特征模型訓(xùn)練場(chǎng)景下,IO占比過(guò)高導(dǎo)致的計(jì)算資源利用率過(guò)低的問(wèn)題。通過(guò)異構(gòu)參數(shù)服務(wù)器架構(gòu),用戶(hù)可以在硬件異構(gòu)集群中部署分布式訓(xùn)練任務(wù),實(shí)現(xiàn)對(duì)不同算力的芯片高效利用,為用戶(hù)提供更高吞吐,更低資源消耗的訓(xùn)練能力。
圖 異構(gòu)參數(shù)服務(wù)器架構(gòu)示意圖
通用異構(gòu)參數(shù)服務(wù)器架構(gòu)之所以被稱(chēng)之為通用,主要在于其兼容支持三種訓(xùn)練模式:
1、可兼容全部由CPU機(jī)器組成的傳統(tǒng)參數(shù)服務(wù)器架構(gòu)所支持的訓(xùn)練任務(wù)。
2、可兼容全部由GPU或其他AI加速芯片對(duì)應(yīng)機(jī)器組成的參數(shù)服務(wù)器,充分利用機(jī)器內(nèi)部的異構(gòu)設(shè)備。
3、支持通過(guò)CPU機(jī)器和GPU或其他AI加速芯片對(duì)應(yīng)機(jī)器的混布,組成機(jī)器間異構(gòu)參數(shù)服務(wù)器架構(gòu)。
異構(gòu)參數(shù)服務(wù)器擁有非常高的性?xún)r(jià)比,如下圖所示,僅用兩個(gè)CPU機(jī)器加兩個(gè)GPU機(jī)器就可以達(dá)到與4個(gè)GPU機(jī)器相仿的訓(xùn)練速度,而成本至少可以節(jié)約35%。
分布式訓(xùn)練教程:
https://fleet-x.readthedocs.io/en/latest/paddle_fleet_rst/distributed_introduction.html
使用飛槳框架2.0更廣泛地部署AI模型到各種硬件
全面深度適配各種人工智能硬件
AI產(chǎn)業(yè)的廣泛應(yīng)用離不開(kāi)各種各樣的人工智能硬件的繁榮,飛槳可以說(shuō)深諳其道,持續(xù)努力打造繁榮的硬件生態(tài)。當(dāng)前包括英特爾、英偉達(dá)、ARM等諸多芯片廠(chǎng)商紛紛開(kāi)展對(duì)飛槳的支持。飛槳還跟飛騰、海光、鯤鵬、龍芯、申威等CPU進(jìn)行深入適配,并結(jié)合麒麟、統(tǒng)信、普華操作系統(tǒng),以及百度昆侖、海光DCU、寒武紀(jì)、比特大陸、瑞芯微、高通、英偉達(dá)等AI芯片深度融合,與浪潮、中科曙光等服務(wù)器廠(chǎng)商合作形成軟硬一體的全棧AI基礎(chǔ)設(shè)施。當(dāng)前飛槳已經(jīng)適配和正在適配的芯片或IP型號(hào)達(dá)到29種,處于業(yè)界領(lǐng)先地位。
圖 飛槳硬件生態(tài)路線(xiàn)圖
在百度直接搜索“飛槳”進(jìn)入官網(wǎng),或者github搜索“PaddlePaddle”,立即體驗(yàn)飛槳開(kāi)源框架2.0版本
飛槳框架2.0安裝:
https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/2.0/install/pip/linux-pip.html
10分鐘快速上手飛槳框架2.0:
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/02_paddle2.0_develop/01_quick_start_cn.html
飛槳框架2.0使用教程:
https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/index_cn.html
飛槳框架2.0應(yīng)用實(shí)踐:
https://www.paddlepaddle.org.cn/documentation/docs/zh/tutorial/index_cn.html
如果您想詳細(xì)了解更多飛槳的相關(guān)內(nèi)容,請(qǐng)參閱以下文檔。
飛槳官網(wǎng)地址·
https://www.paddlepaddle.org.cn/
飛槳開(kāi)源框架項(xiàng)目地址·
GitHub: https://github.com/PaddlePaddle/Paddle
Gitee: https://gitee.com/paddlepaddle/Paddle
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。 )