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

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

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

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

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

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

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

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

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

原文链接

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

NLP产品级系统设计模式相关推荐

  1. 使用 SKIL 和 YOLO 构建产品级目标检测系统

    01.使用 SKIL 和 YOLO 构建产品级目标检测系统 在本文中,我们采用最新的神经网络实现目标检测,使用SKIL平台构建产品级目标检测系统. 建立一个产品级的计算机视觉系统很难,因为有很多因素需 ...

  2. SCADE — 产品级安全关键系统的MBD开发套件

    随着新能源三电.智能驾驶等新技术的应用,汽车中衍生出很多的安全零部件,如BMS.VCU.MCU.ADAS等,相应的软件在汽车中的比重越来越大,随之而来的安全性.可靠性要求也越来越高. ANSYS主要针 ...

  3. 时间触发嵌入式系统设计模式 读书笔记

    1 下载地址: https://download.csdn.net/download/longzitailang8/10496129 本书前所未有地提出一整套软件模式,为开发嵌入式软件系统提供帮助.书 ...

  4. springboot+基于Java的果蔬产品销售系统 毕业设计-附源码131110

    中文摘要 本文首先先引入了在线购物网站系统除了后端内容管理系统的概念外,还介绍了所使用的相关技术,分析了当前的研究现状和发展趋势,研究了与目标系统,系统介绍和二次开发有关的主要技术: 然后重点关注系统 ...

  5. ●在线直播:3G名家大讲堂,分享企业级和产品级移动应用软件开发

    ● 手机版"Google热榜"研发工程师与您分享核心技术架构 ● 全程免费 网络直播 实时互动 业内专家精辟讲解 项目案例透彻分析 华清远见3G研发中心倾情奉献,全程解读主流移动平 ...

  6. 国内在线预订模式开创者驴妈妈旅游网:如何在混合云上搭建产品数据分析系统...

    直播视频: (点击图片观看) 3月11日云栖社区在线实时分享顺利结束,本次由驴妈妈技术副总邵汉成分享了驴妈妈旅游网基于混合云的OTA行业数据分析.精准运营和大数据用户推荐.本次视频直播的整理文章.视频 ...

  7. 智能家居核心网关产品级解决方案(MT7620N+zigbee)

    智能家居核心网关产品级解决方案 (MT7620N+Zigbee) V1.0 上海云隐科技有限公司 市场部 2017年12月15号 目录 1. 关于本文 3 1.1. 目的 3 1.2. 范围 3 1. ...

  8. s8050三极管经典电路_曝光一个产品级的红外发射电路

    作者:瑞生,来源:科技老顽童微信公众号:芯片之家(ID:chiphome-dy今天给大家一个产品级的红外发射电路.为什么说是产品级的?因为这个电路我已经在各类产品上见过多次!很多小伙伴学电子有一个误区 ...

  9. 【NLP保姆级教程】手把手带你RNN文本分类(附代码)

    写在前面 这是NLP保姆级教程的第二篇----基于RNN的文本分类实现(Text RNN) 参考的的论文是来自2016年复旦大学IJCAI上的发表的关于循环神经网络在多任务文本分类上的应用:Recur ...

最新文章

  1. pandas使用sort_values函数和groupby函数获取每个分组数值最小的前N行数据(n rows with smallest column value in each group)
  2. 地域和地方的区别_商标、品牌、LOGO,三者区别在哪里?
  3. 死磕Java并发:J.U.C之AQS简介
  4. 设计模式C++实现 —— 策略模式
  5. 第一章 计算机系统概述 1.2.3 计算机的多级层次结构 [计算机组成原理笔记]
  6. windows函数入口问题 UNREFERENCED_PARAMETER的用处 _tWinMain与wWinMain又有什么区别
  7. 通过Himal项目学习掌握asp.net MVC
  8. 知道建模中的UV吗?
  9. DDD结合整洁架构落地实践
  10. html个人空间制作,html+css+js制作简单网站首页
  11. gstarcad 2021|gstarcad pro2021(浩辰CAD) 64位附安装教程
  12. java中map参数封装到bean_JavaBean和Map转换封装类详解
  13. centos8安装jdk
  14. 最新计算机安全参考文献,最新计算机络安全参考文献 计算机络安全期刊参考文献哪里找...
  15. mysql里any是什么_【MySQL】mysql中any,in,some,all的区别
  16. 一个程序员的工作总结
  17. go-swagger简单使用
  18. Web开发者的福利 30段超实用CSS代码笔记
  19. 虚电路和数据报网络——网络层
  20. Win11强制删除文件

热门文章

  1. css 查看更多_在Scrapy中如何利用CSS选择器从网页中采集目标数据——详细教程(上篇)...
  2. 字节跳动测试开发4轮面试_字节跳动测试开发工程师一面总结
  3. 【LeetCode笔记】208. 实现Trie(前缀树)(Java、前缀树)
  4. 运行java是提示 选择未包含 main 类型 如何解决_RuoYi 若依 代码生成器使用教程...
  5. web中间件_常见web中间件拿shell
  6. bugku 杂项 就五层你能解开吗_9.65米解放龙V杂项危险废物厢式运输车62
  7. php箱子,webshell箱子php版本.rar
  8. linux mysql 实战_linux实用实战
  9. 直白介绍卷积神经网络(CNN)
  10. php session 封装类,PHP封装的数据库保存session功能类