diff --git a/README.md b/README.md index ea9f0d7bfeb5a197c526e0b3c41738f9cee850ef..5faa2525e2a842f564574574cb9138a12fef1bd1 100755 --- a/README.md +++ b/README.md @@ -1,22 +1,25 @@ -# PaddleSlim -[![Documentation Status](https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat)](https://paddleslim.readthedocs.io/en/latest/) -[![Documentation Status](https://img.shields.io/badge/中文文档-最新-brightgreen.svg)](https://paddleslim.readthedocs.io/zh_CN/latest/) -[![License](https://img.shields.io/badge/license-Apache%202-blue.svg)](LICENSE) +

+

PaddleSlim

+

-## 简介 +

+ + + +

PaddleSlim是一个专注于深度学习模型压缩的工具库,提供**低比特量化、知识蒸馏、稀疏化和模型结构搜索**等模型压缩策略,帮助用户快速实现模型的小型化。 ## 产品动态 -- 🔥 **2022.05.23: 发布v2.3.0版本** +- 🔥 **2022.05.23: 发布[v2.3.0版本](https://github.com/PaddlePaddle/PaddleSlim/releases/tag/v2.3.0)** - - 发布自动压缩功能 + - 发布[自动压缩功能](demo/auto_compression) - 支持代码无感知压缩:用户只需提供推理模型文件和数据,既可进行离线量化(PTQ)、量化训练(QAT)、稀疏训练等压缩任务 - 支持自动策略选择,根据任务特点和部署环境特性:自动搜索合适的离线量化方法,自动搜索最佳的压缩策略组合方式 - - 提供了自然语言处理、图像语义分割、图像目标检测三个方向的自动压缩示例 + - 提供了[自然语言处理](demo/auto_compression/nlp)、[图像语义分割](demo/auto_compression/semantic_segmentation)、[图像目标检测](demo/auto_compression/detection)三个方向的自动压缩示例 - 升级量化功能 @@ -46,49 +49,10 @@ PaddleSlim是一个专注于深度学习模型压缩的工具库,提供**低 - 增强剪枝功能 - 修复OFA功能若干bug -- **2021.2.5: 发布V2.0.0版本** - - 新增支持动态图 - - 新增OFA压缩功能 - - 优化剪枝功能 - -- **2020.9.16: 发布V1.2.0版本** - - - 新增PACT量化训练功能 - - 新增DML(互蒸馏功能) - - 修复部分剪裁bug,加强对depthwise_conv2d的剪裁能力 - - 优化剪裁和量化API的易用性和灵活性 - 更多信息请参考:[release note](https://github.com/PaddlePaddle/PaddleSlim/releases) -## 版本对齐 - -| PaddleSlim | PaddlePaddle | PaddleLite | -| :-----------: | :------------: | :------------:| -| 1.0.1 | <=1.7 | 2.7 | -| 1.1.1 | 1.8 | 2.7 | -| 1.2.0 | 2.0Beta/RC | 2.8 | -| 2.0.0 | 2.0 | 2.8 | -| 2.1.0 | 2.1.0 | 2.8 | -| 2.1.1 | 2.1.1 | >=2.8 | -| 2.3.0 | 2.3.0 | >=2.11 | - - - -## 安装 - -安装最新版本: -```bash -pip install paddleslim -i https://pypi.tuna.tsinghua.edu.cn/simple -``` - -安装指定版本: -```bash -pip install paddleslim==2.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple -``` - - -## 功能概览 +## 基础压缩功能概览 PaddleSlim支持以下功能,也支持自定义量化、裁剪等功能。 @@ -143,13 +107,13 @@ PaddleSlim支持以下功能,也支持自定义量化、裁剪等功能。 - *表示仅支持静态图,**表示仅支持动态图 - 敏感度裁剪指的是通过各个层的敏感度分析来确定各个卷积层的剪裁率,需要和其他裁剪方法配合使用。 -### 效果展示 +### 多场景效果展示 PaddleSlim在典型视觉和自然语言处理任务上做了模型压缩,并且测试了Nvidia GPU、ARM等设备上的加速情况,这里展示部分模型的压缩效果,详细方案可以参考下面CV和NLP模型压缩方案:


-表1: 部分模型压缩加速情况 +表1: 部分场景模型压缩加速情况

