forked from Infrasys-AI/AISystem
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path03.srt
More file actions
1660 lines (1245 loc) · 25.3 KB
/
03.srt
File metadata and controls
1660 lines (1245 loc) · 25.3 KB
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:02,300 --> 00:00:04,300
字幕生成:慎独 字幕校对:lim
2
00:00:04,775 --> 00:00:08,023
大家好,我是经常拖更的ZOMI
3
00:00:08,023 --> 00:00:10,280
最近更新的频率确实低了好多
4
00:00:10,280 --> 00:00:14,760
现在来到了AI芯片里面的AI计算体系
5
00:00:14,760 --> 00:00:17,640
还是在深度学习计算模式
6
00:00:17,640 --> 00:00:21,960
去了解深度学习的计算模式有哪些不一样的点
7
00:00:21,960 --> 00:00:24,120
在这里面上一节课还记得吗
8
00:00:24,120 --> 00:00:26,320
讲了三个主要的内容
9
00:00:26,320 --> 00:00:30,200
第一个就是AI的发展和AI的范式
10
00:00:30,200 --> 00:00:33,120
第二个就是一些经典的网络模型
11
00:00:33,120 --> 00:00:34,080
ResNet那些
12
00:00:34,080 --> 00:00:36,640
第三个就是网络模型和剪枝
13
00:00:36,640 --> 00:00:40,400
这三个技术对深度学习计算的模式
14
00:00:40,400 --> 00:00:41,520
带来哪些冲击
15
00:00:41,520 --> 00:00:43,280
带来哪些不一样的点
16
00:00:43,280 --> 00:00:45,200
接下来在这一节里面
17
00:00:45,200 --> 00:00:47,040
将会给大家去汇报和分享
18
00:00:47,040 --> 00:00:49,120
轻量化的网络模型
19
00:00:49,120 --> 00:00:50,640
例如之前谈到的
20
00:00:50,640 --> 00:00:53,280
MobileNet, EfficientNet这种轻量化的
21
00:00:53,280 --> 00:00:54,680
看看大模型
22
00:00:54,680 --> 00:00:56,680
特别是分布式并行里面
23
00:00:56,680 --> 00:00:59,200
对整个深度学习的计算体系
24
00:00:59,240 --> 00:01:03,120
又有哪些带来新的冲击和新的idea
25
00:01:04,240 --> 00:01:06,880
第一个内容要给大家汇报和分享的
26
00:01:06,880 --> 00:01:09,920
就是轻量化的网络模型的设计
27
00:01:09,920 --> 00:01:12,280
其实在之前
28
00:01:12,280 --> 00:01:13,852
推理引擎系列里面的
29
00:01:13,852 --> 00:01:16,440
模型小型化和轻量模型里面
30
00:01:16,440 --> 00:01:19,160
就讲了两个主要的系列
31
00:01:19,160 --> 00:01:22,480
和跟大家一起去分享了很多相关的内容
32
00:01:22,480 --> 00:01:25,640
第一个就是左边的CNN的系列
33
00:01:25,640 --> 00:01:28,120
第二个就是Transformer的系列
34
00:01:28,160 --> 00:01:30,160
从现在可以看得出来
35
00:01:30,160 --> 00:01:31,560
从一开始的SqueezeNet
36
00:01:31,560 --> 00:01:33,720
到后来的GhostNet, EfficientNet
37
00:01:33,720 --> 00:01:36,480
基本上是从2016年到2019年
38
00:01:36,480 --> 00:01:38,520
那这个时间段随着非常多的
39
00:01:38,520 --> 00:01:41,040
CNN的轻量化网络模型的提出
40
00:01:41,040 --> 00:01:43,920
CNN也越来越多的运用在端侧
41
00:01:43,920 --> 00:01:46,840
而Transformer确实在后面才起来的
42
00:01:46,840 --> 00:01:49,440
能够做好非常多的attention的机制
43
00:01:49,440 --> 00:01:51,560
然后让网络模型越来越大
44
00:01:51,560 --> 00:01:53,520
模型的精度也越来越好
45
00:01:53,520 --> 00:01:55,160
但是怎么轻量化的部署
46
00:01:55,440 --> 00:01:57,280
于是从2021年开始
47
00:01:57,560 --> 00:01:59,840
到去年年底到今年年初
48
00:02:00,120 --> 00:02:02,640
现在有非常多的去把MobileNet
49
00:02:02,640 --> 00:02:06,120
还有VisionTransform这个结构相结合
50
00:02:06,120 --> 00:02:08,000
然后又衍生了一系列的
51
00:02:08,000 --> 00:02:10,520
Transformer的轻量级的模型
52
00:02:10,825 --> 00:02:13,760
在这里面我给大家回顾一下
53
00:02:13,760 --> 00:02:16,240
其实在之前做了很多的分享
54
00:02:16,240 --> 00:02:19,160
就是在推理系统里面的模型小型化
55
00:02:19,160 --> 00:02:22,120
感兴趣的朋友们也可以去了解一下
56
00:02:22,120 --> 00:02:23,800
之前分享的课程
57
00:02:23,800 --> 00:02:26,320
里面确实讲了很多相关的论文
58
00:02:26,320 --> 00:02:29,880
而这里面简单再串一串相关的知识
59
00:02:29,880 --> 00:02:32,920
最重要的是引起对于深度学习
60
00:02:33,120 --> 00:02:35,080
计算模式的思考
61
00:02:35,706 --> 00:02:38,135
轻量化网络模型的主要的设计方式
62
00:02:38,255 --> 00:02:39,735
其实有两个
63
00:02:39,895 --> 00:02:42,655
第一个就是改变网络模型的不同的层数
64
00:02:42,655 --> 00:02:44,135
包括layer的shape
65
00:02:44,135 --> 00:02:45,775
包括channel的计算方式
66
00:02:46,015 --> 00:02:47,695
还有卷积的计算方式
67
00:02:47,695 --> 00:02:50,775
从而衍生出一种新的网络模型结构
68
00:02:50,775 --> 00:02:51,975
这是第一种
69
00:02:52,135 --> 00:02:54,935
第二种就是通过NAS来搜索
70
00:02:54,935 --> 00:02:57,135
一些更轻量化的网络模型
71
00:02:57,135 --> 00:02:58,455
而通过NAS来搜索
72
00:02:58,455 --> 00:03:01,815
很多时候会根据硬件来做定制化的
73
00:03:01,815 --> 00:03:04,855
下面两个图就是后面会展开来讲
74
00:03:05,095 --> 00:03:07,335
第一个就是把传统的一些卷积
75
00:03:07,655 --> 00:03:10,375
变成两个不同的卷积去做
76
00:03:10,575 --> 00:03:13,535
这种就是MobileNet里面的DepthMask卷积
77
00:03:13,775 --> 00:03:16,575
右边这种就是去减少卷积里面的
78
00:03:16,575 --> 00:03:18,215
那个channel的层数
79
00:03:18,215 --> 00:03:20,375
然后让网络模型更浅
80
00:03:20,655 --> 00:03:22,415
下面看几个具体的例子
81
00:03:22,615 --> 00:03:24,135
第一个例子比较明显的
82
00:03:24,135 --> 00:03:26,535
就减少整个空间的大小
83
00:03:26,535 --> 00:03:27,935
Spatial Sized
84
00:03:28,255 --> 00:03:29,975
里面就像GoogleNet
85
00:03:29,975 --> 00:03:32,015
还有ExceptionNet V3
86
00:03:32,015 --> 00:03:34,815
就会把5×5的一种卷积
87
00:03:34,815 --> 00:03:37,455
decompose成为一种5×1的卷积
88
00:03:37,455 --> 00:03:39,255
加一种1×5的卷积
89
00:03:39,495 --> 00:03:41,215
最后从最右边的图
90
00:03:41,295 --> 00:03:42,175
可以看到
91
00:03:42,175 --> 00:03:45,175
基本上可以减少大量的计算的空间
92
00:03:45,455 --> 00:03:47,895
像VGG其实一开始VGG之前
93
00:03:48,255 --> 00:03:49,975
有很多5×5的卷积
94
00:03:50,095 --> 00:03:52,335
VGG把它给decompose成为
95
00:03:52,335 --> 00:03:53,535
3×3的卷积
96
00:03:53,535 --> 00:03:54,895
加3×3的卷积
97
00:03:54,895 --> 00:03:56,895
后面再加一个残差层
98
00:03:57,135 --> 00:03:58,415
从这里面可以看出
99
00:03:58,415 --> 00:04:01,255
也是减少了大量的内存空间
100
00:04:01,895 --> 00:04:02,975
再往下看
101
00:04:02,975 --> 00:04:05,135
第二种可能也可以做
102
00:04:05,135 --> 00:04:07,575
减少一些channels的计算
103
00:04:07,775 --> 00:04:09,695
这里面channels非常多
104
00:04:09,695 --> 00:04:12,175
像MobileNet就改成了
105
00:04:12,175 --> 00:04:13,455
Pointwise的卷积
106
00:04:13,455 --> 00:04:14,175
1×1
107
00:04:14,175 --> 00:04:16,975
还有一些直接使用1×1的卷积
108
00:04:16,975 --> 00:04:19,265
去代替掉原来的卷积层
109
00:04:20,175 --> 00:04:23,175
到了后面还有减少filter的数量
110
00:04:23,175 --> 00:04:24,335
像DenseNet这种
111
00:04:24,335 --> 00:04:26,935
就是重复的去使用feature map
112
00:04:26,935 --> 00:04:29,335
而GhostNet华为诺亚去发明的
113
00:04:29,335 --> 00:04:32,375
就是直接基于得到的feature map
114
00:04:32,375 --> 00:04:35,255
再去提取新的feature map
115
00:04:35,255 --> 00:04:35,935
很有意思
116
00:04:35,935 --> 00:04:37,415
一开始就是直接减少到
117
00:04:37,415 --> 00:04:39,135
feature的数量
118
00:04:40,035 --> 00:04:41,735
现在回过头来思考
119
00:04:41,735 --> 00:04:42,775
轻量化网络模型
120
00:04:42,895 --> 00:04:44,855
对AI的计算模式的
121
00:04:44,855 --> 00:04:47,255
一种不一样的启示
122
00:04:47,495 --> 00:04:49,255
第一个我分开三个方面
123
00:04:49,415 --> 00:04:50,015
这三个方面
124
00:04:50,015 --> 00:04:52,055
其实我之前在推理引擎里面
125
00:04:52,055 --> 00:04:52,895
已经总结过了
126
00:04:52,895 --> 00:04:54,735
简单的把它串起来看一看
127
00:04:54,735 --> 00:04:56,775
首先是卷积核方面
128
00:04:57,015 --> 00:04:58,535
会使用大的卷积核
129
00:04:58,735 --> 00:05:01,615
把变成很多小的卷积核来代替
130
00:05:01,615 --> 00:05:03,295
然后单一尺寸的卷积核
131
00:05:03,415 --> 00:05:06,415
会用很多不同的卷积核来代替
132
00:05:06,415 --> 00:05:08,175
就是一个变成多个
133
00:05:08,175 --> 00:05:09,335
还有一些固定的
134
00:05:09,335 --> 00:05:11,735
就使用大量的使用1×1的卷积
135
00:05:11,735 --> 00:05:13,415
作为bottleneck
136
00:05:13,855 --> 00:05:17,215
第二种就是卷积层通道方面
137
00:05:17,215 --> 00:05:19,215
根据channel的数
138
00:05:19,255 --> 00:05:20,375
去修改
139
00:05:20,375 --> 00:05:21,615
例如刚才讲到的
140
00:05:21,615 --> 00:05:22,655
把一些标准的卷积
141
00:05:22,775 --> 00:05:24,495
变成一个depthwise的卷积
142
00:05:24,495 --> 00:05:26,415
然后做一个group的卷积
143
00:05:26,415 --> 00:05:27,655
就分组的卷积
144
00:05:27,815 --> 00:05:28,855
分组卷积之前
145
00:05:28,975 --> 00:05:31,295
可能还会做一个shuffle的操作
146
00:05:31,295 --> 00:05:32,695
那可以看到这种
147
00:05:32,855 --> 00:05:34,455
确实就是shufflenet的
148
00:05:34,455 --> 00:05:36,415
一些新结构的提出
149
00:05:37,987 --> 00:05:38,575
接下来
150
00:05:38,575 --> 00:05:41,215
看一下大模型分布式并行
151
00:05:41,215 --> 00:05:42,055
第二个内容
152
00:05:42,055 --> 00:05:44,375
对AI计算模式的一个重要的改变
153
00:05:44,375 --> 00:05:46,295
大模型现在非常的火了
154
00:05:46,295 --> 00:05:48,295
现在像ChatGPT已经火的不行了
155
00:05:49,145 --> 00:05:51,185
同样ZOMI在很早之前
156
00:05:51,185 --> 00:05:53,665
讲AI框架的核心技术的时候
157
00:05:53,665 --> 00:05:55,785
就分开了三个主要的内容
158
00:05:55,785 --> 00:05:57,465
因为AI框架的最核心的技术
159
00:05:57,465 --> 00:05:58,945
我觉得分布式
160
00:05:58,985 --> 00:06:00,705
绝对占了其中的一个大头
161
00:06:00,705 --> 00:06:01,945
所以我分开了
162
00:06:02,185 --> 00:06:03,145
三个主要大的内容
163
00:06:03,145 --> 00:06:04,705
给大家去汇报过的
164
00:06:04,705 --> 00:06:07,305
第一个就是分布式的系统
165
00:06:07,305 --> 00:06:09,065
是讲系统的AI框架
166
00:06:09,065 --> 00:06:10,505
通讯集群的管理
167
00:06:10,505 --> 00:06:12,105
这个是跟系统相关的
168
00:06:12,145 --> 00:06:14,585
接着我又给大家去汇报了一个
169
00:06:14,585 --> 00:06:16,225
分布式的算法
170
00:06:16,225 --> 00:06:18,065
就是从10亿规模的模型
171
00:06:18,065 --> 00:06:19,305
到万亿规模
172
00:06:19,305 --> 00:06:20,465
从Transformer
173
00:06:20,465 --> 00:06:21,305
bird出现
174
00:06:21,305 --> 00:06:23,545
最后到moet5
175
00:06:23,545 --> 00:06:25,305
这种大规模的网络模型
176
00:06:25,305 --> 00:06:26,745
就讲分布式的算法
177
00:06:26,785 --> 00:06:29,265
接着有了分布式的系统和算法之外
178
00:06:29,545 --> 00:06:30,853
确实基于系统之上
179
00:06:30,853 --> 00:06:32,874
要做很多并行的工作
180
00:06:32,874 --> 00:06:33,834
例如模型并行
181
00:06:33,834 --> 00:06:34,594
数据并行
182
00:06:34,594 --> 00:06:35,505
张量并行
183
00:06:35,505 --> 00:06:36,387
pipeline并行等
184
00:06:36,387 --> 00:06:38,062
很多并行的操作
185
00:06:38,062 --> 00:06:39,180
不同的并行的操作
186
00:06:39,180 --> 00:06:40,380
决定这些模型
187
00:06:40,380 --> 00:06:41,220
这些算法
188
00:06:41,260 --> 00:06:45,180
怎么跑在AI系统里面
189
00:06:45,420 --> 00:06:47,620
如果大家不了解也可以回头去看一看
190
00:06:47,660 --> 00:06:50,660
接下来重新的回到这一个内容里面
191
00:06:50,660 --> 00:06:51,300
可以看到
192
00:06:51,300 --> 00:06:52,940
在最新的2020年里面
193
00:06:53,100 --> 00:06:53,940
foundation model
194
00:06:53,940 --> 00:06:54,980
就大模型
195
00:06:55,220 --> 00:06:57,020
已经成为一种新的范式
196
00:06:57,020 --> 00:06:58,900
新的一种AI的牵引的方向
197
00:06:58,900 --> 00:07:00,660
特别是ChatGPT
198
00:07:00,900 --> 00:07:02,620
这个时候看到并不是
199
00:07:02,620 --> 00:07:04,060
万丈高楼从头建的
200
00:07:04,060 --> 00:07:05,860
而是它有一个时间的序列
201
00:07:05,860 --> 00:07:07,380
或者有一些演进的
202
00:07:07,380 --> 00:07:09,540
从一开始的GPT123
203
00:07:09,540 --> 00:07:10,740
到现在ChatGPT
204
00:07:10,740 --> 00:07:12,260
也是有一个改变的
205
00:07:12,260 --> 00:07:13,780
这里面最明显的一个趋势
206
00:07:14,020 --> 00:07:16,540
就是训练的flop数
207
00:07:16,540 --> 00:07:17,900
计算量
208
00:07:17,940 --> 00:07:20,380
极大的提升和膨胀
209
00:07:20,380 --> 00:07:21,620
包括现在的ChatGPT
210
00:07:21,780 --> 00:07:23,500
用到的网络模型的规模
211
00:07:23,500 --> 00:07:25,620
已经超过千亿了
212
00:07:25,780 --> 00:07:27,980
下面一起简单的回顾一下
213
00:07:27,980 --> 00:07:29,820
之前给大家分享过的内容
214
00:07:30,020 --> 00:07:31,620
第一个就是数据并行
215
00:07:31,620 --> 00:07:34,140
数据并行里面其实分为DP
216
00:07:34,380 --> 00:07:36,420
这个时候最简单的数据并行
217
00:07:36,420 --> 00:07:37,780
还有分布式数据并行
218
00:07:37,780 --> 00:07:38,500
DDP
219
00:07:38,500 --> 00:07:40,740
另外还有FSDP
220
00:07:40,900 --> 00:07:43,020
这三种都可以在PyTorch里面
221
00:07:43,020 --> 00:07:44,140
去看得到的
222
00:07:44,140 --> 00:07:46,220
而这里面DP是最简单的
223
00:07:46,220 --> 00:07:47,620
就是把训练的数据
224
00:07:47,980 --> 00:07:49,580
分布在不同的机器
225
00:07:49,780 --> 00:07:52,540
这也是最简单的其中一种
226
00:07:52,540 --> 00:07:55,020
而下面看看这个图
227
00:07:55,020 --> 00:07:56,300
训练的数据
228
00:07:56,300 --> 00:07:57,660
分布在不同的机器
229
00:07:57,820 --> 00:07:59,180
上面是一台机器
230
00:07:59,180 --> 00:08:01,580
下面也是另外一台机器
231
00:08:01,580 --> 00:08:03,460
分在不同的机器上面去执行
232
00:08:03,460 --> 00:08:05,300
不过值得注意的就是DP
233
00:08:05,300 --> 00:08:07,300
所谓的data parallelism
234
00:08:07,300 --> 00:08:09,260
不仅仅是指训练的数据
235
00:08:09,260 --> 00:08:10,780
还有权重的数据
236
00:08:10,780 --> 00:08:12,220
同步的数据
237
00:08:12,220 --> 00:08:14,260
训练的去做并行的
238
00:08:14,460 --> 00:08:15,540
这个时候可以看到
239
00:08:15,540 --> 00:08:17,260
这里面就有一条直线
240
00:08:17,260 --> 00:08:19,220
可以做一个all-reduce的操作
241
00:08:19,220 --> 00:08:21,020
把数据进行同步
242
00:08:21,180 --> 00:08:24,140
另外的话来到了FSDP
243
00:08:24,140 --> 00:08:25,860
FSDP的并行的模式
244
00:08:26,020 --> 00:08:27,380
就更加复杂了
245
00:08:27,380 --> 00:08:30,180
它做了一个全切分的操作
246
00:08:30,576 --> 00:08:31,980
当网络模型
247
00:08:31,980 --> 00:08:33,380
大到一定程度的时候
248
00:08:33,540 --> 00:08:36,340
就没办法去把一个网络模型
249
00:08:36,340 --> 00:08:37,820
直接塞到一张卡里面
250
00:08:38,060 --> 00:08:40,060
这个时候可能把N层layer