0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

我们如何实现通用语言智能

DPVg_AI_era 来源:cc 2019-02-13 09:28 次阅读

DeepMind新年力作《学习和评估通用语言智能》,从全新的角度对跨任务NLP模型进行了评估,探讨了要实现“通用语言智能”现如今的研究还缺失什么,以及如何实现通用语言智能。

2014年11月,那时候还没有被广泛认知为“深度学习教父”的Geoffrey Hinton,在国外网站Reddit回答网友提问的活动“AMA” (Ask Me Anything) 中表示,他认为未来5年最令人激动的领域,将是机器真正理解文字和视频

Hinton说:“5年内,如果计算机没能做到在观看YouTube视频后能够讲述发生了什么,我会感到很失望。”

幸好,现在计算机已经能够在观看一段视频后简述其内容,但距离Hinton所说的“真正理解文字和视频”,还有很远的距离。

无独有偶,统计机器学习大神Michael I. Jordan在2014年9月Reddit AMA中也提到,如果他有10亿美金能够组建研究项目,他会选择构建一个NASA规模的自然语言处理 (NLP) 计划,包括语义学、语用学等分支。

Jordan说:“从学术上讲,我认为NLP是个引人入胜的问题,既让人专注于高度结构化的推理,也触及了‘什么是思维 (mind)’ 这一核心,还非常实用,能让世界变得更加美好。”

一直以来,NLP/NLU (自然语言理解) 都被视为人工智能桂冠上的明珠,不仅因其意义重大,也表示着目标距我们遥不可及。

总之,NLP是个大难题。

前段时间在业内广泛流传的一篇“人工智障”的文章,本质上讲的就是目前NLP领域的困境。纵使有谷歌BERT模型所带来的各项指标飞跃,但要让计算机真正“理解”人类的语言,需要的恐怕不止是时间。

在最近一篇发布在Arxiv上的论文中,DeepMind的研究人员对“通用语言智能” (General Linguistic Intelligence) 做了定义,并探讨了机器如何学习并实现通用语言智能。

DeepMind新年力作《学习和评估通用语言智能》

实现通用语言智能,首先需要统一的评估标准

DeepMind的研究人员从语言的角度出发,根据近来不断发展的“通用人工智能”(AGI)的配套能力,也即能够让智能体与虚拟环境实现交互而发展出通用的探索、规划和推理能力,将“通用语言智能”定义为:

能够彻底应对各种自然语言任务的复杂性;

有效存储和重用各种表示 (representations)、组合模块 (combinatorial modules, 如将单词组成短语、句子和文档的表示),以及先前获得的语言知识,从而避免灾难性遗忘;

在从未经历过的新环境中适应新的语言任务,即对领域转换的鲁棒性。

作者还指出,如今在NLP领域存在一种非常明显且不好的趋势,那就是越来越多的数据集通过众包完成,量的确是大了,特别是在体现人类语言的“概括” (generalization) 和“抽象” (abstraction) 能力方面大打折扣,并不贴近现实中的自然分布。

此外,对于某一特定任务(比如问答),存在多个不同的数据集。因此,单独看在某个数据集上取得的结果,很容易让我们高估所取得的进步。

所以,要实现通用语言智能,或者说朝着这个方向发展,首先需要确定一个统一的评估标准。在本文中,为了量化现有模型适应新任务的速度,DeepMind的研究人员提出了一个基于在线前序编码 (online prequential coding) 的新评估指标。

接下来,就让我们看看现有的各个state-of-the-art模型性能如何。

对现有最先进模型的“五大灵魂拷问”

作者选用了两个预训练模型,一个基于BERT,一个基于ELMo。其中,BERT(base)拥有12个Transformer层,12个自注意力指针和768个隐藏层,这个预训练模型中有1.1亿个参数。另一个则基于ELMo(base),这个预训练模型有将近1亿个参数,300个双向LSTM层,100个输出层。

另有BERT/ELMo(scratch),表示没有经过预训练,从头开始的模型。

首先,作者考察了需要多少与领域知识相关的训练样本,两个模型才能在SQuAD阅读理解和MNLI自然语言推理这两个任务上取得好的表现。

纵轴F1代表在SQuAD阅读理解数据集上的得分函数,横轴代表训练样本量的对数值

答案是4万。而且,与领域知识相关的训练样本量超过4万以后,两个模型的提升都不明显,非要说的话,BERT模型在两项任务中比ELMo稍好一点。