注: @@ -157,19 +121,63 @@ PaddleSlim在典型视觉和自然语言处理任务上做了模型压缩,并 - PP-OCR: 体积由8.9M减少到2.9M, 在SD855上加速1.27倍。 - BERT: 模型参数由110M减少到80M,精度提升的情况下,Tesla T4 GPU FP16计算加速1.47倍。 +### 离线量化效果对比 + +

+image
+表2: 多种离线量化方法效果对比 +

+ +### 自动压缩效果展示 + +

+image
+表3: 自动压缩效果 +

+ + + ## 文档教程 +## 版本对齐 + +| PaddleSlim | PaddlePaddle | PaddleLite | +| :-----------: | :------------: | :------------:| +| 1.0.1 | <=1.7 | 2.7 | +| 1.1.1 | 1.8 | 2.7 | +| 1.2.0 | 2.0Beta/RC | 2.8 | +| 2.0.0 | 2.0 | 2.8 | +| 2.1.0 | 2.1.0 | 2.8 | +| 2.1.1 | 2.1.1 | >=2.8 | +| 2.3.0 | 2.3.0 | >=2.11 | + + + +## 安装 + +安装最新版本: +```bash +pip install paddleslim -i https://pypi.tuna.tsinghua.edu.cn/simple +``` + +安装指定版本: +```bash +pip install paddleslim==2.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple +``` + + ### 快速开始 快速开始教程是能基于CIFAR10数据集快速运行起来的简单示例,若您是Paddle官方模型套件用户,请直接使用下方的CV模型压缩或者NLP模型压缩中教程。 -- 量化训练 - [动态图](docs/zh_cn/quick_start/dygraph/dygraph_quant_aware_training_tutorial.md) | [静态图](docs/zh_cn/quick_start/static/quant_aware_tutorial.md) -- 离线量化 - [动态图](docs/zh_cn/quick_start/dygraph/dygraph_quant_post_tutorial.md) | [静态图](docs/zh_cn/quick_start/static/quant_post_static_tutorial.md) -- 剪裁 - [动态图](docs/zh_cn/quick_start/dygraph/dygraph_pruning_tutorial.md) | [静态图](docs/zh_cn/quick_start/static/pruning_tutorial.md) -- 蒸馏 - [静态图](docs/zh_cn/quick_start/static/distillation_tutorial.md) -- NAS - [静态图](docs/zh_cn/quick_start/static/nas_tutorial.md) +- 🔥 [自动压缩](demo/auto_compression) +- [量化训练](docs/zh_cn/quick_start/static/quant_aware_tutorial.md) +- [离线量化](docs/zh_cn/quick_start/static/quant_post_static_tutorial.md) +- [结构化剪枝](docs/zh_cn/quick_start/static/pruning_tutorial.md) +- [蒸馏](docs/zh_cn/quick_start/static/distillation_tutorial.md) +- [NAS](docs/zh_cn/quick_start/static/nas_tutorial.md) -### 进阶教程 +### 更多教程 进阶教程详细介绍了每一步的流程,帮助您把相应方法迁移到您自己的模型上。 @@ -183,9 +191,9 @@ PaddleSlim在典型视觉和自然语言处理任务上做了模型压缩,并 - 低比特量化 - [三种量化方法介绍与应用](docs/zh_cn/tutorials/quant/overview.md) - - 量化训练:[动态图](docs/zh_cn/tutorials/quant/dygraph/quant_aware_training_tutorial.md) | [静态图](docs/zh_cn/quick_start/static/quant_aware_tutorial.md) - - 离线量化:[动态图](docs/zh_cn/tutorials/quant/dygraph/dygraph_quant_post_tutorial.md) | [静态图](docs/zh_cn/tutorials/quant/static/quant_post_tutorial.md) - - embedding量化:[静态图](docs/zh_cn/tutorials/quant/static/embedding_quant_tutorial.md) + - [量化训练](docs/zh_cn/quick_start/static/quant_aware_tutorial.md) + - [离线量化](docs/zh_cn/tutorials/quant/static/quant_post_tutorial.md) + - [embedding量化](docs/zh_cn/tutorials/quant/static/embedding_quant_tutorial.md) - NAS - [四种NAS策略介绍和应用](docs/zh_cn/tutorials/nas/overview.md)