NLP产品级系统设计模式

摘要: 在本文中,作者从六个方面描述了一些生产NLP系统的常见设计和部署模式。这些是团队为了使产品开发与技术、业务、战略和操作目标保持一致而必须做出的选择或权衡。

摘要:在本文中,作者从六个方面描述了一些生产NLP系统的常见设计和部署模式。这些是团队为了使产品开发与技术、业务、战略和操作目标保持一致而必须做出的选择或权衡。

虽然构建NLP系统可能很复杂,但是在构建NLP系统时,重要的是要记住,构建的系统需要解决某一个任务,并且只是实现这个目标的一种方法。在系统构建过程中,工程师、研究人员、设计师和产品经理通常有多个选择。虽然我们的书主要集中在技术或基础构建块上,但是将这些构建块放在一起来设计复杂的结构来满足你的需求将需要一些模式思考。模式思维和描述模式的语言是“在专业领域中描述好的设计实践或有用的组织模式的方法”。这在许多学科中都很流行(Alexander, 1979),包括软件工程。因此我们主要从以下从六个方面来研究这些设计选择:

1、在线系统和离线系统:在线系统是指需要实时或接近实时地进行模型预测的系统。有些任务,如打击垃圾邮件、内容审核等,本质上需要一个在线系统。另一方面,离线系统不需要实时运行。它们可以被构建并利用像Transductive Learning这样的方法同时在一批输入上高效运行。有些在线系统可能是被动的,甚至可以以在线方式(也就是在线学习)进行学习,但是许多在线系统是通过定期的离线模型构建来构建和部署的,并将其推向生产。使用在线学习构建的系统应该对敌对环境特别敏感。最近的一个例子是著名的Twitter聊天机器人Tay,一开始从通过网络进行在线学习。但是很快Tay就开始用攻击性的推特回应,其母公司微软在推出后不到一天就不得不关闭这项服务。系统构建的一个典型轨迹是首先构建一个离线系统,将其作为一个“在线”系统进行大量的工作,然后通过添加反馈循环并适当的改变学习方法使其成为一个“在线学习”系统。虽然这种方案在代码库中增加了不少的复杂性,但有的时候是非常有必要的。下图显示了“Facebook免疫系统”作为一个在线系统检测垃圾邮件的例子(大约2012年)。注意在线系统比类似的离线系统需要更多的工作。

2af69e70365b5fb3fd5acf9475bf3d77272f0e03 

2、交互系统与非交互系统:大多数自然语言系统都是非交互的,因为预测仅仅来自一个模型。实际上,许多产品级NLP模型都深入到数据处理的“Extract-Transform-Load”(ETL)管道的转换步骤中。因此在某些情况下,人类参与到预测的循环中可能会有帮助。下图展示了Lilt Inc.的一个交互式机器翻译接口示例,其中模型和人共同参与了所谓的“混合主动模型”(Green 2014)的预测制作。虽然交互式系统很难设计,但通过将人带入循环,仍然可以实现非常高的准确性。

d04bc0e3f9f260fdd3e29a19788bef9296bdf43c 

3、单模式系统与多模式系统:在学习和预测过程中合并多个模式可能会有帮助。例如,新闻转录系统不仅要使用音频流,还要使用视频帧作为输入。例如,谷歌最近的一项名为“Look to Listen”(Ephrat et al 2018)的工作,使用多模态输入来解决演讲者源分离的难题(又称鸡尾酒会问题)。多模态系统的构建和部署是昂贵的,但是对于将来自多个模态的输入组合在一起的困难问题,提供的信号在其他情况下是单模态无法实现的。我们在NLP中也看到了这样的例子。例如,在多模式翻译中,我们可以通过在可用的情况下合并来自多种源语言的输入来提高翻译质量。在为web页面生成主题(主题建模)时,可以将从其中包含的图像中提取的特性与页面上的文本合并在一起。

76318c9cbbe7edfa9af6e1d3f3a726b597f8615c 

