機器之心報道
參與:一鳴
TensorFlow 和 PyTorch 框架之爭由來已久,近日的一則新聞讓 PyTorch 陣營「更添一員大將」。OpenAI 表示,他們已全面轉向 PyTorch,並統一自家所有模型的框架標準。
對於深度學習框架的使用,整個人工智能社區大體可以分為兩大陣營:TensorFlow 和 PyTorch。有觀點認為,
PyTorch 更適合研究領域,而實際的工業應用可能更偏向於 TensorFlow。
PyTorch 具有用戶友好的 API 和對 Python 生態的良好支持,更適合學界。而 TensorFlow 因為用戶慣性和對工業生產環境的支持,更適合業界。
近日的一則新聞確實佐證了這個說法。OpenAI——一個研究過 AI 打 Dota2、推出 NLP 預訓練模型 GPT-2、以及讓機器人單手還原魔方等項目的人工智能研究機構宣佈,他們將會全面轉向 PyTorch。
從 2017 年 TensorFlow 佔絕對優勢到現在兩大框架處於相對均勢,雙方的開發團隊可能都沒有料到 PyTorch 會這麼受社區青睞。
用 PyTorch 統一項目標準
在一則簡短的博客文章中,OpenAI 表示,他們將會使用 PyTorch 作為統一的深度學習框架。在此之前,他們會基於框架本身的特點和優勢在不同的項目中使用不同的框架。
OpenAI 認為,為了讓團隊更容易地創建和共享模型及其應用,使用 PyTorch 是更好的選擇。
另外一個選擇 PyTorch 的重要原因是:用它來實現各種新的想法特別容易,特別是在 GPU 集群上。OpenAI 在博客中說,自從選擇了 PyTorch,他們可以將研究思路到生成模型的迭代開發時間從周壓縮到天。這節省了很多的時間。更何況,PyTorch 背後也有著活躍的開發社區,包括 FaceBook 等大型研究機構都在使用。
OpenAI 還在文章中表示,他們的大部分團隊已經完成了遷移工作。除非有特定的技術原因,基本上 PyTorch 就是主要的深度學習框架了。例如,OpenAI 在近日推出了 PyTorch 版本的深度強化學習庫——「Spinning Up」。
此外,OpenAI 還會在後續的開源計劃中公開更多基於 PyTorch 的項目,比如「Block-Sparse GPU Kernels」。這是一種新架構的核,計算速度快於 cuBLAS 和 cuSPARSE。
TF 問題多多,用戶轉向 PyTorch
誠然,與 TensorFlow 相比,PyTorch 仍在存在性能、工業生態支持等方面的短板。但是不可否認的是,TensorFlow 的諸多問題驅使用戶選擇了 PyTorch。
首先是易用性的問題。TensorFlow 剛剛問世的時候有著陡峭的學習曲線。要想掌握這個框架,其難度不亞於學習一門新的編程語言。而 PyTorch 在設計之初就非常「Pythonic」,使用起來和 Python 一樣簡單。
其次是 API 的穩定性。由於 TensorFlow 誕生的時候,業界和學界對於深度學習框架的設計經驗不足,所以在 API 的定義、設計和功能實現方面有很多不同的理解,開發者們也走過很多彎路。更何況深度學習本身就是快速發展的,新算法需要快速的 API 實現。這就導致 TensorFlow 的 API 變了又變,還加上了很多 contrib 的 API。相比之下,PyTorch 的 API 迭代更穩定,更沒有命名混亂的問題。
基於以上兩個原因,PyTorch 相比 TensorFlow 有著更低的上手成本,以及更快速實現的使用特點。因此,經常有新思路的學界就更青睞 PyTorch 一些,畢竟他們需要的是能夠快速實現想法,並迅速迭代的深度學習框架。OpenAI 作為一個經常有各種算法和創意的研究機構,使用 PyTorch 也自然更合理一些。
網友評價
對於 OpenAI 徹底擁抱 PyTorch 的新聞,不少 Reddit 網友提出了自己的看法。
一位網友認為,在被 TensorFlow 激怒後,轉向 PyTorch 再合理不過了。他同時認為,TF2.0 確實在「撥亂反正」。
另一位也表示贊同,他認為,PyTorch 逐漸變得更好了,而 TF2.0 實際上沒有人們想得那麼好。另外,與 TensorFlow 相比,PyTorch 的設計和維護者更懂得如何在靈活性、易用性和採納新技術方面保持平衡。
接下來,社區其他成員將作何抉擇?TensorFlow 可要加把勁啦!
參考鏈接:https://openai.com/blog/openai-pytorch/https://www.reddit.com/r/MachineLearning/comments/ew8oxq/n_openai_switches_to_pytorch/
閱讀更多 機器之心Pro 的文章