我哭了,工业界AI项目落地有多难?

文 | 皮特潘
源 | CVer

人工智能是近几年最火热的技术名词,如果不谈人工智能相当于落伍,但当真正进入人工智能领域时才发现,一开始以为“拦路虎”是算法,后面发现落地是一个巨大的难题。本文从作者的经历和经验教训展开,阐述了在AI项目研发中的各个环节的重要细节点,展现了一个AI项目到最终落地繁琐的过程。

前言

AI虐我千百遍,我待AI如初恋。什么才是好AI?答:能落地的AI才是好AI。AI项目从无到有,最终落地开花,无非不是挖坑、踩坑、填坑的过程。本文从笔者的一些经历、经验、血泪教训展开,说一下AI项目研发过程中的感想。

被虐的案例

  • 案例1:经过N次版本迭代与优化,最终定稿。支持切换型号、云端训练、人工调参等貌似高大上的功能。最后,才发现客户的要求是准确率100%。

  • 案例2:样机各种灯光闪来闪去,各种运动机构群魔乱舞。什么犄角旮旯都覆盖到,什么划痕、残缺、脏污都面面俱到。但是,一个产品的检测竟然要30s。到过一次生产现场才发现:人工目检只需要2s。

  • 案例3:光学、算法、界面都ok了。在热火朝天、干劲十足的准备推广成千上百套变现的时候,客户说:抱歉,只要一套。

  • 案例4:同上,最终客户说你们这个产品真的很先进,容我再考虑一下。当然是杳无音信。算是被耍呢?还是算是白嫖呢?

  • 案例5:当我们正为识别准确率到达99%而欢呼雀跃的时候,客户把一个识别成功的和一个识别失败拿到一起,问:这两个明明一模一样,为啥这个失败了,这个成功了?

  • 案例6:我去生产现场培训客户标注。他们非常配合,找来的也是目检老手。我示范了几个后,让他试试。他就是不肯,搞到最后才知道:额,他不会用电脑!

  • 案例7:我们的算法好牛掰,我们模型好先进。AI+传统方法一起来搞,完美。不过你需要调整这20个超参。人呢?别走啊!

  • 案例8:已经上线运行了,最后发现某一种型号的某一种缺陷打光不佳,图像上很难判断。最终只能推倒重来。

  • 案例9:没有意识到数据的重要性,每次都是几张图片在测试,结果是很完美,最匆匆拍板上线。最终大批量测试的时候,发现不work了。

  • 案例10:算法ok,部署效率也ok,标注-训练-部署的闭环生态也ok。然后客户问:每次更换型号,能不能不训练?

为啥这么难?

工业AI,尤其是缺陷检测这块,都是硬骨头。虽然场景非常简单,虽然数据都是源源不断,虽然算法都是非常纯粹。但是其需求太分散了,不是不能做,而是值不值得去做。因为你要面临以下问题:

  • 说不清道不明、模棱两可的标准。

  • 某些难以量化的标准。

  • 频繁变更的需求,难以做到只靠调后处理参数就能快速响应。

  • 频繁更换型号的场景,留给你训练的时间不多。甚至无法提供良好的训练环境。

  • 立体的产品,各种吃光照,吃视角的缺陷,极其微弱的缺陷。

  • 难以保证的样本一致性问题,这是你过拟合的根源。

  • 准确率能不能到100%,真的有人可以拍板保证吗?

  • 有没有人工做的更快?

  • 有没有人工费用更便宜?

  • 需要配合繁复的硬件设备,尤其是运动设备。如何才能保证整套设备的稳定性?

  • 同上,难以保证的硬件可复现性。甚至一机一模型你都要谢天谢地,更不要说通用。

  • 后期维护成本问题,由于涉及的环节太多,需要“全才”才能搞定。

一般流程

AI要敏捷开发,更要方法论,更更要稳定的开发流程。

这里要提的是,工业场景的AI不过是整套系统中的一个小小组件,你一定不会靠单纯的AI去make money。即便如此,AI从无到有,依然经过以下几个环节:

需求阶段

包括场景分析、问题定义、可行性分析。很多任务都是从该阶段直接进入end。这个是好事,一定不要盲目自信和盲目乐观。所谓一叶障目不见泰山,只看到算法容易实现就忽略以上的问题,最后只能惨淡收场。最怕投入太多沉没成本之后,想收场却不甘心。