4、端到端系统与分段系统:自深度学习问世以来,研究人员和工程师的另一个选择是构建一个复杂的NLP系统,要么作为不同单元的管道,要么作为一个整体端到端系统。端到端设计在机器翻译、总结和语音识别等许多领域都很有吸引力,在这些领域,精心设计的端到端系统可以显著地降低实现和部署的复杂性,当然还可以减少代码行数。分段系统将复杂的NLP任务分解为子任务,每个子任务分别进行优化,独立于最终的任务目标。分段系统中的子任务使它变得模块化,并且很容易“修补”生产中的某个特定问题,但通常伴随着一些“技术债务”。

805284e04b60c8ec9ef2c9125f99fc91a67d06c3 

5、封闭域与开放域系统:封闭域系统是为了单一目的而明确优化的,以便在该域中表现良好。例如,可以明确优化机器翻译系统使之与生物医学期刊一起工作——这需要对生物医学平行语料库进行训练。开放域系统旨在用于通用目的(例如Google Translate)。再举一个例子,考虑一个文档标记系统。如果系统只预测它所训练的许多类中的一个(典型的情况),那么它将导致一个封闭域系统。但是,如果系统被设计成在运行时发现新的类,那么它就是一个开放域系统。在翻译和语音识别系统中,封闭域系统也被称为“有限词汇”系统。

6、单语与多语系统:为使用单一语言而构建的NLP系统称为单语系统。建立和优化单语系统是很容易的。相反,多语言系统可以处理多种语言。当它们在一个不同语言的数据集上接受训练时,它们的结果是显而易见的。虽然构建一个多语言系统很有吸引力,但是专注于一个单语版本有它的优势。研究人员和工程师可以利用该语言中广泛且可用的资源和领域专业知识,以生产高质量的系统,而在一般的多语言系统中,这是不可能的。由于这个原因,我们经常发现许多单语系统集合的多语言产品被单独优化,并使用语言标识组件将输入分发给单语系统。

原文链接

本文为云栖社区原创内容,未经允许不得转载。

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

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

相关文章

2个vector如何合成一个_面试中如何做到不卑不亢,牢记2个要点

文│叨叨HR那点事(文章原创,版权归本作者所有,欢迎个人转发分享)面试的时候什么态度和面试官沟通?这个问题,就像一千个人眼里有一千个哈姆雷特一样,人人都有自己的意见和看法。有人说,面试嘛,当…

机器学习到底是什么?

摘要: 机器学习到底是什么东东?了解一下! 关于机器学习最简单的定义来自于Berkeley所表述的:机器学习是AI的一个分支,它探索了让计算机根据经验提高效率的方法。 为了更深刻的理解这一定义,接下来我们将对其进行拆分…

修改服务器时间报错,修改服务器时间linux

修改服务器时间linux 内容精选换一换IPv6的使用,可以有效弥补IPv4网络地址资源有限的问题。如果当前云服务器使用IPv4,那么启用IPv6后,云服务器可在双栈模式下运行,即云服务器可以拥有两个不同版本的IP地址:IPv4地址和…

windows 反弹shell_容器内反弹shell的51种姿势

什么是反弹shell?反弹shell(reverse shell),就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户…

使用Vue.js开发微信小程序:开源框架mpvue解析

戳蓝字“CSDN云计算”关注我们哦!作者 | 成全责编 | 阿秃转自 | 美团技术团队企业博客前言mpvue是一款使用Vue.js开发微信小程序的前端框架。使用此框架,开发者将得到完整的 Vue.js 开发体验,同时为H5和小程序提供了代码复用的能力。如果想将…

高并发下Java多线程编程基础

摘要: Java线程同步与异步 线程池 无锁化的实现方案 分布锁的实现方案 分享的目的: 进一步掌握多线程编程和应用的技巧,希望对大家在平时的开发中应对高并发编程有所帮助 Java线程同步与异步 1. 同步相关的方法有 wait, notify, notifyAll 2.…

deebot扫地机器人怎么清洁_扫地机器人清洁力拼杀,科沃斯机器人DEEBOT N3与小米1S对比评测...

“偷懒是第一生产力”,这句看似玩笑的话细细品味起来似乎还是有点道理,扫地机器人产业的逐渐兴盛又一次验证科技改变人们的生活方式。我自己生活中很少有时间去清扫地面,而且我是个很容易制造垃圾的人,几天不扫家里就脏乱的无法直…

机票分享第一篇 机票由何而来

