Q&A特辑 | 关于模型开发与部署,这里有一份标准答案
11月24日,顶象业务安全大讲堂系列课程之《智能模型平台》正式开讲,顶象人工智能总监无常从从模型平台的现状与需求出发,带大家了解了模型平台的开发环境与部署环境,并且就顶象的Xintell 模型平台 为大家做了演示。
直播也吸引了不少观众前来围观,就智能模型平台提出了疑问,现将部分问题罗列出来,供大家参考。
Q1:如何部署不同框架开发的 CV 或 NLP 模型?
无常:计算机视觉与自然语言处理的模型,通常都是深度神经网络模型,算法人员会选择 Tensorflow、Pytorch、Caffe 等不同的框架来开发,但是在应用阶段,这些不同框架开发的模型并不容易部署,一种办法是在生产环境也安装相应的算法框架,这种方式存在一些缺陷:1) 环境配置与维护比较困难;
推理预测的效率不高;
不同框架开发的模型,对外提供服务也需要有不同的封装与实现。
还有另一种办法是将不同框架开发的模型转换成 ONNX 标准模型,这种方式相对来说会更好一些。
Q2:有了低代码建模工具之后,任意人都可以在上面开发建模吗?
无常:这个问题很多人都很关心,很多次都被问到,假如这个问题的答案是真的,那数据建模的工作岂不是谁都可以胜任了?答案当然是否定的,但也没那么糟糕,一个大学生从开始入学到毕业,学了多少门功课,读了多少书籍,难道还差一门数据挖掘的课程么?只要系统的学习,在实践中思考,还是可以掌握基本的数据挖掘方法。低代码建模并不能解决人人都能建模,它可以让建模的效率更高,拖拉拽就可以开发模型;它让模型更直观、更易于维护与更新,另外它可以让擅长数据分析,但不擅长写代码的人也可以建模。
Q3:模型平台如何让“一个算法团队”高效地协同开发模型?
无常:我们习惯将模型开发看作是一个一个单独的任务,而忽略协同高效的一些细节,比如:代码的复用性、中间结果的共享与复用、任务拆分与组合。我看到很多建模的代码就是一个Python文件或者一个Notebook任务,各种逻辑与处理都混杂在这一个代码文件中,这就很难让多人协同高效地参与到模型开发中来。
对于一个复杂的模型,应该将内部的逻辑进行合理地拆分,不同的逻辑放在不同的代码文件中,这样就可以让多人参与,各模块也可以简单复用。如果模型平台可以支持多种建模工具,并且不同建模工具开发的代码可以灵活地组织与执行,那么就可以让算法人员协同开发模型。
Q4:什么是模型热更新,如何实现X个模型智能部署到N台服务器?
无常:这是一个系统工程的问题,对于模型开发人员通常难以考虑到这个点,模型热更新是指在平台中增加新模型、或者对正在使用的旧模型进行版本更新的过程中,业务可以正常使用而不会受到任何影响。热更新的实现思路是:将模型部署在多台服务器上,让服务器逐台更新,一台服务器在更新的过程中,流量转发到其他服务器处理。实现X个模型(可能有Y个版本),智能部署到N台服务器会困难地多,因为每台服务器的运算资源是有限的,它能容纳的模型数量也是有限的,另外每个模型的业务请求量也会不同。实现的思路是:每次增加模型或版本时,挑选出内存剩余空间大,而系统整体负载低的服务器来部署。
Q5:开发出来的模型,怎么将模型部署到 IoT 设备中去?
无常:模型通常是部署在商用服务器中,在某些工业控制领域,为了节约成本与提高效率,有时确实需要将模型部署到IoT设备中,当前最好的路只有一条,那就是ONNX标准,将模型转换成标准的ONNX模型,通过Java 或C++加载,实现推理预测,ONNX标准已经有非常成熟的可以在各种环境运行的Runtime库。
最后再给大家简单介绍下顶象业务安全大讲堂。
顶象业务安全大讲堂汇集了业内大咖,分享万亿级业务安全攻防经验,打造时下最专业的业务安全直播课,通过“技术+方案+实践”三大核心专题,带您全面了解金融、互联网、航旅出行、跨境电商以及目前大热的NFT等各类业务风险及防范手段,深入解析背后的产品技术,抽丝剥茧攻防实战,助您打造零风险的数字业务。
下期顶象将由顶象资深解决方案专家鳯羽为大家带来主题为《手机银行人机验证解决方案》的直播,现场福利多多,请大家提前锁定直播间,预约起来吧!