什么是需求,什么是真正需求,什么是隐藏着等待发掘的真正需求。很多时候,和客户一起聊需求的时候,他们给不出明确的需求。最简单直接的办法就是,深入参观他们的生产现场。和工人融到一起,学会他们的判断标准。为他们发掘需求,尤其是下面几点必须提前明确清楚:

  • 什么是绝对不能容忍的错误,一旦出现就是质量事故。我们要知道算法的下限在哪里。

  • 涉不涉及更换型号,能否提供符合模型训练的场景要求,比如至少得有GPU吧,或者可以上网进行云端训练。

  • 对时间上的要求,很多替换人工工位都要要求比人更快。我们要知道系统的物理极限,例如运动设备。

  • 对于算法难以界定的灰色地带,接不接受人工二次复检。对于不work的个例,我们要有backup。

其他都比较直白,对于第二点说明一下。大家想必都知道,我们做算法复现的时候,训练部分比推理部分要困难好几个等级。同理,上线部署的时候,如果涉及用户自己训练,那么难度就上来了。要把标注、数据处理、训练参数、测试评估等整个闭环生态都打包在一起,还要实现全自动化。一旦某一个环节出问题,那么足够你手忙脚乱。甚至会遇到诸如用户电脑不能上网&没有GPU的情况,没有错,即便是你提训练必须条件,他也不一定会给你配到。

以上这几点,一定要仔细论证,全局论证,反复论证。论证不是内卷,不是效率不高,不是执行力不高。没有详细论证而匆匆上马的项目,一般后期有无数个坑在等着你。

打光阶段

包括光学设计、成像分析,当然还包括不是那么AI的结构设计等。俗话说:七分靠打光,三分靠调参。打光非常重要,因为后续算法只能为图片负责。一般我会用“明显”和“明确”来进行可行性分析,“明确”来自需求,而“明显”就是来自光学。最直观的判断就是,人肉眼能否通过图片进行精准判断。如果存在模棱两可的部分,那么它也将成为算法模棱两可的地方。

数据阶段

包括数据采集、数据标注、数据处理。数据的重要性不言而喻,正所谓:七分靠数据,三分靠trick。数据到位了,一切都好说。数据的重要性,想必是任何一个从业人员都深有体会的。我们要数据,要有效的数据。没有数据的场景,抱歉请用传统方法。要记住,模型泛化,没那么重要,当然模型也没有那么强的泛化能力。它之所以能够识别,那是因为它见过。将模型理解成一个存储器,而不是泛化器。之前的你,需要建立数据库来存储数据用以测试时的比对,现在的你,模型就是你的数据库。

数据标注就会涉及标准的定义,很多时候很难拿到清晰的标准。或者说无法量化为清晰的标准。往往会存在灰色地带,这就要提前有一个清晰的认识。对于灰色地带的处理,或者说客户的容忍,要提前想好策略。这里比较困难的是,灰色地带可能很难量化出来,我们只是知道这个样本是灰色地带,到底有多灰,have no idea。

另外,比较重要的是尽快建立稳定的、有代表性的数据集合,尤其是测试集,这点非常重要。这是你数据的baseline,可以帮助非常敏捷进行后续的benchmark实验。如果你不知道你对什么样的最终结果负责,那么你将永无止境的做下去。

算法设计阶段

包括任务定义、任务拆分、模型选择。尤其是任务拆分,你不肯定把所有的大象都装到一个冰箱里面,你也不可能把所有的鸡蛋放到一个篮子里面。

杜绝唯模型论 & SOTA 论。我们需要的是在特定场景下解决特定的问题。这里涉及学院派思维转变,学院派的高手为imageNet和COCO等数据集负责,而我为我自己的场景和数据集负责。SOTA看中的是模型的上限,而实际的场景,看中的是模型的下限。

杜绝唯AI论。不管传统方法还是AI方法,能work的就是好算法。如果传统方法没有明显的缺陷,那么请选择传统方案。或者你可以这么认为,当前看似高大上的AI并不是真正的AI,或许30年后一天,你会说:先用传统方法YOLO V28 来试一下吧!

训练评估阶段

包括模型调参、模型训练、指标评估。所谓的“炼丹”。前几步做好了,一般不会有太大问题,如果有,请向前追溯。还是那句话,建立好baseline,逐步提升。这里要说一句,“提前优化是万恶之源“。在保证精度的时候,再去考虑速度,再去做优化。当然你靠58个模型联合起来获取的精度不在该讨论范围。

部署阶段

