Facebook萬字長文:AI模型全部遷移至PyTorch框架
PyTorch自2017年推出以來,就迅速占領GitHub熱度榜榜首,一度有趕超Tensorflow的趨勢。

這是一個開源的Python機器學習庫,基于Torch,底層由C++實現。
近日,Facebook宣布要將所有的人工智能系統遷移到PyTorch。

Facebook的AI模型每天為使用自家技術的數十億人執行數萬億次推理操作。
為了滿足這種不斷增長的需求,Facebook 需要不斷發展自身的 AI 框架。

PyTorch 的誕生
考慮到Python在計算科學領域的領先地位,以及其生態完整性和接口易用性,幾乎任何框架都不可避免地要提供Python接口。

因此,在2016年,Facebook 的一組人工智能研究人員開始與人工智能研究團體合作,迎接這些挑戰。
為了更好地理解什么是可用的,什么是需要的,他們試驗了機器學習(ML)框架,如 Theano 和 Torch,以及 Lua Torch、 Chainer 和 HIPS Autograd 的先進概念。
經過幾個月的開發,PyTorch 誕生了。

PyTorch不是簡單地封裝Lua Torch提供Python接口,而是對Tensor之上的所有模塊進行了重構,并新增了最先進的自動求導系統,成為當下最流行的動態圖框架。
PyTorch 最初版本在開源社區GitHub中引起了轟動,并且很快成為人工智能研究人員首選的深度學習庫。

PyTorch 提供了一個無約束的環境,在這個環境中,程序員們可以真正地表達自己的想法。
一經推出就立刻引起了廣泛關注,并迅速在研究領域流行起來。

PyTorch自發布起關注度就在不斷上升,截至2017年10月18日,PyTorch的熱度已然超越了其他三個框架(Caffe、MXNet和Theano),并且其熱度還在持續上升中。

2018年初,PyTorch 1.0的發布開啟了將 PyTorch 的研究和生產能力統一到一個框架中工作。

來自 Facebook 的 PyTorch 支持的技術
上面提到的眾多好處已經在 Facebook 上得到了驗證。從 Instagram的個性化功能到AR和VR的新興應用程序,在眾多應用中PyTorch都起到了增強技術和服務的作用。同時,也精簡了工作流程,減少了改進系統所需的時間。
Instagram個性化技術
Instagram個性化團隊的任務是不斷改進和完善推薦引擎。
國外用戶可以通過多渠道接收、發現Ins消息推送,比如Feeds, Stories, Reels,用戶通過這些渠道找到與自己有關且感興趣的內容,這一功能都要歸功于內后的機器學習算法.

有了 PyTorch,Ins團隊可以更快地讓Instagram成為探索你感興趣的內容并與家人和朋友分享的最佳平臺之一。
如今,不斷改進對Instagram用戶的推薦意味著訓練模型,最大可達10TB。
在 PyTorch 之前,訓練和調試這些大規模模型可能需要數月時間,現在有了PyTorch,只需要幾周,甚至幾天時間。
在 PyTorch中實現新的訓練技術,可以讓不同團隊數百名工程師快速采用和實驗這些技術。它還簡化了跨團隊標準的創建,使部署和改進這些模型變得更加容易。
該團隊還對其編寫和訓練基礎設施進行了改進,允許模型自動分片(分成更小的塊) ,以便在主機上訓練更大的模型。
他們還采用了如流水線和分層培訓(將一個學習任務分解成一系列子問題或任務)等培訓范式,允許模型在不降低質量的情況下使用更多數據。
人物分割模型
AR和VR正逐漸成為Facebook的重要組成部分。
舉例來說,一個內容創作者或普通用戶——只是和朋友一起玩短視頻的人,他們拍的視頻用了個性化、計算機生成的圖形和背景。
現在,想象一下他們在自己的移動設備上完成這些,不需要使用專業的繪圖軟件或者視頻制作設備。
這就是AR的應用前景,PyTorch 通過顯著加快訓練過程并縮小這些模型的規模,使其成為可能。
例如,研究AR體驗的研究人員創建了人物分割模型,這種模型僅使用手機的攝像頭就可以跟蹤人們在視頻中的動作(包括識別他們的手和頭發)。
當軟件捕獲一個人在物理空間中的位置時,它就會在人物周圍放置增強現實圖形,以及這些圖形應該如何與人物交互。

