新东方人工智能中台实践经验分享
作者:新东方AI研究院院长张建鑫
有句话讲,技术总是在短期内被高估,而在长期内被低估。您认为人工智能技术目前是被高估还是被低估呢?
人工智能技术的发展历史已经很久远了,现在的AI顶流-人工神经网络理论研究工作最早发生于1943年,在1980年代由Hopfield完成了基础理论的突破,引发了1985年以后持续的人工神经网络研究热潮, Hinton和他的学生们在基础理论的指导下长期努力,终于在2012年推出了Alex Net取得了技术上的重大突破,在那之后更多的人工神经网络模型被提出来,实用效果越来越好,导致了很多人工智能公司的成立,在2015年微软推出残差网络模型和2018年谷歌推出Bert网络模型后, 人工智能算法的工业化前景越发清晰,很多传统行业公司都跟风成立了AI研发部门,近几年AI技术的发展脚步越来越快,让市场普遍产生乐观情绪,认为未来已来。但是现在的AI技术在模拟人类感知能力方面表现尚可,而在模拟人类认知能力方面依然征途漫漫。理论和算法是人类的公共知识和共同财产,目前在各种商业应用里取得算法竞争优势的首要因素不是作为公共知识的算法,而是具体业务场景规则(熟悉业务)和这个业务场景下用户产生的海量数据(数据优势),通过对数据的自动、半自动和人工标注再加上AI算法的泛化能力我们可以实现在某种程度上的case穷举,把某个业务场景里积累的大数据优势转化为这个业务场景里的算法优势,可以说是在用大数据解决小问题,但由于神经网络算法解决的大多是NP完全问题,因此归根到底其算法推理模型只是一个无限逼近完美的近似解,很难做到100%的准确率。与神经网络算法不同,人类经常可以根据蛛丝马迹的少量信息就推导出正确的结论、甚至还能发现新的规律和符合逻辑的定理公式,所以人工智能理论和技术距离成熟还有很长的路要走,黑盒的人工神经网络模型很可能不是人工智能技术的终极答案,神经网络技术目前依然还是一个依赖大数据和算力的,理论性较弱的,工程性很强的算法。但即便如此,人工神经网络算法目前的进步已经足以让它在很多工业、农业和商业领域取得成功。除了算法、数据和算力这三个因素,为了取得更好的效果,我们还必须重视对业务规则的透彻理解和相关的数据开发工作,重视组织管理,重视基础设施建设和降本增效,确保在使用与竞争对手类似的算法技术的情况下,可以用更低的成本,更快的速度,取得更好的算法效果。2018年后随着AI技术在媒体曝光的大幅增加和资本的踊跃投入,AI技术短期内处于被高估的状态,但是AI技术的落地却显得困难重重,有的企业家讲,在人工智能技术上投入了15个亿,换来的只是网速快了一点点,低效的资本狂欢过后,部分企业家对AI技术的评价不可避免地滑落到低估倾向上。
造成这个现象的原因是什么呢? 任何一项科技成果产生社会价值都会经历三个阶段的突破,第一个阶段是大学和研究所里的理论突破,这是没有任何功利性质的理论发明和理论完善的阶段,这个阶段通常没有资本的介入,岁月静好红尘无扰。 第二个阶段是在实验室中理论联系实际的技术突破。新技术研究和算法研究虽然还是偏研究性质,但已经是即将冲出地平线的太阳,已经让世界看到了曙光。这个时候资本已经嗅到机会,红尘滚滚而来。 第三个阶段是应用工程突破,就像蒸汽机的发明历史一样,只有把一项新技术经过了工业化和应用工程化改造,把新技术应用成本大幅度降低,并且通过横向和纵向的分工把学习门槛大幅度降低下来后,才可以广泛地应用到各行各业。工程化的本质就是用自动化替代简单人类劳动,用精细化分工让一个人难办的事变成多人协作,结果是许多普通工程师都可以参与到大分工里发挥作用。回顾计算机软件工程过去40年的发展历程。1980年代,似乎非斯坦福毕业的写不了计算机程序,90年代非985毕业的不可,2000年代非211毕业的写不了代码,2010年代,各个软件公司雇佣着许多经过简单培训的程序员从事写编程工作,我不是说软件工程不再需要精英程序员了,而是说软件工程经过多年的精细化分工和管理方法迭代后,分化出了大量普通岗位和角色,这些岗位是允许经过简单培训就可以参加的,并且一部分原来必须由人完成的工作,现在也已经可以自动化完成了,因为各种开源架构和基础组件的发展,程序员也不需要重复造轮子了,软件工程这个工业化组织体系也已经进化得非常复杂和高效了,可以吸纳各个层次的从业人员参与其中,软件工程管理方法经过好个版本的迭代(瀑布、敏捷、Devops等等)也越来越先进和高效,对团队高级管理者的要求也提升了很多,新技术理论消灭旧的工作岗位的同时,也创造着大量新的工作岗位,改造着人们的工作方式、协作方式和管理方式。
换个角度再看,90年代求伯君一人写出了WPS,张小龙一个人写出Foxmail后以2000万人民币卖给了腾讯。20年后张小龙的微信研发团队有2000名多正式员工,主打WPS软件的金山办公也已经有3000多人的团队了。现在软件领域再也没有一个人单挑就能震动天下的软件产品,而20年前的堪称神作的个人软件放到今天可能会被迅速拆解为20人软件工程团队几个月的工作量,用户体验还可能做的更好,没有了神秘感。
今天软件工程对产业界的作用,是我们在20年前只能想像无法实现的。如果我们相信人类的一切不过是在不断地重复历史,就应该相信AI应用工程化的路径很可能会参考软件工程的历史,也会以20年周期来计算,20年是一个说长不长的过程,但足以让很多不坚定的人掉队,并失去他们相信过的未来。
新东方的企业文化强调“做正确的事,和正确地做事“。 正确的事是用心来判断和选择的,要明心见性,正直、豁达、乐观才能看到并坚持正确的事情,而正确地做事则是要用脑子去思考如何执行落地,在执行前要略微悲观地想到各种可能的困难和潜在的问题,谋定而后动,执行时又要乐观、积极地提高效率、降低成本、减少阻力、少走弯路、to make it happen、to get things done。无论市场对AI是高估的还是低估的,无论大V们对AI应用前景是如何判断的,无论人工智能技术的下一个突破方向是什么,教育+AI一定是一个正确的大方向,只是长路漫漫,很多不起眼的基础工作必须要有人去做,不能既没有理论突破,又没有工程进展。 本文通过新东方人工智能研究院的技术管理实践和AI中台建设实践,介绍了如何管理AI研发部门的一些思路,和一些AI研发工作中的降本增效方法,以及一些AI中台产品规划和AI中台建设思路,希望这篇文章能帮助到同行的其它AI工程团队去降本增效,彰显出人工智能技术对业务的赋能作用和创新价值。
人工智能研发部门的KPI或者OKR应该是什么? 首先应该看到,大部分公司的存在目的主要是持续地服务客户并创造经营利润,一家没有增长还持续亏损的公司不可能长久地活下去。然后再来看AI研发部门的存在目的是什么? 显然公司里的部门要有能力服务于客户,或者创造利润才能活下来,创造利润无非通过两个手段, 一个是扩大收入, 另一个是降低成本。 扩大收入往往是公司业务部门的责任,而公司职能部门存在的意义是服务公司主营业务并努力降本增效,否则这个职能部门就没有存在的必要和存在的意义。 AI研发部门的首要KPI自然是要去服务业务,因此要认真思考三点。 一是要去思考算法团队有没有能力支持业务需求, 二是要去思考支持业务的效果如何? 三是要去思考自研成本有多高? 如果自研的性价比不如供应商,并且公司的业务近几年内也不会扩张,为什么不考虑外购系统或者聘请外包团队呢?通常我见到的算法研究人员比较缺乏成本意识和整体意识,但是企业对研发工作是要算经济账的,如果AI研发部门不重视这一点,企业的AI算法工作就不可能做好,就很可能被业务方吐槽甚至弃用,最终导致算法研发工作的失败, 甚至AI部门被撤裁。 一家公司的AI研发部门的最大优势在于可以拿到本公司特定业务场景里的特定数据, 通常一个算法,如果没有特定场景的业务规则要求,也没有积累海量的特有数据,外购通用算法服务就是最好的选择,这种情况下企业AI部门就不要去自研了。企业AI研发部门选择做正确的事情时,首先要在公司整体利益的指引下排除掉不正确的事情,然后就是一定要抓住可以获取本公司特色数据的优势和熟悉本公司业务规则的优势,围绕公司的核心业务开展算法研发工作,围绕降本增效来做文章。由于数据和规则都要花很多时间积累,所以需要有算法团队长期维护和迭代算法模型,不断地进步取得更好业务效果。 所以AI算法团队的首要业务指标很明显就是要用更低的成本和更好的效果去赋能业务。举一个案例, 新东方自研的人脸考勤机系统的硬件成本为850元,XX云的人脸打卡机的报价为每台4000元,如果需要把人脸考勤机系统和公司的教务班课系统打通,还需要额外付给XX云一笔ODM研发费用。 新东方有几十所学校和几千个校区,外购人脸打卡机和自研人脸打卡机器的费用计算下来的差距在2千万元人民币以上,而新东方AI研究院在人脸考勤机系统研发的全部人力投入不超过6个人,研发成本可忽略不计,成本优势明显, 效果呢?新东方自研的人脸打卡机和新东方教务系统打通后,每天在营业时段里,对比当天到校师生的照片,算法识别准确率非常高。 而通用的人脸打卡机则需要上传所有学生照片到云端,打卡时在几十万人的照片库里查找匹配人脸,出错概率比较高,并且把人脸上传云端的做法还会涉及隐私问题。公司是要控制成本的,当一个标准化产品和公司核心业务的关系不是特别紧密的情况下,公司通常会考虑外购,只有当自研产品具有明显的成本优势时,公司才会去考虑自研方案。 其次应该看到,人工智能技术是很新的技术,在当前阶段把AI技术和任何业务结合都会产生发明专利,所以AI团队必须重视创新,同时发明专利必须和业务紧密绑定才有意义。 我始终认为企业AI研究院应当主要从事新技术的应用研究和工程研究,而拓展人类知识边界的理论研究工作应当交给非营利的科研机构去做。新东方人工智能研究院六十几位员工在过去一年里提交了90多项发明专利,主要是围绕题库试卷文字识别、自动批改、智慧教室,双师AI课,和AI学习机展开的,都是和公司主营业务绑定的创新产品研发任务,没有去搞和业务没有关系的凑数发明。由于人工智能技术太新,业务方往往不知道如何应用人工智能技术,这就要求人工智能研发部门要主动地发现AI赋能业务的机会,也要求人工智能部门不能仅仅满足于技术层面创新,也要努力尝试产品层面创新,主动在产品里应用新技术和新方法来启发业务创新。打个比方,如果业务方是用马拉车做客运的,业务方通常给研发部门提的要求是怎么能让马车更漂亮舒适一些,让马拉车的效率更高一些,而不是想到用更廉价更快速的汽车来取代马车。新东方AI研究院设计推出了新东方口语小程序和新东方作业批改小程序,融合了大量教育人工智能技术发展成果, 2021年暑期月活用户达到30万,满足了学生和教师的部分教学需求。 过这两款小程序,我们搜集到上亿条高质量的少儿英语口语测评数据,和中小学生的中英文手写体数据,这些数据又进一步让我们具备了更多的数据优势,同时由于产品功能设计的原因,很多数据是产品功能自动标注的,不需要经过人工数据标注,因此降低了数据研发成本,还提高了算法的效果。 AI部门有三个重要的开销,一个是GPU训练和推理服务器的成本, 第二个是数据的成本, 第三个就是研发人力成本,通常研发部门可以持续优化人力但是研发部门的人力成本正常是降不下来的,所以降低人力成本的关键是提高研发人效,通过系统支持在人均工作时间不增加的情况下让单兵产出暴增, 这点在当前AI技术管理体系和工作支持系统还没完善的情况下,是有很多文章可以做的。降低数据成本主要是降低人工标注比例,和提高数据标注人效,这点要通过数据工程和数据标注系统来实现,建设AI数据标注系统的另一个重要作用是可以保护数据资产安全,保护数据安全就相当于保护算法研发成果。GPU服务器有训练用途和推理用途,其中训练用途的服务器是非常昂贵的,动辄上百万,电费消耗也相当惊人,就像太上老君的炼丹炉。我们不能让炼丹炉闲下来,也不能让算法工程师排队去等炼丹炉做实验,线上的算法推理服务器也不可以有太多的闲置,这就要用到AI Devops工程技术体系,一要实现算法训练服务器的水平扩容和监控管理,二要实现推理服务器共享GPU资源池和算法实力的弹性扩容缩容。
新东方人工智能研究院经过一年多的综合治理, 人均AI算法产出提效10倍以上,服务器的成本则下降到原来的三分之一,降本增效的同时,也找到了很多和业务联合创新的路径,通过业务牵引和创新驱动,在人员没有增加的情况下,发明专利数量迅速增加。
总结一下AI部门的核心KPI或者OKR 1、 AI算法工作一定要围绕业务展开, 2、 围绕业务多搞发明专利 3、 围绕业务多搞产品创新,提高人工智能技术的价值创造能力 4、 用一切方法降本增效,研发各种算法工作配套的软件系统,磨刀不误砍柴工,欲善其事必先利器。 为了实现AI算法团队的KPI目标,可以参考下面这张组织架构图来组成团队,图里包含了两种组织, 一种是专注不同研发方向的技术团队,另一种是是专注不同提效用途的软件系统, 这些软件系统组合起来形成了AI中台。两者有机地结合起来,对内形成了高效合作的氛围,对外可以更廉价高效、和快速地支持好业务。由于组织间低耦合,组织内高内聚所以整个团队呈现出非常好的执行力。 算法开放平台系统提高了客户的自助服务比率,产品经理作为客户和算法团队的中介,有效地提高了整部门的工作效率。 AI研发部门的核心是算法团队,目前有三大算法方向, NLP, 计算机视觉,智能语音。三者之间术业有专攻,人员不能相互替代。各算法团队的工作主要是在业务目标的引领下做大量算法实验,神经网络模型的算法实验有点像用户增长的A/B test,可以认为是一种大数据工程或者是一种数学工程,需要多训练出一些模型来互相比较效果,做算法实验之前,算法工程师要准备大量已经标注好的数据,为了降低数据成本,自动标注的数据比例越大越好,因为人工标注数据是很贵的。用OCR文字识别举例子,打印体文字识别的数据物料100%可以通过CV算法增强合成,可以把文字输出到图片上,图片叠加各种模拟效果,产生海量数据后再进入人工智能神经网络进行端到端的模型训练。有些数据比如手写体文字则必须经过人工标注,但人工标注后的数据同样可以经过数据增强处理泛化成几倍的数据。算法工程师的多半时间是用来写代码做数据处理,其他时间用来读论文和读源代码做算法选型,做模型加速和写发明专利。 在组织架构还没成熟的AI研发部门里,算法工程师要做很多杂事,例如API封装,上线运维、对外沟通等工作,这样会让算法研发工作效率大打折扣,因此围绕算法工程还需要搭建一系列的团队和软件系统。 如果想要降低人工标注数据的成本,提高数据标注的人效和质量,保护人工标注的数据安全,就必须要自研AI数据标注系统, 充分利用系统工作流拆解任务的能力和互联网众包平台的廉价劳动力来降低数据成本。 算法研发依赖的各个软件系统都需要产品经理和软件工程师的支持,如果没有产品团队和软件团队的支持,AI中台是建不起来的,AI研发部门的效率也提不起来,成本也降不下去。 测试开发和运维开发团队是非常重要的算法研发支持团队,他们用一年多时间建设了AI算法和软件的CICD流程以及支持系统,支持算法的灰度发布和线上回滚,还基于Docker实现了GPU服务器的资源池共享和算法的弹性扩容缩容,打通了算法开放平台、数据标注系统、和模型工厂实现了AI算法研发的自动化大闭环系统。 通过几十个不同的AI算法共享一个GPU资源池,以及算法的弹性扩缩容机制,测试运维开发团队大幅地降低了GPU服务器成本,提高了GPU资源利用率和线上算法服务的稳定性。 AIOT智能硬件是今天人工智能研发绕不过去的主题,所以AI中台也要包含AIOT管理系统,相当于研发一个AIOT底座,这个底座实现了数据管理,远程控制,远程更新,设备巡检和报警等标准化的AIOT基础服务,以后所有新立项的智能硬件都可以在这个底座系统上快速开发上线。 发明专利交底书的撰写是一个比较专业的事情,和专利律师、国家专利局打交道都是非常花时间的事务性工作,因此AI研发部门需要一名经验丰富的科研助理来提高专利交底书的撰写效率、提高对外沟通的效率,让算法工程师可以有更多的时间专注于算法研发工作。
由于认知盲区,算法工程师自测的算法效果通常会比线上真实效果好一些,因此必须由AI测试开发团队负责算法的交叉测试和撰写专业的准出报告。在工作中经常发现,在特定业务场景下效果好的算法模型,很可能在通用场景下效果就差一点儿,因此我们首先要专注于本公司的业务场景来开发算法模型,而不是贪大求全。下面这张图是算法测试报告截图。
总结一下人工智能部门的组织架构和分工 1、 AI部门组织架构由专业团队和专业软件系统两部分构成, 2、 组织分工和角色定义的原则是,尽可能减少团队间的依赖和沟通,尽可能增加团队内的沟通和协作。各个算法板块内部通常由一位算法博士(也要求有代码工程能力)带队,团队主体由工程能力较强的硕士组成。AIOT团队,软件工程团队,测试开发团队,产品经理团队,科研助理都是AI研发部门必不可少的组成部分,目的都是为了提高AI算法的有效产出,帮助算法快速有效地赋能业务,显著提升人效并降低成本。 3、 软件系统有:AI算法开放平台,AI数据标注系统, AI模型工厂,AIOT底座,还有一些用来展示AI能力和搜集数据的小程序和解决方案。新东方口语和新东方练习助手两个小程序搜集到的数据有力地提升了新东方AI算法的效果。算法工程完成了一个模型的上线后,模型工厂可以让人工标注的数据不出系统,直接进入算法训练服务器,系统自动启动算法训练脚本,训练完毕后自动发布推理模型。 只要标注系统产生了足够数量的数据,算法的训练、上线、性能测试、准出都由系统自动执行,不必占用研发人力。
AI研发部门各组织和系统之间的协作图如下
推荐读者访问新东方人工智能开放平台查看AI解决方案简介,试用新东方人工智能算法开放服务和教育类小程序AI产品并留下宝贵意见。 下面介绍一下新东方在教育+AI领域的部分工作。
新东方AI研究院以每间教室不到3000元的低成本实现了智慧教室里的无感人脸打卡,AI督课,AI补课等业务。并且设计开发了低成本的双师AI课智能设备,和低成本的校区人脸打卡机,并在研发过程中申请了几十项发明专利,在成本和效果上优于其他供货商。为了支持这些智能设备的研发工作,还研发了AIOT底座系统支持新型智能设备的快速研发上线,避免重复建设。
我们在国内实现了使用真正的AI算法进行千班千面课堂AI互动的双师录播课。 让孩子们在沉浸式的AI互动录播课里产生了良好的体验和学习效果。
经过一年的努力, 新东方AI研究院已经掌握了人脸技术,和人体姿态手势检测等技术, 并成功地应用到校区人脸考勤机,双师AI互动课,板书检测,学生行为检测,和各种各样的文字识别技术,学习机指读技术等领域,为业务转型和产品创新奠定了良好的基础。 小学公式AI答案批改的效果超过了国内主流人工智能服务平台
英文作文手写体识别效果可以满足英文作文批改,英文单词听写批改的需要。
在BEA公开数据集的英文作文批改国际竞赛里取得过第一名。 新东方托福口语测评算法参考率ETS的打分标准,把ETS口语考试的各种能力要求进行了量化打分,明确地指出学生口语发音在细分能力维度上的问题和分数,让学生在AI口语测评算法的帮助下快速地修正发音习惯,提高口语考试成绩
|