Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

泛化智能来源

论文落地 101:算法工程化的那些坑

笔者就职于泛化智能,一家专注于 AI 落地的计算机视觉公司。三年来,我们服务了大量需要 AI 的行业,比如电网、医院、无人机、机场甚至野生动物保护。在做这些项目的过程中,我们积累了很多经验(踩过很多,也挖过很多坑)。为了避免在工程中重复犯错,我们内部在做工程项目前,都会根据下面这个 check list 逐条检查。这里扩展一下,整理为 AI 落地中的常见问题,分享给大家:

你有显卡,我有显卡,但用户有显卡吗?

也许你不相信一个拥有几百人 IT 团队的公司会没有显卡,不过你真的确定你用户那里有显卡吗?在自己公司或者实验室内部,我们的硬件条件基本都能得到满足;但到了用户那里,一切可能都不一样了。 

有很多项目,必须要在客户的电脑/服务器上去运行,而很多环境下是没有 GPU 的——或者说,如果你做工程化,GPU 可能是种奢侈品。对于计算机视觉项目来说,假如客户需要把模型搭载到他特有的硬件上(比如智能制造领域的缺陷检测设备),事先与用户确认硬件配置是至关重要的。 

一个简单的判别标准:和客户交流的时候,客户知不知道什么是 GPU,绝对是合作难易程度的分水岭。知道且清楚什么是 GPU 的,合作起来会更简单;而如果对 GPU 一无所知的,或者只用过 Intel GPU的,项目落地难度就指数级增加。 

显卡难求,务必事先与用户沟通。   

数据有了吗?

我们所有项目,内部讨论时的第一个问题一定是:这项目有数据吗?

技术人员复现论文的时候,往往会有现成的数据集,清洗过的数据。一旦开始做工程化,取得数据集和数据集预处理才是最耗费时间的环节。我们接过很多项目,所有商务细节都谈好了,项目启动后,技术人员才发现客户没数据,或者数据不够。

数据有了,你......能看懂吗?

接着上一个问题,对于绝大部分计算机视觉项目来说,客户的数据我们真不一定能看懂。比如医疗影像,数据标注是医生都需要经过多年培训才能做好的事情,没有任何医疗背景的程序员很难在短时间内看懂这些数据。年初的时候我们给某工厂做缺陷识别,用什么网络什么部署模式都想好了,结果就是看不懂图片不能做标注。我们看所有地方都像是坏了,但工厂的质检员就能一眼分辨出来正常和缺陷。这种行业的 know how 很重要。

▲ 心脏造影图,非医务人员很难看出图中哪些是对诊断有帮助的血管

你了解对方的预期吗?

由于近年来媒体对人工智能行业夸大其词的报道,给大家造成了一种印象「人工智能是万能的」。用户与技术人员的信息不对称性就导致了对项目不同的预期。面对完全没接触过人工智能的用户,要确保用户明白以下几点:

1. 只保证测试集的准确率,但不能保证这个准确率在任何跟训练数据相差非常远的情况下,还能复现;

2. 机器学习项目不能做到 100% 的准确率

3. 训练需要时间,不像是买个 Microsoft Office 下载就能用。

最后,工程化最烦的一点是,我们要给客户做特别多的 demo。任何一个需求都需要先给他们做个 demo 看看。这些 demo 太浪费时间了,但又不能不做。所以我们为了节省每个计算机视觉项目的时间,制作了 TeguCV——一款可视化计算机视觉以及神经网络工具。

TeguCV 支持 Windows,纯本地运行,目前支持图像识别、视频分类、人脸比对和车牌识别,同时包含自动参数选择、http server 等功能。十分钟开始训练计算机视觉模型。很多简单工作,直接用 TeguCV 就能实现。方便开发者快速做技术落地,而且可以把很多简单工作剥离出来。

▲ TeguCV软件截图

PaperWeekly
PaperWeekly

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

理论算法论文计算机视觉机器学习神经网络
3
相关数据
英特尔机构

英特尔(NASDAQ: INTC)是全球半导体行业的引领者,以计算和通信技术奠定全球创新基石,塑造以数据为中心的未来。我们通过精尖制造的专长,帮助保护、驱动和连接数十亿设备以及智能互联世界的基础设施 —— 从云、网络到边缘设备以及它们之间的一切,并帮助解决世界上最艰巨的问题和挑战。

http://www.intel.cn/
相关技术
机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

无人机技术

无人机(Uncrewed vehicle、Unmanned vehicle、Drone)或称无人载具是一种无搭载人员的载具。通常使用遥控、导引或自动驾驶来控制。可在科学研究、军事、休闲娱乐用途上使用。

暂无评论
暂无评论~