歡迎您光臨本站 註冊首頁

機器學習框架分析,PyTorch 和 TensorFlow 誰將引領未來?

←手機掃碼閱讀     admin @ 2019-10-23 , reply:0

在人工智慧快速發展的今天,機器學習框架變得炙手可熱,它們搖身成為許多研究人員和從業者的新寵。當下,機器學習框架之戰有兩個主要競爭者:PyTorch 和 TensorFlow。來自康奈爾大學的 Horace He 對二者進行了對比研究,並將研究成果發表在了斯坦福人工智慧實驗室創辦的數字雜誌 「The Gradient」 上。他發現:PyTorch 在學界愈發吃香,而業界的首選仍是 TensorFlow。

在研究領域不斷提高主導地位的 PyTorch

下圖展示了在每個頂級研究會議上,單獨使用 PyTorch 的論文與 Tensorflow/PyTorch 論文之間的比率——2019 年的每個主要會議都在 PyTorch 中實現了大多數研究。

下面是 PyTorch 與 TensorFlow 原始計數的圖表,它展現出 PyTorch 在研究界的發展速度之快:

在 2018 年,PyTorch 是少數派。現在,它是絕大多數,CVPR 會議中使用 PyTorch 的占 69%,PyTorch 研究在 NAACL 和 ACL 會議中均占 75% 以上,在 ICLR 和 ICML 會議中也有 50% 以上。可以看出,PyTorch 在視覺和語言類會議上的統治地位最強,在諸如 ICLR 和 ICML 之類的通用機器學習會議上也比 TensorFlow 更受歡迎。

那麼為什麼研究人員如此青睞 PyTorch 呢?Horace 總結出了如下幾點原因:

  • 簡單。它與 numpy 類似,非常具有 python 風格,並且可以輕鬆地與其他 Python 生態系統集成。
  • 很棒的 API。與 TensorFlow 的 API 相比,大多數研究人員更喜歡 PyTorch 的 API。
  • 性能。儘管事實上 PyTorch 的動態圖提供的優化機會很少,不過,據傳聞 PyTorch 的速度甚至快於 TensorFlow。目前尚不清楚這是否為實,但至少 TensorFlow 在這一領域還沒有取得決定性優勢。

作者 Horace 認為 TensorFlow 的研究前景還有待觀察。畢竟目前 PyTorch 已經覆蓋到很多社區,這意味著 PyTorch 的實現將更容易找到,人們也更有動力在 PyTorch 中發布代碼。當然,TensorFlow 在 Google/DeepMind 中還是會始終擁有一定的受眾群體,但它的地位仍受到威脅,因為「有人抱怨說 Google 內部的許多研究人員都希望使用 TensorFlow 以外的框架」。

「此外,PyTorch 的統治地位可能會開始切斷 Google 研究人員與其他研究社區的聯繫。他們不僅很難在外部研究的基礎上進行構建,而且外部研究人員也不太可能在 Google 發布的代碼基礎上進行構建。」這是需要警惕的地方。

用於生產的 PyTorch 和 TensorFlow

儘管 PyTorch 現在在研究中佔據重要地位,但 TensorFlow 仍然是行業內部的主導框架。根據公開數據,TensorFlow 的招募職位多於 PyTorch,GitHub 上 13.7k 的 TensorFlow 星標也多於 7.2k 的 PyTorch 星標。

PyTorch 在業界為什麼沒有取得與學界同等的受歡迎程度呢?首要答案是一貫性。TensorFlow 早於 PyTorch 出現,而且行業採用新技術的速度比研究人員要慢。另一個原因是 TensorFlow 在生產方面更勝 PyTorch 一籌。

這就要從研究人員和行業的不同需求講起。研究人員關心他們能夠以多快的速度進行研究,該研究通常是在相對較小的數據集(可以容納在一台計算機上的數據集)上運行的。通常,這與性能方面的考慮無關,而是依靠他們快速實施新想法的能力來決定。與之相反,業界認為性能是重中之重。將運行時間提高 10% 對研究人員而言意義不大,但對公司來說,這可以直接節省數百萬美元的費用。

另一個區別在於部署。研究人員在自己的計算機或專用於運行研究工作的伺服器集群上進行實驗。行業則有很多限制和要求:

  • No Python。一些公司會運行伺服器,這些伺服器的 Python 運行時開銷太大。
  • 移動。無法在移動二進位文件中嵌入 Python 解釋器。
  • 服務。要求功能全面,例如無停機更新模型、在模型之間無縫切換、在預測時進行批處理等。

TensorFlow 恰巧專門針對這些要求而構建,並為所有這些問題提供了解決方案:圖形格式和執行引擎本來就不需要 Python,並且 TensorFlow Lite 和 TensorFlow Serving 能夠分別解決移動和服務注意事項。

從歷史上看,PyTorch 未能滿足這些考慮,因此大多數公司目前在生產中使用 TensorFlow。

機器學習框架的現狀

以上事實折射出機器學習框架的當前狀態:PyTorch 擁有研究市場,並且正在嘗試擴展到行業領域;TensorFlow 試圖在不犧牲太多生產力的情況下,在研究界中盡其所能。TensorFlow 目前在行業中根深蒂固,且行業發展較為緩慢,因此 PyTorch 對行業產生有意義的影響肯定還需要相當長時間。不過,從 TensorFlow 1.0 到 2.0 的過渡將存在一些困難,這也恰好為公司評估 PyTorch 提供了自然機遇。

Horace 認為,未來將取決於誰能夠更好地回答以下問題:

研究人員的偏好會在多大程度上影響行業?當前的博士生開始畢業時,他們將攜帶 PyTorch 技能。關鍵在於這種偏好是否足夠強大,以至於公司會出於招聘目的選擇 PyTorch。另一種可能是,畢業生會創辦基於 PyTorch 的創業公司嗎?

TensorFlow 的 Eager 模式能否趕上 PyTorch 的可用性?TensorFlow Eager 受到性能/內存問題的嚴重困擾,Google 將在這方面花費大量工程精力。

PyTorch 可以多快達到生產狀態?PyTorch 仍然有許多基本問題尚未解決:沒有好的量化指標、不支持移動、服務問題等等。在這些問題解決之前,PyTorch 不會成為許多公司的選擇。 它能否做出足夠的改變?(最新消息:近期 PyTorch 宣布支持量化和移動技術,兩者都仍處於試驗階段,表示著 PyTorch 在這方面終於有了重大進展。)

Google 在行業中的孤立會使自身受到傷害嗎?Google 推動 TensorFlow 的主要原因之一是幫助其迅速發展的雲服務。由於 Google 試圖擁有整個 ML 垂直市場,這激勵了與 Google 競爭的公司(微軟、亞馬遜、Nvidia 等),來支持唯一的替代機器學習框架。

最後,Horace 指出,不僅僅是快速發展的框架,機器學習研究本身也處於不斷變化的狀態。框架不僅會發生變化,而且 5 年內使用的模型/硬體/範例可能與我們今天所使用的一切大不相同。隨著另一種計算模型的普及,也許 PyTorch 和 TensorFlow 之間的競爭將變得無關緊要。我們應當將焦點維持在機器學習本身上,無論是喜歡 TensorFlow 還是 PyTorch,試圖使機器學習軟體達到最佳狀態就好。

原文:https://thegradient.pub/state-of-ml-frameworks-2019-pytorch-dominates-research-tensorflow-dominates-industry


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/110773/state-of-ml-frameworks-pytorch-and-tensorflow
機器學習框架分析,PyTorch 和 TensorFlow 誰將引領未來?已經有136次圍觀

http://coctec.com/news/soft/show-post-217470.html