当前位置: 首页 > 编程日记 > 正文

NLP技术落地为何这么难?里面有哪些坑?

AI 很火,但是 AI 的门槛也很高,普通的开发者想要搭上这波 AI 红利依然困难。

 

近期,人工智能公司推出了新一代智能 Bot 开放平台,它整合了小i机器人 Chatting Bot、FAQ Bot、Discovery Bot 三大核心能力,为企业和开发者提供智能机器人服务+人工在线服务+智能人机协作学习的完整使用闭环,除智能客服场景应用外,智能营销、智能外呼、智能硬件等多种不同类型的应用场景也将陆续开放。

 

平台开放的目的就是降低企业使用和拥有AI技术的成本与门槛,让企业和开发者快速开发出满足自身业务需求的智能服务系统或者具有智能交互能力的对话机器人。

 

近日,CSDN主编下午茶邀请到了小i机器人技术委员会轮值主席兼首席架构师李波,与我们一起探讨了NLP技术落地的难点,以及如何降低开发者门槛的问题,希望能对广大读者有所启发。

 

640?wx_fmt=jpeg


NLP的发展方向

 

AI科技大本营:能简单介绍下 NLP 技术吗?

 

李波:NLP 技术目前有两种,一种是基于规则,还有一种是基于统计。近年来,基于统计的 NLP 技术占据了上风,特别是深度学习出现之后,基于统计的 NLP 技术进展快很多。并不是说谁更优,或者谁更差,它们各有所长,比如基于统计的模型的泛化性比较好,但是它是一个黑盒。一些应用还需要两者结合使用,比如在问答系统中,有些机器回答并不是很友好,就可以利用基于规则的方法做补充,两者结合来达到产品化的程度。

 

抛开运算智能,人工智能主要包含两个层面,一个是认知智能,一个是感知智能。比如常见的语音识别、图像识别就属于感知智能的层面,目前比较成熟的 落地应用也比较多,而 NLP 则属于认知智能层面。NLP 往往需要结合上下文信息,甚至考虑背景知识、常识性知识等。另外,感知智能(如图片识别)的输入输出一般是单轮的(single-turn),但是 NLP 往往需要多轮的(multi-turn)交互后才能得到结果。目前 NLP 技术还处于发展的早起阶段,还有很多难点需要突破。

 

AI科技大本营:你觉得它未来还会有很快的进展吗?还有哪些需要探索的方向?

 

李波:常识和背景知识:用 NLP 做专业性很强的事情,可能效果会很好,反到是小概率简单的事情做不到,因为缺乏常识。想要解决这个问题就需要构建常识库,然后与模型结合,这是一个难点,也是大家比较愿意探索的一个方向。

 

多模态:人类是通过视觉、听觉等各种感观结合在一起来理解一件事情的,也就是多模态。假设 NLP 系统可以同时结合音频和视频来理解用户的意图,那么可能会有更大的突破。

 

预训练:这是近期大家可以尝试的一个热点。预训练在音频和图片领域已经得到了广泛应用,最近 Google 的 BERT 则是把预训练运用到了 NLP 领域,取得了不错的效果。这也是近期的一个热点,大家可以去尝试。

 

强化学习:在认知智能方面,强化学习也有些不错的方向。

 

NLP如何走出实验室

 

AI科技大本营:学术界的成果能够及时地应用到工业界吗?

 

李波:有些技术可以及时转化,有些技术还需要转化周期。这个转化周期意思就是说,我们要考虑商用模型的性能和准确率,此外还有其他的工程条件,满足这些标准之后,才可以把研究成果输出到产品。学术界训练一个模型只看最后的评价指标,也就是一个百分比的结果,但落地的时候考虑更多因素,比如一个准确率 99% 的模型,但剩下 1% 的工程化的工作量,不一定比99%工作量小。

 

AI科技大本营:从实验室到模型商用化落地,你们最关心什么?

 

李波:我们最关心的首先是要模型的可用性要达到工业化落地的标准,除此之外包括产品的 UI 设计、体验设计等也非常重要。NLP 不像图片和语音,在 UI 方面需要考虑的更多。比如机器翻译系统的准确率达到一定程度后,如果 UI 做得不好,用户体验不好,可能会对落地造成的很大的影响。这是一个系统化的工程,包括成本、用户体验,为客户带来多少价值等,都需要考虑。

 

AI科技大本营:关于 AI 创业公司落地难的问题,小i机器人有什么好的经验可以分享吗?

 

李波:跟图片和语音对比,NLP 特别难,NLP涉及到的多模态是它的一个难点。第二个难点是需要结合背景知识及常识。这两个问题在目前并没有很好的处理方式。小i 主要是结合基于规则+统计的方式,引入知识,比如我之前提到的领域语义库,目的就是融入常识和背景知识。最后就是个性化的问题,NLP 的输出往往和个体相关,不同的个体需要依据人物画像等信息给出不同的个性化的结果,这样才更接近人类的处理方式。

 

此外,NLP 的落地场景不是那么直接,需要结合客户或者是产品设计。比如做推荐,我们训练模型的关注点可能就是模型对应的几个指标,比如查准率等,但是客户看的是最后推荐的效果,也就是用户实际的评价和购买情况。因此,不管实验室的效果如何,在实际效果中,需要根据客户的反馈不断调整系统参数,调整训练数据,或者结合其他算法等等,以此来提高最终落地的效果。

 

上线运行之后,我们还需要根据运营的日志和客户的行为,再迭代模型,这是一个闭环。而不是说不结合实际场景,把模型训练好后直接投入使用,然后就不管了,不是这回事,需要根据运营的数据,不断调优迭代。

 

AI科技大本营:模型可控性的问题怎么解决?

 

李波:比如我们帮客户做的智能客服机器人,主要依靠混合模型引擎来达到可控的目的。另外也可以通过一些工程化手段来做到可控,如在问答中涉及到一些敏感的内容,我们可以通过前处理、后处理等方式及时干预,而无需更新模型、重启系统。在用户真实的使用过程中发现问题时,我们需要有渠道、有方法控制系统的输出,甚至逻辑,保证系统是可控的。

 

AI科技大本营:哪些方法可以使它可控?

 

李波:我们的混合模型引擎包含两种模型,一个是黑盒子,就是深度学习模型,另一个是语义理解模型,基于传统的语义表达式,可以用来做干预。语义理解模型可以直接通过语义表达式来进行更改,而深度学习模型想要干预则必须重新训练。因此我们可以让深度学习模型和语义理解模型同时作用,然后调整深度学习模型和语义理解模型的输出策略(如优先级策略等)来调优。

 

小i机器人如何收集数据?

 

AI科技大本营:小i机器人是如何积累数据的?

 

李波:主要是三个方面:第一,我们会通过爬虫去爬取相关的行业数据。第二,我们的云端产品产生的日志数据,会直接收集到我们的数据平台里。第三,客户提供的素材,我们会把它转化成数据和知识。

 

AI科技大本营:数据收集之后怎么处理?

 

李波:非结构化数据:首先我们会对收集到数据进行数据清洗,然后再按照知识的分类通过机器+人工方式将其归类,再通过一些手段(如规则等)做一些粗颗粒度的标注,之后由人工确认,确认完后入库。

 

半结构化数据:客户提供的原始带格式文档,通过格式规则分析或者机器学习模型等手段来进行分类或者聚类等辅助处理,然后再进行人工梳理,最后入库。

 

AI科技大本营:数据的处理靠机器和人工的结合?

 

李波:机器做前期辅助,人工做最终的确认,而不是机器处理之后直接入库。小i有一个大的数据平台和一个标注系统,还有一个实验室系统,共同运作来产生这些行业训练数据以及行业背景知识,然后以领域语义库的形式部署到实际系统中。


小i机器人如何赋能开发者?

 

AI科技大本营:现在有很多平台和工具可以帮助开发者去降低门槛,据我所知,小i最近也推出了新一代智能 Bot 开放平台,这个平台能给开发者带来什么?

 