△ 人物分割可以讓人們直接在移動設備上為視頻創建AR效果
最初開發這些模型時,它們的大小和復雜性意味著為特定效果部署一個模型可能需要長達三天的時間,這還不包括調試模型修復任何錯誤的時間。
然后還有跨設備的功能問題。有時模型在某些設備或操作系統上運行速度不如其他設備或操作系統快,導致用戶體驗不一致。
現在,使用 PyTorch 開發的相同模型,可以在幾分鐘內(如果不是幾秒鐘的話)跨多個設備和操作系統進行部署。
模型使用 Detectron2Go (D2Go)進行訓練,這是一個新的、最先進的 PyTorch 擴展。
D2Go是同類工具中的第一個,它允許開發者將他們的機器學習模型從訓練階段一直帶到移動設備上的部署階段。
自從今年4月完成模型遷移到PyTorch 以來,推斷時間提高了14% ,模型加載速度提高了24% ,這使得團隊可以在延遲相同的情況下,在移動設備上部署更復雜、更精確的模型。
PyTorch加入網絡有害內容對抗
Facebook AI的一個核心重點是部署尖端的機器學習技術,保護人們免受仇恨言論和錯誤信息等有害內容的傷害。

我們的目標是為每一種內容形式,為世界各地的每一種語言和社區,快速準確地識別這些違反政策的內容。
在大規模對抗不斷規避我們系統的敵人時,這項任務難度系數越來越高。
這些挑戰復雜、微妙、變化還很快。我們將繼續探索人工智能如何成為檢測有害內容更有效的工具,為了做到這一點,Facebook AI的工程師們正在利用 PyTorch 來幫助他們更快地開發新的、更強大的模型,并改進當前的模型。
利用PyTorch,Facebook的工程師們開發了 Facebook AI Multimodal (FAIM) ,這是一個內部庫和 SDK,允許開發者快速創建、優化和部署定制的多模式模型,以適應特定的有害問題(例如,錯誤信息和仇恨言論) ,這意味著他們可以通過圖像、文本、評論和其他元素全面識別內容。
FAIM 模型并不依賴于一系列不同的模型,而是專注于自己的內容類型或模式,它能夠分析所有類型的內容(圖片、視頻等)。
一個模型是Whole Post Integrity Embeddings(WPIE) ,這是一個經過訓練可以識別不同形式有害內容的服務。因此,WPIE 對內容有了更深入的了解,能夠在各種情況下識別有害內容,并隨著有害內容的新形式的出現迅速改進。

這樣做的好處是更快、更有效、更全面地分析內容。例如,看起來無傷大雅的句子或圖像,當組合在一起時,可能會呈現出完全不同的上下文。
今天,超過85% 的面向用戶的多模式產品模型使用PyTorch和FAIM. 使用 FAIM 創建的模型,如 WPIE,可以理解視覺和文本概念的深層交互,這意味著它們可以更準確和徹底地檢測有害內容。
雖然像FAIM這樣的人工智能工具并不是我們解決有問題內容的唯一方法,但它們確實幫助我們更加適應如何大規模應對這些挑戰。

