飛槳框架2.0正式版重磅發佈,一次端到端的“基礎設施”革新

在人工智能時代,深度學習框架下接芯片,上承各種應用,是“智能時代的操作系統”。近期,我國首個自主研發、功能完備、開源開放的產業級深度學習框架飛槳發佈了2.0正式版,實現了一次跨時代的升級。

這次2.0版本的發佈對於飛槳來說,可以說是一次“基礎設施”的全面更新換代!生活中,我們看到過很多基礎設施建設工程,例如西電東送、南水北調、高鐵建設等等,這些在保證生產生活設施正常運行、推動整個社會的經濟發展和人們生活水平改善的過程中,以一種 “潤物細無聲”的形式扮演着關鍵基礎性角色!此次飛槳升級就是以這樣方式悄然爲整個產業及生態的發展繁榮奠定基礎、積蓄能量、增添後勁!下面將爲廣大開發者詳細介紹飛槳都做了哪些“基礎設施”級別的關鍵工程。

下載安裝命令

## CPU版本安裝命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle

## GPU版本安裝命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu

使用飛槳框架2.0更高效地開發AI模型

成熟完備的動態圖模式

此次升級,飛槳將默認的開發模式升級爲命令式編程模式,即大家常說的動態圖。飛槳框架2.0支持用戶使用動態圖完成深度學習相關領域全類別的模型算法開發。動態圖模式下可以讓開發者隨時查看變量的輸入、輸出,方便快捷的調試程序, 帶來最佳的開發體驗。爲了解決動態圖的部署問題,飛槳提供了全面完備的動轉靜支持,在Python語法支持覆蓋度上達到領先水平。開發者在動態圖編程調試的過程中,僅需添加一個裝飾器,即可無縫平滑地自動實現靜態圖訓練或模型保存。同時飛槳框架2.0還做到了模型存儲和加載的接口統一,保證動轉靜之後保存的模型文件能夠被純動態圖加載和使用。

飛槳框架2.0版本上,官方支持的動態圖算法數量達到了200+,涵蓋計算機視覺、自然語言處理、語音、推薦等多個領域,並且在動態圖的訓練效率和部署效率方面都有所提升。2.0版本的動態圖支持了自動混合精度和量化訓練功能,實現了比靜態圖更簡潔靈活的混合精度訓練接口,達到媲美靜態圖的混合精度和量化訓練效果。無論從功能還是性能角度,飛槳的動態圖在國產深度學習框架中都處於領先地位!

同時,爲了推進各個主流場景的產業級應用,飛槳的系列開發套件也隨飛槳框架2.0完成了升級,全面支持動態圖開發模式。從開發、訓練到預測部署提供優質體驗。如視覺領域的圖像分割套件PaddleSeg,隨飛槳框架2.0升級後,涵蓋了高精度和輕量級等不同特點的大量高質量分割模型,採用模塊化的設計,提供了配置驅動和API調用兩種應用方式,幫助開發者更便捷地完成全流程圖像分割應用;又如自然語言處理領域的PaddleNLP,與飛槳框架2.0深度適配,擁有覆蓋多場景的網絡模型、簡潔易用的全流程API,以及動靜統一的高性能分佈式訓練能力,非常便於二次開發,大大提升建模效率。具體可以參見下面鏈接中的項目示例。

飛槳框架2.0動態圖模型:

https://github.com/PaddlePaddle/models/tree/develop/dygraph

全新PaddleSeg項目應用實例:

https://aistudio.baidu.com/aistudio/projectdetail/1339458

全新PaddleNLP項目應用示例:

https://aistudio.baidu.com/aistudio/projectdetail/1329361

API體系全新升級

API是用戶使用深度學習框架的直接入口,對開發者使用體驗起着至關重要的作用,飛槳一直以來對API設計以及整體API體系的完善給予高度重視。飛槳框架2.0對 API體系進行了全新升級,讓開發者們在使用飛槳研發的過程中可以體驗到隨心所欲、暢通無阻的愉悅感覺。

  • 體系化: 基於長期的產業實踐積累與用戶使用習慣的洞察,飛槳重新梳理和優化了API的體系結構,使其更加清晰、科學,讓廣大開發者可以更容易地根據開發使用場景找到想要的API。此外可以通過class和functional兩種形式的API來模塊化的組織代碼和搭建網絡,提高開發效率。同時,API的豐富度有了極大的提升,共計新增API 217個,優化修改API 195個。

  • 簡潔化:提供更適合低代碼編程的高層API。像數據增強、建立數據流水線、循環批量訓練等可以標準化的工作流程,以及一些經典的網絡模型結構,在飛槳框架2.0中,都被封裝成了高層API。基於飛槳高層API,開發者只需10行左右代碼就可以編寫完成訓練部分的程序。最爲重要的是,高層API與基礎API採用一體化設計,即在編程過程中可以同時使用高層API與基礎API,讓用戶在簡捷開發與精細化調優之間自由定製。新API體系完全兼容歷史版本,同時飛槳提供了升級工具,幫助開發者降低升級遷移成本。

API目錄

功能

paddle.tensor

tensor操作相關的API,如:創建zeros、矩陣運算matmul、變換concat、計算add、查找argmax等。

paddle.nn

組網相關的API,如:Linear、卷積、LSTM、損失函數、激活函數等。

paddle.framework

框架通用API和動態圖模式的API,如:to_tensorno_grad等。

paddle.optimizer