李波:帮助中小企业或者开发者快速打造一个适应各种实际场景的AI系统。第一个落地的场景是智能客服,以问答能力为主,降低人工客服的成本。第二个应用场景是智能营销,以营销推荐为主,包括用户画像等,我们会在后期推出。第三个应用场景是智能外呼。后续我们还会推出更多的场景。开发者不仅可以直接使用这些场景,还可以基于每个场景的API来扩充应用的能力。

 

AI科技大本营:因为现在有各种各样的平台和工具,假设我是个新手,我就做一个小项目练练手,应该怎么做?

 

李波:这个平台的目的是降低开发者的门槛。开发者如果是自己收集数据,然后训练模型,开发周期很长,而且有很多的坑要趟。我们的这个平台有两个目标,第一,让用户可以直接使用;第二个,开发者可以基于这个平台扩充自己的能力。

 

使用我们的平台,开发者需要提供的数据只是问答的基本意图点,我们在底层有领域语义库做支撑,我们会自动在词的层面,在句法层面帮你扩充数据集,然后自动帮你去训练。

 

AI科技大本营:关于NLP技术的工程实践,您对开发者有什么建议吗?

 

李波:针对NLP的开发者有几点建议:首先,你要对相关技术有全面的了解,不一定要特别细化,这样对开发会有帮助;第二,一定要明确你的输入和输出;最后,开发者要更多地关注产品体验。

 

AI科技大本营:最后,您平时都是怎样自我学习的,有哪些经验可以分享下吗?

 

李波:互联网是一个非常好的渠道,我比较喜欢“碰到问题后在解决问题的过程中学习“的方式。如果你只是通过书本去学习,而忽略实践,就会比较虚。因此要结合实践,哪怕是做一些Demo尝试也可以。在尝试过程中遇到问题,然后通过各种方式去获取答案,而不是像学校里的传统方式去学习。


(*本文由 AI科技大本营原创,转载请联系微信 1092722531)


推荐阅读:

  • 刘铁岩谈机器学习:随波逐流的太多,我们需要反思

  • Google AI骗过了Google,工程师竟无计可施?

  • 老程序员肺腑忠告:千万别一辈子靠技术生存!

  • Python 2.7退休倒计时,Python 3必须学起来了(附入门学习资源)

  • 春运抢票靠加速包?试试这个Python开源项目吧

  • 华为 36 岁工程师猝死,曾 22 月无休:比挣钱更重要的是活着

  • 一个“垃圾” App,毁掉 70 万艺考生的命运?

  • 细数阿里达摩院2019年的十个Flag

  • 1年丢失140亿!你是区块链的受害者吗?|年度安全事件回顾

相关文章:

开源工具之valgrind

首先对源文件进行编译:Preparing your programCompile your program with -g to include debugging information so that Memchecks error messages include exact line numbers.-O0 a good idea if you can tolerate the slowdown-O1 line number in error message…

存储过程定义语法

CREATE PROCEDURE addTicket(in vipsql VARCHAR(255),in ordersql VARCHAR(255),in detailkey varchar(255),in detailsql VARCHAR(255)) comment 挂单(售药窗口) BEGIN DECLARE CONTINUE HANDLER FOR SQLEXCEPTION ,NOT FOUND rollback; start transac…

.NET : 针对Oracle的LOB数据访问

参考资料:来自Oracle官方网站 在 .NET 中使用 Oracle 数据库事务作者:Jason Price http://www.oracle.com/technology/global/cn/pub/articles/price_dbtrans_dotnet.html 在 .NET 中使用大对象作者:Jason Price http://www.oracle.com/techn…

MySQL数据类型--------浮点类型实战

1. 背景 * MySQL支持的浮点类型中有单精度类型(float), 双精度类型(double),和高精度类型(decimal),在数字货币类型中推荐使用高精度类型(decimal)来进行应用. * MySQL浮点型和定点型可以用类型名称后加(M,D)来表示&am…

山寨上网本溃败的两点教训

不是马后炮。08年11月份,笔者写过一篇《上网本难以复制山寨机的辉煌》(以下简称《辉煌》),从消费取向和价格两个方面着手,分析认为山寨上网本市场有限,难以复制山寨手机的市场奇迹。现在看来,笔…