文本到語音
隨著語音助手和類似技術變得越來越普遍,無論是易用性還是可用性,我們的工程師正在努力使語音互動變得像人類交談一樣自然。
這些系統的行為和聲音越像人類,我們與他們的互動就越無縫。
如今,Facebook 的工程師團隊正在使用 PyTorch 創建一些語音應用程序的模型,這些程序包括 Facebook 的「你的名字如何發音」功能、 Portal 上的語音交互,以及文本到語音(text-to-speech,TTS)功能。
Facebook 的 TTS 團隊最近構建并部署了一個具有最先進音頻質量的系統,該系統部署在 CPU 服務器上,沒有任何專門的硬件。
新的 TTS 系統具有很高的靈活性,將在 Facebook 產品中創建新的語音應用程序方面發揮作用,這些語音應用程序聽起來更加真實和自然,其中還包括 VR 語音功能和閱讀輔助功能。
PyTorch簡化了 TTS 團隊的整個開發流水線,使新模型的開發、試驗和訓練變得更容易。
在模型訓練端,PyTorch 具有方便、靈活和易于使用的界面、 python 編碼、高度優化的操作員內核的綜合套件以及高效的multi-GPU原語,使模型既易于調試又能快速進行大規模訓練。
在模型推理和部署方面,PyTorch 有一個強大的、基于TorchScript的模型優化管道,可以將計算圖轉換為部署環境中最有效的形式。
PyTorch 的輕量級和高性能移動運行時(runtime)為團隊提供了低計算和內存占用的高性能模型推理服務。
在未來,部分歸功于PyTorch,語音系統不僅能夠理解越來越多的語言,而且還能夠根據語境線索做出相應的反應,比如某人聲音的音調或音量,甚至是背景噪音的大小。
光學字符識別
眾所周知,互聯網是圖片匯集地。
△ 圖片交易公司gettyimages官網截圖
理解圖片中出現的文本,無論是個人照片還是商業照片,包含信息的圖像,如地圖或菜單,甚至只是一個有趣的meme,會變得越來越重要。
照片搜索,視障人士的屏幕閱讀器,以及識別和刪除有害內容都依賴于機器學習系統,該系統可以從圖像和視頻中分析文本。
其中一個系統是 Facebook AI 開發的光學字符識別(OCR)系統。
OCR 可以從圖像和視頻中定位和提取多種語言文本,用于從完整性到搜索的各種案例。通過將OCR的框架切換到PyTorch,團隊已經能夠使系統更加強健,更容易。
OCR 有兩個主要模型: 一個用于文本檢測,另一個用于文本識別。
文本檢測模型是使用 Detectron 2訓練的,這是一個基于PyTorch的目標檢測模型庫。部署和調試。
考慮到訓練這些模型所需的數據量和模型本身的大小,延遲通常是開發人員所關心的問題。
但是轉移到 PyTorch 就會變得更加流暢,這將允許他們在模型的體系結構上進行快速的實驗和迭代,并且更加有效地調試和部署模型。
該團隊目前正在開發一個新的端到端模型,它可以在一個統一的設計中處理文本檢測和文本識別,這個設計從訓練到部署將完全基于 PyTorch.
將AI模型遷移至PyTorch的優勢在哪?
PyTorch 遷移的目標是為工程師和開發人員創建一個更順暢的端到端開發人員體驗。
平均每天有4000多個模型在 PyTorch 上運行。
Facebook 的開發人員在他們的模型完全遷移到 PyTorch 之前經歷了多個階段,包括關鍵的離線和在線測試、訓練(通常還有再訓練)、推斷和發布。
還進行了多個測試,以檢查 Caffe2和 PyTorch 之間的性能和正確性差異,這可能需要工程師長達數周的時間才能完成。
有了 PyTorch 作為支持 Facebook 所有人工智能工作負載的底層平臺,工程師可以在幾分鐘內而不是幾周內部署新的人工智能模型,建立更強大、更高效的系統,為新的體驗提供動力等等。
以 PyTorch 作為常用的人工智能框架優勢:
1、人工智能模型更容易構建、編程、測試和調試
2、研究和生產環境變得更加緊密
3、在設備上部署加快
目前有超過1800個實體為 PyTorch 社區做出貢獻,包括加州理工學院等機構和 OpenAI 等推動人工智能研究的公司。
論壇擁有超過4萬的活躍用戶,在GitHub上有超過7萬的下游項目使用 PyTorch。
在學術方面,僅從2019年6月到2020年6月,PyTorch 在 ArXiv 上的引用數量就比去年同期增長了127% .
根據谷歌學術搜索,PyTorch 論文的原始版本被引用了4400多次。