国产化AI推理部署系统集成工作的经验心得
一般来说,很多厂商的给的SDK demo都名目繁多,比如华为的昇腾推理的示例超级多,并且超级乱,cann samples还有mindx,谁看谁迷糊,有机会一定要问,提issue或者观察一下人家写的和自己内部要兼并的SDK有无共同之处。如果有一些对齐变量的需求,比如格式转换,图片格式,变量格式等等,一般厂商提供的某个相关的库里会有用到的函数,注意版本如果不是最新,翻看最新的版本文档。比如python
我不知道怎么精准用词形容这项工作的不同。我平时都是做添砖的工作,比如训练模型,每个项目模型对应的后处理这些,我这次第一次成功做完了这种构建公共接口,建立骨架的工作哎!I know对于做开发的同学来说小菜一碟,对我来说我还是很高兴我能有这样的小成绩的!
我做AI部署的工作是这样的情况:硬件层面的国产芯片对应有软件层面的推理SDK(software development kit,软件开发套件),也就是有很多很多函数接口,调用的工具。我需要把内部的算法推理SDK兼容不同类型的国产芯片推理接口,然后使得我们的算法可以在各种不同的设备上运行。这里设备除了个人电脑、服务器,甚至于移动端的设备也包括在内。差不多就是这个工作,我前后花了接近一个月(除去了中间被支开做别的事情的时间),今天顺利结尾,第一次做我觉得有点难度的有点体量的工作!Yes!可以测试了!后面当然还有更难的等着我.... Well,因为这次表现,领导会把挑战性的工作给我做咯!
前路多荆棘,但还是举杯庆祝这一刻... 下面我来说说我的心得感悟!
- 跑通demo代码,比较两者环境。
一般来说,很多厂商的给的SDK demo都名目繁多,比如华为的昇腾推理的示例超级多,并且超级乱,cann samples还有mindx,谁看谁迷糊,有机会一定要问,提issue或者观察一下人家写的和自己内部要兼并的SDK有无共同之处。两者要放一起的代码有没有设计相似之处,然后挑选也可以哈哈!
除此之外,要比较两边的环境!比如python的版本要求,还有不同的系统之分,多的我也不懂了,反正得有这一步,因为我之前有因为版本的原因重新搞一遍的。
- 熟悉算法推理流程,前后接口中间的变量要熟悉。
其实说简单点就是模型转换、数据预处理、模型推理、后处理,业务逻辑这几个地方需要对齐。一般这些都有demo代码借鉴。利用文档熟悉对不同阶段的传递变量,与内部的代码做比较,比如有可能视频读取的图片经过压缩存为别的格式需要处理等等。前后GPU资源的初始化是否会矛盾冲突,要根据实际过程设置资源初始化。
- 善于运用文档搜索。
如果有一些对齐变量的需求,比如格式转换,图片格式,变量格式等等,一般厂商提供的某个相关的库里会有用到的函数,注意版本如果不是最新,翻看最新的版本文档。
- 单个文件进行修改测试,然后进行通篇测试。
比如这里算法推理流程有前文说的模型转换、数据预处理、模型推理、后处理,业务逻辑好几个阶段,这些都需要分开写脚本测试,然后最后集成一起测试。最重要!不能怕庞然大物!大胆写!埋测试点!多个地方进行编写后集成测试。兵来将挡水来土掩。
我一直没有全程做过这么麻烦的工作,之前做只会做一小部分,然后丢给领导做难的。我发现丢给大佬做,然后听他讲还是没什么收获,只有自己做一遍才发现很多门道。

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链
更多推荐
所有评论(0)