分享一个expect的脚本

分享一个expect的脚本,可以用于Linux机器之间远程执行命令: #!/usr/bin/expect -fset ipaddress [lindex $argv 0] set user [lindex $argv 1] set passwd [lindex $argv 2] set cmd [lindex $argv 3] set timeout [lindex $argv 4]spawn -noecho ssh $u…

今晚直播 | 深入浅出理解A3C强化学习

强化学习是一种比较传统的人工智能手段,在近年来随着深度学习的发展,强化学习和深度学习逐渐结合在了一起。这种结合使得很多原来无法想象的工作有了可能,最令我们瞩目的莫过于AlphaGo战胜李世石,以及OpenAI团队的机器人可以在团战…

正则表达式口诀及教程(推荐)

正则其实也势利,削尖头来把钱揣; (指开始符号^和结尾符号$)特殊符号认不了,弄个倒杠来引路; (指\. \*等特殊符号)倒杠后面跟小w, 数字字母来表示; &#xff0…

ssh其他机器的Expect脚本

ssh登陆其他机器的Expect脚本 #!/usr/bin/expect -fset user [lindex $argv 0] set ipaddr [lindex $argv 1] set passwd [lindex $argv 2]spawn ssh -l $user $ipaddrexpect "password:" send "$passwd\r" interact或者: #!/usr/bin/expect -f…

今晚8点直播 | 深入浅出理解A3C强化学习

强化学习是一种比较传统的人工智能手段,在近年来随着深度学习的发展,强化学习和深度学习逐渐结合在了一起。这种结合使得很多原来无法想象的工作有了可能,最令我们瞩目的莫过于AlphaGo战胜李世石,以及OpenAI团队的机器人可以在团战…

40.lombok在IntelliJ IDEA下的使用

转自:https://www.cnblogs.com/yjmyzz/p/lombok-with-intellij-idea.html lombok是一款可以精减java代码、提升开发人员生产效率的辅助工具,利用注解在编译期自动生成setter/getter/toString()/constructor之类的代码。代码越少,意味着出bug的…

C++之Boost使用

1. Get & Build & Install Boost download boost from http://www.boost.org/ 进入boost目录,使用命令: ./bootstrap.sh --prefixpath/to/installation ./b2 install 如此之后: leave Boost binaries in the lib/ subdirectory…

这就是芬兰:先让全国1%的人学起AI!

译者 | 大鱼责编 | 琥珀出品 | AI科技大本营【AI科技大本营导语】全球最大的手机制造商诺基亚、著名游戏《愤怒的小鸟》的开发商 Rovio,这两大曾名噪一时的科技公司都来自同一个国家——芬兰。很多人会问:在如此激烈的竞争环境下,为什么如此小…

Linux 裸设备基础知识(转)

1、裸设备定义:一块没有分区的硬盘,称为原始设备(RAW DEVICE)或者是一个分区,但是没有用EXT3,OCFS等文件系统格式化,称为原始分区(RAW PARTITION)以上两者都是裸设备 2、裸设备的绑定有文件系统的分区是采用mount的方式挂载到某一个挂载点的…

吴恩达与LG握手合作!

图片来自LG官网作者 | 琥珀出品 | AI科技大本营在近日举办的 CES 大会上,人工智能领域知名科学家、Landing.ai 创始人兼 CEO 吴恩达(Andrew Ng)与 LG(LG Electronics)总裁兼 CTO IP. Park 在拉斯维加斯签署了战略合作伙…

linux上安装mysql,tomcat,jdk

Linux 上安装 1 安装jdk 检测是否安装了jdk 运行 java –version若有 需要将其卸载a) 查看安装哪些jdk rmp –qa |grep java b) 先卸载openjdk 1.7 c) 在卸载openjdk 1.6 使用rpm –e - -nodeps 卸载的包 安装jdka) 上传jdk到linux 使用Xftp5…

现代人的无知什么样

