搜尋
首頁科技週邊人工智慧一行程式碼,煉丹2倍速! PyTorch 2.0驚喜問世,LeCun激情轉發

12月2日,PyTorch 2.0正式發布!

這次的更新不僅將PyTorch的效能推到了新的高度,同時也加入了對動態形狀和分散式的支援。

此外,2.0系列也會將PyTorch的部分程式碼從C 移回Python。

一行程式碼,煉丹2倍速! PyTorch 2.0驚喜問世,LeCun激情轉發

目前,PyTorch 2.0還在測試階段,預期第一個穩定版本會在2023年3月初面世。

一行程式碼,煉丹2倍速! PyTorch 2.0驚喜問世,LeCun激情轉發

PyTorch 2.x:更快、更Python!

在過去的幾年裡,PyTorch從1.0到最近的1.13進行了創新和迭代,並轉移到新成立的PyTorch基金會,成為Linux基金會的一部分。

目前版本的PyTorch所面臨的挑戰是,eager-mode難以跟上不斷成長的GPU頻寬和更瘋狂的模型架構。

而PyTorch 2.0的誕生,將從根本上改變並提升了PyTorch在編譯器層級下的運作方式。

一行程式碼,煉丹2倍速! PyTorch 2.0驚喜問世,LeCun激情轉發

眾所周知,PyTorch中的(Py)來自於資料科學中廣泛使用的開源Python程式語言。

然而,PyTorch的程式碼卻並沒有完全採用Python,而是把一部分交給了C 。

不過,在今後的2.x系列中,PyTorch專案團隊計畫將與torch.nn相關的程式碼移回Python中。

除此之外,由於PyTorch 2.0是一個完全附加的(和可選的)功能,因此2.0是100%向後相容的。

也就是說,程式碼庫是一樣的,API也是一樣的,寫模型的方式也是一樣的。

更多的技術支援

  • TorchDynamo

使用Python框架評估鉤子安全地捕獲PyTorch程序,這是團隊5年來在graph capture方面研發的一項重大創新。

  • AOTAutograd

重載了PyTorch的autograd引擎,作為一個追蹤的autodiff,用於產生超前的反向追蹤。

  • PrimTorch

將約2000多個PyTorch運算子歸納為約250個原始運算符的封閉集,開發人員可以針對這些運算子建構一個完整的PyTorch後端。大大降低了編寫PyTorch功能或後端的障礙。

  • TorchInductor

一個深度學習編譯器,可以為多個加速器和後端產生快速程式碼。對於英偉達的GPU,它使用OpenAI Triton作為關鍵構建模組。

值得注意的是,TorchDynamo、AOTAutograd、PrimTorch和TorchInductor都是用Python寫的,並且支援動態形狀。

更快的訓練速度

透過引入新的編譯模式「torch.compile」,PyTorch 2.0用一行程式碼,就可以加速模型的訓練。

這裡不用任何技巧,只需執行torch.compile()即可,僅此而已:

opt_module = torch.compile(module)

為了驗證這些技術,團隊精心打造了測試基準,包括影像分類、物件偵測、影像生成等任務,以及各種NLP任務,如語言建模、問答、序列分類、推薦系統和強化學習。其中,這些基準可以分為三類:

  • 來自HuggingFace Transformers的46個模型
  • 來自TIMM的61個模型:Ross Wightman收集的最先進的PyTorch圖像模型
  • 來自TorchBench的56個模型:github的一組流行程式碼庫

測試結果表明,在這163個跨越視覺、NLP和其他領域的在開源模型上,訓練速度得到了38%-76%的提升。

一行程式碼,煉丹2倍速! PyTorch 2.0驚喜問世,LeCun激情轉發

在NVIDIA A100 GPU上的比較

此外,團隊還在一些流行的開源PyTorch模型上進行了基準測試,並獲得了從30%到2倍的大幅加速。

開發者Sylvain Gugger表示:「只要加入一行程式碼,PyTorch 2.0就能在訓練Transformers模型時實現1.5倍到2.0倍的速度提升。這是自混合精度訓練問世以來最令人興奮的事情!」

技術概述

PyTorch的編譯器可以分解成三個部分:

  • 圖的取得
  • 圖的降低
  • 圖的編譯

#其中,在建構PyTorch編譯器時,圖的取得是更難的挑戰。

一行程式碼,煉丹2倍速! PyTorch 2.0驚喜問世,LeCun激情轉發

TorchDynamo

今年年初,團隊便開始了TorchDynamo的工作,這種方法使用了PEP-0523中引入的CPython功能,稱為框架評估API。

為此,團隊採取了一種數據驅動的方法來驗證TorchDynamo在graph capture上的有效性——透過使用7000多個用PyTorch編寫的Github項目,來作為驗證集。

結果顯示,TorchDynamo在99%的時間裡都能正確、安全地進行graph capture,而且開銷可以忽略不計。

TorchInductor

對於PyTorch 2.0的新編譯器後端,團隊從使用者如何編寫高效能的自訂核心中得到了靈感:越來越多地使用Triton語言。

TorchInductor使用Pythonic定義的逐個循環層級的IR來自動將PyTorch模型對應到GPU上產生的Triton程式碼和CPU上的C /OpenMP。

TorchInductor的核心循環級IR只包含大約50個運算符,而且它是用Python實現的,這使得它很容易擴展。

AOTAutograd

想要加速訓練,不僅需要捕捉使用者級程式碼,還要捕捉反向傳播。

