2016 年,AlphaGo 橫空出世,人工智能時(shí)代到來(lái)。同年,百度開(kāi)源自研的深度學(xué)習(xí)框架 PaddlePaddle(飛槳),成為中國(guó)首個(gè)開(kāi)源深度學(xué)習(xí)框架。
然而,這波由深度學(xué)習(xí)推動(dòng)的技術(shù)和產(chǎn)業(yè)浪潮,也面臨著諸多挑戰(zhàn)。
數(shù)據(jù)量越來(lái)越大,有些模型的訓(xùn)練數(shù)據(jù)動(dòng)輒上 TB;模型越來(lái)越深,越來(lái)越復(fù)雜,從 AlexNet 的 8 層,到 ResNet-1000 的 1202 層;模型參數(shù)越來(lái)越多,甚至超過(guò) 10 個(gè)億……
深度學(xué)習(xí)模型的訓(xùn)練效率成為一個(gè)關(guān)鍵問(wèn)題。
因?yàn)樯疃葘W(xué)習(xí)模型的效果迭代對(duì)訓(xùn)練速度非常敏感,所以能夠帶來(lái)高性能分布式訓(xùn)練的深度學(xué)習(xí)框架是實(shí)際開(kāi)發(fā)和應(yīng)用的剛需,也是 AI 在產(chǎn)業(yè)界能夠真正落地的基礎(chǔ)。
相同的硬件設(shè)備數(shù),高效率的分布式訓(xùn)練,可以大大縮短產(chǎn)品迭代周期。而在受限的時(shí)間要求下,高效率的平臺(tái)型工具也可以顯著減少硬件需求。
作為中國(guó) 首個(gè)唯一開(kāi)源開(kāi)放、功能完備的深度學(xué)習(xí)平臺(tái)。經(jīng)過(guò)多年的產(chǎn)業(yè)實(shí)踐,百度飛槳已成長(zhǎng)為集核心框架、工具組件和服務(wù)平臺(tái)為一體的端到端開(kāi)源深度學(xué)習(xí)平臺(tái),飛槳的大規(guī)模分布式訓(xùn)練能力始終是其重要亮點(diǎn)。
百度深度學(xué)習(xí)技術(shù)平臺(tái)部總監(jiān)馬艷軍在 CSDN 舉辦的 AI 開(kāi)發(fā)者大會(huì)上曾介紹,“飛槳同時(shí)支持稠密參數(shù)和稀疏參數(shù)場(chǎng)景的超大規(guī)模深度學(xué)習(xí)并行訓(xùn)練,支持萬(wàn)億乃至更高量級(jí)規(guī)模參數(shù)的高效并行訓(xùn)練,也是最早提供如此強(qiáng)大的深度學(xué)習(xí)并行技術(shù)的深度學(xué)習(xí)平臺(tái),通過(guò)技術(shù)創(chuàng)新做到高效、穩(wěn)定、成本低廉?!?/span>
真正的工業(yè)級(jí)規(guī)模:千億規(guī)模稀疏特征,千萬(wàn)規(guī)模類別分類
為降低超大規(guī)模分類應(yīng)用對(duì)普通的深度學(xué)習(xí)模型開(kāi)發(fā)者的門(mén)檻,進(jìn)一步幫助開(kāi)發(fā)者提升個(gè)性化推薦應(yīng)用的性能,飛槳推出了針對(duì)分布式訓(xùn)練的一套全新的高并發(fā)參數(shù)服務(wù)器實(shí)現(xiàn), 并發(fā)布了超大規(guī)模分類訓(xùn)練庫(kù)PLSC,幫助開(kāi)發(fā)者實(shí)現(xiàn)千億規(guī)模的稀疏特征進(jìn)行訓(xùn)練,以及千萬(wàn)規(guī)模類別的分類。
千億規(guī)模稀疏特征
千億規(guī)模稀疏特征:推薦系統(tǒng)在信息流、短視頻等面向用戶端的產(chǎn)品中的應(yīng)用越來(lái)越廣泛,而個(gè)性化推薦是這些產(chǎn)品追求的一個(gè)重要目標(biāo)。實(shí)現(xiàn)個(gè)性化的一種重要且有效的方法就是利用深度學(xué)習(xí)方法將海量的個(gè)性化特征記憶在具有泛化能力的模型中。對(duì)于擁有上億日活用戶的產(chǎn)品,只要將用戶的個(gè)性化信息與圖文等資源的內(nèi)容特征進(jìn)行簡(jiǎn)單的捆綁,特征規(guī)模就很容易擴(kuò)張到百億甚至千億級(jí)別。
為了支撐千億規(guī)模的稀疏特征、萬(wàn)億規(guī)模的模型參數(shù),飛槳設(shè)計(jì)了分布式 Key-Value 存取的方式,通過(guò)分段鎖對(duì) Key-Value 表進(jìn)行分片,以支持并發(fā)更新的請(qǐng)求。針對(duì)大規(guī)模稀疏特征的更新和通信特點(diǎn),基于百度自研的 baidu-rpc 通信庫(kù)進(jìn)行了分布式訓(xùn)練邏輯的通信層封裝。該參數(shù)服務(wù)器集成的功能包括客戶端發(fā)送參數(shù)的融合,請(qǐng)求分片,模型參數(shù)的更新、加載、保存等,形成了一套可插拔、支持高并發(fā)的參數(shù)服務(wù)器組件,并服務(wù)于信息流、短視頻等推薦場(chǎng)景。
圖 1:飛槳千億規(guī)模稀疏參數(shù)服務(wù)器設(shè)計(jì)
千萬(wàn)規(guī)模類別分類
千萬(wàn)規(guī)模分類的現(xiàn)實(shí)需求:視覺(jué)領(lǐng)域中諸如圖像分類、人臉識(shí)別、推薦系統(tǒng)中的標(biāo)簽推薦等應(yīng)用通常面臨著百萬(wàn)級(jí)甚至千萬(wàn)級(jí)的分類問(wèn)題,目前,基于深度學(xué)習(xí)模型進(jìn)行分類是解決該問(wèn)題最有效的手段,但受限于當(dāng)前硬件隨機(jī)訪問(wèn)存儲(chǔ)容量的限制,分類模型的模型參數(shù)難以保存在單張 GPU 卡中,限制了普通用戶進(jìn)行大規(guī)模分類模型訓(xùn)練的能力。對(duì)于此問(wèn)題,目前最好的解決手段就是采用模型并行的方式,但模型并行的設(shè)計(jì)、實(shí)現(xiàn)、性能和調(diào)試對(duì)于普通的深度學(xué)習(xí)模型開(kāi)發(fā)者而言門(mén)檻較高。為此,飛槳推出了 PLSC(Paddle Large Scale Classification),其能夠大幅度降低基于模型并行的超大規(guī)模分類的應(yīng)用門(mén)檻,并具備極好的性能和擴(kuò)展能力,使得每個(gè)開(kāi)發(fā)者都可以快速訓(xùn)練超大規(guī)模類別的分類模型。
飛槳 PLSC 功能特色:支持圖像任務(wù)通用數(shù)據(jù)讀取方式、千萬(wàn)類別的分類、多機(jī)分布式模型并行訓(xùn)練、自動(dòng)混合精度訓(xùn)練、提供分類層語(yǔ)義表示的服務(wù)化計(jì)算。
PLSC 的性能和擴(kuò)展性:對(duì)于單機(jī) 8 卡 32G 顯存的 V100,相比常規(guī)的數(shù)據(jù)并行方式,PLSC 可以使分類任務(wù)的類別數(shù)提升 250%。使用 128 塊 v100 進(jìn)行模型并行訓(xùn)練時(shí),PLSC 擴(kuò)張的類別數(shù)可以達(dá)到 5 千萬(wàn)類。在多機(jī)多卡模型并行情況下,相比于單機(jī)八卡的 V100,PLSC 的加速效率比在千萬(wàn)類別以上時(shí)可以達(dá)到 80%。
茶葉圖 2:基于模型并行的大規(guī)模類別分類技術(shù)
表 1:飛槳PLSC中的arcface實(shí)現(xiàn)多機(jī)擴(kuò)展效率
真正的工業(yè)級(jí)速度:讓模型訓(xùn)練的速度飛起來(lái)
飛槳在借鑒 hogwild 無(wú)鎖模式等業(yè)界經(jīng)驗(yàn)的基礎(chǔ)上,并基于對(duì)百度廣泛的業(yè)務(wù)場(chǎng)景支持的實(shí)踐積累,進(jìn)一步提出全新的稀疏參數(shù)通信、IO 異步讀取、Geo-SGD 訓(xùn)練模式、多機(jī)多卡高性能訓(xùn)練、混合精度訓(xùn)練等功能,幫助普通用戶享受到工業(yè)級(jí)的模型訓(xùn)練速度。通過(guò)對(duì)通信和訓(xùn)練模式的創(chuàng)新,飛槳在超大規(guī)模模型或者數(shù)據(jù)吞吐、網(wǎng)絡(luò)通信易成為瓶頸的任務(wù)上的訓(xùn)練速度和效果都得到極大提升,并全面超越市場(chǎng)同類產(chǎn)品表現(xiàn)。
全異步參數(shù)服務(wù)器訓(xùn)練
稀疏參數(shù)通信:在深度學(xué)習(xí)模型中,稀疏特征往往需要進(jìn)行特殊的處理,否則將會(huì)給內(nèi)存和通信的消耗帶來(lái)嚴(yán)重問(wèn)題。在目前主流的深度學(xué)習(xí)框架中,較為常見(jiàn)的處理稀疏特征的方法是通過(guò)變長(zhǎng)張量對(duì)稀疏特征進(jìn)行向量化,并對(duì)相應(yīng)的特征嵌入進(jìn)行稀疏查找。而在參數(shù)服務(wù)器多機(jī)訓(xùn)練過(guò)程中,飛槳?jiǎng)t針對(duì)稀疏參數(shù)采用了一些不同的處理方法,即首先通過(guò)對(duì)單節(jié)點(diǎn)下的并發(fā)訓(xùn)練線程產(chǎn)生的稀疏梯度進(jìn)行異步合并,而后進(jìn)行批量通信,這一操作極大降低了訓(xùn)練過(guò)程的通信量。對(duì)于稀疏特征為主的模型訓(xùn)練,其多機(jī)加速比效果近乎可以達(dá)到線性。
多隊(duì)列異步 IO:在某些數(shù)據(jù)量特別大、吞吐要求高,但模型本身計(jì)算開(kāi)銷較小的任務(wù)上,數(shù)據(jù)的 IO 很容易成為訓(xùn)練效率的瓶頸。為解決這一問(wèn)題,飛槳針對(duì)性地設(shè)計(jì)了多隊(duì)列異步讀取的功能,通過(guò)適當(dāng)犧牲數(shù)據(jù)讀取的一致性,使得模型性能得到了極大提升。
無(wú)鎖參數(shù)共享模式:早在 2010 年,Hogwild![1]就提出了無(wú)鎖參數(shù)共享模式,其核心思想即稀疏參數(shù)模型在無(wú)鎖讀寫(xiě)模式下也可以達(dá)到收斂效果。飛槳將這一模式作為參數(shù)服務(wù)器訓(xùn)練的默認(rèn)設(shè)置,并配合稀疏通信及多隊(duì)列異步 IO,將 CPU 服務(wù)器的硬件資源的潛力發(fā)揮到了極致。
圖 2:飛槳全異步訓(xùn)練原理
表 2:飛槳全異步訓(xùn)練在Criteo-CTR數(shù)據(jù)集的吞吐擴(kuò)展性
飛槳 Geo-SGD 訓(xùn)練
Geo-SGD:與傳統(tǒng)的參數(shù)服務(wù)器訓(xùn)練方式不同,飛槳獨(dú)創(chuàng)的Geo-SGD(Geometric-SDG)采用 Worker 端進(jìn)行模型參數(shù)的優(yōu)化,并通過(guò)可定義通信間隔的方式,同步本地訓(xùn)練的模型參數(shù)插值。另外,服務(wù)器端會(huì)采用異步的方式融合各個(gè) Worker 發(fā)送的模型參數(shù)差異。隨著模型的收斂,worker 端的模型參數(shù)差異會(huì)逐漸變小,服務(wù)器端對(duì)全局模型參數(shù)的更新幅度也會(huì)以幾何級(jí)數(shù)的方式降低。
在 Geo-SGD 異步訓(xùn)練模式下,Worker 不用再等待 Server 發(fā)來(lái)新的參數(shù)即可執(zhí)行訓(xùn)練,該方式使得訓(xùn)練效果和速度都得到極大的提升。但是此模式比較適合可以在單機(jī)內(nèi)能完整保存的模型,例如詞向量、語(yǔ)義匹配等場(chǎng)景。以計(jì)算量極小,但使用場(chǎng)景廣泛的 word2vec 模型為例,采用 Geo-SGD 訓(xùn)練模式的飛槳分布式訓(xùn)練的訓(xùn)練速度能夠超越同類最優(yōu)產(chǎn)品 18 倍,并且在公開(kāi)數(shù)據(jù)集的驗(yàn)證中,模型效果沒(méi)有任何損失。
圖 3:飛槳自研Geo-SGD算法原理
表 3:Geo-SGD在數(shù)據(jù)讀取和通信易成為瓶頸的模型下的擴(kuò)展性
GPU 多機(jī)多卡高性能訓(xùn)練、混合精度
通信擴(kuò)展組件
通信拓?fù)渲С郑猴w槳支持多種通信的拓?fù)浣Y(jié)構(gòu),例如 Ring-Based AllReduce、Hierachical Allreduce、2-D Allreduce 等,用戶可以定制不同的通信拓?fù)?,針?duì)不同的集群環(huán)境提升整體的通信性能。
梯度自動(dòng)聚合:通過(guò)對(duì)模型參數(shù)梯度大小的分析,飛槳啟發(fā)式的將梯度進(jìn)行了聚合,以發(fā)揮高性能通信網(wǎng)絡(luò),下一定范圍內(nèi)的數(shù)據(jù)包通信延時(shí)基本不變的特性。
通信并發(fā):飛槳通過(guò)支持多流通信的技術(shù),能夠?qū)⑼ㄐ畔嚓P(guān)的算子并發(fā),以充分利用帶寬的優(yōu)勢(shì),將整體通信的延時(shí)大幅度降低。
Collective Operator:飛槳通過(guò)將通信組件算子化,極大的提升了并行算法定義的靈活性。以大規(guī)模分類庫(kù) PLSC 為例,其通過(guò)多種 Collective Operator 靈活的組裝,可以進(jìn)行定制化的大規(guī)模模型并行算法的開(kāi)發(fā)。
基于最優(yōu)優(yōu)化策略的組合,我們以自然語(yǔ)言處理和計(jì)算機(jī)視覺(jué)兩個(gè)領(lǐng)域公開(kāi)可獲取的經(jīng)典模型作為 Benchmark 進(jìn)行對(duì)比,飛槳的多機(jī)訓(xùn)練優(yōu)勢(shì)隨著 GPU 卡數(shù)的增加而逐漸增加,在絕對(duì)性能和擴(kuò)展性上都全面超越了公開(kāi)的其他框架。
茶葉表 4 :飛槳多機(jī)多卡多機(jī)訓(xùn)練與參考框架的縱向?qū)Ρ?/span>
混合精度通信加持
在支持半精度的 GPU 卡上,飛槳能夠通過(guò)一行代碼開(kāi)啟自動(dòng)混合精度(Automatic Mixed Precision,AMP)計(jì)算,顯著降低單卡的顯存占用和計(jì)算時(shí)間。在多機(jī)多卡訓(xùn)練的情況下,飛槳分布式訓(xùn)練技術(shù)通過(guò)對(duì)計(jì)算圖的分析,針對(duì)混合精度多機(jī)多卡訓(xùn)練的情況,結(jié)合Op的角色,對(duì) all reduce 算子進(jìn)行了依賴關(guān)系的微調(diào),保證多機(jī)通信的過(guò)程中采用半精度進(jìn)行通信。在混合精度通信的情況下,模型的訓(xùn)練精度不受影響,且通信帶寬占用下降 50%,保證了飛槳自動(dòng)混合精度多機(jī)多卡訓(xùn)練情況下仍然有較好的加速比。
圖 4:飛槳自動(dòng)混合精度中多機(jī)多卡訓(xùn)練的半精度通信原理
表 5 中展示了飛槳在 Resnet50 模型上,基于 Imagenet 數(shù)據(jù)集測(cè)試的全精度訓(xùn)練和混合精度訓(xùn)練在多機(jī)情況下的橫向擴(kuò)展性以及縱向擴(kuò)展性。在飛槳混合精度的支持下,GPU 多機(jī)多卡下的橫向擴(kuò)展能力與全精度情況下相當(dāng),而縱向擴(kuò)展方面的訓(xùn)練吞吐提升達(dá)到了 2 倍以上。
表 5:飛槳多機(jī)多卡自動(dòng)混合精度訓(xùn)練的擴(kuò)展性
真正的 AI 普惠化:降本增效,惠及所有開(kāi)發(fā)者
為進(jìn)一步惠及普通用戶,飛槳針對(duì)多個(gè)不同場(chǎng)景進(jìn)行了專門(mén)開(kāi)發(fā),包括定制多種不同分布式訓(xùn)練模式的 Fleet API、幫助提升公有云 GPU 訓(xùn)練速度及效果的深度梯度壓縮(Deep Gradient Compression)技術(shù)以及 LocalSGD 技術(shù)、超大規(guī)模訓(xùn)練中可大幅提升 batch size 的重計(jì)算技術(shù)。通過(guò)對(duì)已有功能的整合以及現(xiàn)有技術(shù)的創(chuàng)新,飛槳大幅度降低了用戶訓(xùn)練分布式模型的學(xué)習(xí)、調(diào)試及算力成本,幫助用戶更快獲得最優(yōu)訓(xùn)練效果。
Fleet API
大多數(shù)深度學(xué)習(xí)用戶在使用分布式訓(xùn)練功能時(shí),通常會(huì)遇到四大問(wèn)題:1)本地程序如何轉(zhuǎn)成可以分布式訓(xùn)練的程序;2)如何提交分布式訓(xùn)練程序到集群中;3)應(yīng)該采用什么樣的并行訓(xùn)練方法,如何定義;4)如何進(jìn)一步提升自己任務(wù)的訓(xùn)練效率。
為了降低用戶使用分布式訓(xùn)練的門(mén)檻以及訓(xùn)練成本,飛槳提供了分布式訓(xùn)練 Fleet API,以幫助用戶獲得極佳的性能體驗(yàn)。
通過(guò)使用 Fleet API,用戶只需添加十余行代碼,即可使用飛槳的參數(shù)服務(wù)器進(jìn)行同步訓(xùn)練、異步訓(xùn)練、Geo-SGD 及 GPU 多機(jī)多卡同步訓(xùn)練,極大降低了用戶在多種模式之間切換帶來(lái)的學(xué)習(xí)成本。此外,F(xiàn)leet API 提供了與集群資源進(jìn)行交互的接口,并對(duì)用戶透明化,極大降低了用戶面向集群資源進(jìn)行調(diào)試的成本。Fleet API 還提供了可擴(kuò)展接口,方便社區(qū)開(kāi)發(fā)者自定義并行訓(xùn)練加速算法。
公有云場(chǎng)景分布式訓(xùn)練的難點(diǎn)
在網(wǎng)絡(luò)環(huán)境不佳的集群中,由于多機(jī)之間的通信受到帶寬的限制,在訓(xùn)練較多節(jié)點(diǎn)的分布式訓(xùn)練任務(wù)時(shí),通信階段往往成為整個(gè)分布式訓(xùn)練的效率瓶頸,在公有云上的 GPU 集群進(jìn)行訓(xùn)練時(shí),這種情況尤為常見(jiàn)。為了讓公有云用戶能夠在較低的帶寬下進(jìn)行高性能的分布式訓(xùn)練,飛槳提供了深度梯度壓縮(Deep Gradient Compression)[2] 技術(shù)。
飛槳在原始論文算法的基礎(chǔ)上進(jìn)行了進(jìn)一步優(yōu)化??紤]到在不同模型下模型參數(shù)梯度的碎片程度,飛槳僅對(duì)一定尺寸以上的模型參數(shù)梯度進(jìn)行稀疏通信,以同步參數(shù)。而對(duì)于小塊模型參數(shù)梯度,考慮到其與 TopK 模型參數(shù)梯度的通信延時(shí)沒(méi)有太大的差異,因此仍采用普通的多機(jī)多卡同步機(jī)制。 目前,飛槳的深度梯度壓縮技術(shù)已經(jīng)應(yīng)用在了一些架設(shè)在公有云的 AI 平臺(tái),經(jīng)過(guò)內(nèi)部業(yè)務(wù)數(shù)據(jù)評(píng)估,即使在計(jì)算力較弱的預(yù)估卡 P4 的多機(jī)多卡訓(xùn)練的情況下,飛槳 DGC 技術(shù)也會(huì)將訓(xùn)練時(shí)間降低了 40%-60%。
LocalSGD
針對(duì)公有云場(chǎng)景,飛槳同時(shí)還提供 LocalSGD [3] 多機(jī)訓(xùn)練技術(shù),其能夠?qū)⒍嗖奖镜馗碌哪P蛥?shù)在多機(jī)多卡之間進(jìn)行加權(quán)融合。大量實(shí)驗(yàn)證明,使用飛槳的 LocalSGD 技術(shù)進(jìn)行多機(jī)訓(xùn)練,對(duì)模型的收斂效果不會(huì)產(chǎn)生顯著影響。同時(shí),由于同步參數(shù)的間隔相比常規(guī)的多機(jī)多卡訓(xùn)練有所擴(kuò)大,整體的加速比也有較好的提高。
使用重計(jì)算技術(shù)節(jié)省顯存進(jìn)行超大 Batch 的并行訓(xùn)練
在飛槳的多機(jī)多卡 GPU 訓(xùn)練中,用戶可以通過(guò)重計(jì)算技術(shù)來(lái)提升全局 Batch Size 的大小,這在一些片上內(nèi)存較小或者 GPU 卡數(shù)不夠的場(chǎng)景極為有效。
飛槳重計(jì)算技術(shù):隨著訓(xùn)練數(shù)據(jù)規(guī)模的逐漸增加,訓(xùn)練更大、更深的深度學(xué)習(xí)模型逐漸成為主流趨勢(shì)。在目前的深度學(xué)習(xí)模型訓(xùn)練中,模型通常需要保留前向計(jì)算的隱層結(jié)果。由于結(jié)果的數(shù)量會(huì)隨著模型層數(shù)的增加而線性增加,對(duì)目前能夠使用的計(jì)算芯片內(nèi)存大小構(gòu)成了挑戰(zhàn)。為此,飛槳提出 Forward Recomputation Backpropagation(FRB)技術(shù),通過(guò)在反向過(guò)程中對(duì)必要的前向邏輯進(jìn)行重新計(jì)算,實(shí)現(xiàn)顯存隨層數(shù)增長(zhǎng)而亞線性增長(zhǎng)[4]。
圖 5:飛槳重計(jì)算顯存優(yōu)化原理
重計(jì)算擴(kuò)展 Batch Size 的原理:將前向中間隱層結(jié)果顯存釋放,并在反向過(guò)程中基于錨點(diǎn)進(jìn)行局部重新計(jì)算。
茶葉圖 6. Bert 模型在單步計(jì)算顯存的變化曲線圖
在使用 32G V100 & FP32 時(shí),我們?cè)诙鄠€(gè)不同模型下進(jìn)行了最大 batch size 的測(cè)試,其提升高達(dá) 600%。在分布式情況下,由于通信時(shí)間與重計(jì)算時(shí)間會(huì)有一定自動(dòng)的重合,多數(shù)模型的訓(xùn)練性能下降會(huì)控制在 20%以內(nèi),檢測(cè)類模型的多機(jī)訓(xùn)練吞吐則不受影響。
表 6. 飛槳重計(jì)算技術(shù)對(duì)多個(gè)模型最大可訓(xùn)練 Batch 的提升情況
開(kāi)源不易,飛槳加速,唯有祝福
2013 年,百度開(kāi)始研發(fā)深度學(xué)習(xí)框架 PaddlePaddle,搜索等核心業(yè)務(wù)上線 DNN 模型。
2016 年,在百度世界大會(huì)上,百度宣布 PaddlePaddle 開(kāi)源,標(biāo)志著國(guó)產(chǎn)開(kāi)源深度學(xué)習(xí)平臺(tái)的誕生。
2019 年 PaddlePaddle 發(fā)布中文名“飛槳”,升級(jí)為功能完備的產(chǎn)業(yè)級(jí)開(kāi)源開(kāi)放平臺(tái),加大技術(shù)和產(chǎn)業(yè)生態(tài)的建設(shè)。
在正確的道路上堅(jiān)持?jǐn)?shù)年之后,飛槳開(kāi)始加速。
然而,這些成功來(lái)之不易,因?yàn)殚_(kāi)源只是生態(tài)建設(shè)的極小一部分,商業(yè)公司往往要考慮投入產(chǎn)出比,而發(fā)展自己的深度學(xué)習(xí)框架,既有對(duì) AI 綜合技術(shù)實(shí)力的要求,也需要對(duì)開(kāi)發(fā)資源常年持續(xù)投入,目前全球也僅 Google、Facebook、百度等幾大 AI 巨頭在該方向上持續(xù)投入。
一款深度學(xué)習(xí)框架產(chǎn)品要被廣大開(kāi)發(fā)者認(rèn)可,只有在全面技術(shù)競(jìng)爭(zhēng)力的基礎(chǔ)上,長(zhǎng)期持續(xù)緊貼用戶需求打磨,圍繞框架建立上下游生態(tài),進(jìn)而建立具備高度壁壘的綜合競(jìng)爭(zhēng)力。
打造深度學(xué)習(xí)框架沒(méi)有捷徑可走,打造真正的產(chǎn)業(yè)級(jí)深度學(xué)習(xí)框架更加不易,祝福百度飛槳,也祝福后來(lái)者。
[1] HOGWILD!: A Lock-Free Approach to Parallelizing Stochastic Gradient Descent. Feng Niu , Benjamin Recht , Christopher Re , Stephen J. Wright
[2] Deep Gradient Compression: Reducing the Communication Bandwidth for Distributed Training. Yujun Lin , Song Han , Huizi Mao , Yu Wang , William J. Dally
[3] Local SGD Converges Fast and Communication Little. Sebastian U. Stich
[4] Training Deep Nets with Sublinear Memory Cost. Tianqi Chen, Bing Xu, Chiyuan Zhang, Carlos Guestrin
點(diǎn)擊閱讀原文,了解更多!
聯(lián)系客服