Paddle Fluid v1.2 Release Note 深度學習框架重磅更新

各位關注PaddlePaddle的深度學習開發者, Fluid v1.2 版本今日閃亮登場啦!本次版本百度做了超多重磅更新!

本次版本的主要更新簡介:

1. 新增支持Windows下CPU環境執行,並提供windows版PIP安裝包。

2. 新增300個API Reference中文文檔,13篇API​使用指南 ,優化77個API Reference英文文檔。

3. 新增對python3.6、python3.7的支持。

4. CV圖像分類任務發佈MobileNet V1, ResNet101, ResNet152,VGG11預訓練模型。

5. 分佈式訓練下增加稀疏通信機制,參數的總量可以壓縮到1%以下,在搜索真實場景的數據下,整體訓練吞吐可以提升50倍。

6. 服務器端GPU環境下支持圖融合技術,且支持與TensorRT引擎混合改圖,在Resnet50和Googlenet等圖像通用模型上bs=1下性能提升 50%~100% ,GoogleNet 8bit加速14%。

下面是更新細節,文章會從基礎框架、預測引擎、移動端預測、模型建設、分佈式訓練、文檔6個方面給大家介紹,約1500字,會花費4分鐘閱讀時間。

【基礎框架】

安裝

提供新pip安裝包,支持Windows下CPU執行。

編程語言

新增對python3.6、python3.7的支持。

重構內存分配模塊Allocator,提升CPU下內存分配策略,提升顯存利用率(默認關閉,需要使用FLAGS_allocator_strategy)。

限制SelectedRows的使用。修復了稀疏正則和稀疏優化器的bug。

Tensor支持DLPack,方便被其他框架集成和集成其他訓練框架。

OP

修復 expand op shape 推理錯誤的bug。

支持 Selu 激活函數。

【預測引擎】

服務器預測

GPU 支持圖融合,且支持和 TensorRT引擎混合改圖,在Resnet50和Googlenet等圖像通用模型上bs=1下性能提升 50%~100%。

GPU支持DDPG Deep Explore預測。

Paddle-TRT對更多模型的支持,其中包括Resnet, SE-Resnet, DPN,GoogleNet。

CPU, GPU, TensorRT 等加速引擎合併入 AnalysisPredictor,統一由 AnalysisConfig 控制。

增加調用多線程數學庫的接口。

新增TensorRT plugin的支持,包括split operator, prelu operator, avg_pool operator, elementwise_mul operator。

增加了JIT CPU Kernel,支持基本的向量操作,以及常見的算法包括ReLU,LSTM和GRU的部分實現,可以實現在AVX和AVX2指令集之間自動runtime切換。

優化CRF decoding和LayerNorm在AVX以及AVX2指令集上的實現。

修復了 AnalysisPredictor 在GPU,在CPU 到 GPU 的 transfer data 不刪除的問題。

修復了 Variable 中包含 container 內存持續增長的問題。

修復fc_op不支持3-D Tensor的問題。

修復了Analysis predictor 在GPU下執行pass時的問題。

修復了TensorRT下運行GoogleNet的問題。

預測性能提升

Max Sequence pool optimization,單op提高10%。

Softmax operator 優化,單op提升14%。

Layer Norm operator優化,支持avx2指令集,單op提升5倍。

Stack operator 優化,單op提升3.6倍。

增加depthwise_conv_mkldnn_pass,加速MobileNet預測。

加速analysis模式的圖分析時間,提升70倍。

DAM開源模型,提升118.8%。

移動端預測

實現winograd算法, GoogleNet v1性能大幅提升35%。

GoogleNet 8bit優化,相比float加速14%。

MobileNet v1 8bit支持,相比float加速20%。

MobileNet v2 8bit支持,相比float加速19%。

FPGA V1 開發了Deconv算子。

android gpu支持MobileNet、MobileNetSSD、GoogleNet、SqueezeNet、YOLO、ResNet等主流的網絡模型。

【模型建設】

CV圖像分類任務發佈MobileNet V1, ResNet101, ResNet152,VGG11預訓練模型。

CV Metric Learning模型新增arcmargin損失,並調整訓練方式,採用element-wise作為預訓練模型,pair-wise繼續微調的訓練方式提升精度。

NLP語言模型任務新增基於cudnn的LSTM實現,對比PaddingRNN的實現方式,在不同參數配置下速度提升3~5倍。

增加分佈式word2vec模型,包括新增的tree-based softmax operator,negative sampling等,與經典word2vec算法對齊。

新增GRU4Rec、Tag-Space算法的分佈式配置。

完善Multi-view Simnet模型,並增加inference配置。

支持強化學習算法 DQN。

現已支持python3.5及以上的模型:語義匹配DAM,閱讀理解BiDAF,機器翻譯Transformer,語言模型,強化學習DQN、DoubleDQN模型、DuelingDQN模型,視頻分類TSN,度量學習Metric Learning,場景文字識別CRNN-CTC 、OCR Attention,生成式對抗網絡ConditionalGAN 、DCGAN、CycleGAN,語義分割ICNET、DeepLab v3+,目標檢測Faster-RCNN、MobileNet-SSD 、PyramidBox ,圖像分類SE-ResNeXt、ResNet等,個性化推薦TagSpace、GRU4Rec、SequenceSemanticRetrieval、DeepCTR、Multiview-Simnet。

【分佈式訓練】

CPU多機異步訓練

worker異步併發:增加AsyncExecutor,以訓練文件作為執行粒度,支持分佈式訓練中的worker端計算異步無鎖計算,同時支持單機訓練。以CTR任務為例,單機訓練速度,在充分利用單機線程的情況下,整體吞吐提升14倍。

IO優化:增加支持AsyncExecutor的DataFeed,支持可定製化的通用分類任務格式。面向CTR任務,增加CTRReader,使數據讀取速度線性提升,在PaddleRec/ctr任務中,整體吞吐提升1倍。

通信優化:針對稀疏訪問的Dense參數例如Embedding,增加稀疏通信機制,以語義匹配任務為例,獲取參數的總量可以壓縮到1%以下,在搜索真實場景的數據下,整體訓練吞吐可以提升50倍。

GPU多機同步訓練

修復Transformer、Bert模型下P2P訓練模式會Hang住的問題。

【文檔】

API

新增13篇API​使用指南。

新增300個API Reference中文文檔。

優化77個API Reference英文文檔:包括代碼示例、參數說明等。

安裝文檔

新增python3.6、python3.7安裝說明。

新增windows pip install安裝說明。

Book文檔

Book文檔中的代碼示例更改為Low level API。

使用文檔

新增《Operator相關注意事項》,更新《保存與載入模型變量》、《C++預測API介紹》、《使用TensorRT庫預測》、《如何貢獻代碼》等多篇使用文檔。


分享到:


相關文章: