高效、易用、完備是任一深度學(xué)習(xí)框架在未來競爭中勝出的必由之路。在用三年時間對最難的分布式計算和高效性問題進行攻關(guān)后,OneFlow開源以來,已歷經(jīng)五次版本更迭,重點從優(yōu)化編譯、API接口等層面攻關(guān)易用性體驗,同時持續(xù)優(yōu)化分布式性能,保持業(yè)界領(lǐng)先地位。

一方面,OneFlow框架一開始就瞄準(zhǔn)最具挑戰(zhàn)的高效性,攻占技術(shù)制高點,并以此成為立足業(yè)界的安身之本。另一方面,隨著OneFlow v0.5.0的發(fā)布,OneFlow將帶給開發(fā)者革命性的易用性體驗,同時,也從全局視角打破了深度學(xué)習(xí)框架易用性和高效性不可兼得的桎梏,向著全球范圍內(nèi)最好用深度學(xué)習(xí)框架的目標(biāo)邁出了堅實的一大步。

本次產(chǎn)品升級也入選了2021年度中關(guān)村論壇“百項新技術(shù)新產(chǎn)品榜單”。

四個“一”實現(xiàn)極致易用性體驗

相比此前的版本,OneFlow v0.5.0在易用性上實現(xiàn)了四大技術(shù)特性。

一行代碼實現(xiàn)OneFlow與PyTorch切換

憑借易用性,PyTorch在深度學(xué)習(xí)框架市場異軍突起,其在單卡的eager mode,pythonic,面向?qū)ο缶幊痰仁褂迷O(shè)計上廣受認(rèn)可。新發(fā)布的OneFlow v0.5.0也接收了其設(shè)計想法,使其在編程API層面和PyTorch嚴(yán)格對齊,并對齊了相關(guān)模型的200多個算子。

對喜歡使用PyTorch的eager模式的開發(fā)者來說,只需更改一行代碼,就可以讓PyTorch上寫的代碼在OneFlow中跑起來。

一段代碼實現(xiàn)動態(tài)圖與靜態(tài)圖轉(zhuǎn)換

在編碼調(diào)試階段,動態(tài)圖的編程模式的體驗最好,但當(dāng)模型穩(wěn)定后,靜態(tài)圖模式在運行效率方面更有優(yōu)勢。因此,最理想的框架是同時支持二者,使用戶在一個框架上享受到最佳的動、靜態(tài)體驗,并且最好動、靜態(tài)圖可以自由轉(zhuǎn)換。

在OneFlow v0.5.0中,開發(fā)者只需把使用動態(tài)模式開發(fā)的代碼用nn.Graph封裝起來,就可以享受靜態(tài)圖的好處。當(dāng)然,要想實現(xiàn)完全自動的動、靜態(tài)轉(zhuǎn)換,還需要進一步攻關(guān)。

一致性視角實現(xiàn)單機和分布式無縫切換

隨著數(shù)據(jù)和模型的規(guī)模越來越大,單卡和單機已經(jīng)不能滿足開發(fā)者的需求,很多工業(yè)級的深度學(xué)習(xí)模型必須在分布式集群上訓(xùn)練。

然而,由于分布式編程的門檻太高,且大部分算法科學(xué)家對分布式編程并不熟悉,這給分布式訓(xùn)練帶來一定挑戰(zhàn)。

為了讓開發(fā)者無須關(guān)注復(fù)雜的分布式底層細節(jié),只專注于邏輯層面的神經(jīng)網(wǎng)絡(luò)搭建,OneFlow創(chuàng)造性地發(fā)明了一致性視角(Consistent View)的概念,把分布式的多卡模擬成一塊超大的虛擬設(shè)備,統(tǒng)一了單機和分布式的編程接口,從而方便讓算法工程師低成本使用分布式計算來加速。

一套系統(tǒng)支持各種并行模式

