导读:本文首发自专访栏目——「AI技术生态论」 人物访谈栏目是CSDN发起的百万人学AI倡议下的重要组成部分。通过对AI生态顶级大咖、创业者、行业KOL的访谈,反映其对于行业的思考、未来趋势的判断、技术的实践,以及成长的经历。2020年,CSDN将对1000+人物进行访谈,形成系列,从而勾勒出AI生态最具影响力人物图谱及AI产业全景图! 本文为 「AI技术生态论」系列访谈的第五期,详解滴滴AI开源平台DELTA背后的技术框架与演进。受访者 | 韩堃滴滴DELTA项目负责人采访者 | 伍杏玲出品 | CSDN
1.
模型算法很多?为何不统一起来?
韩堃在机器学习领域已有 10 余年研究经验:自 2008 年起,他来到美国俄亥俄州立大学攻读博士,研究方向是基于机器学习的语音处理。2014 年毕业后加入 Facebook,从事语音识别、自然语言理解、推荐系统方面的工作。韩堃
自2018年起韩堃加入了滴滴 AI Labs,目前带领一支十多人的团队做自然语言理解和语音处理方面的研究和产品开发工作。
谈及DELTA的研究初衷,是在韩堃加入滴滴之际,发现团队里用到各种深度学习和自然语言理解的模型算法很多。
特别在代码层面,有从开源项目拿来的,也有内部开发的,其中很多东西在功能上是可以复用的。
在这种情况下,韩堃和团队开始思考:如果能把各种模型算法纳入统一的框架下,将会加速算法开发迭代,也能促进团队更好的合作。
于是技术团队对自然语言理解的代码进行整体重构,把各种模型算法用一套系统统一起来,使代码易用易读易开发。在开发过程中,他们发现这套系统对于滴滴外部也是很有价值的,于是开始考虑把代码开源,并朝这一方面努力。
2.
底层框架升级,掉入兼容大坑
在 DELTA 快速迭代的过程中,团队为了想使用到底层框架新版本的新功能,也曾掉入兼容的坑里:
一开始 DELTA 是基于 TensorFlow 1.12 系统来构建的,在技术迭代的过程中发现 TensorFlow 升级到 1.14,引入很多新功能。团队为了使用新功能,迅速将 DELTA 的核心模块升级到1.14。
结果导致参与研发DELTA的其他开发者的代码不兼容,出现了一些Bug。大伙立即停下手上的工作来抓紧时间修复DELTA,影响了整体的研发节奏。
经此一役,韩堃表示:在项目合作的过程中,涉及到升级版本是很常见的事。但是我们开发者需谨慎推进,毕竟涉及到很多其他人的工作和稳定性。
吸取经验总结,在 TensorFlow 升级到 2.0 时,DELTA 以兼容的方式同时支持 2.0 和 1.14 的代码后,再逐步优化代码来升级到 2.0。
3.
实现技术架构详解
由于自然语言处理模型和语音模型是众多AI系统与用户交互的接口,DELTA 旨在进一步降低开发者创建、部署自然语言处理系统和语音模型的难度。
▍DELTA的实现细节
DELTA 主要基于 TensorFlow 构建,能同时支持 NLP 和语音任务及数值型特征的训练。整合了包括文本分类、命名实体识别、自然语言推理、问答、序列到序列文本生成、语音识别、说话人验证、语音情感识别等重要算法模型,形成一致的代码组织架构,整体包装统一接口。
当用户准备好模型训练数据,并指定好配置 Configuration,模型训练 pipeline 可以根据配置进行数据处理,并选择相应的任务和模型,进行模型训练。
在训练结束之后,自动生成模型文件保存。该模型文件形成统一接口,可以直接上线使用,快速产品化,能让从研究到生产变得更容易。
值得注意的是,除可支持多种模型的训练,DELTA 还支持灵活配置,开发者可基于DELTA搭建成多达几十种的复杂的模型。
此外,DELTA 在多种常用任务上提供了稳定高效的基准,用户可以简单快速地复现论文中的模型的结果,同时可在此基础上扩展新的模型。在模型构建完成后,用户可以使用 DELTA 的部署流程工具,迅速完成模型上线。从论文到产品部署无缝衔接。
4.
DELTA的三大优势
与其他自然语言处理和语音处理的开源项目相比,像 Google 的 Tensor2tensor 和 Facebook 的 PyText 等项目较侧重研究,主要用于快速的模型搭建和实验。而团队花很多时间针对模型的产品化做开发,力求 DELTA 在工业级应用的支持上,能帮助快速上线和产品化。
▍总体来说,DELTA具有三大特点
1、便捷使用
-
支持常用的语音和文本处理的任务模型,用户开箱即用,直接训练常用模型;
-
针对工业界常用的多模态场景,支持语音、文本、外部特征的多模态联合学习;优化并行数据处理前段和高速的模型实现,快速训练海量数据;
-
可定制的配置文件,用户可以深度配置模型结构和参数。
2、简洁上线
-
训练和上线无缝衔接。各种特征提取和预处理模块均以 TensorFlow Op 形式实现,整体统一封装成 TF Graph,打通数据-模型-上线流程;
-
所有模型对接统一输入输出,模型对外部透明,对任何新模型部署,无需改动上线代码。
3、快捷开发
-
内部模型和任务组件高度模块化,比如 CNN、RNN、attention 等,开发者可以方便调用;
-
基本模块均经过完整测试,性能高效稳定,适合重用。
5.
滴滴夸、车载语音交互系统都在用的DELTA
在滴滴内部,DELTA 应用在很多语音和自然语言处理的项目上,例如前阵子网友热议对司机发送“彩虹屁”的滴滴夸,其背后便是 DELTA 支持的自然语言理解模块:
另外,在滴滴与外部合作伙伴研发的车载语音交互系统中,整套对话交互系统是基于 DELTA 研发的。
谈及未来,韩堃表示在技术上,准备将 DELTA 的使用门槛进一步降低,让使用者更容易上手。开发 Auto ML 的功能,把参数调优进一步简化。在生态上,一是继续推广 DELTA,二是考虑加入顶级开源项目的孵化计划,以更高的标准去推动项目。
6.
关于开源的建议
滴滴开源是滴滴出行高级副总裁章文嵩推动起来,目前滴滴已对外开源了 39 个项目,涵盖AI、小程序、智慧交通、中间件、前端框架、研发工具等,Star 数已超过 5.6 W。
技术团队一开始是奔着内部项目来开发 DELTA,在内部开源后,得到一些积极反馈后,于是往外部开源,并在 2019 年的 ACL 会议上,配合滴滴的活动正式开源。
谈及开源,在 CSDN 《2019-2020 中国开发者调查报告》中,77 %的开发者每周在开源上投入时间不超过 5 小时,其中 1 小时以内的占 31 %。对此,据韩堃观察,国内互联网行业工作压力较大,在工作之余去做一个开源项目确实不容易。
另外,在国内的 IT 环境里,一些开发者对于技术本身长期深入追求不是特别大,更多的是看中短期的收益。但韩堃认为,好的开源项目往往是经过前期相当长的开发和积累之后再发力的,这可能会使得国内开源开发者的动力不足。
韩堃表示,开源本身是有乐趣的,热爱开源的开发者会继续下去的。以其相识的国外开源开发者为例,他们非常积极地参加各种 Meetup 和讲座,并与非开源圈子内的人做交流,让更多的人认识开源、并参与进来,这些都是非常有帮助的。
那么如何改善国内的开源生态?
韩堃表示,一方面需要业界领头人主动认识到开源的重要性,从顶层设计上去推动开源活动,另一方面也需要开发者们多和外界交流,让更多的人认识到开源不仅仅是开发者的自娱自乐,而是有巨大价值的。
关于DELTA▬点击上图可进入Github项目页DELTA 是滴滴AI Labs自主研发的基于深度学习的语音和自然语言理解的算法平台。DELTA 整合了包括文本分类、文本序列标注、语义理解、序列到序列文本生成、语音识别、语音特征分析等重要任务。DELTA还针对工业界常遇到的多模态数据提供了多模态训练。整个平台形成一致的代码组织架构,整体包装统一接口,也包含了完整的模型上线流程。可以做到便捷使用,简洁开发,( 传送门: https://github.com/didi/delta )
推荐阅读▬
更多推荐▬
滴滴开源 / Open SourceNightingale | FastLoad | Levin | AoE | Delta | Mpx | Booster | Chameleon | DDMQ | DroidAssist | Rdebug | Doraemonkit | Mand Moblie | virtualApk | 获取更多项目
技术干货 / Recommended article