G3的AI交付过程,算是整个项目中出现的危机最大,后面也最有成就感的一个经历。因此借由此文,记录下当时的情况。
背景
简介
交付给LG的G3摄像头,有人形和宠物两个AI侦测和跟踪的功能。然而一开始项目需求接洽的过程中,因为和客户双方对图像识别的AI认知不一致,加上客户开发部门的强硬不理解态度,除了验收标准为F1>0.9定下来,验收方式和测试集却一直没办法敲定。这让AI验收事项从7月份的时候一直拖到11月一直没结论,直到到DVT阶段,因为AI验收没办法验收导致了项目暂停延期,危机等级上升到CEO级别。
具体矛盾点
当时客户开发部门对AI有几个误解,主要集中在
- 对AI的能力边界理解不够深入,觉得只要提了有问题的场景,我们就可以去寻找训练集加以训练就好--这可能会导致AI适用场景的失衡,特别是若总是针对极端场景或者不适用场景的优化;另外,AI的优化不是100%可以完全消除误识别的
- 觉得自己测试集就是考卷,不愿意共享手头的测试集,只是用语言描述的提供误识别信息--1. 描述会导致细节的缺失,从而让寻找训练集的方向可能有偏差,浪费了时间;2. 客户测试集场景分布的合理性得不到确认(如果对方都是极端场景,这样F1很难超过0.9,而且即使超过了也没有意义)
- AI优化周期理解有误,觉得只要优化就一定会提升--可能提升了某个场景,其他的场景的识别效果会降低,最终导致了整体F1值降低;而且寻找训练集和测试集都是需要时间的
- 测试场景和方式觉得不可以视频共享--没法确定测试方式,如屏幕反光,环境光等引起图像识别问题或者图片占屏比,屏幕分辨率,图片分辨率等其他原因引起的误识别或漏识别
前期有针对这几个点进行说明,但是开发部门表示不接受,强硬要求我们要按照他们语言提供的误识别场景进行整改后重新发版AI给他们验证。
行动
进入客户验收前
前期在我和他们解释明白了图像识别AI的基础,以及和他们定下来要以F1大于0.9作为验收标准后,就卡在上面的矛盾了。
所以我决定,以当时自己的AI能力给到对方,让客户先用他们的方式测试下F1的情况,再看具体情况见招拆招。当时对方按他们的测试方式测试后,反馈了F1不满足要求,并且用文字提了几个误识别场景。于是我就把对应场景同步到AI部门,安排他们着手对几个场景进行优化。为了防止寻找的训练集和测试集有偏差,在收集了一些图片后,我也有先给客户确认,请他确认了我们找的图片方向是没问题的,于是再进行了更多数据的收集和优化。
然而,在优化了AI后,客户重新进行测试,发现F1有提升,但是还是不达标。这个时候就完全陷入了僵局,因为我们已经是按照对方的描述进行了优化,后续优化的方向我们也没有。因此当我以此问题质询对方的时候,对方不回复了。于是我们只能以这个状态进入DVT,也就是客户的开发验收阶段。
客户验收过程
进入DVT后,关于AI的问题,我觉得当时事态可能会趋于严峻,所以先去找客户的产品经理进行解释,并商量对策。因为对方是很通情达理的人,在更加理解图像识别AI 之后,表示对我们支持,但也表示LG这样的大组织的内部等级文化的难处,所以他只能帮我们建立对话,希望还是由我们说服开发部门,他会从旁辅助。于是又和客户开发开了几次会议,由我们来解释AI的种种机制。但最后,客户开发负责人还是不能接受,并且愤怒地以我们没有接着优化AI,故意拖延项目为由,直接上诉我们VP和CEO,同时升级时间,告诉不知情的LG商务部给我们施压,表示要中止项目,并让我们赔偿损失。
当时情况特别危急,于是我分了两步走,一步是联合我们商务部领导,尝试和LG的商务部建立对话,想要解释其中缘由,争取他们站在我们这边;另一部和对方产品商量对策,对方也会去说服他们事业部领导,让事业部领导出面协助解决。最后终于争取到了一线生机,客户几个部门的领导允许我们开一个AI的解释说明会,他们会在会上进行定夺。然而可惜的是,在会上,由于我们和LG开发部门各执一词,导致了他们比较为难,在会上拍不了板。所以当时,我把当时会上客户开发部门提出的每一个点做了记录,并请他们宽限多一个周末,我们会就情况再次进行一次书面说明,并就此问题提出可行的解决方案。于是在那个周末,我联合AI的产品经理,一起输出了一篇近4000字的文章,里面包括了现在遇到的情况(同时对LG开发部门列出的点一一进行了反驳),AI的原理性解释,AI开发的正常流程,双方的验收差异点,以及最后输出了上中下三策的不同解决方案进行引导。在周末请专业翻译翻译成韩文之后,于周一发给了客户。AI解释文章相关的内容,可以参考:摄像头的图像识别AI。
结果
结果自然是客户的开发部门理亏。不过事情也没有马上解决。资料发过去后,客户提出需要内部讨论。但毕竟把所有依据呈现在文章里了,只要客户能理解,基本就能明白我们是占理的。但是按照他们的办事风格,我们还是要一点点推进。
首先客户同意把他们测试集发给我们,并要求我们出分析报告。我们分析后得出了结论:对方测试集的场景分布没有规律,图片质量也不行,要不就是小分辨率图强制放大导致图片糊掉,要不就是宠物占屏比太小(宠物太远),所以导致了指标不达标。我们整理了一份对应的分析说明报告给到了对方。
接下客户希望我们把我们用的测试集共享给他们,并说明下我们的测试集。于是我们提供了我们的测试集,并说明了我们的测试集都是用G3进行实景采集,所以每张都是标准清晰的1080P。同时我们也对我们的场景分布进行了说明,通过测试集给客户明确了我们AI的能力边界。
终于,在那个周最后一天,客户官方回复我们:1.折衷采用我们的上策,用我们的测试集+他们的测试方式重新测试,验收标准F1不变,他们同时会注意测试场景不会有额外光污染等干扰;2.LG的开发部门不再负责AI的验收,由品质部门直接验收;3.希望我们接着优化一版更好的AI版本,在CVT给到他们品质部测试
到此,危机化解,项目接着顺利推进。
反思
这场仗赢得很漂亮,但也很艰难。里面除了技术问题,还包含了很多“人”的因素。
事后复盘,可能在DVT的时候,LG的开发部门立场已经不能改变,不然就是开发部门的责任。虽然最后责任还是归于他们,毕竟绕了一大圈,而且在当时,这个仗一旦我们输了,整个责任就是我们这边了。所以当时自己也是感觉顶着特别大的压力。幸好,最终能赢了下来。
其实,本来就是合作双方的关系,某种程度上,我也不愿意把它成为一场仗,然而无奈现实。后面复盘,对于这件事,我也总结出两个主要的经验。
认清和拉拢队友
在那个过程中,我觉得当时很正确的一步,就是赶紧找LG中能拉拢的人,然后找了他们的产品经理。毕竟一旦他们内部有我们的人,起码很多事情能有了转机。他后面在协助创造沟通机会上真的帮助了我们很多。包括后面请我们商务部老大帮忙对接他们商务部老大,争取了让他们商务部老大的中立态度,这些都是让局势变成有利我们的过程。
现在回想,当时的我们真的特别凶险,一旦退让,AI验收问题就没法收场;但一旦太强硬,可能整个项目就黄了。所以当时的以理服人,以及能合理寻求对方阵营可以支持我们的力量,真的很关键。这个经验也让我更加明白在紧急时刻一定要冷静寻找“人”这个维度的突破口的重要性。
当然既然要找到这个“人”的突破口,也需要明白他们的诉求是什么。从产品经理和商务部的角度,他们都是更希望产品能按时上线的。所以当因为这个问题导致项目上市延期,甚至可能项目停止,是触动到他们的核心诉求。我们要抓住这个点,从上市时间和项目进度的维度来推动他们的协助。
防范于未燃
后面复盘,也想着,是否可以从本质规避这个问题。或许在前期,当和开发部门已经沟通无果之后,应该要提前找他们产品经理介入,问题提前暴露,或许这件事就不用升级成危机事件,又或者可以提前解决。