PaddlePaddle 版本1.1.0發佈啦!

PaddlePaddle在基礎框架、模型建設、分佈式訓練、預測引擎各個方向上完成多項更新。OP進行了全面完善和優化,模型庫新增了自然語言處理、視覺和推薦等領域的大量經典模型,分佈式訓練能力顯著提升,支持千億規模稀疏參數大規模多機異步訓練,預測庫易用性和效率提升,移動端預測支持更多模型和更多硬件。詳情如下:

基礎框架

安裝

  • Mac OS X 10.11及以上pip安裝支持。
  • Mac OS X 10.12及以上從源碼編譯安裝支持。

編程語言

  • Python3的支持(python3.5版本)。

IO

  • 新增PyReader,支持用戶基於python自定義數據讀取和預處理的的高性能數據輸入。在ResNet50模型上,單機情況下:單卡數據讀取速度提升4%、4卡數據讀取速度提升38%、8卡數據讀取速度提升60%。
  • 實現一個多進程PyReader decorator,配合PyReader可以實現數據讀取性能線性提升。

OP優化

  • 優化了split operator,顯著提升性能。
  • 擴展multiclass_nms operator,支持多邊形的預測框。
  • 通過generatoe_proposals operator的CUDA實現,顯著提升性能。
  • 通過affine_channel operator融合batch_norm operator,顯著提升性能。
  • 優化depthwise_conv operator的forward和backward,顯著提升性能。
  • 優化reduce_mean operator。
  • 優化sum operator,該operator在輸入是Tensor的情況下,減少一次zero memory耗時。
  • 優化top_k operator,顯著提升性能。
  • 優化sequence_pool operator,顯著提升性能。
  • 優化elementwise_add operator ,顯著提升性能。
  • while operator 性能優化,相關的模型性能整體提升 30%+。
  • sequence_slice operator的實現,對於一個sequence,可以從指定位置開始,slice出指定長度的subsequence。
  • sequence_unpad operator的實現,支持padding Tensor轉LoDTensor。
  • 支持截斷正態分佈初始化方法(truncated normal initializer)。
  • 二維padding operator的實現,支持一個每個緯度的首尾padding不同的大小。
  • 更多 operator支持

sequence_reverse operator,sequence_enumerate operator, sequence_scatter operator, roi_align operator,affine_channel operator, anchor_generator operator,generate_proposal_labels operator, generate_proposals operator, rpn_target_assign operator、roi透視變換operator, seq_pool operator、seq_expand operator、seq_concat operator、seq_softmax operator、lod_to_array operator、array_to_lod operator。

顯存優化

  • 顯存優化策略eager deletion支持control flow (e.g. if-else, while)中子block的優化。顯著降低包含control flow的模型的顯存開銷。

模型建設

  • 自然語言處理方向增加開源語義匹配DAM模型和閱讀理解BiDAF模型,機器翻譯Transformer模型性能優化後訓練速度提升超過30%,模型效果和訓練速度均達到業界領先水平。
  • 計算機視覺方向增加開源OCR識別Seq2Seq-Attention模型,目標檢測Faster-RCNN模型,圖像語義分割DeepLab v3+模型,視頻分類TSN模型,圖像生成CircleGAN/ConditionalGAN/DCGAN模型,以及Deep Metric Learning模型,模型效果和訓練速度均達到業界領先水平。
  • 個性化推薦任務系列模型支持:新聞自動標籤模型TagSpace,序列語義召回模型GRU4Rec、SequenceSemanticRetrieval,點擊率預估模型DeepCTR,多視角興趣匹配模型multiview-simnet

TagSpace : TagSpace: Semantic Embeddings from Hashtags

SequenceSemanticRetrieval : Multi-Rate Deep Learning for Temporal Recommendation

multiview-simnet : A Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems

GRU4Rec : Session-based Recommendations with Recurrent Neural Networks

DeepCTR : DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

  • 公開的Quora數據集上,實現並復現了四個公開匹配算法,具有較好的通用性,可應用於NLP、搜索、推薦等場景。

cdssmNet:Learning semantic representations using convolutional neural networks for web search

decAttNet:Neural paraphrase identification of questions with noisy pretraining

inferSentNet:Supervised learning of universal sentence representations from natural language inference data

SSENet:Shortcut-stacked sentence encoders for multi-domain inference

分佈式訓練

  • GPU多機多卡同步訓練支持參數同步頻率可配置化,在V100上支持的batch size提升爲v1.0版本的8倍,通過合理的通信間隔配置,使GPU卡數較少的情況下超大Batch同步訓練成爲可能,並在優化算法方面保證了收斂效果不變。
  • 支持千億規模稀疏參數服務器,用於大規模多機異步訓練,適用於推薦、廣告等領域的點擊率預估模型。

預測引擎

服務器預測

  • 預測庫Windows支持。
  • PaddlePredictor C++ 接口穩定版發佈,已經實際支持一部分業務上線,並持續向前兼容。
  • 預發佈整合了 TensorRT 子圖加速方案。運行時自動切割計算子圖調用TensorRT加速。目前Paddle TensorRT 依舊在持續開發中,已支持的模型有 AlexNet, MobileNet, ResNet50, VGG19, ResNet, MobileNet-SSD等。
  • 基於圖優化的 CPU 加速 feature,實現了 LSTM,GRU 等一系列 operator 的 fuse,理論上可以大幅提升序列相關模型的性能。
  • 增加了部署時 AVX 和 NOAVX 自動切換的feature,可以針對重點模型實現AVX, AVX2, AVX512自動切換。
  • 提升預測庫易用性:只需要 include一個頭文件和一個庫。
  • ICNet 預測性能大幅提升。

移動端預測

  • 樹莓派上MobileNet、GoogleNet、ResNet 34等多個模型支持。
  • Mali GPU和Andreno GPU上MobileNet v1模型支持。
  • ZU5、ZU9等FPGA開發板上ResNet 34和ResNet 50模型支持。

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