这个阶段坑比较多,基本上都是技术方面。也是所谓的“脏活”。包括模型优化、跨平台前向推理、模型加密。终于到部署阶段了,也看到了落地的曙光。关于深度学习人工智能落地,已经有有很多的解决方案,不论是电脑端、手机端还是嵌入式端,将已经训练好的神经网络权重在各个平台跑起来,应用起来才是最实在的。不过依然存在这么多工作需要做:

  • 跨平台:可跑目标硬件上,包括各类cpu/gpu/npu/fpga等等。

  • 高效能:速度快、占用内存少等。

  • 精度没有丢失:经过一通量化、剪枝、蒸馏、图优化等操作后,终于满足时间要求了,却

  • 然发现部署测试精度掉了一半,WTF。

  • 加密需求:你一定不希望自己辛辛苦苦搞出来的成果被别人白嫖吧!

  • 闭环生态:当然你不能一劳永逸,怎么在应用中收集样本,更新系统。你需要作成实用、好用的闭环工具链。

运维阶段

包括运行监控、模型更新等。你以为可以松一口气了,然而并没有。能不能经受海量产能和时间的考验,请瑟瑟发抖地注视着吧!运维的核心就是保证业务安全稳定运行。上面提到,AI泛化能力还是比较欠缺的,所以很可能会在实际运行的过程中遇到不work的情况。当然最最直接的办法就是持续不断扩充数据。当然要保证你的模型有足够的capacity,如果没有,那么就是算法设计环节没有做好。收集数据利用上面部署阶段所说的闭环生态工具链来持续完成这个事情。

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 646. 最长数对链(区间 贪心)

1. 题目 给出 n 个数对。 在每一个数对中&#xff0c;第一个数字总是比第二个数字小。 现在&#xff0c;我们定义一种跟随关系&#xff0c;当且仅当 b < c 时&#xff0c;数对(c, d) 才可以跟在 (a, b) 后面。我们用这种形式来构造一个数对链。 给定一个对数集合&#xf…

以太网和路由设置,内网和外网同时上

第一步&#xff0c;查看自己内网的地址&#xff0c;网络与internet设置&#xff0c;更改适配器选项&#xff0c;出现下面的页面 点击内网&#xff0c;右击WLan&#xff0c;点击状态 点击详细信息&#xff1a; 记录网关信息&#xff1a; 第二步&#xff1a;查找路由器设置 …

论文浅尝 - AAAI2020 | 通过知识库问答改善知识感知对话生成

论文笔记整理&#xff1a;胡楠&#xff0c;东南大学博士。来源&#xff1a;AAAI 2020动机现在的将外部知识整合到对话系统中的研究仍然存在一定缺陷。首先&#xff0c;先前的方法难以处理某些语句的主语和关系&#xff0c;比如当语句中的相关实体彼此相距较远时。其次&#xff…

互联网企业数据安全体系建设

一、背景 Facebook数据泄露事件一度成为互联网行业的焦点&#xff0c;几百亿美元市值瞬间蒸发&#xff0c;这个代价足以在地球上养活一支绝对庞大的安全团队&#xff0c;甚至可以直接收购几家规模比较大的安全公司了。 虽然媒体上发表了很多谴责的言论&#xff0c;但实事求是地…

NLP研究者必备的语言学书籍!

文 | Serena Gao知乎首先&#xff0c;做nlp不一定要很懂语言学&#xff0c;也不一定要跟语言学扯上关系。nlp可以仅是data mining&#xff0c;features engineering, 也的确有很多work目前在用文本或者对话做为数据集&#xff0c;然后用统计学方法实现目的&#xff0c;比如deep…

LeetCode 334. 递增的三元子序列

1. 题目 给定一个未排序的数组&#xff0c;判断这个数组中是否存在长度为 3 的递增子序列。 数学表达式如下: 如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1&#xff0c; 使得 arr[i] < arr[j] < arr[k] &#xff0c;返回 true ; 否则返回 false 。 说…

论文小综 | Neuro-Symbolic Reasoning in NLP

本文作者&#xff1a;邓淑敏&#xff0c;浙江大学在读博士&#xff0c;研究方向为低资源条件下知识图谱自动化构建关键技术研究。深度学习的高速发展使得模型的表达能力逐步完善&#xff0c;在一些感知任务&#xff08;例如动作识别和事件检测&#xff09;上取得了显著成果。但…

实时数据产品实践——美团大交通战场沙盘

背景 大数据时代&#xff0c;数据的重要性不言而喻&#xff0c;尤其对于互联网公司&#xff0c;随着业务的快速变化&#xff0c;商业模式的不断创新、用户体验个性化、实时化需求日益突出&#xff0c;海量数据实时处理在商业方面的需求越来越大。如何通过数据快速分析出用户的行…

谁才是Transformer家族中的最强王者?谷歌告诉你答案