優化算法相關API,如:SGDAdagradAdam等。

paddle.optimizer.lr_scheduler

學習率衰減相關API

paddle.metric

評估指標計算相關的API,如:AccuracyAuc等。

paddle.io

數據輸入輸出相關API,如:DatasetDataLoaderSampler等。

paddle.device

設備管理相關API,如:CPUPlaceCUDAPlace等。

paddle.distributed

分佈式相關基礎API

paddle.distributed.fleet

分佈式相關高層API

paddle.vision

視覺領域API,如:數據集、數據處理、常用基礎網絡結構(如ResNet)等。

paddle.text

NLP領域API, 例如數據集、數據處理、常用基礎網絡結構(如Transformer)等。

paddle.static.nn

靜態圖組網專用API,如:輸入佔位符data、全連接層fc、控制流while_loop/cond等。

paddle.static

靜態圖下基礎框架相關API,如:VariableProgramExecutor等。

飛槳開源框架2.0 API參考文檔:

https://www.paddlepaddle.org.cn/documentation/docs/zh/api/index_cn.html

使用飛槳框架2.0更高效地訓練AI模型

訓練更大規模的模型

衆所周知,飛槳框架的英文名Paddle便是並行分佈式訓練學習的縮寫,分佈式可以說是飛槳與生俱來的特性。飛槳支持包括數據並行、模型並行、流水線並行在內的廣泛並行模式和多種加速策略。在飛槳框架2.0版本中,新增支持了混合並行模式,即數據並行、模型並行、流水線並行這三種並行模式可以相互組合使用,更高效地將模型的各網絡層甚至某一層的參數切分到多張GPU卡上進行訓練,從而實現支持訓練千億參數規模的模型。

業內首個通用異構參數服務器架構

飛槳框架2.0推出了業內首個通用異構參數服務器技術,解除了傳統參數服務器模式必須嚴格使用同一種硬件型號Trainer節點的枷鎖,使訓練任務對硬件型號不敏感,即可以同時使用不同的硬件進行混合異構訓練,如CPU、GPU(也包括例如V100、P40、K40的混合)、AI專用加速硬件如崑崙芯片等,同時解決了搜索推薦領域大規模稀疏特徵模型訓練場景下,IO佔比過高導致的計算資源利用率過低的問題。通過異構參數服務器架構,用戶可以在硬件異構集羣中部署分佈式訓練任務,實現對不同算力的芯片高效利用,爲用戶提供更高吞吐,更低資源消耗的訓練能力。

圖一: 異構參數服務器架構示意圖

通用異構參數服務器架構之所以被稱之爲通用,主要在於其兼容支持三種訓練模式:

  • 可兼容全部由CPU機器組成的傳統參數服務器架構所支持的訓練任務。

  • 可兼容全部由GPU或其他AI加速芯片對應機器組成的參數服務器,充分利用機器內部的異構設備。

  • 支持通過CPU機器和GPU或其他AI加速芯片對應機器的混布,組成機器間異構參數服務器架構。

異構參數服務器擁有非常高的性價比,如下圖所示,僅用兩個CPU機器加兩個GPU機器就可以達到與4個GPU機器相仿的訓練速度,而成本至少可以節約35%。

     

分佈式訓練教程:

https://fleet-x.readthedocs.io/en/latest/paddle_fleet_rst/distributed_introduction.html

使用飛槳框架2.0更廣泛地部署AI模型到各種硬件

全面深度適配各種人工智能硬件

AI產業的廣泛應用離不開各種各樣的人工智能硬件的繁榮,飛槳可以說深諳其道,持續努力打造繁榮的硬件生態。當前包括英特爾、英偉達、ARM等諸多芯片廠商紛紛開展對飛槳的支持。飛槳還跟飛騰、海光、鯤鵬、龍芯、申威等CPU進行深入適配,並結合麒麟、統信、普華操作系統,以及百度崑崙、海光DCU、寒武紀、比特大陸、瑞芯微、高通、英偉達等AI芯片深度融合,與浪潮、中科曙光等服務器廠商合作形成軟硬一體的全棧AI基礎設施。當前飛槳已經適配和正在適配的芯片或IP型號達到29種,處於業界領先地位。

圖二:飛槳硬件生態路線圖

立即體驗飛槳開源框架2.0版本

下載安裝命令

## CPU版本安裝命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle

## GPU版本安裝命令
pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu

飛槳框架2.0安裝:

https://www.paddlepaddle.org.cn/install/quick?docurl=/documentation/docs/zh/2.0/install/pip/linux-pip.html

10分鐘快速上手飛槳框架2.0:

https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/02_paddle2.0_develop/01_quick_start_cn.html

飛槳框架2.0使用教程:

https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/index_cn.html

飛槳框架2.0應用實踐:

https://www.paddlepaddle.org.cn/documentation/docs/zh/tutorial/index_cn.html

 

如果您想詳細瞭解更多飛槳的相關內容,請參閱以下文檔。

·飛槳官網地址·

https://www.paddlepaddle.org.cn/

·飛槳開源框架項目地址·

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

Gitee: https://gitee.com/paddlepaddle/Paddle

想了解更多有關飛槳框架2.0的信息,記得關注百度深度學習趣味案例實戰營,3月15日-19日晚19:00,每天一小時,手把手帶你使用CV、NLP領域最常用模型及應用,即學即用,做項目還能獲取積分兌換京東卡。

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