點(diǎn)擊上方“視學(xué)算法”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
轉(zhuǎn)自 | 新智元
來(lái)源 | Facebook AI Blog
編輯 | LQ、yaxin
2017年,PyTorch誕生,成為當(dāng)下最流行的深度學(xué)習(xí)框架。近日,F(xiàn)acebook宣布讓PyTorch成為構(gòu)建AI和機(jī)器學(xué)習(xí)模型的默認(rèn)框架,為工程師們提供更好的開(kāi)發(fā)體驗(yàn)。
PyTorch自2017年推出以來(lái),就迅速占領(lǐng)GitHub熱度榜榜首,一度有趕超Tensorflow的趨勢(shì)。這是一個(gè)開(kāi)源的Python機(jī)器學(xué)習(xí)庫(kù),基于Torch,底層由C++實(shí)現(xiàn)。近日,Facebook宣布要將所有的人工智能系統(tǒng)遷移到PyTorch。Facebook的AI模型每天為使用自家技術(shù)的數(shù)十億人執(zhí)行數(shù)萬(wàn)億次推理操作。為了滿足這種不斷增長(zhǎng)的需求,F(xiàn)acebook 需要不斷發(fā)展自身的 AI 框架。
考慮到Python在計(jì)算科學(xué)領(lǐng)域的領(lǐng)先地位,以及其生態(tài)完整性和接口易用性,幾乎任何框架都不可避免地要提供Python接口。因此,在2016年,F(xiàn)acebook 的一組人工智能研究人員開(kāi)始與人工智能研究團(tuán)體合作,迎接這些挑戰(zhàn)。為了更好地理解什么是可用的,什么是需要的,他們?cè)囼?yàn)了機(jī)器學(xué)習(xí)(ML)框架,如 Theano 和 Torch,以及 Lua Torch、 Chainer 和 HIPS Autograd 的先進(jìn)概念。經(jīng)過(guò)幾個(gè)月的開(kāi)發(fā),PyTorch 誕生了。PyTorch不是簡(jiǎn)單地封裝Lua Torch提供Python接口,而是對(duì)Tensor之上的所有模塊進(jìn)行了重構(gòu),并新增了最先進(jìn)的自動(dòng)求導(dǎo)系統(tǒng),成為當(dāng)下最流行的動(dòng)態(tài)圖框架。PyTorch 最初版本在開(kāi)源社區(qū)GitHub中引起了轟動(dòng),并且很快成為人工智能研究人員首選的深度學(xué)習(xí)庫(kù)。PyTorch 提供了一個(gè)無(wú)約束的環(huán)境,在這個(gè)環(huán)境中,程序員們可以真正地表達(dá)自己的想法。一經(jīng)推出就立刻引起了廣泛關(guān)注,并迅速在研究領(lǐng)域流行起來(lái)。PyTorch自發(fā)布起關(guān)注度就在不斷上升,截至2017年10月18日,PyTorch的熱度已然超越了其他三個(gè)框架(Caffe、MXNet和Theano),并且其熱度還在持續(xù)上升中。2018年初,PyTorch 1.0的發(fā)布開(kāi)啟了將 PyTorch 的研究和生產(chǎn)能力統(tǒng)一到一個(gè)框架中工作。
來(lái)自 Facebook 的 PyTorch 支持的技術(shù)
上面提到的眾多好處已經(jīng)在 Facebook 上得到了驗(yàn)證。從 Instagram的個(gè)性化功能到AR和VR的新興應(yīng)用程序,在眾多應(yīng)用中PyTorch都起到了增強(qiáng)技術(shù)和服務(wù)的作用。同時(shí),也精簡(jiǎn)了工作流程,減少了改進(jìn)系統(tǒng)所需的時(shí)間。
Instagram個(gè)性化團(tuán)隊(duì)的任務(wù)是不斷改進(jìn)和完善推薦引擎。國(guó)外用戶可以通過(guò)多渠道接收、發(fā)現(xiàn)Ins消息推送,比如Feeds, Stories, Reels,用戶通過(guò)這些渠道找到與自己有關(guān)且感興趣的內(nèi)容,這一功能都要?dú)w功于內(nèi)后的機(jī)器學(xué)習(xí)算法.有了 PyTorch,Ins團(tuán)隊(duì)可以更快地讓Instagram成為探索你感興趣的內(nèi)容并與家人和朋友分享的最佳平臺(tái)之一。如今,不斷改進(jìn)對(duì)Instagram用戶的推薦意味著訓(xùn)練模型,最大可達(dá)10TB。在 PyTorch 之前,訓(xùn)練和調(diào)試這些大規(guī)模模型可能需要數(shù)月時(shí)間,現(xiàn)在有了PyTorch,只需要幾周,甚至幾天時(shí)間。在 PyTorch中實(shí)現(xiàn)新的訓(xùn)練技術(shù),可以讓不同團(tuán)隊(duì)數(shù)百名工程師快速采用和實(shí)驗(yàn)這些技術(shù)。它還簡(jiǎn)化了跨團(tuán)隊(duì)標(biāo)準(zhǔn)的創(chuàng)建,使部署和改進(jìn)這些模型變得更加容易。該團(tuán)隊(duì)還對(duì)其編寫(xiě)和訓(xùn)練基礎(chǔ)設(shè)施進(jìn)行了改進(jìn),允許模型自動(dòng)分片(分成更小的塊) ,以便在主機(jī)上訓(xùn)練更大的模型。他們還采用了如流水線和分層培訓(xùn)(將一個(gè)學(xué)習(xí)任務(wù)分解成一系列子問(wèn)題或任務(wù))等培訓(xùn)范式,允許模型在不降低質(zhì)量的情況下使用更多數(shù)據(jù)。
AR和VR正逐漸成為Facebook的重要組成部分。舉例來(lái)說(shuō),一個(gè)內(nèi)容創(chuàng)作者或普通用戶——只是和朋友一起玩短視頻的人,他們拍的視頻用了個(gè)性化、計(jì)算機(jī)生成的圖形和背景。
現(xiàn)在,想象一下他們?cè)谧约旱囊苿?dòng)設(shè)備上完成這些,不需要使用專業(yè)的繪圖軟件或者視頻制作設(shè)備。這就是AR的應(yīng)用前景,PyTorch 通過(guò)顯著加快訓(xùn)練過(guò)程并縮小這些模型的規(guī)模,使其成為可能。例如,研究AR體驗(yàn)的研究人員創(chuàng)建了人物分割模型,這種模型僅使用手機(jī)的攝像頭就可以跟蹤人們?cè)谝曨l中的動(dòng)作(包括識(shí)別他們的手和頭發(fā))。
當(dāng)軟件捕獲一個(gè)人在物理空間中的位置時(shí),它就會(huì)在人物周圍放置增強(qiáng)現(xiàn)實(shí)圖形,以及這些圖形應(yīng)該如何與人物交互。△ 人物分割可以讓人們直接在移動(dòng)設(shè)備上為視頻創(chuàng)建AR效果最初開(kāi)發(fā)這些模型時(shí),它們的大小和復(fù)雜性意味著為特定效果部署一個(gè)模型可能需要長(zhǎng)達(dá)三天的時(shí)間,這還不包括調(diào)試模型修復(fù)任何錯(cuò)誤的時(shí)間。然后還有跨設(shè)備的功能問(wèn)題。有時(shí)模型在某些設(shè)備或操作系統(tǒng)上運(yùn)行速度不如其他設(shè)備或操作系統(tǒng)快,導(dǎo)致用戶體驗(yàn)不一致。現(xiàn)在,使用 PyTorch 開(kāi)發(fā)的相同模型,可以在幾分鐘內(nèi)(如果不是幾秒鐘的話)跨多個(gè)設(shè)備和操作系統(tǒng)進(jìn)行部署。
模型使用 Detectron2Go (D2Go)進(jìn)行訓(xùn)練,這是一個(gè)新的、最先進(jìn)的 PyTorch 擴(kuò)展。D2Go是同類工具中的第一個(gè),它允許開(kāi)發(fā)者將他們的機(jī)器學(xué)習(xí)模型從訓(xùn)練階段一直帶到移動(dòng)設(shè)備上的部署階段。自從今年4月完成模型遷移到PyTorch 以來(lái),推斷時(shí)間提高了14% ,模型加載速度提高了24% ,這使得團(tuán)隊(duì)可以在延遲相同的情況下,在移動(dòng)設(shè)備上部署更復(fù)雜、更精確的模型。
PyTorch加入網(wǎng)絡(luò)有害內(nèi)容對(duì)抗
Facebook AI的一個(gè)核心重點(diǎn)是部署尖端的機(jī)器學(xué)習(xí)技術(shù),保護(hù)人們免受仇恨言論和錯(cuò)誤信息等有害內(nèi)容的傷害。我們的目標(biāo)是為每一種內(nèi)容形式,為世界各地的每一種語(yǔ)言和社區(qū),快速準(zhǔn)確地識(shí)別這些違反政策的內(nèi)容。在大規(guī)模對(duì)抗不斷規(guī)避我們系統(tǒng)的敵人時(shí),這項(xiàng)任務(wù)難度系數(shù)越來(lái)越高。這些挑戰(zhàn)復(fù)雜、微妙、變化還很快。我們將繼續(xù)探索人工智能如何成為檢測(cè)有害內(nèi)容更有效的工具,為了做到這一點(diǎn),F(xiàn)acebook AI的工程師們正在利用 PyTorch 來(lái)幫助他們更快地開(kāi)發(fā)新的、更強(qiáng)大的模型,并改進(jìn)當(dāng)前的模型。利用PyTorch,F(xiàn)acebook的工程師們開(kāi)發(fā)了 Facebook AI Multimodal (FAIM) ,這是一個(gè)內(nèi)部庫(kù)和 SDK,允許開(kāi)發(fā)者快速創(chuàng)建、優(yōu)化和部署定制的多模式模型,以適應(yīng)特定的有害問(wèn)題(例如,錯(cuò)誤信息和仇恨言論) ,這意味著他們可以通過(guò)圖像、文本、評(píng)論和其他元素全面識(shí)別內(nèi)容。FAIM 模型并不依賴于一系列不同的模型,而是專注于自己的內(nèi)容類型或模式,它能夠分析所有類型的內(nèi)容(圖片、視頻等)。一個(gè)模型是Whole Post Integrity Embeddings(WPIE) ,這是一個(gè)經(jīng)過(guò)訓(xùn)練可以識(shí)別不同形式有害內(nèi)容的服務(wù)。因此,WPIE 對(duì)內(nèi)容有了更深入的了解,能夠在各種情況下識(shí)別有害內(nèi)容,并隨著有害內(nèi)容的新形式的出現(xiàn)迅速改進(jìn)。這樣做的好處是更快、更有效、更全面地分析內(nèi)容。例如,看起來(lái)無(wú)傷大雅的句子或圖像,當(dāng)組合在一起時(shí),可能會(huì)呈現(xiàn)出完全不同的上下文。今天,超過(guò)85% 的面向用戶的多模式產(chǎn)品模型使用PyTorch和FAIM. 使用 FAIM 創(chuàng)建的模型,如 WPIE,可以理解視覺(jué)和文本概念的深層交互,這意味著它們可以更準(zhǔn)確和徹底地檢測(cè)有害內(nèi)容。雖然像FAIM這樣的人工智能工具并不是我們解決有問(wèn)題內(nèi)容的唯一方法,但它們確實(shí)幫助我們更加適應(yīng)如何大規(guī)模應(yīng)對(duì)這些挑戰(zhàn)。
隨著語(yǔ)音助手和類似技術(shù)變得越來(lái)越普遍,無(wú)論是易用性還是可用性,我們的工程師正在努力使語(yǔ)音互動(dòng)變得像人類交談一樣自然。這些系統(tǒng)的行為和聲音越像人類,我們與他們的互動(dòng)就越無(wú)縫。如今,F(xiàn)acebook 的工程師團(tuán)隊(duì)正在使用 PyTorch 創(chuàng)建一些語(yǔ)音應(yīng)用程序的模型,這些程序包括 Facebook 的「你的名字如何發(fā)音」功能、 Portal 上的語(yǔ)音交互,以及文本到語(yǔ)音(text-to-speech,TTS)功能。Facebook 的 TTS 團(tuán)隊(duì)最近構(gòu)建并部署了一個(gè)具有最先進(jìn)音頻質(zhì)量的系統(tǒng),該系統(tǒng)部署在 CPU 服務(wù)器上,沒(méi)有任何專門的硬件。新的 TTS 系統(tǒng)具有很高的靈活性,將在 Facebook 產(chǎn)品中創(chuàng)建新的語(yǔ)音應(yīng)用程序方面發(fā)揮作用,這些語(yǔ)音應(yīng)用程序聽(tīng)起來(lái)更加真實(shí)和自然,其中還包括 VR 語(yǔ)音功能和閱讀輔助功能。PyTorch簡(jiǎn)化了 TTS 團(tuán)隊(duì)的整個(gè)開(kāi)發(fā)流水線,使新模型的開(kāi)發(fā)、試驗(yàn)和訓(xùn)練變得更容易。在模型訓(xùn)練端,PyTorch 具有方便、靈活和易于使用的界面、 python 編碼、高度優(yōu)化的操作員內(nèi)核的綜合套件以及高效的multi-GPU原語(yǔ),使模型既易于調(diào)試又能快速進(jìn)行大規(guī)模訓(xùn)練。在模型推理和部署方面,PyTorch 有一個(gè)強(qiáng)大的、基于TorchScript的模型優(yōu)化管道,可以將計(jì)算圖轉(zhuǎn)換為部署環(huán)境中最有效的形式。PyTorch 的輕量級(jí)和高性能移動(dòng)運(yùn)行時(shí)(runtime)為團(tuán)隊(duì)提供了低計(jì)算和內(nèi)存占用的高性能模型推理服務(wù)。在未來(lái),部分歸功于PyTorch,語(yǔ)音系統(tǒng)不僅能夠理解越來(lái)越多的語(yǔ)言,而且還能夠根據(jù)語(yǔ)境線索做出相應(yīng)的反應(yīng),比如某人聲音的音調(diào)或音量,甚至是背景噪音的大小。
眾所周知,互聯(lián)網(wǎng)是圖片匯集地。 △ 圖片交易公司gettyimages官網(wǎng)截圖理解圖片中出現(xiàn)的文本,無(wú)論是個(gè)人照片還是商業(yè)照片,包含信息的圖像,如地圖或菜單,甚至只是一個(gè)有趣的meme,會(huì)變得越來(lái)越重要。照片搜索,視障人士的屏幕閱讀器,以及識(shí)別和刪除有害內(nèi)容都依賴于機(jī)器學(xué)習(xí)系統(tǒng),該系統(tǒng)可以從圖像和視頻中分析文本。其中一個(gè)系統(tǒng)是 Facebook AI 開(kāi)發(fā)的光學(xué)字符識(shí)別(OCR)系統(tǒng)。
OCR 可以從圖像和視頻中定位和提取多種語(yǔ)言文本,用于從完整性到搜索的各種案例。通過(guò)將OCR的框架切換到PyTorch,團(tuán)隊(duì)已經(jīng)能夠使系統(tǒng)更加強(qiáng)健,更容易。OCR 有兩個(gè)主要模型: 一個(gè)用于文本檢測(cè),另一個(gè)用于文本識(shí)別。文本檢測(cè)模型是使用 Detectron 2訓(xùn)練的,這是一個(gè)基于PyTorch的目標(biāo)檢測(cè)模型庫(kù)。部署和調(diào)試。考慮到訓(xùn)練這些模型所需的數(shù)據(jù)量和模型本身的大小,延遲通常是開(kāi)發(fā)人員所關(guān)心的問(wèn)題。但是轉(zhuǎn)移到 PyTorch 就會(huì)變得更加流暢,這將允許他們?cè)谀P偷捏w系結(jié)構(gòu)上進(jìn)行快速的實(shí)驗(yàn)和迭代,并且更加有效地調(diào)試和部署模型。該團(tuán)隊(duì)目前正在開(kāi)發(fā)一個(gè)新的端到端模型,它可以在一個(gè)統(tǒng)一的設(shè)計(jì)中處理文本檢測(cè)和文本識(shí)別,這個(gè)設(shè)計(jì)從訓(xùn)練到部署將完全基于 PyTorch.
將AI模型遷移至PyTorch的優(yōu)勢(shì)在哪?
PyTorch 遷移的目標(biāo)是為工程師和開(kāi)發(fā)人員創(chuàng)建一個(gè)更順暢的端到端開(kāi)發(fā)人員體驗(yàn)。平均每天有4000多個(gè)模型在 PyTorch 上運(yùn)行。Facebook 的開(kāi)發(fā)人員在他們的模型完全遷移到 PyTorch 之前經(jīng)歷了多個(gè)階段,包括關(guān)鍵的離線和在線測(cè)試、訓(xùn)練(通常還有再訓(xùn)練)、推斷和發(fā)布。還進(jìn)行了多個(gè)測(cè)試,以檢查 Caffe2和 PyTorch 之間的性能和正確性差異,這可能需要工程師長(zhǎng)達(dá)數(shù)周的時(shí)間才能完成。有了 PyTorch 作為支持 Facebook 所有人工智能工作負(fù)載的底層平臺(tái),工程師可以在幾分鐘內(nèi)而不是幾周內(nèi)部署新的人工智能模型,建立更強(qiáng)大、更高效的系統(tǒng),為新的體驗(yàn)提供動(dòng)力等等。以 PyTorch 作為常用的人工智能框架優(yōu)勢(shì):1、人工智能模型更容易構(gòu)建、編程、測(cè)試和調(diào)試2、研究和生產(chǎn)環(huán)境變得更加緊密目前有超過(guò)1800個(gè)實(shí)體為 PyTorch 社區(qū)做出貢獻(xiàn),包括加州理工學(xué)院等機(jī)構(gòu)和 OpenAI 等推動(dòng)人工智能研究的公司。論壇擁有超過(guò)4萬(wàn)的活躍用戶,在GitHub上有超過(guò)7萬(wàn)的下游項(xiàng)目使用 PyTorch。在學(xué)術(shù)方面,僅從2019年6月到2020年6月,PyTorch 在 ArXiv 上的引用數(shù)量就比去年同期增長(zhǎng)了127% .根據(jù)谷歌學(xué)術(shù)搜索,PyTorch 論文的原始版本被引用了4400多次。
參考資料:
https://ai.facebook.com/blog/pytorch-builds-the-future-of-ai-and-machine-learning-at-facebook/