以前没有知识的人就是无知! 但现在变了!一个博士却不会用他的知识挣钱养家糊口算不算无知,一个人大学毕业却不会学习算不算无知,一个经理在自己的电脑上找不到自己存的东西算不算无知,有知识却不会表达的人算不算无知…

zz Expect的安装

转载一篇靠谱的文章,按照文章所述方法一次成功。只不过我的expect二进制文件最后实在tcl的bin目录下,而不是expect的bin目录下,这个令我有些疑惑,whatever,不算什么大问题,注意一下就好了。A. Tcl 安装 主页…

分享一个ssh打通的脚本

分享一个ssh打通的脚本,经过测试可用。目前只能单向打通,且要求本地用户名为admin(写入代码,可简单修改)。本身只是个人使用,故通用性、异常情况考虑不多,大家可以做个参考。 补充一点,Important Tip&…

从云计算到AI:NetApp的数据网络转型之道

毫无疑问,在 AI、大数据、云计算等新技术潮流的冲击下,各行业企业的数字化转型进程日益加速,社会正在进入一个全新的数据融合时代。这一过程中,人们一方面对技术予以高期待,期望给行业进行业务重构,但另一方…

侧方位停车技巧

侧方位停车技巧 侧方位停车相对来说是比较容易的,只要掌握要领就能够正确地倒入车位中。具体要领如下: 第一步先打右转向灯,挂倒档,保持车辆平稳、缓慢地倒车;第二步回头看桩,当右后车门三角窗中部与1号桩&…

微信是把“杀猪刀”,还改变了我的表情包

整理 | Jane出品 | Python大本营1 月 9 日上午,一年一度的微信公开课 PRO 在广州举行,会上发布了《2018微信年度数据报告》。报告的第一部分是 2018 年微信用户活跃数、发送消息与音视频通话数据;第二部分根据微信用户画像,针对不…

中缀、前缀表达式

为什么80%的码农都做不了架构师?>>> 一、后缀表达式求值 后缀表达式也叫逆波兰表达式,其求值过程可以用到栈来辅助存储。假定待求值的后缀表达式为:6 5 2 3 8 * 3 *,则其求值过程如下: 1&#xf…

Linux之tee命令

语  法:tee [-ai][--help][--version][文件...]补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。参  数:-a或--append  附加到既有文件的后面,而非覆盖它&…

在WinXP上通过Virtual PC安装WinCE

开发WinCE程序的调试,要么用Emulator,要么用触摸屏等等硬件,模拟器不真实,硬件又难找还不易随身带。象我这样穷得买不了带CE的PDA,懒得不想下巨型的PB、VS,要随时调试还真不容易。试过VMWare,效…

valgrind概述及错误分析

Valgrind由内核(core)以及基于内核的其他调试工具组成.内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具.而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。 Valgrind包…

超过C++、压制Java与C,Python拔得TIOBE年度编程语言!

作者 | 屠敏来源 | CSDN(ID:CSDNNews)如同两个月前,TIOBE 编程语言社区于官网预料的那般,2018 年的年度编程语言终将在一众老牌编程语言如 Java、C、C、Python、Visual Basic .NET 中诞生。近日,TIOBE 排行…

CodeArt SharePoint Permission Extension 1.0 beta publish

正式发布1.0版本,已经打包成wsp,请到以下地址下载:http://sppex.codeplex.com/Release/ProjectReleases.aspx?ReleaseId30671 解压后,运行wsp_addsolution.cmd安装解决方案,到管理中心-》操作-》解决方案管理安装解决…

《请不要回应外星人2019》

作者 | 若名出品 | AI科技大本营 今天早上,关于“加拿大天文学家发现 15 亿光年外讯号”的话题一度被推到了微博热搜榜第二位,当然也引发了全球范围内的关注。舆论导向都是,“人类该不该做出回应?”翻了一圈评论,人…

如何使用Log4j?

要学习什么是log4j,那我们也知道log4j能干吗??这里就不阐述了,可以自己去google1、 Log4j是什么? Log4j可以帮助调试(有时候debug是发挥不了作 用的)和分析,要下载和了解更详细的内容,还是访问其官方网站吧&#xf…