百度开源深度学习平台Paddle
百度開源深度學習平臺Paddle 吃瓜群眾表示只想知道好不好。百度今天開源了其深度學習平臺Paddle,引發了挺多人工智能領域開發者的興趣,包括一些之前一直在Tensorflow和Caffe上練手的開發者。不過鑒于深度學習的開源平臺目前并不多,作為開發者也作為熱心吃瓜群眾的頭等大事,就是想知道——這個平臺怎么樣?別人怎么看這個平臺?以及這個平臺跟Tensorflow以及Caffe有何區別?
▎這個平臺本身怎么樣
Paddle本身在開源前就一直存在,始于2013年的時候,因為百度深度實驗室察覺到自己在深度神經網絡訓練方面,伴隨著計算廣告、文本、圖像、語音等訓練數據的快速增長,傳統的基于單GPU的訓練平臺已經無法滿足需求,為此在徐偉的帶領下,實驗室搭建了 Paddle(Parallel Asynchronous Distributed Deep Learning)多機并行GPU這個訓練平臺。
但今天開源的Paddle當然不是3年前的簡單模型,3年前Paddle可能還是一個獨立的深度學習平臺,不能很好地支持把數據從其他平臺接入的需求。但今天的Paddle已經在處處強調,它的特色是讓Spark 與PADDLE耦合起來,是一個基于Spark的異構分布式深度學習系統。并且經過和百度相關業務的“緊密摩擦”后,它已經迭代了兩個版本:從Spark on Paddle架構1.0版,到Spark on PADDLE 架構2.0版。根據平臺開源的規則,大概是在百度內部用的非常得心應手,修復了一系列bug后,實驗室才終于打算把Spark on PADDLE以及異構計算平臺開源。至于百度為什么要開源,這個理由大家都懂的
深度學習平臺目前還有很多bug——吸引更多的開發者來嘗試和使用深度學習技術,對提高Paddle的檔次是絕對有幫助的。
▎外界人士對這個平臺的評價
知乎上賈清揚的回答,目前是比較正面的評價。
1. 很高質量的GPU代碼
2. 非常好的RNN設計
3. 設計很干凈,沒有太多的abstraction,這一點比TensorFlow好很多。
4. 高速RDMA的部分貌似沒有開源(可能是因為RDMA對于cluster design有一定要求):Paddle/RDMANetwork.h at master · baidu/Paddle · GitHub
5. 設計思路比較像第一代的DL框架,不過考慮到paddle已經有年頭了,這樣設計還是有歷史原因的。
5.1 config是hard-code的protobuf message,這對擴展性可能會有影響。
5.2 可以看到很多有意思的類似歷史遺留的設計:采用了STREAM_DEFAULT macro,然后通過TLS的方式定向到非default stream:Paddle/hl_base.h at 4fe7d833cf0dd952bfa8af8d5d7772bbcd552c58 · baidu/Paddle · GitHub (所以Paddle off-the-shelf不支持mac?)
5.3 在梯度計算上采用了傳統的粗粒度forward/backward設計(類似Caffe)。可能有人會說“所以paddle沒有auto gradient generation”,這是不對的,autograd的存在與否和op的粒度粗細無關。事實上,TensorFlow在意識到細粒度operator超級慢的速度以后,也在逐漸轉回粗粒度的operator上。目前只看到這里。總之是一個非常solid的框架,百度的開發功底還是不錯的。
估計不少人都讀過賈清揚的評價,下面我們貼一個前百度數據工程師,極視角CTO纓寧的評價
看了一下,從設計理念來看和Caffe挺像的,但網絡模型沒有Caffe那么容易定義。最大貢獻是做了分布式,提高了建立模型的速度。再詳細的感受就得看代碼和上手用了。
另一個跟上面兩位觀點反差較大的某研究深度學習的學者表示
Tensorflow 的架構可以認為是一個升級版的theano, theano比Caffe還要早幾年,只是Caffe最早train好了,同時發布了一些成功的卷積神經網絡模型因此得到更多關注。Tensorflow 和Caffe沒啥太大的關系,可能借鑒了Caffe某一些實現技巧,本質上沒啥關系。 百度這個很有可能是看到Caffe的成功之后實現的,很大程度模仿的Caffe, 同時試圖修改一些東西使其看的和Caffe不一樣。
我估計使用Caffe的人不會投向它,使用其他的工具的人(tensorflow, keras, theano, torch,mxnet)也不會投向它, 大家說幾天然后就……一個月之后看一下它的github的關注量和github上能夠找到的別人寫的代碼量你就知道他是否能有什么浪花(后面可以看看有沒有人用他來參加kaggle或者其他比賽或在科研發布代碼)。現在基本每個大公司都發布自己的深度學習框架(或者機器學習框架),例如微軟, 亞馬遜, 雅虎,好像都沒有大動靜。
▎這個平臺跟Tensorflow以及Caffe有何區別
雷鋒網申請了Paddle的今天公測版本,目前還在審核中,雖然不能直接下載體驗,但和其它兩個平臺的區別也不是毫無蹤跡。根據我們之前對Caffe, Tensorflow的了解,以及今天Paddle放出的數據。
附接口語音
Caffe ——cmd, matlab, python
Tensorflow——python, c++
Paddle ——python, c++
(注:其中python是開發者主要使用的語言, 只有Caffe修改model內部的時候要用的c++。(如有異議,歡迎各開發者進一步交流)
總的來說
1)Caffe可以說是第一個工業級深度學習工具,始于2013年底由UC Berkely的賈楊清編寫的具有出色的CNN實現功能的開發語言,在計算機視覺領域Caffe仍然是最流行的工具包。
Caffe的開發語言支持C++和Cuda,速度很快,但是由于一些歷史性的遺留架構問題,它的靈活性不夠強。而且對遞歸網絡和語言建模的支持很差。Caffe支持所有主流開發系統,上手難度屬于中等水平。
2)Tensorflow是Google開源的第二代深度學習技術,是一個理想的RNN API實現,它使用了向量運算的符號圖方法,使得開發的速度可以很快。
Tensorflow支持的比較好的系統只有各種Linux系統和OSX,不過其對語言的支持比較全面,包含了Python、C++和Cuda等,開發者文檔寫得沒有Caffe那么全面,所以上手比較難。
3)而此次百度的Paddle,作為基于Spark的異構分布式深度學習系統,通過使用GPU與FPGA異構計算提升每臺機器的數據處理能力,暫時獲得了業內 “相當簡潔、設計干凈、穩定,速度較快,顯存占用較小。”的評價,跟它通過使用GPU與FPGA異構計算提升每臺機器的數據處理能力有重要聯系。不過具體表現如何,還需等待幾天觀察一下大家的使用感受。
本文轉載自雷鋒網。
總結
以上是生活随笔為你收集整理的百度开源深度学习平台Paddle的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: H - Holy Grail
- 下一篇: 如何制作一个简单的游戏 Cocos2d