forked from chenzomi12/AISystem
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path02.srt
1392 lines (1044 loc) · 24 KB
/
02.srt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1
00:00:00,000 --> 00:00:04,380
字幕生成:Galaxies 字幕校对:Not_Ur_77
2
00:00:04,380 --> 00:00:07,100
嗨大家好我是ZOMI
3
00:00:07,100 --> 00:00:08,500
卷王来了卷王来了
4
00:00:08,500 --> 00:00:11,500
那今天呢给大家带来一个新的内容
5
00:00:11,500 --> 00:00:15,260
就是推理引擎或者推理系统里面的模型压缩
6
00:00:15,260 --> 00:00:19,060
也可以叫模型小型化呀或者模型轻量化这个工作
7
00:00:19,060 --> 00:00:22,900
那今天呢主要是给大家去带来一个新的内容
8
00:00:22,900 --> 00:00:24,900
模型的量化
9
00:00:26,100 --> 00:00:28,860
回到今天课程的主角
10
00:00:28,860 --> 00:00:33,660
今天的课程呢主要是去讲讲低比特量化
11
00:00:33,660 --> 00:00:35,360
那在低比特量化里面呢
12
00:00:35,360 --> 00:00:39,660
ZOMI呢可能会分开三节课给大家介绍的
13
00:00:41,160 --> 00:00:42,360
因为内容有点多
14
00:00:42,360 --> 00:00:45,060
所以我把低比特量化呢拆分成三节课
15
00:00:45,060 --> 00:00:48,360
每节课呢尽量控制在十分钟以内
16
00:00:48,360 --> 00:00:50,460
让大家听得比较愉快
17
00:00:50,460 --> 00:00:51,960
心情比较愉悦
18
00:00:51,960 --> 00:00:55,260
那第一个呢就是最基本的量化基础啊
19
00:00:55,260 --> 00:00:56,360
Base Concept
20
00:00:56,360 --> 00:00:58,660
第二个呢就是量化的原理
21
00:00:58,660 --> 00:01:02,960
去看看具体的量化的算法是怎么实现的
22
00:01:02,960 --> 00:01:05,160
到底低比特指的是啥
23
00:01:05,160 --> 00:01:07,260
低到哪个程度
24
00:01:07,260 --> 00:01:10,360
那接着呢将会在第二节课去讲讲
25
00:01:10,360 --> 00:01:14,660
QAT Quantization Aware Training 感知量化训练
26
00:01:14,660 --> 00:01:17,660
一般都叫QAT感知量化
27
00:01:17,660 --> 00:01:18,960
为啥叫感知呢
28
00:01:18,960 --> 00:01:21,560
是因为在训练的过程当中
29
00:01:21,560 --> 00:01:24,760
去感知到需要量化的程度
30
00:01:24,760 --> 00:01:26,960
那接着呢在最后一节课
31
00:01:27,060 --> 00:01:29,860
会去讲讲训练后量化
32
00:01:29,860 --> 00:01:33,360
PTQ Post Training Quantization
33
00:01:33,360 --> 00:01:36,360
训练完之后再做量化
34
00:01:36,360 --> 00:01:39,760
那在第三节课还有一个很重要的内容要补充的
35
00:01:39,760 --> 00:01:42,260
就是量化的部署
36
00:01:42,260 --> 00:01:45,460
不管前面的算法多复杂多炫酷也好
37
00:01:45,460 --> 00:01:47,460
最终都离不开一个话题
38
00:01:47,460 --> 00:01:51,760
怎么把网络模型经过量化后的部署起来
39
00:01:51,760 --> 00:01:54,960
所以这个话题这个内容也是非常重要
40
00:01:55,060 --> 00:01:56,660
而我搜了很多文章
41
00:01:56,660 --> 00:01:59,760
确实很少会把这些所有的内容串起来
42
00:02:01,460 --> 00:02:04,660
现在呢开始正式的内容
43
00:02:04,660 --> 00:02:08,260
首先第一个就是量化的基础哦
44
00:02:08,260 --> 00:02:09,360
上面这段废话呢
45
00:02:09,360 --> 00:02:11,460
我就不跟大家一起去读了
46
00:02:11,460 --> 00:02:12,260
数值呢
47
00:02:12,260 --> 00:02:15,260
在计算机里面其实有很多种表示方式
48
00:02:15,260 --> 00:02:15,860
那这里面呢
49
00:02:15,860 --> 00:02:22,560
一般都会有FP32 还有FP16 INT32 INT16 还有INT8
50
00:02:22,560 --> 00:02:24,460
一般呢都会有这些指令
51
00:02:26,760 --> 00:02:30,560
是一般用来去做训练的一个精度
52
00:02:31,460 --> 00:02:32,060
很多时候呢
53
00:02:32,060 --> 00:02:33,860
会开启混合精度
54
00:02:33,860 --> 00:02:35,060
那所谓的混合精度呢
55
00:02:35,060 --> 00:02:39,660
一般是把FP32跟FP16混合到一起去训练的
56
00:02:39,660 --> 00:02:40,560
因为FP16呢
57
00:02:40,560 --> 00:02:42,760
它这样的内存位置或者占用的地址空间呢
58
00:02:42,760 --> 00:02:44,260
确实少了很多
59
00:02:45,860 --> 00:02:48,260
而一般指的模型量化呢
60
00:02:48,260 --> 00:02:50,760
除了把FP32降成FP16
61
00:02:50,760 --> 00:02:58,460
更多的是降到INT16 INT8 甚至INT4更低比特的一种表示
62
00:02:58,460 --> 00:03:02,060
那这种呢 叫做模型量化的技术
63
00:03:02,060 --> 00:03:08,060
把FP32 32位的比特转换成为更低比特的方式或者技术
64
00:03:08,060 --> 00:03:10,360
叫做模型量化
65
00:03:10,360 --> 00:03:10,960
接下来呢
66
00:03:10,960 --> 00:03:13,860
看一下神经网络有什幺特点
67
00:03:13,860 --> 00:03:14,760
那右边这个图呢
68
00:03:14,760 --> 00:03:16,460
已经看了好多遍了
69
00:03:16,460 --> 00:03:16,860
其实呢
70
00:03:16,860 --> 00:03:18,460
神经网络一般来说呢
71
00:03:18,460 --> 00:03:21,560
训练的时候数据的参数量会很大
72
00:03:21,560 --> 00:03:21,960
第二个
73
00:03:21,960 --> 00:03:24,160
计算量也会很大
74
00:03:24,160 --> 00:03:27,760
第三个就是占用很大的内存空间
75
00:03:27,760 --> 00:03:30,160
而占用这幺多内存空间都这幺大
76
00:03:30,160 --> 00:03:33,860
为的就是得到一个高精度的模型
77
00:03:33,860 --> 00:03:34,460
但是呢
78
00:03:34,460 --> 00:03:36,560
要把神经网络部署起来
79
00:03:36,560 --> 00:03:38,260
所以希望这个网络模型呢
80
00:03:38,260 --> 00:03:39,360
越小越好
81
00:03:39,360 --> 00:03:39,860
于是呢
82
00:03:39,860 --> 00:03:43,060
研究者就发现了网络模型的量化的技术
83
00:03:43,060 --> 00:03:46,860
那现在首先先不要去谈谈模型量化到底做了什幺
84
00:03:46,860 --> 00:03:50,360
去看看模型量化的一些好处
85
00:03:50,460 --> 00:03:52,260
那这个呢是我总结了几个点
86
00:03:52,260 --> 00:03:55,360
第一个点就是保持相同的精度
87
00:03:55,360 --> 00:03:56,960
神经网络训练的时候呢
88
00:03:56,960 --> 00:03:57,860
一般来说啊
89
00:03:57,860 --> 00:04:00,060
对噪声不是说非常的敏感
90
00:04:00,060 --> 00:04:02,860
因为里面有非常大量的冗余的参数
91
00:04:02,860 --> 00:04:04,660
而且都是可学习的参数
92
00:04:04,660 --> 00:04:05,060
第二个呢
93
00:04:05,060 --> 00:04:07,160
就是加速运算了
94
00:04:07,160 --> 00:04:11,260
因为大家都知道像传统的卷积神经网络里面的卷积的操作
95
00:04:11,260 --> 00:04:14,460
一般都是用FP32的浮点数去运算的
96
00:04:14,460 --> 00:04:15,960
越低比特的运算呢
97
00:04:15,960 --> 00:04:18,160
它确实能够减少运算的功耗
98
00:04:18,160 --> 00:04:20,660
而且性能更高
99
00:04:20,660 --> 00:04:21,360
那第三点呢
100
00:04:21,360 --> 00:04:23,260
就是节省内存
101
00:04:23,260 --> 00:04:26,460
我从FP32存储到INT8、INT4
102
00:04:26,460 --> 00:04:27,360
越低的精度
103
00:04:27,360 --> 00:04:29,360
我所占用的地址空间和内存空间呢
104
00:04:29,360 --> 00:04:31,760
肯定是越小的
105
00:04:31,760 --> 00:04:32,260
下面呢
106
00:04:32,260 --> 00:04:36,460
看一下模型量化的五个特点
107
00:04:36,460 --> 00:04:36,960
第一个呢
108
00:04:36,960 --> 00:04:40,960
就是对神经网络模型的参数进行压缩
109
00:04:40,960 --> 00:04:42,360
把以前200兆的模型呢
110
00:04:42,360 --> 00:04:43,960
可能压缩到只有50兆
111
00:04:43,960 --> 00:04:46,460
而且可以提升运算的速度
112
00:04:46,460 --> 00:04:47,960
另外还可以降低内存
113
00:04:47,960 --> 00:04:48,960
降低功耗
114
00:04:48,960 --> 00:04:50,460
提升芯片的面积
115
00:04:50,460 --> 00:04:51,160
那这里面呢
116
00:04:51,160 --> 00:04:54,160
只是对上面进行一个简单的总结
117
00:04:54,160 --> 00:04:58,760
接下来看一下量化技术落地的三大挑战
118
00:04:58,760 --> 00:05:02,660
现在来看一下量化技术落地的三大挑战呢
119
00:05:02,660 --> 00:05:05,260
其中第一个就是精度的挑战
120
00:05:05,260 --> 00:05:05,960
首先呢
121
00:05:05,960 --> 00:05:08,860
现在的量化方法大部分都是线性的量化
122
00:05:08,860 --> 00:05:09,560
另外的话
123
00:05:09,560 --> 00:05:11,160
模型比特越低
124
00:05:11,160 --> 00:05:12,160
精度损失越大
125
00:05:12,160 --> 00:05:12,860
任务呢
126
00:05:12,860 --> 00:05:13,860
不同任务里面
127
00:05:13,860 --> 00:05:15,560
精度损失也是不一样的
128
00:05:15,560 --> 00:05:16,660
而且模型越小
129
00:05:16,660 --> 00:05:19,460
确实对损失精度影响也是很大
130
00:05:19,460 --> 00:05:22,060
所以第一大的挑战就是精度
131
00:05:22,060 --> 00:05:25,260
还是希望能够保持相同的精度
132
00:05:25,260 --> 00:05:28,760
那第二个比较大的挑战就是硬件的支持程度
133
00:05:28,760 --> 00:05:31,160
因为不同的硬件提供的比特数
134
00:05:31,160 --> 00:05:32,660
或者比特的指令集呢
135
00:05:32,660 --> 00:05:33,660
是不同的
136
00:05:33,660 --> 00:05:35,760
需要做很多的对于kernel
137
00:05:35,760 --> 00:05:39,360
或者根据指令集进行一些优化
138
00:05:39,360 --> 00:05:43,260
那最后一点就是软件算法是否真的能够加速
139
00:05:43,260 --> 00:05:45,260
这是一个悖论哦
140
00:05:45,260 --> 00:05:47,460
虽然网络模型经过压缩了
141
00:05:47,460 --> 00:05:49,760
但是要是硬件指令不支持的情况
142
00:05:49,760 --> 00:05:50,960
我在运算的时候呢
143
00:05:50,960 --> 00:05:53,360
还是要反量化量化回FP32哦
144
00:05:53,360 --> 00:05:53,960
这个时候呢
145
00:05:53,960 --> 00:05:56,460
就需要插入很多Cast算子
146
00:05:56,460 --> 00:05:58,860
那这会影响kernel的执行的性能
147
00:05:58,860 --> 00:06:03,160
所以说软件算法是否能够真正得到一个加速呢
148
00:06:03,160 --> 00:06:04,160
这是一个疑问哦
149
00:06:06,860 --> 00:06:07,460
下面呢
150
00:06:07,460 --> 00:06:09,360
我想提出几个问题
151
00:06:09,360 --> 00:06:12,060
引起大家的一个一起去思考
152
00:06:12,060 --> 00:06:13,760
大家也可以停下来几分钟
153
00:06:13,860 --> 00:06:15,360
去思考一下这些问题
154
00:06:15,360 --> 00:06:16,060
第一个就是
155
00:06:16,060 --> 00:06:20,760
为什幺模型量化技术能够对实际的部署起到真正的作用
156
00:06:20,760 --> 00:06:22,060
虽然有很多挑战
157
00:06:22,060 --> 00:06:27,060
但确实模型量化能够真正的加速部署的速度
158
00:06:27,060 --> 00:06:27,660
那第二个呢
159
00:06:27,660 --> 00:06:31,660
就是为什幺需要对网络模型进行量化压缩呢
160
00:06:31,660 --> 00:06:33,760
量化压缩到底有什幺好处
161
00:06:33,760 --> 00:06:35,060
那第三点就是
162
00:06:35,060 --> 00:06:40,460
为什么不直接训练的时候就训练低比特精度的模型呢
163
00:06:40,460 --> 00:06:41,060
哎
164
00:06:41,060 --> 00:06:42,260
这个很有意思
165
00:06:42,260 --> 00:06:43,860
对于大模型也是
166
00:06:43,860 --> 00:06:45,160
我大模型训练的时候呢
167
00:06:45,160 --> 00:06:47,860
动作就百亿级别千亿级别万亿级别的模型
168
00:06:47,860 --> 00:06:49,260
模型参数量这幺大
169
00:06:49,260 --> 00:06:52,160
为什么你不直接训练一个小模型呢
170
00:06:52,160 --> 00:06:54,160
最后一点就是
171
00:06:54,160 --> 00:06:55,460
在什幺情况下
172
00:06:55,460 --> 00:07:00,760
不应该还是应该去使用模型量化技术呢
173
00:07:00,760 --> 00:07:04,060
那这四个点我希望大家停下来去思考一下
174
00:07:13,160 --> 00:07:13,660
现在呢
175
00:07:13,660 --> 00:07:17,660
我要给大家去汇报一下量化原理了
176
00:07:17,660 --> 00:07:18,360
首先呢
177
00:07:18,360 --> 00:07:20,260
量化的方法方法呢
178
00:07:20,260 --> 00:07:23,760
现在来看的一般分为三大种
179
00:07:23,760 --> 00:07:27,660
那第一种就是量化训练QAT
180
00:07:27,660 --> 00:07:28,860
它最主要的方式呢
181
00:07:28,860 --> 00:07:33,060
就是让在网络模型训练的时候去感知量化运算
182
00:07:33,060 --> 00:07:36,260
到底对网络模型精度带来什幺样的影响
183
00:07:36,260 --> 00:07:36,960
然后呢
184
00:07:36,960 --> 00:07:41,160
通过Fine Tuning去降低整个量化的误差
185
00:07:41,160 --> 00:07:41,660
接着呢
186
00:07:41,660 --> 00:07:43,560
有PTQ
187
00:07:43,560 --> 00:07:46,160
那PTQ就是离线量化
188
00:07:46,160 --> 00:07:49,160
离线量化又分为动态和静态
189
00:07:49,160 --> 00:07:50,060
那一般来说呢
190
00:07:50,060 --> 00:07:52,160
会用静态会比较多
191
00:07:52,160 --> 00:07:52,860
动态呢
192
00:07:52,860 --> 00:07:53,960
其实比较简单
193
00:07:53,960 --> 00:07:56,560
就是直接把已经训练好的网络模型呢
194
00:07:56,560 --> 00:08:04,960
权重直接从FP32转成或者映射成INT8和FLOP16这种类型呢进行一个推理
195
00:08:04,960 --> 00:08:11,060
而静态量化呢 可能会使用少量或者没有标签的数据进行一个校准
196
00:08:11,460 --> 00:08:13,760
那校准的方法有非常的多
197
00:08:13,760 --> 00:08:14,360
那现在呢
198
00:08:14,360 --> 00:08:17,660
用的比较多的就是KL散度
199
00:08:17,660 --> 00:08:19,460
往下看一个图
200
00:08:19,460 --> 00:08:22,260
更好的去理解这三种具体的算法
201
00:08:22,260 --> 00:08:24,060
首先就是感知量化QAT
202
00:08:24,060 --> 00:08:26,460
有一个训练好的网络模型
203
00:08:26,460 --> 00:08:27,560
对这个网络模型呢
204
00:08:27,560 --> 00:08:30,560
进行一个转换超越一些伪量化的算子
205
00:08:30,560 --> 00:08:31,060
接着呢
206
00:08:31,060 --> 00:08:32,560
得到一个新的网络模型
207
00:08:32,560 --> 00:08:35,060
对新的网络模型进行Fine Tuning
208
00:08:35,060 --> 00:08:35,760
最后呢
209
00:08:35,760 --> 00:08:40,360
得到真正量化后或者感知量化后的一个网络模型
210
00:08:40,360 --> 00:08:40,960
接着呢
211
00:08:40,960 --> 00:08:42,260
去给部署端的
212
00:08:44,160 --> 00:08:45,360
静态离线量化呢
213
00:08:45,360 --> 00:08:47,860
首先有一个训练好的网络模型
214
00:08:47,860 --> 00:08:50,460
有一堆训练的数据
215
00:08:50,460 --> 00:08:51,860
这个是Training Data
216
00:08:51,860 --> 00:08:52,560
改错了
217
00:08:52,560 --> 00:08:55,460
有一堆训练的数据或者等待训练的数据
218
00:08:55,460 --> 00:08:56,060
然后呢
219
00:08:56,060 --> 00:08:58,760
去给网络模型进行一个校准
220
00:08:58,760 --> 00:08:59,960
那这个校准的方法呢
221
00:08:59,960 --> 00:09:02,760
有可能会用KL散度或者其他的方式
222
00:09:02,760 --> 00:09:03,460
最后呢
223
00:09:03,460 --> 00:09:07,560
就是PTQ的Dynamic动态离线量化
224
00:09:07,560 --> 00:09:09,560
输一个神级网络模型
225
00:09:09,560 --> 00:09:09,860
然后呢
226
00:09:09,860 --> 00:09:11,660
对这个神级网络模型进行转换
227
00:09:11,660 --> 00:09:14,560
最后得到转换后或者量化后的网络模型
228
00:09:14,560 --> 00:09:16,160
主要是由这三种方法
229
00:09:17,460 --> 00:09:17,960
那现在呢
230
00:09:17,960 --> 00:09:20,760
看一下这三种方法有什幺区别
231
00:09:20,760 --> 00:09:23,060
做一个简单的比较了
232
00:09:23,060 --> 00:09:24,160
量化训练呢
233
00:09:24,160 --> 00:09:27,960
确实精度损失是比较少的
234
00:09:27,960 --> 00:09:31,160
但是它的缺点就是需要使用大量带标签的数据
235
00:09:31,160 --> 00:09:33,460
进行Fine Tuning或者一个重训的
236
00:09:33,460 --> 00:09:36,760
那第二种方式就是静态离线量化PTQ
237
00:09:36,760 --> 00:09:38,160
它的好处就是
238
00:09:38,260 --> 00:09:40,460
精度损失也是比较小的
239
00:09:40,460 --> 00:09:41,660
但是不能说没有哦
240
00:09:41,660 --> 00:09:44,560
因为它缺乏了训练或者Fine Tuning的步骤
241
00:09:44,560 --> 00:09:48,860
它需要有一些少量无标签的数据进行校准的
242
00:09:48,860 --> 00:09:52,560
最后一种就是动态离线量化就是PTQ了
243
00:09:52,560 --> 00:09:54,360
它这种方式进度的损失
244
00:09:54,360 --> 00:09:56,760
一般来说不可控
245
00:09:56,760 --> 00:09:58,060
不过好处呢
246
00:09:58,060 --> 00:10:00,560
就是它没有任何使用的约束
247
00:10:00,560 --> 00:10:01,960
你想咋用就咋用
248
00:10:01,960 --> 00:10:02,360
这个呢
249
00:10:02,360 --> 00:10:03,460
也是ZOMI呢
250
00:10:03,460 --> 00:10:05,360
在MindSpore里面做的其中一个项目