AOTAutograd可以利用PyTorch的torch_dispatch擴展機制來追蹤Autograd引擎,「提前」捕捉反向傳播,進而能夠使用TorchInductor來加速前向和後向通道。

PrimTorch

PyTorch有1200多個運算符,如果考慮到每個運算符的各種重載,則有2000多個個。因此,編寫後端或跨領域的功能成為一項耗費精力的工作。

在PrimTorch專案中,團隊定義了兩個更小、更穩定的運算子集:

#
  • Prim ops有大約~250個運算符,適合編譯器。由於足夠低級,因此只需將它們融合在一起以獲得良好的性能。
  • ATen ops有大約~750個典型的運算符,適合於原樣輸出。這些適合已經在ATen層級上整合的後端,或是沒有編譯的後端,從而恢復像Prim ops這樣的低階運算子集的效能。

一行程式碼,煉丹2倍速! PyTorch 2.0驚喜問世,LeCun激情轉發

動態形狀

#在研究支援PyTorch程式碼通用性的必要條件時,一個關鍵要求是支援動態形狀,並允許模型接受不同大小的張量,而不會在每次形狀變化時引起重新編譯。

在不支援動態形狀的情況下,一個常見的解決方法是將其填入最接近的2次方。然而,正如我們從下面的圖表中所看到的,它產生了大量的效能開銷,同時也帶來了明顯更長的編譯時間。

現在,有了對動態形狀的支持,PyTorch 2.0也就獲得了比Eager高出了最多40%的性能。

一行程式碼,煉丹2倍速! PyTorch 2.0驚喜問世,LeCun激情轉發

最後,在PyTorch 2.x的路線圖中,團隊希望在效能和可擴展性方面進一步推動編譯模式的發展。

一行程式碼,煉丹2倍速! PyTorch 2.0驚喜問世,LeCun激情轉發

#

以上是一行程式碼,煉丹2倍速! PyTorch 2.0驚喜問世,LeCun激情轉發的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:51CTO.COM。如有侵權,請聯絡admin@php.cn刪除
微軟工作趨勢指數2025顯示工作場所容量應變微軟工作趨勢指數2025顯示工作場所容量應變Apr 24, 2025 am 11:19 AM

由於AI的快速整合而加劇了工作場所的迅速危機危機,要求戰略轉變以外的增量調整。 WTI的調查結果強調了這一點:68%的員工在工作量上掙扎,導致BUR

AI可以理解嗎?中國房間的論點說不,但是對嗎?AI可以理解嗎?中國房間的論點說不,但是對嗎?Apr 24, 2025 am 11:18 AM

約翰·塞爾(John Searle)的中國房間論點:對AI理解的挑戰 Searle的思想實驗直接質疑人工智能是否可以真正理解語言或具有真正意識。 想像一個人,對下巴一無所知

中國的'智能” AI助手回應微軟召回的隱私缺陷中國的'智能” AI助手回應微軟召回的隱私缺陷Apr 24, 2025 am 11:17 AM

與西方同行相比,中國的科技巨頭在AI開發方面的課程不同。 他們不專注於技術基準和API集成,而是優先考慮“屏幕感知” AI助手 - AI T

Docker將熟悉的容器工作流程帶到AI型號和MCP工具Docker將熟悉的容器工作流程帶到AI型號和MCP工具Apr 24, 2025 am 11:16 AM

MCP:賦能AI系統訪問外部工具 模型上下文協議(MCP)讓AI應用能夠通過標準化接口與外部工具和數據源交互。由Anthropic開發並得到主要AI提供商的支持,MCP允許語言模型和智能體發現可用工具並使用合適的參數調用它們。然而,實施MCP服務器存在一些挑戰,包括環境衝突、安全漏洞以及跨平台行為不一致。 Forbes文章《Anthropic的模型上下文協議是AI智能體發展的一大步》作者:Janakiram MSVDocker通過容器化解決了這些問題。基於Docker Hub基礎設施構建的Doc

使用6種AI街頭智能策略來建立一家十億美元的創業使用6種AI街頭智能策略來建立一家十億美元的創業Apr 24, 2025 am 11:15 AM

有遠見的企業家採用的六種策略,他們利用尖端技術和精明的商業敏銳度來創造高利潤的可擴展公司,同時保持控制。本指南是針對有抱負的企業家的,旨在建立一個

Google照片更新解鎖了您所有圖片的驚人Ultra HDRGoogle照片更新解鎖了您所有圖片的驚人Ultra HDRApr 24, 2025 am 11:14 AM

Google Photos的新型Ultra HDR工具:改變圖像增強的遊戲規則 Google Photos推出了一個功能強大的Ultra HDR轉換工具,將標準照片轉換為充滿活力的高動態範圍圖像。這種增強功能受益於攝影師

Descope建立AI代理集成的身份驗證框架Descope建立AI代理集成的身份驗證框架Apr 24, 2025 am 11:13 AM

技術架構解決了新興的身份驗證挑戰 代理身份集線器解決了許多組織僅在開始AI代理實施後發現的問題,即傳統身份驗證方法不是為機器設計的

Google Cloud Next 2025以及現代工作的未來Google Cloud Next 2025以及現代工作的未來Apr 24, 2025 am 11:12 AM

(注意:Google是我公司的諮詢客戶,Moor Insights&Strateging。) AI:從實驗到企業基金會 Google Cloud Next 2025展示了AI從實驗功能到企業技術的核心組成部分的演變,

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),