那么,改用在其他数据集上预训练过的模型,同样的任务性能又能提高多少呢?答案是一点点。但在代码长度上,预训练过的模型要显著优于没有经过预训练的模型。

预训练模型(+supervised)与非预训练模型性能比较

作者考察的第三点是这些模型的泛化能力。实验结果表明,在SQuAD数据集上表现最好的模型,移到其他数据集,比如Trivia、QuAC、QA-SRL、QA-ZRE后,仍然需要额外的相关训练样本。这个结果在意料之中,但再次凸显了“学会一个数据集”和“学会完成一项任务”之间存在的巨大鸿沟。

在SQuAD数据集上性能最优的模型(得分超过80),在其他数据集上分数大幅降低

最后是有关学习课程 (curriculum) 和灾难性遗忘的问题。模型忘记此前学会的语言知识有多快?学习课程的设计与模型的性能之间有什么影响?

(上)将在SQuAD数据集上训练好的模型改到MNLI上;(下)将在SQuAD数据集上训练好的模型改到TriviaQA。两种情况模型的性能都大幅下降。

BERT模型用随机训练课程在各种数据集上取得的结果。实际上经过5万次迭代后,模型就能基本完成各项任务(超过60分)。

从实验结果看,在SQuAD数据集上训练好的模型改到MNLI或TriviaQA这些不同数据集后,模型性能很快出现大幅下降,说明灾难性遗忘发生。

虽然采用连续学习的方法,随机初始化,5万次迭代后,两个模型尤其是BERT,基本上能在各个数据集上都达到差强人意的表现。

通过随机训练,20万次迭代以后,BERT和ELMo在多项任务上的得分

但缺点是,这样的随机训练模型在开始不需要样本,转换新任务以后也不需要保留此前学会的东西。因此,在连续学习的过程中,知识迁移究竟是如何发生的,目前还不得而知。

综上,对一系列在各个不同NLP任务上取得当前最佳性能的模型进行实证评估后,DeepMind的研究人员得出结论:虽然NLP领域如今在模型设计方面取得了令人瞩目的进展,而且这些模型在很多时候都能同时完成不止一项任务,但它们仍然需要大量与领域知识相关的训练样本 (in-domain training example),并且很容易发生灾难性遗忘。

实现通用语言智能,我们还需要什么?

通过上述实验可以发现,现有的state-of-the-art NLP模型几乎全部都是:

拥有超大规模参数的深度学习模型;

事先以监督或非监督的的方式在训练样本上经过训练;

通常包含了多个针对某项特定任务的构件以完成多项任务;

默认或者说假设某项任务的数据分布是平均的。

这种方法虽然合理,但仍旧需要大量与领域知识相关的训练样本,并且非常容易发生灾难性遗忘。

因此,要实现通用语言智能,DeepMind研究人员在论文最后的讨论中指出,我们还需要:更加复杂的迁移学习和连续学习方法 (transfer and continual learning method),能让模型快速跨领域执行任务的记忆模块 (memory module),训练课程 (training curriculum) 的选择对模型性能的影响也很重要,在生成语言模型 (generative language models) 方面的进展,也将有助于实现通用语言智能。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • DeepMind
    +关注

    关注

    0

    文章

    126

    浏览量

    10713
  • nlp
    nlp
    +关注

    关注

    1

    文章

    464

    浏览量

    21832

