OpenAI全面擁抱PyTorch,TensorFlow:我哪里比不上它?
TensorFlow 和 PyTorch 框架之爭(zhēng)由來已久,近日的一則新聞讓 PyTorch 陣營(yíng)「更添一員大將」。OpenAI 表示,他們已全面轉(zhuǎn)向 PyTorch,并統(tǒng)一自家所有模型的框架標(biāo)準(zhǔn)。
對(duì)于深度學(xué)習(xí)框架的使用,整個(gè)人工智能社區(qū)大體可以分為兩大陣營(yíng):TensorFlow 和 PyTorch。有觀點(diǎn)認(rèn)為,PyTorch 更適合研究領(lǐng)域,而實(shí)際的工業(yè)應(yīng)用可能更偏向于 TensorFlow。PyTorch 具有用戶友好的 API 和對(duì) Python 生態(tài)的良好支持,更適合學(xué)界。而 TensorFlow 因?yàn)橛脩魬T性和對(duì)工業(yè)生產(chǎn)環(huán)境的支持,更適合業(yè)界。
近日的一則新聞確實(shí)佐證了這個(gè)說法。OpenAI——一個(gè)研究過 AI 打 Dota2、推出 NLP 預(yù)訓(xùn)練模型 GPT-2、以及讓機(jī)器人單手還原魔方等項(xiàng)目的人工智能研究機(jī)構(gòu)宣布,他們將會(huì)全面轉(zhuǎn)向 PyTorch。
從 2017 年 TensorFlow 占絕對(duì)優(yōu)勢(shì)到現(xiàn)在兩大框架處于相對(duì)均勢(shì),雙方的開發(fā)團(tuán)隊(duì)可能都沒有料到 PyTorch 會(huì)這么受社區(qū)青睞。
用 PyTorch 統(tǒng)一項(xiàng)目標(biāo)準(zhǔn)
在一則簡(jiǎn)短的博客文章中,OpenAI 表示,他們將會(huì)使用 PyTorch 作為統(tǒng)一的深度學(xué)習(xí)框架。在此之前,他們會(huì)基于框架本身的特點(diǎn)和優(yōu)勢(shì)在不同的項(xiàng)目中使用不同的框架。
OpenAI 認(rèn)為,為了讓團(tuán)隊(duì)更容易地創(chuàng)建和共享模型及其應(yīng)用,使用 PyTorch 是更好的選擇。通過標(biāo)準(zhǔn)化的 PyTorch 框架,OpenAI 可以建立起基于它的平臺(tái),使得自家的各種模型和應(yīng)用都能進(jìn)行框架和工具的復(fù)用。
另外一個(gè)選擇 PyTorch 的重要原因是:用它來實(shí)現(xiàn)各種新的想法特別容易,特別是在 GPU 集群上。OpenAI 在博客中說,自從選擇了 PyTorch,他們可以將研究思路到生成模型的迭代開發(fā)時(shí)間從周壓縮到天。這節(jié)省了很多的時(shí)間。更何況,PyTorch 背后也有著活躍的開發(fā)社區(qū),包括 FaceBook 等大型研究機(jī)構(gòu)都在使用。
OpenAI 還在文章中表示,他們的大部分團(tuán)隊(duì)已經(jīng)完成了遷移工作。除非有特定的技術(shù)原因,基本上 PyTorch 就是主要的深度學(xué)習(xí)框架了。例如,OpenAI 在近日推出了 PyTorch 版本的深度強(qiáng)化學(xué)習(xí)庫(kù)——「Spinning Up」。
此外,OpenAI 還會(huì)在后續(xù)的開源計(jì)劃中公開更多基于 PyTorch 的項(xiàng)目,比如「Block-Sparse GPU Kernels」。這是一種新架構(gòu)的核,計(jì)算速度快于 cuBLAS 和 cuSPARSE。
TF 問題多多,用戶轉(zhuǎn)向 PyTorch
誠(chéng)然,與 TensorFlow 相比,PyTorch 仍在存在性能、工業(yè)生態(tài)支持等方面的短板。但是不可否認(rèn)的是,TensorFlow 的諸多問題驅(qū)使用戶選擇了 PyTorch。
首先是易用性的問題。TensorFlow 剛剛問世的時(shí)候有著陡峭的學(xué)習(xí)曲線。要想掌握這個(gè)框架,其難度不亞于學(xué)習(xí)一門新的編程語言。而 PyTorch 在設(shè)計(jì)之初就非?!窹ythonic」,使用起來和 Python 一樣簡(jiǎn)單。
其次是 API 的穩(wěn)定性。由于 TensorFlow 誕生的時(shí)候,業(yè)界和學(xué)界對(duì)于深度學(xué)習(xí)框架的設(shè)計(jì)經(jīng)驗(yàn)不足,所以在 API 的定義、設(shè)計(jì)和功能實(shí)現(xiàn)方面有很多不同的理解,開發(fā)者們也走過很多彎路。更何況深度學(xué)習(xí)本身就是快速發(fā)展的,新算法需要快速的 API 實(shí)現(xiàn)。這就導(dǎo)致 TensorFlow 的 API 變了又變,還加上了很多 contrib 的 API。相比之下,PyTorch 的 API 迭代更穩(wěn)定,更沒有命名混亂的問題。
基于以上兩個(gè)原因,PyTorch 相比 TensorFlow 有著更低的上手成本,以及更快速實(shí)現(xiàn)的使用特點(diǎn)。因此,經(jīng)常有新思路的學(xué)界就更青睞 PyTorch 一些,畢竟他們需要的是能夠快速實(shí)現(xiàn)想法,并迅速迭代的深度學(xué)習(xí)框架。OpenAI 作為一個(gè)經(jīng)常有各種算法和創(chuàng)意的研究機(jī)構(gòu),使用 PyTorch 也自然更合理一些。
網(wǎng)友評(píng)價(jià)
對(duì)于 OpenAI 徹底擁抱 PyTorch 的新聞,不少 Reddit 網(wǎng)友提出了自己的看法。
一位網(wǎng)友認(rèn)為,在被 TensorFlow 激怒后,轉(zhuǎn)向 PyTorch 再合理不過了。他同時(shí)認(rèn)為,TF2.0 確實(shí)在「撥亂反正」。
另一位也表示贊同,他認(rèn)為,PyTorch 逐漸變得更好了,而 TF2.0 實(shí)際上沒有人們想得那么好。另外,與 TensorFlow 相比,PyTorch 的設(shè)計(jì)和維護(hù)者更懂得如何在靈活性、易用性和采納新技術(shù)方面保持平衡。
接下來,社區(qū)其他成員將作何抉擇?TensorFlow 可要加把勁啦!