笔者就职于泛化智能,一家专注于 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软件截图