摘要:截止到今天,已公開發(fā)行一周年。一年以來,社區(qū)中的用戶不斷做出貢獻和優(yōu)化,在此深表感謝。所以與衡量它的指標包括在機器學習研究論文中的使用。來自香港科技大學的在上推出了面向普通觀眾的在線課程。
Yann LeCun Twitter
截止到今天,PyTorch 已公開發(fā)行一周年。一年以來,我們致力于打造一個靈活的深度學習研究平臺。一年以來,PyTorch 社區(qū)中的用戶不斷做出貢獻和優(yōu)化,在此深表感謝。
通過此文,我們打算對 PyTorch 一年的發(fā)展歷程做一個總結:PyTorch 的進展、新聞以及社區(qū)亮點。
社區(qū)
我們很幸運,PyTorch 團隊有一批強大、飽含熱情的研究者和工程師,核心團隊的工程師和研究者來自不同的國家、公司和大學,沒有他們的付出就不會有今天的 PyTorch。
研究論文、工具包、GitHub
PyTorch 才發(fā)行幾天,社區(qū)用戶已經開始借助 PyTorch 實現(xiàn)其最喜愛的研究論文,并把代碼公布在 GitHub 上。開源代碼對當今的研究者來說是一個主要而核心的工具。
人們一起創(chuàng)建了 torchtext、torchvision 和 torchaudio,以便利化平民化不同領域的研究。
較早的 PyTorch 社區(qū)工具包(被命名為 Block)來自 Brandon Amo,有助于更輕松地處理塊矩陣(block matrix)。來自 CMU 的 Locus 實驗室后來繼續(xù)公布 PyTorch 工具包及其大部分研究的實現(xiàn)。較早的研究論文代碼來自 Sergey Zagoruyko,論文名稱為《Paying more attention to attention》。
來自 U.C.Berkeley 的 Jun-Yan Zhu、Taesung Park、Phillip Isola、Alyosha Efros 及團隊發(fā)布了非常流行的 Cycle-GAN 和 pix2pix,用于圖像轉換。
參見論文:學界 | 讓莫奈畫作變成照片:伯克利圖像到圖像翻譯新研究
HarvardNLP 和 Systran 的研究者開始使用 PyTorch 開發(fā)和提升 OpenNMT,它最初開始于 Facebook Adam Lerer 的 [Lua]Torch 代碼最初的再實現(xiàn)。
參見:開源 | 哈佛大學 NLP 組開源神經機器翻譯工具包 OpenNMT:已達到生產可用水平
來自 Twitter 的 MagicPony 團隊貢獻了其超分辨率研究示例的 PyTorch 實現(xiàn)。
Salesforce 發(fā)布了若干個工具包,包括其亮點成果 PyTorch-QRNN,這是一種新型 RNN,相比于 CuDNN 優(yōu)化的標準 LSTM 可提速 2 到 17 倍。James Bradbury 及其團隊是 PyTorch 社區(qū)中最活躍和最有吸引力的團隊之一。
來自 Uber、Northeaster、Stanford 的研究者圍繞著其工具包 Pyro 和 ProbTorch,形成了一個活躍的概率編程社區(qū)。他們正在積極開發(fā) torch.distributions 核心工具包。該社區(qū)非常活躍,快速發(fā)展,我們聯(lián)合 Fritz Obermeyer、Noah Goodman、Jan-Willem van de Meent、Brooks Paige、Dustin Tran 及其他 22 名參會者在 NIPS 2017 上舉辦了首次 PyTorch 概率編程會議,共同探討如何使世界貝葉斯化。
參見:Uber 與斯坦福大學開源深度概率編程語言 Pyro:基于 PyTorch
英偉達研究者發(fā)布了三個高質量 repo,實現(xiàn)了 pix2pix-HD、Sentiment Neuron 和 FlowNet2。對 PyTorch 中不同數(shù)據(jù)并行模型的擴展性分析對整個社區(qū)都很有益。
艾倫人工智能研究所發(fā)布 AllenNLP,包括多個 NLP 先進模型:標準 NLP 任務的參考實現(xiàn)和易用 web demo。
六月份,我們還首次取得了 Kaggle 競賽冠軍(團隊 grt123)。他們獲得了 2017 數(shù)據(jù)科學杯(關于肺癌檢測)的冠軍,后來公開了其 PyTorch 實現(xiàn)。
在可視化方面,Tzu-Wei Huang 實現(xiàn)了 TensorBoard-PyTorch 插件,F(xiàn)acebook AI Research 發(fā)布了與 PyTorch 兼容的 visdom 可視化包。
最后,F(xiàn)acebook AI Research 發(fā)布了多個項目,如 ParlAI、fairseq-py、VoiceLoop 和 FaderNetworks,在多個領域中實現(xiàn)了先進的模型和接口數(shù)據(jù)集。由于空間有限,這里就不將優(yōu)秀項目一一列出,詳細列表可參閱:https://github.com/soumith?tab=stars。
我們還要感謝那些在論壇中積極幫助別人的用戶。你們提供了無比珍貴的服務,非常感謝!
指標
從數(shù)字上來看:
在 Github 上有 87769 行代碼引入 Torch。
在 Github 上有 3983 個 repository 在名字或者描述中提到了 PyTorch。
PyTorch binary 下載量超過 50 萬,具體數(shù)字是 651916。
在論壇上,有 5400 名用戶發(fā)表了 21500 條討論,涉及 5200 個主題。
自發(fā)布以來,在 Reddit 上的/r/machinelearning 主題中有 131 條討論提到了 PyTorch。同期,TensorFlow 被提及的次數(shù)為 255。
參見:
PyTorch 和 TensorFlow 到底哪個更好?看看一線開發(fā)者怎么說
TensorFlow 開源一周年:這可能是一份最完整的盤點
研究指標
PyTorch 是一個專注于研究的框架。所以與衡量它的指標包括 PyTorch 在機器學習研究論文中的使用。
在 ICLR 2018 學術會議提交的論文中,有 87 篇提到了 PyTorch,相比之下 TensorFlow 228 篇,Keras 42 篇,Theano 和 Matlab 是 32 篇。
按照月度來看,arXiv 論文提到 PyTorch 框架的有 72 篇,TensorFlow 是 273 篇,Keras 100 篇,Caffe 94 篇,Theano 53 篇。
課程、教程與書籍
我們在發(fā)布 PyTorch 的時候,已經準備了很好的 API 文檔,但教程有限,只有幾個 ipython notebook,雖然有用但還不夠。
Sasank Chilamkurthy 承擔了改進教程的任務,教程詳見:http://pytorch.org/tutorials/。
Sean Robertson 和 Justin Johnson 編寫了 NLP 領域的全新教程,還有通過示例學習的教程。Yunjey Choi 寫了用 30 行或者更少的代碼部署大多數(shù)模型的教程。每個新教程都幫助用戶用不同的學習方法更快地找到適合自己的學習路徑。
Goku Mohandas 和 Delip Rao 把正在寫的書中的代碼做了改變,使用了 PyTorch。
我們看到,一些大學的機器學習課程是使用 PyTorch 作為主要工具講授的,例如哈佛 CS 287。為了更進一步方便大眾學習,我們還看到三個在線課程使用 PyTorch 講授。
Fast.ai 的「Deep Learning for Coders」是個流行的在線課程。9 月份,Jeremy 和 Rachel 宣布下一個 fast.ai 的課程將幾乎全部基于 PyTorch。
Ritchie Ng,在清華、新加坡國立大學都學習過的研究者,推出了名為「Practical Deep Learning with PyTorch」的 Udemy 課程。
來自香港科技大學的 Sung Kim 在 Yotube 上推出了面向普通觀眾的在線課程「PyTorch Zero to All」。
參見:四天速成!香港科技大學 PyTorch 課件分享
工程
去年 PyTorch 實現(xiàn)了多個功能,包括 board 上的性能、修復大量 bug 等。去年完成的任務清單詳見:https://github.com/pytorch/pytorch/releases。下面是其中的幾個亮點:
高階梯度
隨著多篇關于實現(xiàn)梯度罰項的論文的發(fā)表,以及二階梯度法的不斷研究發(fā)展,高階梯度成為必需的熱門功能。去年 8 月,我們實現(xiàn)了一個通用接口,可使用 n 階導數(shù),加快支持高階梯度函數(shù)的收斂,截至寫作本文時,幾乎所有 ops 都支持此界面。
分布式 PyTorch
去年 8 月,我們發(fā)布了一個小型分布式包,該包使用非常流行的 MPI 集合(MPI-collective)方法。它有多個后端,如 TCP、MPI、Gloo 和 NCCL2,以支持多種 CPU/GPU 集合操作和用例,這個包整合了 Infiniband 和 RoCE 等分布式技術。分布很難,我們在初始迭代時也有一些 bug。在后續(xù)版本中,我們作出了一些改進,使這個包更加穩(wěn)定,性能也更強。
更接近 NumPy
用戶較大的一個需求是他們熟悉的 NumPy 功能。Broadcasting 和 Advanced Indexing 等功能方便、簡潔,節(jié)約用戶的時間。我們實現(xiàn)了這些功能,開始使我們的 API 更接近 NumPy。隨著時間的進展,我們希望在合適的地方越來越接近 NumPy 的 API。
性能
性能是一場仍在進行中的戰(zhàn)斗,尤其對于想要較大化靈活性的動態(tài)框架 PyTorch 而言。去年,從核心 Tensor 庫到神經網(wǎng)絡算子,我們改善了 PyTorch 在 board 上的性能,能在 board 上更快的編寫微優(yōu)化。
我們添加了專門的 AVX 和 AVX2 內部函數(shù),用于 Tensor 運算;
寫更快的 GPU kernel,用于常用的工作負載,如級聯(lián)和 Softmax;
為多個神經網(wǎng)絡算子重寫代碼,如 nn.Embedding 和組卷積。
PyTorch 在 board 上的開銷降低 10x
由于 PyTorch 是動態(tài)圖框架,我們在訓練循環(huán)的每次迭代時都要創(chuàng)建一個新圖。因此,框架開銷必須很低,或者工作負載必須足夠大來隱藏框架開銷。去年 8 月,DyNet 的作者(Graham Neubig 及其團隊)展示了 DyNet 在一些小型 NLP 模型上的速度快于 PyTorch。這是很有意思的一個挑戰(zhàn),我們開始重寫 PyTorch 內部構件,將框架開銷從 10 微妙/算子降低到 1 微妙。
ATen
重新設計 PyTorch 內部構件的同時,我們也構建了 ATen C++11 庫,該庫現(xiàn)在主導 PyTorch 所有后端。ATen 具備一個類似 PyTorch Python API 的 API,使之成為便于 Tensor 計算的 C++庫。ATen 可由 PyTorch 獨立構建和使用。
輸出模型用于生產:支持 ONNX 和 JIT 編譯器
我們收到的一個普遍請求是將 PyTorch 模型輸出到另一個框架。用戶使用 PyTorch 進行快速研究,模型完成后,他們想將模型搭載到更大的項目中,而該項目只要求使用 C++。
因此我們構建了 tracer,可將 PyTorch 模型輸出為中間表示。用戶可使用后續(xù)的 tracer 更高效地運行當前的 PyTorch 模型,或將其轉換成 ONNX 格式以輸出至 Caffe2、MXNet、TensorFlow 等其他框架,或直接搭載至硬件加速庫,如 CoreML 或 TensorRT。今年,我們將更多地利用 JIT 編譯器提升性能。
原文鏈接:http://pytorch.org/2018/01/19/a-year-in.html
歡迎加入本站公開興趣群商業(yè)智能與數(shù)據(jù)分析群
興趣范圍包括各種讓數(shù)據(jù)產生價值的辦法,實際應用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報表系統(tǒng)等全方位知識
QQ群:81035754
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/4717.html
摘要:第一個深度學習框架該怎么選對于初學者而言一直是個頭疼的問題。簡介和是頗受數(shù)據(jù)科學家歡迎的深度學習開源框架。就訓練速度而言,勝過對比總結和都是深度學習框架初學者非常棒的選擇。 「第一個深度學習框架該怎么選」對于初學者而言一直是個頭疼的問題。本文中,來自 deepsense.ai 的研究員給出了他們在高級框架上的答案。在 Keras 與 PyTorch 的對比中,作者還給出了相同神經網(wǎng)絡在不同框...
摘要:終于,亞馬遜也加入了全球芯片大戰(zhàn)。今天凌晨,亞馬遜在拉斯維加斯召開的大會上,亞馬遜發(fā)布了一系列新產品,其中包括針對機器學習定制設計的云端芯片。此次,亞馬遜的加入勢必會讓云服務市場競爭更為激烈。終于,亞馬遜也加入了全球AI芯片大戰(zhàn)。今天凌晨,亞馬遜在拉斯維加斯召開的AWS re:Invent大會上,亞馬遜AWS CEO Andy Jassy發(fā)布了一系列新產品,其中包括針對機器學習定制設計的云端...
摘要:幸運的是,這些正是深度學習所需的計算類型。幾乎可以肯定,英偉達是目前執(zhí)行深度學習任務較好的選擇。今年夏天,發(fā)布了平臺提供深度學習支持。該工具適用于主流深度學習庫如和。因為的簡潔和強大的軟件包擴展體系,它目前是深度學習中最常見的語言。 深度學習初學者經常會問到這些問題:開發(fā)深度學習系統(tǒng),我們需要什么樣的計算機?為什么絕大多數(shù)人會推薦英偉達 GPU?對于初學者而言哪種深度學習框架是較好的?如何將...
TensorFlow和PyTorch是兩個最流行的深度學習框架之一。雖然這兩個框架都可以完成大多數(shù)深度學習任務,但它們之間仍有很多區(qū)別。本文將探討TensorFlow和PyTorch之間的一些區(qū)別。 1. 靜態(tài)圖和動態(tài)圖 TensorFlow使用靜態(tài)圖,它需要先定義計算圖,然后再執(zhí)行計算。這使得TensorFlow在執(zhí)行大規(guī)模計算時非常高效。PyTorch使用動態(tài)圖,它允許用戶在執(zhí)行計算時動態(tài)...
摘要:我認為對機器學習開發(fā)者來說,是一個了不起的工具集。這個帖子發(fā)出后得到了很多機器學習研究者和開發(fā)者的關注,他們紛紛跟貼談論自己的想法和經驗不只是關于和,討論中還涉及到更多工具。 Theano、TensorFlow、Torch、MXNet 再到近日比較熱門的 PyTorch 等等,深度學習框架之間的比較一直以來都是非常受人關注的熱點話題。機器之心也曾發(fā)表過多篇相關的介紹和對比文章,如《主流深度學...
閱讀 2801·2023-04-25 22:51
閱讀 2025·2021-10-11 10:58
閱讀 3307·2019-08-30 10:49
閱讀 1869·2019-08-29 17:09
閱讀 3135·2019-08-29 10:55
閱讀 838·2019-08-26 10:34
閱讀 3465·2019-08-23 17:54
閱讀 979·2019-08-23 16:06