文 | Sherry自从17年Attention is all you need发出&#xff0c;继而18年BERT刷新各大榜单&#xff0c;大型预训练Transformer似乎已经成为自然语言处理的标准基准模型&#xff0c;甚至进一步渗透到图像领域。各路大神基于Transformer提出了海量改进方法。这些改变是否对大多数…

LeetCode 652. 寻找重复的子树(DFS)

1. 题目 给定一棵二叉树&#xff0c;返回所有重复的子树。对于同一类的重复子树&#xff0c;你只需要返回其中任意一棵的根结点即可。 两棵树重复是指它们具有相同的结构以及相同的结点值。 示例 1&#xff1a;1/ \2 3/ / \4 2 4/4 下面是两个重复的子树&#xff1a…

论文浅尝 - CIKM2020 | Relation Reflection Entity Alignment

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士生。来源&#xff1a;CIKM 2020链接&#xff1a;https://arxiv.org/pdf/2008.07962.pdf研究背景与任务描述:实体对齐旨在基于已有对齐实体标注的情况下&#xff0c;确定不同KG中未知的对等实体&#xff0c;其本质是mult…

SQL解析在美团的应用

数据库作为核心的基础组件&#xff0c;是需要重点保护的对象。任何一个线上的不慎操作&#xff0c;都有可能给数据库带来严重的故障&#xff0c;从而给业务造成巨大的损失。为了避免这种损失&#xff0c;一般会在管理上下功夫。比如为研发人员制定数据库开发规范&#xff1b;新…

无内鬼,来点ICML/ACL审稿人笑话

文 | Sheryc_王苏最近&#xff0c;如果你的小伙伴突然没时间陪你出来玩了&#xff0c;请不要担心&#xff0c;ta可能正在与ICML/IJCAI/ACL的审稿人斗智斗勇。过去的一周里&#xff0c;机器学习顶会ICML、人工智能顶会IJCAI和NLP顶会ACL扎堆放出审稿人意见&#xff0c;有人欢喜有…

Docx:docx.opc.exceptions.PackageNotFoundError: Package not found at

Docx:docx.opc.exceptions.PackageNotFoundError: Package not found at&#xff1a;https://blog.csdn.net/python__reported/article/details/106318330 Docx:docx.opc.exceptions.PackageNotFoundError: Package not found at 一、报错内容二、解决方法 一、报错内容 报错&a…

LeetCode 148. 排序链表(归并排序、快速排序)

文章目录1. 题目2. 解题2.1 归并排序2.2 快速排序1. 题目 在 O(n log n) 时间复杂度和常数级空间复杂度下&#xff0c;对链表进行排序。 示例 1:输入: 4->2->1->3 输出: 1->2->3->4 示例 2:输入: -1->5->3->4->0 输出: -1->0->3->4-&…

论文浅尝 | 基于对抗学习的弱监督知识图谱对齐

论文笔记整理&#xff1a;郭凌冰&#xff0c;浙江大学研究助理&#xff0c;研究方向为知识图谱的表示学习。绝大部分现有的知识图谱对齐方法都要求足够的已对齐三元组作为监督数据&#xff0c;但在现实世界中&#xff0c;获取大量的对齐三元组的代价十分高昂。本文提出一种同时…

美团数据平台Kerberos优化实战

背景 Kerberos 是一种网络认证协议&#xff0c;其设计目标是通过密钥系统为客户端、服务器端的应用程序提供强大的认证服务。 作为一种可信任的第三方认证服务&#xff0c;Kerberos是通过传统的密码技术&#xff08;如&#xff1a;共享密钥&#xff09;执行认证服务的&#xff…

Android官方开发文档Training系列课程中文版:如何避免ANR?

原文地址&#xff1a;http://android.xsoftlab.net/training/articles/perf-anr.html#anr 尽管你写代码可能通过了世界上所有的性能测试&#xff0c;但是它还是可能会让人感觉到卡顿。当应用卡的不成样子时&#xff0c;系统会给你弹一个”Application Not Responding”的对话框…

预训练语言模型真的是世界模型?

文 | 子龙自GPT、BERT问世以来&#xff0c;预训练语言模型在NLP领域大放异彩&#xff0c;刷新了无数榜单&#xff0c;成为当前学界业界的心头爱&#xff0c;其主体结构——Transformer——也在逐步的运用于其他领域的任务中&#xff0c;常见的如与CV的跨界&#xff0c;也有相对…

monk js_对象检测-使用Monk AI进行文档布局分析

原文链接&#xff1a;https://blog.csdn.net/weixin_26752075/article/details/108494230 monk js 计算机视觉 (Computer Vision) 介绍 (Introduction) This is an article on how Object Detection can help us in predicting various regions of a document. It can be usefu…