1
- # PaddleSlim
2
1
3
- [ ![ Documentation Status ] ( https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat )] ( https://paddleslim.readthedocs.io/en/latest/ )
4
- [ ![ Documentation Status ] ( https://img.shields.io/badge/中文文档-最新-brightgreen.svg )] ( https://paddleslim.readthedocs.io/zh_CN/latest/ )
5
- [ ![ License ] ( https://img.shields.io/badge/license-Apache%202-blue.svg )] ( LICENSE )
2
+ < p align = " center " >
3
+ < h1 align = " center " >PaddleSlim</ h1 >
4
+ </ p >
6
5
7
- ## 简介
6
+ <p align =" center " >
7
+ <a href="./LICENSE"><img src="https://img.shields.io/badge/license-Apache%202-blue.svg"></a>
8
+ <a href="https://paddleslim.readthedocs.io/en/latest/"><img src="https://img.shields.io/badge/docs-latest-brightgreen.svg?style=flat"></a>
9
+ <a href="https://paddleslim.readthedocs.io/zh_CN/latest/"><img src="https://img.shields.io/badge/中文文档-最新-brightgreen.svg"></a>
10
+ </p >
8
11
9
- PaddleSlim是一个专注于深度学习模型压缩的工具库,提供** 剪裁、量化、蒸馏、和模型结构搜索 ** 等模型压缩策略,帮助用户快速实现模型的小型化。
12
+ PaddleSlim是一个专注于深度学习模型压缩的工具库,提供** 低比特量化、知识蒸馏、稀疏化和模型结构搜索 ** 等模型压缩策略,帮助用户快速实现模型的小型化。
10
13
11
- ## 版本对齐
14
+ ## 产品动态
12
15
13
- | PaddleSlim | PaddlePaddle | PaddleLite |
14
- | :-----------: | :------------: | :------------:|
15
- | 1.0.1 | <=1.7 | 2.7 |
16
- | 1.1.1 | 1.8 | 2.7 |
17
- | 1.2.0 | 2.0Beta/RC | 2.8 |
18
- | 2.0.0 | 2.0 | 2.8 |
19
- | 2.1.0 | 2.1.0 | 2.8 |
20
- | 2.1.1 | 2.1.1 | >=2.8 |
16
+ - 🔥 ** 2022.05.23: 发布[ v2.3.0版本] ( https://github.com/PaddlePaddle/PaddleSlim/releases/tag/v2.3.0 ) **
21
17
18
+ - 发布[ 自动压缩功能] ( demo/auto_compression )
22
19
23
- ## 安装
20
+ - 支持代码无感知压缩:用户只需提供推理模型文件和数据,既可进行离线量化(PTQ)、量化训练(QAT)、稀疏训练等压缩任务
21
+ - 支持自动策略选择,根据任务特点和部署环境特性:自动搜索合适的离线量化方法,自动搜索最佳的压缩策略组合方式
22
+ - 提供了[ 自然语言处理] ( demo/auto_compression/nlp ) 、[ 图像语义分割] ( demo/auto_compression/semantic_segmentation ) 、[ 图像目标检测] ( demo/auto_compression/detection ) 三个方向的自动压缩示例
24
23
25
- 安装最新版本:
26
- ``` bash
27
- pip install paddleslim -i https://pypi.tuna.tsinghua.edu.cn/simple
28
- ```
24
+ - 升级量化功能
29
25
30
- 安装指定版本:
31
- ``` bash
32
- pip install paddleslim==2.1.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
33
- ```
26
+ - 统一量化模型格式
27
+ - 离线量化支持while op
28
+ - 新增7种离线量化方法, 包括HIST, AVG, EMD, Bias Correction, AdaRound等
29
+ - 修复BERT大模型量化训练过慢的问题
30
+
31
+ - 支持半结构化稀疏训练
32
+
33
+ - 新增延时预估工具
34
+
35
+ - 支持预估指定模型在特定部署环境下 (ARM CPU + Paddle Lite) 的推理性能
36
+ - 提供部署环境自动扩展工具,可以自动增加在更多 ARM CPU 设备上的预估工具
37
+ - 支持对稀疏化模型、低比特量化模型的性能预估
38
+ - 提供 SD625、SD710、RK3288 芯片 + Paddle Lite 的预估接口
34
39
35
- ## 最近更新
36
40
37
- 2021.5.20: 发布V2.1.0版本,扩展离线量化方法,新增非结构化稀疏,增强剪枝功能,修复OFA功能若干bug。
38
- 2021.2.5: 发布V2.0.0版本,新增支持动态图,新增OFA压缩功能,优化剪枝功能。
39
- 2020.9.16: 发布V1.2.0版本,新增PACT量化训练功能,新增DML(互蒸馏功能),修复部分剪裁bug,加强对depthwise_conv2d的剪裁能力,优化剪裁和量化API的易用性和灵活性。
41
+ - ** 2021.11.15: 发布v2.2.0版本**
42
+
43
+ - 支持动态图离线量化功能.
44
+
45
+ - ** 2021.5.20: 发布V2.1.0版本**
46
+
47
+ - 扩展离线量化方法
48
+ - 新增非结构化稀疏
49
+ - 增强剪枝功能
50
+ - 修复OFA功能若干bug
40
51
41
52
更多信息请参考:[ release note] ( https://github.com/PaddlePaddle/PaddleSlim/releases )
42
53
43
- ## 功能概览
54
+
55
+ ## 基础压缩功能概览
44
56
45
57
PaddleSlim支持以下功能,也支持自定义量化、裁剪等功能。
46
58
<table >
@@ -95,33 +107,75 @@ PaddleSlim支持以下功能,也支持自定义量化、裁剪等功能。
95
107
- * 表示仅支持静态图,** 表示仅支持动态图
96
108
- 敏感度裁剪指的是通过各个层的敏感度分析来确定各个卷积层的剪裁率,需要和其他裁剪方法配合使用。
97
109
98
- ### 效果展示
110
+ ### 多场景效果展示
99
111
100
112
PaddleSlim在典型视觉和自然语言处理任务上做了模型压缩,并且测试了Nvidia GPU、ARM等设备上的加速情况,这里展示部分模型的压缩效果,详细方案可以参考下面CV和NLP模型压缩方案:
101
113
102
114
<p align =" center " >
103
115
<img src =" docs/images/benchmark.png " height =185 width =849 hspace =' 10 ' /> <br />
104
- <strong >表1: 部分模型压缩加速情况 </strong >
116
+ <strong >表1: 部分场景模型压缩加速情况 </strong >
105
117
</p >
106
118
107
119
注:
108
120
- YOLOv3: 在移动端SD855上加速3.55倍。
109
121
- PP-OCR: 体积由8.9M减少到2.9M, 在SD855上加速1.27倍。
110
122
- BERT: 模型参数由110M减少到80M,精度提升的情况下,Tesla T4 GPU FP16计算加速1.47倍。
111
123
124
+ ### 自动压缩效果展示
125
+
126
+ <p align =" center " >
127
+ <img width =" 800 " alt =" image " src =" https://user-images.githubusercontent.com/7534971/168805367-f9d1299d-93e3-44d0-84da-870217edeb54.png " /> <br />
128
+ <strong >表3: 自动压缩效果</strong >
129
+ </p >
130
+
131
+ ### 离线量化效果对比
132
+
133
+ <p align =" center " >
134
+ <img width =" 750 " alt =" image " src =" https://user-images.githubusercontent.com/7534971/168809561-e2e0045e-c73a-4684-bd1a-79562c30e44d.png " /> <br />
135
+ <strong >表2: 多种离线量化方法效果对比</strong >
136
+ </p >
137
+
112
138
## 文档教程
113
139
140
+ ## 版本对齐
141
+
142
+ | PaddleSlim | PaddlePaddle | PaddleLite |
143
+ | :-----------: | :------------: | :------------:|
144
+ | 1.0.1 | <=1.7 | 2.7 |
145
+ | 1.1.1 | 1.8 | 2.7 |
146
+ | 1.2.0 | 2.0Beta/RC | 2.8 |
147
+ | 2.0.0 | 2.0 | 2.8 |
148
+ | 2.1.0 | 2.1.0 | 2.8 |
149
+ | 2.1.1 | 2.1.1 | >=2.8 |
150
+ | 2.3.0 | 2.3.0 | >=2.11 |
151
+
152
+
153
+
154
+ ## 安装
155
+
156
+ 安装最新版本:
157
+ ``` bash
158
+ pip install paddleslim -i https://pypi.tuna.tsinghua.edu.cn/simple
159
+ ```
160
+
161
+ 安装指定版本:
162
+ ``` bash
163
+ pip install paddleslim==2.3.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
164
+ ```
165
+
166
+
114
167
### 快速开始
115
168
116
169
快速开始教程是能基于CIFAR10数据集快速运行起来的简单示例,若您是Paddle官方模型套件用户,请直接使用下方的CV模型压缩或者NLP模型压缩中教程。
117
170
118
- - 量化训练 - [ 动态图] ( docs/zh_cn/quick_start/dygraph/dygraph_quant_aware_training_tutorial.md ) | [ 静态图] ( docs/zh_cn/quick_start/static/quant_aware_tutorial.md )
119
- - 离线量化 - [ 动态图] ( docs/zh_cn/quick_start/dygraph/dygraph_quant_post_tutorial.md ) | [ 静态图] ( docs/zh_cn/quick_start/static/quant_post_static_tutorial.md )
120
- - 剪裁 - [ 动态图] ( docs/zh_cn/quick_start/dygraph/dygraph_pruning_tutorial.md ) | [ 静态图] ( docs/zh_cn/quick_start/static/pruning_tutorial.md )
121
- - 蒸馏 - [ 静态图] ( docs/zh_cn/quick_start/static/distillation_tutorial.md )
122
- - NAS - [ 静态图] ( docs/zh_cn/quick_start/static/nas_tutorial.md )
171
+ - 🔥 [ 自动压缩] ( demo/auto_compression )
172
+ - [ 量化训练] ( docs/zh_cn/quick_start/static/quant_aware_tutorial.md )
173
+ - [ 离线量化] ( docs/zh_cn/quick_start/static/quant_post_static_tutorial.md )
174
+ - [ 结构化剪枝] ( docs/zh_cn/quick_start/static/pruning_tutorial.md )
175
+ - [ 蒸馏] ( docs/zh_cn/quick_start/static/distillation_tutorial.md )
176
+ - [ NAS] ( docs/zh_cn/quick_start/static/nas_tutorial.md )
123
177
124
- ### 进阶教程
178
+ ### 更多教程
125
179
126
180
进阶教程详细介绍了每一步的流程,帮助您把相应方法迁移到您自己的模型上。
127
181
@@ -135,9 +189,9 @@ PaddleSlim在典型视觉和自然语言处理任务上做了模型压缩,并
135
189
136
190
- 低比特量化
137
191
- [ 三种量化方法介绍与应用] ( docs/zh_cn/tutorials/quant/overview.md )
138
- - 量化训练: [ 动态图 ] ( docs/zh_cn/tutorials/quant/dygraph/quant_aware_training_tutorial.md ) | [ 静态图 ] ( docs/zh_cn/quick_start/static/quant_aware_tutorial.md )
139
- - 离线量化: [ 动态图 ] ( docs/zh_cn/tutorials/quant/dygraph/dygraph_quant_post_tutorial.md ) | [ 静态图 ] ( docs/zh_cn/tutorials/quant/static/quant_post_tutorial.md )
140
- - embedding量化: [ 静态图 ] ( docs/zh_cn/tutorials/quant/static/embedding_quant_tutorial.md )
192
+ - [ 量化训练 ] ( docs/zh_cn/quick_start/static/quant_aware_tutorial.md )
193
+ - [ 离线量化 ] ( docs/zh_cn/tutorials/quant/static/quant_post_tutorial.md )
194
+ - [ embedding量化 ] ( docs/zh_cn/tutorials/quant/static/embedding_quant_tutorial.md )
141
195
142
196
- NAS
143
197
- [ 四种NAS策略介绍和应用] ( docs/zh_cn/tutorials/nas/overview.md )
0 commit comments