量槳出世!國內首個支持量子機器學習的深度學習平臺來了

剛剛,百度官宣量子機器學習開發工具 Paddle Quantum,這是國內唯一支持量子機器學習的深度學習平臺。

量子機器學習開發工具 Paddle Quantum

機器學習(ML)雖然不能精確模擬自然界中的系統,但卻能夠學習系統模型並預測系統行爲。在過去幾年,經典的 ML 模型解決了科學領域諸多難題,在癌症檢測、地震餘震預測、極端天氣預測以及系外行星探測等方面發揮了巨大作用。

近年來,隨着量子計算技術的發展,在量子機器學習模型上的新發現將對世界級重大問題產生深遠影響,從而帶來醫學、材料、傳感和通信領域的突破。但是,迄今爲止我們遇到的瓶頸是,缺乏研究工具來發現有用的、可以處理量子數據並能在計算機上使用的量子機器學習模型。

量子計算是由量子力學和計算理論交叉形成的全新計算模型。據瞭解,爲推進量子計算研究,百度在 2018 年 3 月成立了百度量子計算研究所。其核心研發方向聚焦於量子算法、量子人工智能以及量子架構三大方向。

在百度“WAVE SUMMIT 2020”深度學習開發者峯會專場,飛槳重磅發佈了 量子機器學習開發工具量槳(Paddle Quantum)。百度研究院量子計算所所長段潤堯表示,量槳的發佈,使百度飛槳成爲了國內首個、也是唯一支持量子機器學習的深度學習平臺。

段潤堯表示,量槳是是基於百度飛槳研發的量子機器學習工具集。量槳建立起了人工智能與量子計算之間的橋樑,可快速實現量子神經網絡的搭建與訓練,同時還提供多項前沿量子應用。量子領域的科研人員可以使用量槳進行量子人工智能的研發,爲深度學習愛好者提供了一條學習量子計算的捷徑。

量子計算和人工智能的關係

段潤堯認爲,人工智能和量子計算之間是一種相互糾纏、密不可分的關係。

一方面,量子計算最主要的目標之一就是藉助於量子特性開發高性能的量子機器學習算法,從而加快或拓寬人工智能的應用場景。當然,要使得這些算法發揮作用則需構建量子計算機。

另一方面,量子計算的研發儘管取得了巨大的進展,在大規模應用落地之前還有許多非常棘手的科學與工程技術難題有待解決,這除了需要大量優秀的科研人員參與之外,更離不開現有的先進計算技術的支持。而大量使用各種先進的 AI 技術來突破量子計算研發瓶頸一直是極其重要的研究方向。

段潤堯表示,如何建立起量子計算和人工智能之間的橋樑離不開深度學習的參與。量槳的誕生便是這一橋樑作用的體現。

量槳特色功能

量槳的一大顯著特點是易用性。通過量槳,開發者可輕鬆搭建簡潔的量子神經網絡,也可根據豐富的量子機器學習案例一步步組建出自己喜歡的模型。

量槳還具有極好的通用性以及拓展性。百度在飛槳中系統地擴展了包括複數變量、複數矩陣乘法在內的多項底層功能,這使得量槳可以完美地支持量子電路模型,從而也支持通用量子計算相關的研究。

另外,量槳還提供了多項優化工具可根據具體問題的特點加以選擇。這些功能可以很容易進行拓展。

量子計算的核心應用集中在組合優化問題的求解以及量子化學系統模擬等方向。量槳針對這些關鍵方向提供了專門的強大工具集。此外,量槳還推出了一些原創性的量子機器學習模型,可以完成像吉布斯狀態製備這樣的應用。

量槳的量子機器學習開發套件包括:量子開發工具集,量子化學庫,以及一系列優化工具。與此同時,量槳還提供了量子機器學習、量子化學模擬以及量子組合優化這三大核心量子應用。

體驗量槳 Paddle Quantum:

https://github.com/PaddlePaddle/Quantum

飛槳框架設計理念與升級

在谷歌開源 TensorFlow 一年以後,百度宣佈開源其深度學習平臺飛槳(英文名 PaddlePaddle)。飛槳發展到現在,已經具備了開發便捷的核心框架、支持超大規模深度學習模型訓練、多端多平臺部署的高性能推理引擎和產業級開源模型庫等技術。飛槳是中國首個也是目前國內唯一開源開放、功能完備的產業級深度學習平臺,正是因爲它的出現,百度成爲繼 Facebook、谷歌和 IBM 之後又一個開源深度學習框架的科技公司。

飛槳地址:https://www.paddlepaddle.org.cn

GitHub 地址:https://github.com/PaddlePaddle/Paddle

在今天的發佈會上,百度飛槳總架構師於佃海表示,飛槳核心框架具備四大特色:易學易用的前端編程界面、統一高效的內部核心架構、原生完備的分佈式訓練支持、高性能可拓展的推理引擎。

易學易用的前端編程界面

針對飛槳易學易用的前端編程界面,飛槳通過編程一致的計算描述,實現了自然完備的動靜統一。飛槳期望將深度學習計算的編程和內在表示保持一致,所以在用戶界面上沒有引入 Graph 等概念,直接以程序化的 program 形式,描述神經網絡執行的計算過程,對應的用戶開發和通用的體驗更加接近。

這個角度,其實和 Pytorch 等框架的理念接近。只是從更好的全局優化,以及上線部署的角度考慮,飛槳同時提供了一種完備的內在描述 ProgramDesc,可以表達任意複雜的模型,並實現編譯期和運行時的分離。

對飛槳而言,基於編程一致的計算描述,向動態圖的擴展及動靜轉換是非常自然的。除了使用 TracedLayer 的簡易轉換方式,通過 Program Translator 的通用方案,可以完備地將 Python 語法下的計算編譯爲 program,從而和全局優化延時執行模式打通,並實現模型結構存儲和上線部署。百度對飛槳動態圖做了深度優化,目前功能和體驗已基本完備。

此外,爲了進一步簡化用戶的編程複雜度,百度近期研發了 飛槳高層 API。高層 API 同時屏蔽了動靜的差異,並可以使用一行命令方便地切換執行模式。 除此之外,飛槳的最新版本還新增了幾十個基礎 API,各種複雜模型的開發會更加便捷。

針對飛槳的命令式編程範式,飛槳的動態圖帶來了全新的開發體驗,編程交互更加自然靈活,更容易寫出優雅的代碼。語義理解框架 ERNIE,使用飛槳動態圖重寫後,核心代碼大幅減少,且基本沒有訓練性能的損失。

爲了上線部署及部分場景的訓練加速。飛槳採用了動靜合一的兩種方案,主要是通用的 program translator 方案,只需通過添加一個裝飾器,就可以將對應函數內部所有定義,包括依賴數據的控制流實現,遞歸地轉換爲 program 執行,這種方式下可以靈活控制實現動靜混合編程。

而在高層 API 下,使用一行代碼設定 enable 命令式編程,就可以切換全局執行模式。飛槳高層 API 進一步通過對執行類、組網類、領域類 API 的封裝,更加清晰易用。設計時考慮到了和底層 API 互相兼容,可以搭配使用,並不割裂。通過高層的封裝抽象,整體編程邏輯大爲簡化,具體代碼大大減少,特別是對訓練流程類的代碼,平均可以減少大約 80%。目前飛槳的高層 API 是 alpha 版本。

統一高效的內部核心架構

飛槳目前有兩層 IR,program 對接用戶編程界面,簡潔完備地表達深度學習計算,還可以便捷的遷移變換,無縫對接分佈式訓練和推理部署,保證了整體架構的一致性,而又不顯著增加複雜度。SSA Graph,主要對接更底層的優化策略,比如算子自動融合,併發調度,易構硬件執行調度等等。兩層 IR 更好地銜接了前端和後端,兼顧和簡潔、高效和整體統一性。

針對這部分,百度近期也有一些優化升級工作。將飛槳的默認顯存分配策略,升級爲自動按需分配,更加節省資源;完善了通用算子自動融合策略,進一步提升了訓練性能;建立了非常完備易用的自動混合訓練功能,充分發揮硬件優勢,提升訓練速度,同時配合前項中間層重計算策略,可以支持更大 batch 的訓練。

原生完備的分佈式訓練支持

分佈式訓練是工業場景的一個剛需。演講中,於佃海強調了飛槳的分佈式訓練在它設計上的原生性、完備性,以及對應的易用性。

分佈式訓練策略是綜合硬件特性和任務特性的一種折中設計,需要考慮實用性。飛槳在廣泛實現業務場景的打磨中,把頭部分佈式訓練場景的能力優化到極致,同時也做到了對最廣泛並行模式和加速策略的覆蓋。由於飛槳分佈式訓練和核心框架協同一體,更有利於發揮性能優勢。我們可以看到,從飛槳的單機程序,到多設備訓練的擴展,非常簡單,只需要通過統一極簡的 API 和配置,剩下均由框架自動完成。

最近,百度發佈了飛槳超大規模分類功能,通過模型並行實現對千萬類別分類任務的支持。此外,也完善了流水線並行,更好地發揮異構設備的協同優勢;同時對參數服務器功能進行了整合優化,使得功能更完善,使用更簡單。

高性能可拓展的推理引擎

飛槳目前的推理引擎方案和主框架保持很強的統一性的同時,又具有很好的擴展性和極高的性能。百度有和訓練框架一體的原生推理系統 Paddle Inference,它和訓練複用部分優化策略,並且在底層算子實現上完全一致,做到了百分百兼容,即訓即用。

百度針對飛槳的推理場景做了深度優化,且實現了對外部推理加速庫的可插拔加載,如可掛接 NV 的 TensorRT,實現對部分計算的更靈活加速選擇。對移動端和嵌入端場景,在自有多硬件加速庫的基礎上,提供了獨立的輕量化推理引擎 Paddle Lite,對端側任務提供高性能支持。同時,在算子定義和模型表達層面,和核心框架保持一致。

在 Paddle Lite 下,飛槳實現了對國產 AI 芯片全面的支持。近期,百度開展了包括對多線程多流加速等策略完善在內的多項性能優化工作,特別是強化了對低精度量化推理的支持。

這些技術特色直指高效和易用的核心設計理念。到目前爲止,框架整體上已形成界面清晰、功能完備、成熟穩定的架構體系。

飛槳全景圖

飛槳全流程工具最新發布

在更新層面,百度深度學習技術平臺部高級總監馬豔軍博士介紹了飛槳的七項開源以及二十三項重要升級。本次升級側重在兩個方面:工業級應用的極致體驗和持續佈局深度學習前沿技術(具體內容可通過文末的飛槳官網地址查看,以下僅介紹重點內容)。

低代碼二次開發

在開發層面,除了動態圖和 API 的升級,飛槳也提供大量官方模型庫和開發套件,方便開發者進行二次開發,並且是做低代碼的二次開發。 本次新增 39 個算法,總算法數量達到 146,預訓練模型已經有 200 多個。

端到端的圖像分類開發套件 PaddleClas

工業級分類模型,包括 23 種分類的經典網絡;圖像分類算法的深度優化,利用知識蒸餾可以獲得 3% 的效果提升,在 ResNet50_vd 上面分類精度達到 82.4%;開發套件易於部署,可以用於服務端集成,同時也可以做模型孵化,同時推理部署可以部署在移動端或者邊緣設備上。

目標檢測開發套件 PaddleDetection 升級