不同神經(jīng)網(wǎng)絡(luò)的最優(yōu)并行方法并不相同,像CNN這類大數(shù)據(jù)、小模型的神經(jīng)網(wǎng)絡(luò)層次最好用數(shù)據(jù)并行,對超大的全連接層這種模型更大的層次最好用模型并行,對于feature map超大或者層次超深的神經(jīng)網(wǎng)絡(luò)更適合流水并行。

但很不幸,原有主流框架僅支持常用的數(shù)據(jù)并行,要想使用模型并行或者流水并行功能,就必須借助某種插件或者做深度定制,而且這種定制系統(tǒng)都只能用于HugeCTR,Megatron-LM等某一種類型的神經(jīng)網(wǎng)絡(luò)。

OneFlow在系統(tǒng)層面支持了數(shù)據(jù)并行、模型并行和流水并行,不需要額外的插件和定制開發(fā),就可以以最小代碼量高效支持任何神經(jīng)網(wǎng)絡(luò)。

“人有我優(yōu),人無我有”的高效性

要知道,原有深度學(xué)習(xí)框架都聚焦于單卡的用戶體驗,僅對適合數(shù)據(jù)并行的多機多卡場景處理的較好,但遇到Wide and Deep模型 、 GPT-3等超大模型,開發(fā)者就會面臨多機多卡編程難、效率低下或無法實現(xiàn)等分布式深度學(xué)習(xí)的痛點。

盡管這些框架通過改進框架設(shè)計或研發(fā)NCCL 、 Horovod 、 HugeCTR等第三方插件的方式取得了一些進步,但受限于框架本身架構(gòu)設(shè)計的不足,仍不能滿足用戶對極致性能的需求 ,而OneFlow在這方面的優(yōu)勢可以概括為“人有我優(yōu)”和“人無我有”,是所有框架中的最優(yōu)解決方案。

支撐 OneFlow 高效性的背后有四大關(guān)鍵技術(shù),其中靜態(tài)調(diào)度和流式執(zhí)行均為業(yè)界首創(chuàng):

編譯器自動編排并行模式和流水線:編譯器自動解決從邏輯任務(wù)到硬件資源的映射,包括數(shù)據(jù)并行、模型并行、流水并行的設(shè)備分配以及數(shù)據(jù)路由方案,大大降低分布式編程的復(fù)雜度,用戶只須關(guān)心任務(wù)的邏輯結(jié)構(gòu)以及本次任務(wù)可使用的硬件資源,而不用去編程實現(xiàn)數(shù)據(jù)在硬件資源中的流動機制。

靜態(tài)調(diào)度:把所有能在正式運行之前得到的調(diào)度策略、資源管理策略等問題都在編譯階段解決,運行時不需要在線求解最優(yōu)的調(diào)度方案,從而大大降低運行時開銷。為了讓用戶在使用高度動態(tài)模型時也有良好的體驗,OneFlow內(nèi)部有動靜兩套執(zhí)行機制。

去中心化協(xié)議:在運行任務(wù)時,不再需要中心調(diào)度器,只需要支持上下游任務(wù)之間局部的握手信號即可,即生產(chǎn)者向消費者發(fā)送的請求以及消費者向生產(chǎn)者發(fā)送的確認(rèn),整個系統(tǒng)以全鏈路異步的方式運行。

流式執(zhí)行引擎:區(qū)別于其它深度學(xué)習(xí)框架把數(shù)據(jù)搬運當(dāng)成二等公民,OneFlow將數(shù)據(jù)搬運看作一等公民。在靜態(tài)分析階段,OneFlow就把磁盤 IO、主存和設(shè)備之間數(shù)據(jù)搬運,節(jié)點間數(shù)據(jù)搬運看作和計算同等重要的任務(wù),在代價分析和調(diào)度策略里作為一等公民進行顯式建模,從而得到重疊傳輸和計算的最優(yōu)方案。

深度學(xué)習(xí)框架的演進路線

作為新生代深度學(xué)習(xí)框架,盡管OneFlow在易用性和高效性上具有不俗實力,但它要想在未來進一步擴大在開發(fā)者社區(qū)中的競爭力,還需要在算子、模型庫等完備性上補足功課,而這需要更多社區(qū)開發(fā)者參與其中。