原文标题:DeepMind:实现通用语言智能我们还缺什么?

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    fpga通用语言是什么

    FPGA(现场可编程门阵列)的通用语言主要是指用于描述FPGA内部逻辑结构和行为的硬件描述语言。目前,Verilog HDL和VHDL是两种最为广泛使用的FPGA编程语言
    的头像 发表于 03-15 14:36 180次阅读

    “单纯靠大模型无法实现 AGI”!万字长文看人工智能演进

    人工智能是指让计算机或机器具有类似于人类智能的能力,如学习、推理、解决问题和使用语言、常识、创造力、情感和道德等。
    的头像 发表于 02-19 14:22 472次阅读
    “单纯靠大模型无法<b class='flag-5'>实现</b> AGI”!万字长文看人工<b class='flag-5'>智能</b>演进

    思必驰探讨大模型下的智能座舱新生态

    为应对行业挑战,思必驰发布了定位为“针对垂域的、具有通用智能的行业语言大模型”DFM-2。它不仅具备通用语言计算大模型的所有AGI特性,包括文案创作、代码生成、逻辑推理、常识问答、多轮
    发表于 12-19 14:55 211次阅读
    思必驰探讨大模型下的<b class='flag-5'>智能</b>座舱新生态

    使用go语言实现一个grpc拦截器

    在开发grpc服务时,我们经常会遇到一些通用的需求,比如:日志、链路追踪、鉴权等。这些需求可以通过grpc拦截器来实现。本文使用go语言实现
    的头像 发表于 12-18 10:13 248次阅读
    使用go<b class='flag-5'>语言实现</b>一个grpc拦截器

    通用人工智能:初心与未来》-试读报告

    作者给出的结论。整体读下来,可以给我们关于通用人工智能全面的了解。作者也反复强调了通用人工智能与专用智能的区别。尤其是人们错误的认为一堆专用智能
    发表于 09-18 10:02

    OpenVINO™ 赋能 BLIP 实现视觉语言 AI 边缘部署

    通过视觉和语言感知世界。人工智能的一个长期目标是构建智能体,通过视觉和语言输入来理解世界,并通过自然语言与人类交流。比如,在《几行代码加速S
    的头像 发表于 09-04 16:21 399次阅读
    OpenVINO™ 赋能 BLIP <b class='flag-5'>实现</b>视觉<b class='flag-5'>语言</b> AI 边缘部署

    OpenVINO赋能BLIP实现视觉语言AI边缘部署

    人类通过视觉和语言感知世界。人工智能的一个长期目标是构建智能体,通过视觉和语言输入来理解世界,并通过自然语言与人类交流。比如,在《几行代码加
    的头像 发表于 09-01 10:26 2190次阅读

    人工智能语言是什么

    AI语言可以分为两类:一类是面向专业人士的AI语言,如Python、R、Matlab等,这些语言在科学研究、数据分析、机器学习等领域具有着广泛的应用。另一类是面向普通用户的AI
    的头像 发表于 08-13 10:33 2554次阅读

    人工智能语言有哪些

    人工智能语言有哪些 人工智能语言是一种编程语言,用于开发和实现人工
    的头像 发表于 08-12 17:12 2505次阅读

    人工智能用什么语言

    人工智能用什么语言 人工智能(Artificial Intelligence, AI)是指基于计算机的理论和技术,采用模拟智能行为的方法研究与开发
    的头像 发表于 08-12 17:12 2217次阅读

    用语言建模世界:UC伯克利多模态世界模型利用语言预测未来

    直接拿来当成指令,但却蕴含着丰富的世界信息。智能体很难了解这些语言在世界上的含义。 图源:谷歌机器人团队论文「Interactive Language: Talking to Robots in Real Time」。 UC 伯克利 Dynalang 研究的关键思想是,
    的头像 发表于 08-06 22:05 270次阅读
    <b class='flag-5'>用语言</b>建模世界:UC伯克利多模态世界模型利<b class='flag-5'>用语言</b>预测未来

    安信可Ai-WB2系列模组现已兼容Matter协议

    Matter协议的提出和使用,相当于给智能家居设备赋予了一种“通用语言”,用户只需在一个应用App上,就可以联动整个房间的智能设备。试想一下,当我们在家时,一个APP即可调动房间内所有
    发表于 07-23 12:51 262次阅读
    安信可Ai-WB2系列模组现已兼容Matter协议

    语言模型的发展历程 基于神经网络的语言模型解析

    简单来说,语言模型能够以某种方式生成文本。它的应用十分广泛,例如,可以用语言模型进行情感分析、标记有害内容、回答问题、概述文档等等。但理论上,语言模型的潜力远超以上常见任务。
    发表于 07-14 11:45 522次阅读
    <b class='flag-5'>语言</b>模型的发展历程 基于神经网络的<b class='flag-5'>语言</b>模型解析

    【书籍评测活动NO.16】 通用人工智能:初心与未来

    已经变得越来越复杂而强大,但计算机科学还远未创造出通用人工智能(General AI)。作者结合人类自然智能的认知机理以及人工智能发展的初心与使命,带我们从不同方面细致分析了当前人工
    发表于 06-21 14:41

    用C语言实现简单工厂模式

    我们的印象中,设计模式是由面向对象的语言(C++、JAVA)才能完成的,而 C 语言是面向过程的语言,不能实现设计模式。
    发表于 06-05 11:28 289次阅读
    用C<b class='flag-5'>语言实现</b>简单工厂模式