超越PyTorch 和 TensorFlow,這個國產框架有點東西

2021-01-07 投資界

| 作者:神經三羊

| 轉載自:HyperAI超神經

在深度學習領域,PyTorch、TensorFlow 等主流框架,毫無疑問佔據絕大部分市場份額,就連百度這樣級別的公司,也是花費了大量人力物力,堪堪將 PaddlePaddle 推入主流。

在這樣資源主導、肉食者謀的競爭環境下 ,一家國產深度學習框架的創業公司 OneFlow 出現了。它以處理大規模模型見長,甚至今年將全部源碼和實驗對比數據,在 GitHub 進行了開源。

質疑不可避免的出現了:OneFlow 這種擅長解決大模型訓練的新架構有必要嗎?深度學習框架的效率有那麼重要嗎?創業公司有可能在競爭中脫穎而出麼?

我們採訪了一流科技 CEO 袁進輝,了解到了他和一流科技的工程師們,1300 多個日日夜夜、數十萬行代碼背後的故事。

光環再多,創業也得一步一個腳印

2016 年 11 月,袁進輝在清華附近的一棟寫字樓裡,寫下了 OneFlow 的第一版設計理念。此時的袁進輝剛剛從工作了近 4 年的微軟亞洲研究院(MSRA)離職。

「MSRA 前員工」並不是袁進輝身上唯一的 tag,2003 年從西安電子科技大學本科畢業後,他被保送到清華大學計算機系繼續直博學習,師從中國科學院院士、中國 AI 學科奠基人之一張鈸教授。

2016 年 12 月,袁進輝在微博發布零號員工工位照片

正式宣布創業開始

2008 年袁進輝從清華大學畢業後,先後加入網易、360 搜索。他開發的鷹眼系統,被中國國家隊作為日常訓練輔助系統。除此之外,他在 MSRA 工作期間,專注於大規模機器學習平臺,還研發出了當時世界上最快的主題模型訓練算法和系統 LightLDA,被應用於微軟在線廣告系統。

LightLDA 於 2014 年面世,僅僅兩年之後,獨具慧眼的袁進輝就又萌生了一個大膽地猜想:隨著業務需求和場景的豐富,能高效處理大模型訓練的分布式深度學習框架,必然成為繼 Hadoop、Spark 之後,數據智能時代基礎設施的核心。

但是當時主流的深度學習框架都是由 Google、Amazon、Facebook 等大廠牽頭開發的,即使是國內情況也類似。這由於開發深度學習框架不光需要雄厚的研發成本,更重要的是能耐得住寂寞,做好打持久戰的準備,因此尚沒有初創企業敢在該領域試水。

已有的深度學習框架都已經打的如火如荼了,一家初創企業,又搞出來一個新框架,會有用戶買單嗎?行動派袁進輝不但敢想,他還敢幹。

敲下 OneFlow 第一行代碼的時候,他還沒想清楚詳細地實現策略,更談不上完善的業務邏輯。他的想法很簡單,又很複雜,要做一款「開發者愛用」的產品。

一群天才+21 個月,OneFlow 初版上線

2017 年 1 月,袁進輝成立一流科技,召集了 30 多位工程師,開啟了 OneFlow 的正式「團戰」。儘管大家對困難已經做了充分預估,但是隨著開發的逐漸深入,湧現的重重困難還是出乎的團隊的意料。

深度學習框架的技術非常複雜,況且 OneFlow 採用了一個全新的技術架構,沒有先例可以參考,光是把技術設想跑通,就花了快兩年時間。

從成立時一個孤獨的工位,到如今精幹的團隊

強壯了這支國產深度學習框架的隊伍

2018 年秋天,一流科技的發展進入了最艱難的階段。產品研發遲遲不能定型,一些員工的耐心跟信心消耗殆盡,加上公司下輪融資一波三折,團隊的士氣和信心面臨極大挑戰。

在創業圈有個「18 個月魔咒」的說法,意思是一年半沒看到希望,沒有正反饋,創業團隊的心態就會發生變化,失去耐心。袁進輝意識到,不能再等了,必須要儘早在真實場景去使用 OneFlow,讓大家看到 OneFlow 的創新的確是有價值的, 從而形成正反饋。

2018 年 9 月,在經歷了長達 1 年 9 個月的研發後,袁進輝和團隊推出了 OneFlow 閉源版。當時 OneFlow 還沒有開源,也存在大大小小的問題,但產品正式發布了,總算是給團隊成員吃了個定心丸。