要: 遥想05年刚加入飞猪,有同学问我机票搜索是怎么做的,一时间不知如何回答。转眼三年过去,为了给自己一个交代,抽时间把所负责的业务、系统、心得加以总结,才有了这几篇机票分享的文章。由于所用的技术、架…

java 获取ip地址_老杜带你学Java【第二课】

上期链接:老杜带你学Java【第一课】01写在前面欢迎来到杜老师的「零基础学Java」课堂~今后,我们就是Java软件工程师了。(此处应该有掌声???)本专题为《零基础学Java》专题,将带你学习2020年全新Java零基础教程,由杜老师亲自录制…

【光说不练假把式】今天说一说Kubernetes 在有赞的实践

戳蓝字“CSDN云计算”关注我们哦!作者 | 木鱼 on基础保障责编 | 阿秃一、背景我们为什么选择 Kubernetes?因为 Kubernetes 几乎支持所有的容器业务类型,包括无状态应用、有状态应用、任务型和 Daemonset,Kubernetes 也逐渐成为容…

Apache旗下顶级开源盛会 HBasecon Asia 2018将于8月在京举行

摘要: 作为Apache基金会旗下HBase社区的顶级用户峰会,HBaseCon大会是Apache HBase™官方从2012年开始发起和延续至今的技术会议,先后在美国加州、日本东京和中国深圳等地举办,得到了Google、Facebook、雅虎和阿里巴巴等众多全球顶…

r语言查找是否存在空值_关于R包安装你知道多少?

在R语言的学习过程中离不了各种R包的安装与使用,要使用某个R包首先得学会如何安装该R包。对于R包的安装你知道的有多少?你知道如何指定安装路径吗?为何你每次重新打开R绘画都需要重新安装R包?今天小编带你详细理解install.package…

深入理解JAVA虚拟机学习笔记(一)JVM内存模型

摘要: 上周末搬家后,家里的宽带一直没弄好,跟电信客服反映了N遍了终于约了个师傅明天早上来迁移宽带,可以结束一个多星期没网的痛苦日子了。这段时间也是各种忙,都一个星期没更新博客了,再不写之前那种状…

oracle schema_了解Oracle备份恢复的知识

Oracle架构体系警报日志(alter log):一个文本日志文件,记录数据库的错误和状态信息,通常情况下,警报日志位于后台转存目标目录中,该目录有数据库参数DIAFNOSTIC_DEST定义的,其中警报日志的格式为alter.log。…

美部长施压堵华为,遭印度电信巨头现场驳斥 ;WhatsApp被曝漏洞:仅凭一张GIF动图黑客便可接管账户……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 每周三次,打卡即…

实现Chrome Devtools调试JavaScript V8引擎

摘要: 最近开发小程序JavaScript的运行时,通过在客户端嵌入JavaScript V8引擎来实现。前端同学需要调试JavaScript代码,正好Chrome浏览器的Devtools是与V8的Inspector调试协议是一脉相承的,理论上是可以使用Chrome Devtools调试Ja…

angular7.2构建包如何兼容ie_Python 小技巧:如何实现操作系统兼容性打包?

转自:Python猫有一个这样的问题:现要用 setuptools 把一个项目打包成 whl 文件,然后 pip install 在 Windows/Linux 两种操作系统上,但是该项目中有一些依赖库只有 Windows 上才有(例如 pywinauto、pywingui、pywinrm)&#xff0c…

阿里云ET工业大脑发布AI视觉产品“见远”:电池片、车辆、路面都能被“诊断”

摘要: 7月24日,阿里云ET工业大脑发布AI视觉产品“见远“,可以利用深度学习和图像处理算法,自动识别图像中的瑕疵、故障及其他目标物,大幅节省人力,提高产品生产效率及精度稳定性效果。 7月24日&#xff0c…

最后2天,BDTC 2019 早鸟票即将售罄,超强阵容及议题抢先曝光!

大会官网:https://t.csdnimg.cn/U1wA2019 年12月5-7 日,由中国计算机学会主办,CCF 大数据专家委员会承办,CSDN、中科天玑数据科技股份有限公司协办的 2019 中国大数据技术大会,将于北京长城饭店隆重举行。届时&#xf…