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

pythontab發表於2018-12-17

各位關注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庫預測》、《如何貢獻程式碼》等多篇使用文件。


相關文章