專注大規模訓練,效率秒殺同類框架

2018 年 11 月,幸運之神降臨到一流科技。Google 推出了最強自然語言模型 BERT,開啟了 NLP 新時代。這驗證了袁進輝的預測,擅長處理大規模訓練的新架構,是必須且必要的。

很快,一流科技的工程師就基於 OneFlow 支持了 BERT-Large 的分布式訓練,這也是當時唯一一個支持分布式 BERT-Large 訓練的框架,性能和處理速度遠超已有的開源框架。 

OneFlow 異構分布式流式系統架構圖

OneFlow 「一戰成名」,這也為一流科技積累第一批頭部網際網路企業用戶提供了契機。令人倍感意外的是,當時的袁進輝因為「仍對產品不滿意」,所以選擇了一條格外低調的路。

從 2018 年 9 月閉源版本發布,到 2020 年 7 月正式開源,袁進輝又用了 22 個月來打磨 OneFlow。他和團隊一邊持續優化經典模型,一邊解決原來沒預計到的問題,在袁進輝看來,哪怕是產品文檔沒做好,他都不會輕易把 OneFlow 推到檯面上。

2020 年 7 月 31 日,OneFlow 正式在 GitHub 開源。這個以訓練大規模模型著稱的開源框架,第二次站到聚光燈下,完美詮釋了四個字--效率為王。

深度學習框架版圖幾乎由美國企業主導

國內開源的深度學習框架版圖中

只有 OneFlow 是由初創企業研發並開源

訓練速度更快、GPU 利用率更高、多機加速比更高、運維成本更低、用戶上手難度更低,五個強大優勢讓 OneFlow 能快速適應各個場景,並進行快速延展。袁進輝和團隊對 OneFlow 的性能追求和優化,達到了極致。

近期,OneFlow 發布了 v0.2.0 版本,更新的性能優化多達 17 個,使得 CNN 和 BERT 的自動混合精度訓練速度大幅提升。

開發團隊還建立了一個名為 DLPerf 的開源項目,將實驗環境、實驗數據、可復現算法完全開源,測評了在相同的物理環境上(4臺 V100 16G x8的機器),OneFlow 和其他幾個主流框架在 ResNet50-v1.5 和 BERT-base 模型上的吞吐率及加速比。

7 個框架在 ResNet50-v1.5 模型上的吞吐率對比

結果證明 OneFlow 在單機單卡、多機多卡下的吞吐率都明顯領先其他框架,成為在主流旗艦顯卡(V100 16G)上訓練 ResNet50-v1.5 和 BERT-base 模型最快的框架,OneFlow ResNet50-v1.5 AMP 單卡比 NVIDIA 深度優化過的 PyTorch 快 80%, 比 TensorFlow 2.3 快 35%。

直面質疑,做賽道的「少數派」

事實上,OneFlow 從誕生至今,受到的質疑並不在少數,「上車晚且生存空間狹小」是最主流的聲音,對此袁進輝表現出了超乎尋常的坦然。

上不少從業者早期都對 OneFlow 持質疑態度

在他看來,深度學習框架本就是一個新生事物,技術和產業都在中早期,不存在上車早晚的問題。在技術收斂之前,性能高、易用性強、符合用戶使用價值的產品,就會受到用戶的青睞。

至於生存空間小一說,更是子虛烏有。開源讓小公司和大公司的產品有機會公平競技,優秀的新生框架挑戰權威的框架,正是開源精神的內核之一。

質疑聲並沒有阻礙 OneFlow 的發展,相反,袁進輝和團隊加快了 OneFlow 的升級和完善進程,更新優化性能、梳理開發者文檔、收集社區反饋……這些努力和堅持,為 OneFlow 吸引了更多用戶,其中不乏最初的「懷疑論者」。

OneFlow 開源後,吸引了眾多鐵粉

在 COSCon'20 中國開源年會上,袁進輝做了題為《深度學習訓練系統演進》的分享,向所有開發者介紹了 OneFlow 下一步的開發規劃,除了堅持效率為王、繼續性能優化外,開發團隊還在努力降低用戶的學習成本和遷移成本。目前 PyTorch 用戶遷移到 OneFlow 的成本已經相當低了,因為二者的用戶接口幾乎一樣,已訓練好的模型轉換成 OneFlow 的成本也足夠低。

客觀講,OneFlow 在完備性和易用性上,與 TensorFlow 和 PyTorch 相比還有差距。但是,OneFlow 的特色是效率高、擴展性好以及分布式特別容易使用,非常適合大規模人臉識別、大規模廣告推薦系統、以及類似 GPT-3 這種模型參數巨大的模型訓練場景。

採訪的最後袁進輝老師也毫不掩飾對人才的渴望,他表示 OneFlow 正在招聘機器學習工程師以及深度學習工程師,非常歡迎有識之士加入這個朝氣勃勃、渴望勝利的團隊。

(免責聲明:本文轉載自其它媒體,轉載目的在於傳遞更多信息,並不代表本站贊同其觀點和對其真實性負責。請讀者僅做參考,並請自行承擔全部責任。)

相關焦點

  • 寫給純小白的深度學習環境搭建寶典:pytorch+tensorflow
    小編強烈建議為pytorch建立一個虛擬環境,這樣做的好處是方便我們同時使用多個深度學習框架,每個框架就對應一個虛擬環境,框架之間可以互不幹擾。具體步驟:Windows用戶搜索打開Anaconda Prompt,然後輸入:source create -n pytorch python=3.5,pytorch是這個虛擬環境的名字,你也可以給它起個別的名字,Python的版本我們也可以指定為3.6。
  • TensorFlow與PyTorch之爭,哪個框架最適合深度學習
    論文地址:http://download.tensorflow.org/paper/whitepaper2015.pdfTensorFlow 現已被公司、企業與創業公司廣泛用於自動化工作任務和開發新系統,其在分布式訓練支持、可擴展的生產和部署選項、多種設備(比如安卓)支持方面備受好評。
  • 初學AI神經網絡應該選擇Keras或是Pytorch框架?
    keras是google的一個大佬開發的一個高度封裝的模型框架,已開源到github上。起初的計算後臺為Theano(和tensorflow差不多的一個框架),後來經過一系列的劇情,現在默認的計算後臺就為tensorflow了。
  • PYTORCH與TENSORFLOW:哪種框架最適合您的深度學習項目?
    為了幫助開發這些架構,諸如Google,Facebook和Uber之類的技術巨頭已經發布了適用於Python深度學習環境的各種框架,從而使學習,構建和訓練多樣化的神經網絡變得更加容易。在本文中,我們將研究兩個流行的框架並進行比較:PyTorch與TensorFlow。簡要地比較一下,最常用和依賴的Python框架TensorFlow和PyTorch。
  • 深度學習環境配置指南:Pytorch、TensorFlow、Keras
    導讀本文介紹了作者使用RTX3090進行深度學習環境配置pytorch、tensorflow、keras等的詳細過程及代碼。筆者中山大學研究生,醫學生+計科學生的集合體,機器學習愛好者。(3)創建虛擬環境,一般用py37或py38(以下都在虛擬環境中操作)conda create -n exp38 python==3.8conda activate exp38(4)安裝cuda11.0和pytorch1.7
  • GitHub趨勢榜第一:TensorFlow+PyTorch深度學習資源大匯總
    的各種深度學習架構,模型和技巧的集合。本文搜集整理了Jupyter Notebook中TensorFlow和PyTorch的各種深度學習架構,模型和技巧,內容非常豐富,適用於Python 3.7,適合當做工具書。大家可以將內容按照需要進行分割,列印出來,或者做成電子書等,隨時查閱。
  • 2020,PyTorch真的趕上TensorFlow了嗎?
    這一消息再次引發了社區關於兩個框架優劣的討論。作為後起之秀,PyTorch 真的已經全面趕超 TensorFlow 了嗎?為了研究這個問題,數據科學家 Jeff Hale 從在線職位數量、頂會論文中的出現次數、在線搜索結果、開發者使用情況四個方面對兩個框架的現狀進行了調研。
  • 損失函數理解匯總,結合PyTorch1.7和TensorFlow2
    [8] https://pytorch.org/docs/stable/generated/torch.nn.BCEWithLogitsLoss.html[9] https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html[10] https://www.tensorflow.org
  • 【綜述專欄】損失函數理解匯總,結合PyTorch和TensorFlow2
    [10] https://www.tensorflow.org/api_docs/python/tf/keras/losses/KLD[11] https://www.tensorflow.org/api_docs/python/tf/keras/losses/KLDivergence[12] https://pytorch.org/docs/stable/
  • 損失函數理解匯總,結合 PyTorch1.7 和 TensorFlow2
    [8] https://pytorch.org/docs/stable/generated/torch.nn.BCEWithLogitsLoss.html[9] https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html[10] https://www.tensorflow.org
  • RTX 3090 的深度學習環境配置指南:Pytorch、TensorFlow、Keras
    導讀本文介紹了作者使用RTX3090進行深度學習環境配置pytorch、tensorflow、keras等的詳細過程及代碼。筆者中山大學研究生,醫學生+計科學生的集合體,機器學習愛好者。(3)創建虛擬環境,一般用py37或py38(以下都在虛擬環境中操作)conda create -n exp38 python==3.8conda activate exp38(4)安裝cuda11.0和pytorch1.7
  • 一行代碼切換TensorFlow與PyTorch,模型訓練也能用倆框架
    這個項目就是你需要的,你可以在訓練中同時使用兩個框架,並端到端地轉換模型。也就是說 TensorFlow 寫的計算圖可以作為某個函數,直接應用到 Torch 的張量上,這操作也是很厲害了。在早兩天開源的 TfPyTh 中,不論是 TensorFlow 還是 PyTorch 計算圖,它們都可以包裝成一個可微函數,並在另一個框架中高效完成前向與反向傳播。
  • TensorFlow、PyTorch、Keras:NLP框架哪家強
    非競爭性特點下文介紹了TensorFlow、PyTorch和Keras的幾個不同之處,便於讀者對這三個框架有初步了解。列出這些區別的重點不在於對三者做比較,而在於做一個初步介紹。因此,本文也選擇從這一角度切入來比較TensorFlow、PyTorch和Keras框架。本文比較的三種框架都具有可用於構建簡單RNN以及更複雜的RNN——門控循環單元(Gated Recurrent Units,GRU)和長短時記憶網絡(Long Short Term Memory networks,LSTM)的模塊。
  • Pytorch還是TensorFlow?頂會帶你覽趨勢
    自 2009 年深度學習再度成為焦點以來,很多機器學習框架成為研究者和業界開發者的新寵。從早期的學術框架 Caffe、Theano 到如今 Pytorch、TensorFlow 這樣越來越大規模的開發框架。發展到 2020 年,我們可以看到國內外越來越多的科技巨頭、創業公司都在研發、使用自家的深度學習框架,如國內的也有百度飛槳、華為 MindSpore、曠視天元。
  • PyTorch稱霸頂會:CVPR論文佔比是TensorFlow 4 倍
    自 2009 年深度學習再度成為焦點以來,很多機器學習框架成為研究者和業界開發者的新寵。從早期的學術框架 Caffe、Theano 到如今 Pytorch、TensorFlow 這樣越來越大規模的開發框架。
  • 深度學習100+經典模型TensorFlow與Pytorch代碼實現大集合
    【導讀】深度學習在過去十年獲得了極大進展,出現很多新的模型,並且伴隨TensorFlow和Pytorch框架的出現,有很多實現,但對於初學者和很多從業人員
  • TensorFlow發布JavaScript開發者的機器學習框架TensorFlow.js
    去年的 TensorFlow 開發者大會上,該框架正式升級到了 1.0 版本,逐漸成為最流行的深度學習框架。今年,TensorFlow 發布了面向 JavaScript 開發者的全新機器學習框架 TensorFlow.js。
  • 2020,國產AI開源框架「亮劍」TensorFlow、PyTorch
    3月20日,清華大學計算機系圖形實驗室開源AI框架計圖(Jittor),這是由中國學界開源的首個AI框架,直接對標PyTorch。在短短8天時間裡,來自中國AI開源框架「你方唱罷我登臺」,向AI開源框架領域的霸主們亮劍,這也許會成為國產深度學習框架開源歷史上重要的高光時刻。
  • 在Windows中安裝Tensorflow和Kears深度學習框架
    這個虛擬環境用來安裝TensorFlow的版本。圖 3-102.3 啟動Anaconda虛擬環境建立tensorflow的Anaconda虛擬環境後,就可以啟動這個虛擬環境了圖 3-11命令提示符中出現tensorflow時,表名已經啟動tensorflow虛擬環境。
  • 2019 年機器學習框架之爭:PyTorch 和 TensorFlow 誰更有勝算?
    雷鋒網 AI 科技評論按:對於機器學習科研工作者和工業界從業人員來說,熟練掌握一種機器學習框架是必備技能之一。隨著深度學習技術發展的突飛猛進,機器學習框架市場也漸漸度過了初期野蠻生長的階段。大浪淘沙,目前仍然活躍的機器學習框架主要是 PyTorch 和 TensorFlow。本文從學術界和工業界兩個方面深度盤點了 2019 年機器學習框架的發展趨勢。