各位關(guān)注PaddlePaddle的深度學習開發(fā)者, Fluid v1.2 版本于今日正式閃亮登場!本次版本我們做了超多重磅更新!
本次版本的主要更新簡介:
1. 新增支持Windows下CPU環(huán)境執(zhí)行,并提供windows版PIP安裝包
2. 新增300個API Reference中文文檔,13篇API使用指南 ,優(yōu)化77個API Reference英文文檔
3. 新增對python3.6、python3.7的支持。
4. CV圖像分類任務發(fā)布MobileNet V1, ResNet101, ResNet152,VGG11預訓練模型。
5. 分布式訓練下增加稀疏通信機制,參數(shù)的總量可以壓縮到1%以下,在搜索真實場景的數(shù)據(jù)下,整體訓練吞吐可以提升50倍。
6. 服務器端GPU環(huán)境下支持圖融合技術(shù),且支持與TensorRT引擎混合改圖,在Resnet50和Googlenet等圖像通用模型上bs=1下性能提升 50%~100%,GoogleNet 8bit加速14%。
下面是更新細節(jié),文章會從基礎(chǔ)框架、預測引擎、移動端預測、模型建設(shè)、分布式訓練、文檔6個方面給大家介紹,約1500字,會花費4分鐘閱讀時間。
【基礎(chǔ)框架】
l 安裝
2 提供新pip安裝包,支持Windows下CPU執(zhí)行。
l 編程語言
2 新增對python3.6、python3.7的支持。
l 重構(gòu)內(nèi)存分配模塊Allocator,提升CPU下內(nèi)存分配策略,提升顯存利用率(默認關(guān)閉,需要使用FLAGS_allocator_strategy)。
l 限制SelectedRows的使用。修復了稀疏正則和稀疏優(yōu)化器的bug。
l Tensor支持DLPack,方便被其他框架集成和集成其他訓練框架。
l OP
2 修復 expand op shape 推理錯誤的bug。
2 支持 Selu 激活函數(shù)。
【預測引擎】
l 服務器預測
2 GPU 支持圖融合,且支持和 TensorRT引擎混合改圖,在Resnet50和Googlenet等圖像通用模型上bs=1下性能提升 50%~100%。
2 GPU支持DDPG Deep Explore預測。
2 Paddle-TRT對更多模型的支持,其中包括Resnet, SE-Resnet, DPN,GoogleNet。
2 CPU, GPU, TensorRT 等加速引擎合并入 AnalysisPredictor,統(tǒng)一由 AnalysisConfig 控制。
2 增加調(diào)用多線程數(shù)學庫的接口。
2 新增TensorRT plugin的支持,包括split operator, prelu operator, avg_pool operator, elementwise_mul operator。
2 增加了JIT CPU Kernel,支持基本的向量操作,以及常見的算法包括ReLU,LSTM和GRU的部分實現(xiàn),可以實現(xiàn)在AVX和AVX2指令集之間自動runtime切換。
2 優(yōu)化CRF decoding和LayerNorm在AVX以及AVX2指令集上的實現(xiàn)。
2 修復了 AnalysisPredictor 在GPU,在CPU 到 GPU 的 transfer data 不刪除的問題。
2 修復了 Variable 中包含 container 內(nèi)存持續(xù)增長的問題。
2 修復fc_op不支持3-D Tensor的問題。
2 修復了Analysis predictor 在GPU下執(zhí)行pass時的問題。
2 修復了TensorRT下運行GoogleNet的問題。
2 預測性能提升
? Max Sequence pool optimization,單op提高10%。
? Softmax operator 優(yōu)化,單op提升14%。
? Layer Norm operator優(yōu)化,支持avx2指令集,單op提升5倍。
? Stack operator 優(yōu)化,單op提升3.6倍。
? 增加depthwise_conv_mkldnn_pass,加速MobileNet預測。
? 加速analysis模式的圖分析時間,提升70倍。
? DAM開源模型,提升118.8%。
l 移動端預測
2 實現(xiàn)winograd算法, GoogleNet v1性能大幅提升35%。
2 GoogleNet 8bit優(yōu)化,相比float加速14%。
2 MobileNet v1 8bit支持,相比float加速20%。
2 MobileNet v2 8bit支持,相比float加速19%。
2 FPGA V1 開發(fā)了Deconv算子。
2 android gpu支持MobileNet、MobileNetSSD、GoogleNet、SqueezeNet、YOLO、ResNet等主流的網(wǎng)絡模型。
【模型建設(shè)】
l CV圖像分類任務發(fā)布MobileNet V1, ResNet101, ResNet152,VGG11預訓練模型。
l CV Metric Learning模型新增arcmargin損失,并調(diào)整訓練方式,采用element-wise作為預訓練模型,pair-wise繼續(xù)微調(diào)的訓練方式提升精度。
l NLP語言模型任務新增基于cudnn的LSTM實現(xiàn),對比PaddingRNN的實現(xiàn)方式,在不同參數(shù)配置下速度提升3~5倍。
l 增加分布式word2vec模型,包括新增的tree-based softmax operator,negative sampling等,與經(jīng)典word2vec算法對齊。
l 新增GRU4Rec、Tag-Space算法的分布式配置。
l 完善Multi-view Simnet模型,并增加inference配置。
l 支持強化學習算法 DQN。
l 現(xiàn)已支持python3.5及以上的模型:語義匹配DAM,閱讀理解BiDAF,機器翻譯Transformer,語言模型,強化學習DQN、DoubleDQN模型、DuelingDQN模型,視頻分類TSN,度量學習Metric Learning,場景文字識別CRNN-CTC 、OCR Attention,生成式對抗網(wǎng)絡ConditionalGAN 、DCGAN、CycleGAN,語義分割I(lǐng)CNET、DeepLab v3+,目標檢測Faster-RCNN、MobileNet-SSD 、PyramidBox ,圖像分類SE-ResNeXt、ResNet等,個性化推薦TagSpace、GRU4Rec、SequenceSemanticRetrieval、DeepCTR、Multiview-Simnet。
【分布式訓練】
l CPU多機異步訓練
2 worker異步并發(fā):增加AsyncExecutor,以訓練文件作為執(zhí)行粒度,支持分布式訓練中的worker端計算異步無鎖計算,同時支持單機訓練。以CTR任務為例,單機訓練速度,在充分利用單機線程的情況下,整體吞吐提升14倍。
2 IO優(yōu)化:增加支持AsyncExecutor的DataFeed,支持可定制化的通用分類任務格式。面向CTR任務,增加CTRReader,使數(shù)據(jù)讀取速度線性提升,在PaddleRec/ctr任務中,整體吞吐提升1倍。
2 通信優(yōu)化:針對稀疏訪問的Dense參數(shù)例如Embedding,增加稀疏通信機制,以語義匹配任務為例,獲取參數(shù)的總量可以壓縮到1%以下,在搜索真實場景的數(shù)據(jù)下,整體訓練吞吐可以提升50倍。
l GPU多機同步訓練
2 修復Transformer、Bert模型下P2P訓練模式會Hang住的問題。
【文檔】
l API
2 新增13篇API使用指南。
2 新增300個API Reference中文文檔。
2 優(yōu)化77個API Reference英文文檔:包括代碼示例、參數(shù)說明等。
l 安裝文檔
2 新增python3.6、python3.7安裝說明。
2 新增windows pip install安裝說明。
l Book文檔
2 Book文檔中的代碼示例更改為Low level API。
l 使用文檔
2 新增《Operator相關(guān)注意事項》,更新《保存與載入模型變量》、《C++預測API介紹》、《使用TensorRT庫預測》、《如何貢獻代碼》等多篇使用文檔。