算法豐富度進一步提升,新增 58 個預訓練模型,總數達到 101 個;模型精度非常高,單模型在 COCO 數據集上能夠達到 53% 以上的 MAP,實時預訓練模型在 COCO 上能達到 43% 以上的 MAP;模型速度非常快。

端到端的語音合成開發套件 Parakeet

模塊化設計,方便進行二次開發,並且性能較好。其中,百度自研的語音合成模型 WaveFlow能以 40 倍實時速度合成高保真音頻;輕量化,只有 5.9 的 million 參數,比 WaveGlow 要小 15 倍;訓練簡單。

飛槳訓練升級

這次升級包括三個方面:訓練速度、顯存和大規模分佈式擴展能力。升級了自動混合精度訓練,用一行代碼就可以實現訓練速度提升兩倍。在顯存策略方面,可用於訓練極深網絡模型。在分佈式訓練技術方面,飛槳研發了數據並行、模型並行、流水線並行等技術體系,並結合雲端研發了彈性訓練技術,這其中模型並行和彈性訓練是這次新增發佈的能力。

推理部署功能升級

在推理部署環節,飛槳升級了服務器端的推理引擎,並可以通過 PaddleServing 來實現模型的服務化部署。同時,移動端和邊緣端的推理部署也進行了升級。

這次升級的模型優化工具 PaddleSlim 有如下特點:一是工業級高可用,能夠裁減非常複雜的網絡,並且貼近實際的硬件環境,可以提供模型小型化方案;二是整個策略可擴展,開發者可自定義壓縮策略;三是在很多場景進行了應用驗證,這其中包括 CV 領域場景,也包括自然語言處理當中語義理解場景。

原生推理引擎 Paddle Inference 進行了升級,內置高性能 CPU 和 GPU 等不同硬件 Kernel 優化;子圖集成 Paddle Lite 和 TensorRT;提供多語言 API 接口,實現推理引擎部署。除了 C++ 和 Python 外,還提供了 GO 和 R 語言,方便開發者使用。

在模型服務化部署上也進行了升級,增加工業級支持,升級分佈式稀疏參數索引、高併發底層通信、模型管理等功能,同時使用一行命令就可以輕鬆部署多種模型。

Paddle Lite 發佈 2.6 版本

易用性提升,Python 的開發環境更加完備,可以實現一鍵編譯優化。在全硬件平臺支持方面,除了主流 CPU 和 GPU 外,新增了大量 AI 芯片支持,適配更多移動端和邊緣設備場景。

國內首個開源的 JavaScript 深度學習庫 Paddle.js

該框架可以進行本地運算,能夠實現低延遲和數據安全。因爲是 JavaScript 的環境,用戶免安裝就可以直接跨平臺使用。

PaddleX:實現開發、訓練和部署全流程打通

目前已經集成多款飛槳開放出來的能力,把這些能力進行流程打通之後,整個使用體驗和門檻都可以大幅降低。

正式發佈飛槳 Master 模式

飛槳的 master 模式最核心的技術是預訓練模型和遷移學習的工具。預訓練模型方面,重點聚焦超大規模視覺模型和 NLP 的語義理解模型 ERNIE。遷移學習工具方面,新增了多個遷移學習算法,開發者可以使用開源的 PaddleHub(開源的預訓練模型的應用工具)或者是 Easy DL 平臺來體驗 Master 模式(零門檻的 AI 開發平臺)。

聯邦學習 PaddleFL 框架升級

在移動端聯邦學習方面,進一步完善了端雲協同訓練,並且開源了百萬級用戶設備的模擬器,方便快速迭代。在企業間聯邦學習方面,新增了縱向聯邦學習能力,方便開發者或者研究者,基於工具做自己的聯邦學習相關研究。

除此之外,飛槳在圖神經網絡等層面也有更新,開發者可以通過飛槳平臺進行查看。

飛槳地址:https://www.paddlepaddle.org.cn

GitHub 地址:https://github.com/PaddlePaddle/Paddle

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章