forked from chenzomi12/AISystem
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path04.srt
1768 lines (1326 loc) · 26.9 KB
/
04.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,560
字幕生成: BLACK 字幕校对: 方鸿渐
2
00:00:06,360 --> 00:00:07,480
哈喽大家好
3
00:00:07,480 --> 00:00:10,040
我是那个赚钱的时候千辛万苦
4
00:00:10,040 --> 00:00:12,800
花钱的时候稀里糊涂的ZOMI
5
00:00:12,800 --> 00:00:15,680
那今天呢来到一个比较
6
00:00:15,680 --> 00:00:17,000
比较重要的内容吧
7
00:00:17,000 --> 00:00:18,480
也不能说很重要啊
8
00:00:18,480 --> 00:00:21,520
就是整个推理系统的一个架构
9
00:00:21,520 --> 00:00:25,200
其实我觉得最重要的是推理引擎的一个架构
10
00:00:25,200 --> 00:00:26,400
就围绕着这一块
11
00:00:26,400 --> 00:00:28,520
可能是比较多的技术含量的
12
00:00:28,560 --> 00:00:32,720
那推理系统呢更多的是一些传统的一些功能点
13
00:00:32,720 --> 00:00:35,120
然后把AI的一些特性加进去
14
00:00:35,120 --> 00:00:37,680
那没关系继续来深入的去看一下
15
00:00:37,680 --> 00:00:39,840
今天呢主要是去讲一讲
16
00:00:39,840 --> 00:00:42,440
整个推理系统的具体的架构
17
00:00:42,440 --> 00:00:43,560
那在讲架构之前呢
18
00:00:43,560 --> 00:00:45,040
会来讲另外一个内容
19
00:00:45,040 --> 00:00:47,320
就是推理、部署、服务
20
00:00:47,320 --> 00:00:49,520
它三者到底有啥区别呢
21
00:00:49,520 --> 00:00:51,560
它之间是啥关系呢
22
00:00:51,560 --> 00:00:55,640
那接着去看一下推理系统的整体的架构
23
00:00:55,640 --> 00:00:56,720
如果有时间
24
00:00:56,760 --> 00:00:58,600
因为我希望能够在每个视频呢
25
00:00:58,600 --> 00:01:00,080
控制在十来分钟
26
00:01:00,080 --> 00:01:02,040
就大家看的不累我讲的不累
27
00:01:02,040 --> 00:01:04,560
然后呢如果有时间或者有剩下的时间呢
28
00:01:04,560 --> 00:01:08,480
我去想去讲讲模型的生命周期的管理
29
00:01:08,480 --> 00:01:10,360
因为模型生命周期的管理呢
30
00:01:10,360 --> 00:01:12,360
是AI属性比较强的
31
00:01:12,360 --> 00:01:14,080
在整个推理系统里面
32
00:01:14,080 --> 00:01:17,000
而推理系统更多的是一些服务的响应啊
33
00:01:17,000 --> 00:01:18,120
技术的编排啊
34
00:01:18,120 --> 00:01:19,800
系统的调度啊这些问题
35
00:01:19,800 --> 00:01:23,600
模型的生命周期呢是跟AI属性比较强相关
36
00:01:23,600 --> 00:01:25,360
所以我想给大家后面呢
37
00:01:25,400 --> 00:01:27,160
有时间去汇报一下的
38
00:01:29,120 --> 00:01:33,280
接下来呢回顾一下整个模型的生命周期
39
00:01:33,280 --> 00:01:36,800
首先呢需要去收集训练的模型
40
00:01:36,800 --> 00:01:37,680
收集完模型之后呢
41
00:01:37,680 --> 00:01:39,680
去给深度学习的这个模型呢
42
00:01:39,680 --> 00:01:41,520
去给算法呢去训练
43
00:01:41,520 --> 00:01:45,320
训练完之后呢得到一个具体的AI模型
44
00:01:45,320 --> 00:01:49,360
AI模型呢就可以真正的去用来做服务的请求和服务的响应
45
00:01:49,360 --> 00:01:51,160
而对服务的请求和服务的响应
46
00:01:51,160 --> 00:01:53,040
还有真正的推理和部署呢
47
00:01:53,080 --> 00:01:55,520
这一块就是整个AI
48
00:01:55,520 --> 00:01:59,040
AI推理系统呢需要去解决的一些问题
49
00:01:59,040 --> 00:02:00,440
或者AI推理系统呢
50
00:02:00,440 --> 00:02:03,320
它主要关注的点就在这一块了
51
00:02:05,200 --> 00:02:07,640
现在呢我想给大家提一个问题
52
00:02:07,640 --> 00:02:09,560
引起大家去思考了
53
00:02:09,560 --> 00:02:10,840
就是
54
00:02:10,840 --> 00:02:15,120
AI应用部署需要考虑哪些方面呢
55
00:02:15,120 --> 00:02:17,560
需要考虑哪些技术点呢
56
00:02:18,960 --> 00:02:20,680
诶 这个问题问得非常好
57
00:02:20,720 --> 00:02:23,120
因为只要考虑到这些点
58
00:02:23,120 --> 00:02:26,920
才能够很好的去设计整个框架
59
00:02:26,920 --> 00:02:29,000
去设计推理系统
60
00:02:29,000 --> 00:02:30,920
需要应该有哪些功能
61
00:02:32,800 --> 00:02:34,960
那下面呢去了解第一个内容
62
00:02:34,960 --> 00:02:38,640
就是推理 部署 服务化三者之间的区别
63
00:02:38,640 --> 00:02:39,880
那在了解之前呢
64
00:02:39,880 --> 00:02:42,320
我想给大家再提几个问题
65
00:02:42,320 --> 00:02:45,440
第一个呢就是什么是模型推理
66
00:02:45,440 --> 00:02:47,600
什么是叫推理服务化
67
00:02:47,600 --> 00:02:49,080
服务化到底叫啥呢
68
00:02:49,080 --> 00:02:50,280
到底有什么作用
69
00:02:50,280 --> 00:02:51,640
它是啥意思呢
70
00:02:53,120 --> 00:02:53,680
接着呢
71
00:02:53,680 --> 00:02:55,080
我想给大家提个问题
72
00:02:55,080 --> 00:02:56,640
不知道大家了解过没有
73
00:02:56,640 --> 00:03:00,920
平时常见的有哪些推理的服务的框架
74
00:03:00,920 --> 00:03:02,040
大家都叫框架
75
00:03:02,040 --> 00:03:05,840
这个推理服务框架跟AI框架不是一个概念哦
76
00:03:05,840 --> 00:03:08,440
这个Triton就是什么东西呢
77
00:03:08,440 --> 00:03:10,240
我好像见了好几个Triton
78
00:03:10,240 --> 00:03:13,200
有些Triton呢是指那个推理的服务框架
79
00:03:13,200 --> 00:03:14,800
有个Triton呢
80
00:03:14,800 --> 00:03:18,720
就好像是指用Python去写GPU的一些算子
81
00:03:18,760 --> 00:03:20,680
到底这个Triton到底是个啥玩意
82
00:03:21,760 --> 00:03:22,240
好了
83
00:03:22,240 --> 00:03:22,840
带着这个
84
00:03:24,800 --> 00:03:26,120
那带着这个疑问呢
85
00:03:26,120 --> 00:03:28,320
往下去看三个概念
86
00:03:28,320 --> 00:03:29,720
第一个呢就是Inference
87
00:03:29,720 --> 00:03:30,920
推理
88
00:03:30,920 --> 00:03:32,000
第二个就是部署
89
00:03:32,000 --> 00:03:33,080
Deployment
90
00:03:33,080 --> 00:03:34,440
第三个就是服务化
91
00:03:34,440 --> 00:03:35,360
Serving
92
00:03:35,360 --> 00:03:37,560
逐个的来去澄清一下
93
00:03:39,280 --> 00:03:41,880
首先第一个就是推理Inference的
94
00:03:41,880 --> 00:03:44,360
既然有训练肯定会有推理嘛
95
00:03:44,360 --> 00:03:46,800
推理就是一个前向的一个计算
96
00:03:46,840 --> 00:03:49,160
那接着呢看看部署
97
00:03:49,160 --> 00:03:50,840
那部署其实是训练的时候
98
00:03:50,840 --> 00:03:52,480
不是得到一个模型吗
99
00:03:52,480 --> 00:03:54,040
希望把这个模型呢
100
00:03:54,040 --> 00:03:56,400
真正部署在硬件上面
101
00:03:56,400 --> 00:03:58,000
那这个就是部署的概念
102
00:03:58,000 --> 00:03:59,600
部署在硬件上面之后呢
103
00:03:59,600 --> 00:04:01,560
才做推理的工作
104
00:04:01,560 --> 00:04:04,520
那部署呢就会涉及到包括移植压缩加速
105
00:04:04,520 --> 00:04:06,080
还有推理引擎
106
00:04:06,080 --> 00:04:08,720
这整一块的相关的工作叫做部署
107
00:04:10,840 --> 00:04:11,960
所谓的服务化呢
108
00:04:11,960 --> 00:04:15,160
其实相对应对部署的方式
109
00:04:15,200 --> 00:04:17,080
进行一个抽象的
110
00:04:17,080 --> 00:04:18,040
服务化的时候呢
111
00:04:18,040 --> 00:04:19,800
会把AI的算法呢
112
00:04:19,800 --> 00:04:23,080
会封装成一个SDK来集中在相关的APP上面
113
00:04:23,080 --> 00:04:26,320
也有可能封装成一个对应的web服务
114
00:04:26,320 --> 00:04:28,600
对外呢去暴露一些HTTP
115
00:04:28,600 --> 00:04:32,240
还有RPC等协议的一些功能
116
00:04:32,240 --> 00:04:34,800
那这个呢就是三者的区别
117
00:04:34,800 --> 00:04:36,200
有了这三者的区别呢
118
00:04:36,200 --> 00:04:39,680
看一下具体的一些服务化的一些框架
119
00:04:39,680 --> 00:04:41,400
那好像TF-Serving呢
120
00:04:41,400 --> 00:04:44,960
就是最早的推出的一个服务化的功能
121
00:04:45,000 --> 00:04:46,600
谷歌呢其实是围绕着TensorFlow
122
00:04:46,600 --> 00:04:48,520
做了非常大量相关的工作
123
00:04:48,520 --> 00:04:51,480
包括TF-Serving、TF-Lite了很多工作
124
00:04:51,480 --> 00:04:52,280
那TF-Serving呢
125
00:04:52,280 --> 00:04:54,760
就是在谷歌2016年的时候
126
00:04:54,760 --> 00:04:57,480
推出的一个服务化的框架
127
00:04:57,480 --> 00:04:58,760
通过网络请求呢
128
00:04:58,760 --> 00:05:00,680
去获取用户的一些数据
129
00:05:00,680 --> 00:05:01,560
然后进行处理
130
00:05:01,560 --> 00:05:03,520
最后呢返回相关的结果
131
00:05:03,520 --> 00:05:05,000
那现在来看看
132
00:05:05,000 --> 00:05:07,480
常见的一些服务化的框架
133
00:05:07,480 --> 00:05:08,400
那可以看到啊
134
00:05:08,400 --> 00:05:11,720
其实从那个16年到20年呢
135
00:05:11,720 --> 00:05:12,720
各大厂商呢
136
00:05:12,720 --> 00:05:16,200
推出了非常多的一些服务化的框架
137
00:05:16,200 --> 00:05:19,240
用的比较多的有Kubeflow呢
138
00:05:19,240 --> 00:05:20,600
是Kubernetes里面推出的
139
00:05:20,600 --> 00:05:23,000
还有英伟达推出的Triton呢
140
00:05:23,000 --> 00:05:25,480
现在以Triton作为一个具体的例子
141
00:05:25,480 --> 00:05:28,040
来看看常见的服务化的框架的
142
00:05:28,040 --> 00:05:29,920
一个具体的架构
143
00:05:29,920 --> 00:05:31,280
那Triton呢
144
00:05:31,280 --> 00:05:32,440
它的一个全名呢
145
00:05:32,440 --> 00:05:35,200
叫做Triton推理服务器
146
00:05:35,200 --> 00:05:38,720
NVIDIA Triton Inference Server
147
00:05:39,720 --> 00:05:42,920
给用户去提供一个部署在云端
148
00:05:42,920 --> 00:05:45,800
或者边缘侧的一个具体的解决方案
149
00:05:45,800 --> 00:05:46,800
对接的呢
150
00:05:46,800 --> 00:05:48,520
有客户的云端的服务器
151
00:05:48,520 --> 00:05:50,560
还有云端的服务的请求
152
00:05:50,560 --> 00:05:51,400
然后对应到呢
153
00:05:51,400 --> 00:05:53,520
对AI模型的一个管理
154
00:05:53,520 --> 00:05:54,520
然后这里面呢
155
00:05:54,520 --> 00:05:57,320
就是具体的一些服务化的功能了
156
00:05:58,520 --> 00:05:59,720
那下面来看一下
157
00:05:59,720 --> 00:06:01,560
它的一个具体的架构
158
00:06:01,560 --> 00:06:02,160
右边呢
159
00:06:02,160 --> 00:06:03,840
就是它的整体的一个架构
160
00:06:03,840 --> 00:06:04,480
现在呢
161
00:06:04,480 --> 00:06:05,960
逐个模块的去展开
162
00:06:05,960 --> 00:06:07,320
这里面有非常多的模块
163
00:06:07,320 --> 00:06:08,000
那第一个呢
164
00:06:08,000 --> 00:06:10,040
就是它的一个接入层
165
00:06:10,040 --> 00:06:11,480
叫做Interface
166
00:06:11,480 --> 00:06:12,400
那这个介入层呢
167
00:06:12,400 --> 00:06:14,520
主要是指这里面的这个模块
168
00:06:14,520 --> 00:06:15,960
那提供了一个HTTP
169
00:06:15,960 --> 00:06:17,720
还有GRPC
170
00:06:17,720 --> 00:06:20,280
那这个RPC就是谷歌的RPC的协议
171
00:06:20,280 --> 00:06:20,640
然后呢
172
00:06:20,640 --> 00:06:21,320
除此之外呢
173
00:06:21,320 --> 00:06:23,040
它还提供了一个C++的
174
00:06:23,040 --> 00:06:24,960
或者C的一个API的接口
175
00:06:24,960 --> 00:06:27,200
去给到一个用户
176
00:06:27,200 --> 00:06:28,880
做一个服务访问请求的
177
00:06:28,880 --> 00:06:31,040
另外它还支持一个共享内存
178
00:06:31,040 --> 00:06:33,520
Share Memory的一个IPC的通讯
179
00:06:35,200 --> 00:06:35,680
那现在呢
180
00:06:35,680 --> 00:06:36,880
看看另外
181
00:06:36,880 --> 00:06:40,160
又往右边数一数的一个功能点
182
00:06:40,160 --> 00:06:41,080
那这个功能点呢
183
00:06:41,080 --> 00:06:43,320
叫做Triton的模型仓库
184
00:06:43,320 --> 00:06:44,800
叫做Model Manager
185
00:06:45,960 --> 00:06:47,200
这个模型仓库呢
186
00:06:47,200 --> 00:06:49,560
可以接入到各种的云服务
187
00:06:49,560 --> 00:06:51,360
而且可以支持多模型呢
188
00:06:51,360 --> 00:06:53,040
也支持模型的编排
189
00:06:53,040 --> 00:06:55,360
也支持模型的持久化的存储
190
00:06:55,360 --> 00:06:56,920
那这个就是具体的功能
191
00:06:56,920 --> 00:06:59,560
下面来看一下左下角
192
00:06:59,560 --> 00:07:00,360
那左下角呢
193
00:07:00,360 --> 00:07:04,000
这里面有一个Pre Model Scheduler
194
00:07:04,040 --> 00:07:06,440
就是模型的预编排
195
00:07:06,440 --> 00:07:07,400
可以刚才呀
196
00:07:07,400 --> 00:07:09,480
其实大量的去强调
197
00:07:09,480 --> 00:07:12,040
在AI系统里面的模型的管理
198
00:07:12,040 --> 00:07:14,680
是比较特别比较内核的
199
00:07:14,680 --> 00:07:16,120
那这里面的主要的工作呢
200
00:07:16,120 --> 00:07:18,560
就是解析整个URL的请求
201
00:07:18,560 --> 00:07:20,880
就上面对于URL的请求
202
00:07:20,880 --> 00:07:21,600
请求完之后呢
203
00:07:21,600 --> 00:07:23,600
就会从模型库里面
204
00:07:23,600 --> 00:07:25,800
去做一个具体的模型的编排
205
00:07:25,800 --> 00:07:27,040
去选择哪些模型
206
00:07:27,040 --> 00:07:30,520
对于哪些任务应该用什么调度的方式
207
00:07:30,520 --> 00:07:30,880
这个呢
208
00:07:30,880 --> 00:07:33,520
就是模型预编排所做的工作
209
00:07:35,000 --> 00:07:36,320
那往下呢
210
00:07:36,320 --> 00:07:37,880
再看看下个功能
211
00:07:37,880 --> 00:07:38,440
这个呢
212
00:07:38,440 --> 00:07:40,120
叫做Backend
213
00:07:40,120 --> 00:07:42,120
在AI推理系统里面的Backend
214
00:07:42,120 --> 00:07:44,080
其实是对应的推理引擎
215
00:07:44,080 --> 00:07:45,080
那这个推理引擎呢
216
00:07:45,080 --> 00:07:46,000
在Triton里面呢
217
00:07:46,000 --> 00:07:47,000
支持非常多的
218
00:07:47,000 --> 00:07:47,520
TensorFlow
219
00:07:47,520 --> 00:07:47,920
Linux
220
00:07:47,920 --> 00:07:48,720
PyTorch
221
00:07:48,720 --> 00:07:50,880
还有自定义的也可以
222
00:07:52,160 --> 00:07:53,760
在Triton启动的时候呢
223
00:07:53,760 --> 00:07:55,160
模型仓库的模型呢
224
00:07:55,160 --> 00:07:56,440
已经被加载进来
225
00:07:56,440 --> 00:07:58,080
就是右边的这条线
226
00:07:58,080 --> 00:07:59,120
加载进来之后呢
227
00:07:59,120 --> 00:08:01,960
就在后端的服务化的推理引擎上面
228
00:08:01,960 --> 00:08:02,920
去执行的
229
00:08:05,000 --> 00:08:05,800
最后呢
230
00:08:05,800 --> 00:08:08,560
看一个最底下的功能
231
00:08:08,560 --> 00:08:09,200
那这个呢
232
00:08:09,200 --> 00:08:11,280
就分开两个把它合在一起了
233
00:08:11,880 --> 00:08:12,480
第一个呢
234
00:08:12,480 --> 00:08:14,840
就是服务的返回
235
00:08:14,840 --> 00:08:17,040
通过HTTP或者GRPC呢
236
00:08:17,040 --> 00:08:20,560
对推理引擎的一个结果进行返回
237
00:08:21,640 --> 00:08:22,280
第二个呢
238
00:08:22,280 --> 00:08:23,360
就是对state
239
00:08:23,360 --> 00:08:24,400
就训练的时候
240
00:08:24,400 --> 00:08:27,400
整个AI系统的一些状态
241
00:08:27,400 --> 00:08:28,520
健康状况呢
242
00:08:28,520 --> 00:08:29,800
进行一个监控
243
00:08:29,800 --> 00:08:31,960
然后返回给HTTP请求
244
00:08:31,960 --> 00:08:32,720
然后这个呢
245
00:08:32,720 --> 00:08:34,080
就对应HTTP
246
00:08:34,080 --> 00:08:37,120
就对应整个服务器的管理的后台
247
00:08:37,120 --> 00:08:39,640
那这个就是监控的功能了
248
00:08:39,640 --> 00:08:41,080
所以说整体的框架呢
249
00:08:41,080 --> 00:08:42,640
就分开这好几块功能
250
00:08:42,640 --> 00:08:43,720
第一块第二块