未來,OneFlow深度學(xué)習(xí)框架將如何發(fā)展?一流科技創(chuàng)始人&袁進輝給出了他的判斷:

框架平臺標(biāo)準(zhǔn)化:深度學(xué)習(xí)算法的標(biāo)準(zhǔn)化,帶來了軟件標(biāo)準(zhǔn)化的機會,深度學(xué)習(xí)框架正在走向標(biāo)準(zhǔn)化。

生態(tài)決定框架未來的競爭力:之江實驗室、北京智源人工智能研究院、粵港澳大灣區(qū)數(shù)字經(jīng)濟研究院、之江實驗室、中關(guān)村智用人工智能研究院等頂尖AI科研院所已使用OneFlow框架開展研究工作。同時,聯(lián)合寒武紀(jì)、燧原科技、曙光DCU等芯片、云廠商上下游企業(yè),推進適配OneFlow框架的超大模型訓(xùn)練方案。下一步,一流科技將推動與更多芯片廠商和廣大開發(fā)者的合作,打造AI平臺的繁榮生態(tài)。

軟件2.0趨勢:前特斯拉AI 負責(zé)人Andrej Karpathy曾指出,軟件 1.0 的“經(jīng)典堆?!笔怯?Python、C++ 等語言編寫的計算機顯式指令,與 軟件1.0 不同,軟件 2.0 用深度學(xué)習(xí)模型從數(shù)據(jù)中自動推導(dǎo)生成軟件的編程范式,深度學(xué)習(xí)框架極有可能會朝這一方向邁進。

像數(shù)據(jù)庫產(chǎn)品那樣提供標(biāo)準(zhǔn)化服務(wù)

面向社區(qū)開發(fā)者,一流科技在不斷提升OneFlow框架用戶體驗;與此同時,作為一個商業(yè)化公司,基于OneFlow框架,相應(yīng)推出了標(biāo)準(zhǔn)化解決方案,包括云邊端AI基礎(chǔ)設(shè)施OneBrain、OneAgent智能決策平臺和OneFlow智能云平臺。他們認(rèn)為,AI產(chǎn)業(yè)化機會在于標(biāo)準(zhǔn)化的基礎(chǔ)設(shè)施和云原生趨勢。

OneBrain開發(fā)平臺具有豐富的開發(fā)模式,支持高性能分布式訓(xùn)練、多租戶的資源調(diào)度和混合云的解決方案。

通過私有化部署,用戶可以在OneBrain上可以實現(xiàn)多租戶和多任務(wù)管理,支持可視化、日志分析等功能,根據(jù)用戶的集成規(guī)模、節(jié)點、使用時長等計費。

OneAgent智能決策平臺是一個基于深度強化學(xué)習(xí)的平臺,它創(chuàng)造性地使用了微服務(wù)架構(gòu),主要面向無人對戰(zhàn)、路徑規(guī)劃、態(tài)勢感知與智能博弈、金融量化交易等深度強化學(xué)習(xí)的應(yīng)用場景。

此外,OneFlow智能云平臺作為面向廣大開發(fā)者的AI實訓(xùn)與開發(fā)平臺,提供精品算法講解、開源算法實測、在線編程環(huán)境及算力。它能幫助開發(fā)者快速掌握深度學(xué)習(xí)開發(fā)的相關(guān)技能,邊學(xué)邊連。未來,OneFlow智能云平臺還將面向中小企業(yè)用戶提供PaaS和SaaS服務(wù),幫助更多企業(yè)用AI賦能生產(chǎn)和管理。

目前,一流科技已服務(wù)十多家客戶,尤其是對性能、大規(guī)模分布式場景有迫切需求的頭部互聯(lián)網(wǎng)公司、安防公司、政務(wù)云、科研院所等機構(gòu),涵蓋圖像、自然語言處理、金融、廣告/推薦等應(yīng)用場景。

?

分享到

songjy

相關(guān)推薦