大语言模型PPL_大语言模型PPL

 

在人工智能领域,大规模语言模型正取得迅猛的发展。所谓大规模语言模型,即参数规模达到千亿至上万亿的深度学习神经网络模型。大规模语言模型究竟有多神奇?被喻为“深度学习三巨头”之一的Geoffrey Hinton,也是2018图灵奖获得者,就此诙谐评价:“生命、宇宙和万物的答案,就只是4.398万亿个参数而已”。“4.398万亿”这个数字是如何得出的?其实,4.398万亿是2的42次方,而“生命、宇宙和万物的终极答案是42”则是科幻小说《银河系漫游指南》中的经典桥段。4.398万亿虽然没有什么科学依据,但Geoffrey Hinton的评论足以让大规模语言模型获得广泛的关注。

2018年底BERT模型的问世,标志着大规模语言模型的诞生。基于BERT,OpenAI推出了GPT2模型,达到了15亿参数。GPT2模型是首次参数达10 亿量级,后面就越来越像军备竞赛: 2020年3月,微软推出了图灵模型,参数量达到了170亿;三个月后的GPT3又把参数量翻10倍,达到1780亿;之后,谷歌的Switch Transformer达到了万亿参数。在中国,华为盘古达到了1000亿、鹏程盘古-α达到2000亿,阿里达摩院M6达到1万亿,智源悟道达到1.75万亿。

那么,现在的大规模语言模型都有哪些技术趋势以及哪些落地实践?微软全球合伙人、微软亚洲互联网工程院副院长、首席科学家姜大昕博士在近期的华泰证券“行知”新经济云峰会数字科技专场,介绍了大规模语言模型的技术趋势和落地实践。姜大昕表示,目前NLP自然语言处理处于一个美好的时代,虽然还有很多问题没有解决,但已经有很多成功的商业应用。随着面向NLP的大规模语言模型的工程化落地,将打开数字化转型的新阶段。

自然语言处理进入突破期

在人工智能领域,自然语言处理并不是最热门的领域。从市面上的投资分析来看,不论是投资金额还是公司数量,视觉识别和语音识别两个领域才是大头,自然语言处理了只占据了较小的一部分。不过姜大昕表示,在人工智能领域,都同意这样一个说法,即自然语言处理是人工智能皇冠上的明珠。一般认为,视觉和语音属于感知智能,自然语言处理属于感知智能之上的认知智能,不仅属于高级智能,也是通向真正人工智能的必由之路。

大语言模型PPL_自然语言处理_02

 

自然语言处理(NLP)的领域包括自然语言理解(NLU)、文本分析、搜索引擎、知识图谱、对话管理系统、推荐系统、基于知识库的问答系统、基于搜索的问答系统等,可广泛应用在机器翻译、广告、人机交互、金融、客服、物流等领域。由于自然语言处理对于认知智能的重要性,学术界和工业界对于自然语言处理技术的追求就没有停止过。

其中,有影响力的工作包括2003年Yoshua Bengio提出的一个神经网络语言模型,他也是2018图灵奖获得者、“深度学习三巨头”之一,但这个模型训练起来比较慢,所以并没有流行起来。十年后的2013年,Mikolov发明了词向量模型,极大简化和加速了Bengio模型,该模型非常简单且在实践中的效果非常好,虽然并不算是深度学习模型,但在当时成为了自然语言处理的一个标配。接下来的几年,自然语言处理一直在借鉴视觉识别和语音识别领域的重大突破性技术,比如循环神经网络、卷积神经网络、残差网络、生成对抗网络等等,这些技术起源于视觉和语音,但都被成功地移植到了自然语言处理领域。

针对语言自身的特点,自然语言处理领域也创新了一些独有技术来处理文字,例如序列到序列模型、注意力机制以及Transformer,近期像Transformer技术甚至反哺回了视觉识别和语音识别领域。但对于自然语言处理领域而言,至少在2017年的时候,颠覆性革命似乎还没有到来。

在视觉识别和语音识别领域,2015年和2017年是一个分水岭。2015年,微软亚洲研究院孙健博士所在的团队创造了一个深达152层的残差网络ResNet,在世界公认的图像识别数据集ImageNet上,将图像识别的错误率降低到了3.57%,而人类的错误率大概是5.1%。换句话说,在图像识别领域,2015年的时候,人工智能已经获得了超越人类的水平。到了2017年,语音识别领域也取得了历史性的成果——在全球最权威的产业标准 Switchboard语音识别数据集上,微软语音识别系统将错误率降低到了5.1%,首次比人类的错误率还要低。这是人工智能第一次在语音识别领域达到人类的水平,同时也标志着人工智能在语音领域取得了重大的突破。

当视觉识别和语音识别先后达到人类水平以后,自然语言处理是不是也能够取得类似的重大突破?能够在一些代表性的任务上也达到人类的水平?2018年底,一个叫做BERT的模型出世,横扫NLP任务各大榜单,比如在斯坦福著名的阅读理解测试集上超越了人类的准确率。

集大成的大规模语言模型

那为什么BERT模型这么厉害?姜大昕认为,BERT模型正好站在了一个爆发点上,可以说是站在巨人肩膀上的集大成者。在BERT之前,深度学习在自然语言处理领域已经取得了很好的发展,BERT可以说是把这些成果集成到一个模型里面,因此就显得特别的强大。

大语言模型PPL_语言模型_03

 

BERT模型的优点到底在哪里?首先,BERT作为一个深度神经网络,其特点是能够自动地从数据当中抽取有效的特征表示,从而避免了人工设计特征也叫特征工程这样一个费时费力的步骤。

第二个是BERT采用了自监督学习的方式。它发明了一个能够自己构造训练数据的方法,可以利用海量互联网上的网页数据作为训练数据集,这样就避免了过拟合的问题,从而可以训练上亿参数的大模型。

第三个特点,BERT模型采用了预训练加微调的新范式,这开创了自然语言处理的新范式,学界和业界认为这正式宣告了所谓大规模预训练模型时代的到来。以前进行自然语言处理的任务,往往需要根据不同任务而选择相应的模型,而不同任务的模型往往也不同,这样会导致不同训练任务的训练数据无法共享,那么意味着每个任务只能从零始训练模型;此外训练出来的模型也只能为特定的任务服务,不同任务的模型无法混用,因此只能为特定的任务用小数据训练小模型,这样就极大地限制了自然语言处理技术的应用。

而BERT模型的特点在于将训练拆分成了两步。第一步叫做预训练,也就是用自监督方法学习语言特征表示得出的模型,就被称为是大规模的预训练语言模型,这个预训练模型可以从大量的文本当中学到许多语法知识、语义知识,这些知识都被存储到了模型的几亿个参数当中。尽管人类很难解读这些知识,但是这些知识确实可以帮助模型更好地执行不同自然语言处理的任务。当通过第一步得出预训练模型后,再处理给定的特定的自然语言处理任务,只需要用比较少的训练数据,就能够在目标任务上达到较好效果。后面这一步就是从预训练模型到训练出特定下游任务的模型,这一阶段被称为是模型的微调。姜大昕形象地比喻,预训练模型就像是本科生学习各种基础课,而微调则像是研究生学习专业课,如果基础知识掌握得比较牢固,那么学习专业课就比较容易了,这是BERT的主要思想。

BERT模型问世以后,预训练模型在不停的发展,微调手段也有不同的变化,但是预训练加微调的两阶段训练方式就成为了当前自然语言处理的主流,被认为是自然语言处理的新范式。当然BERT还借鉴了其它的一些成果,比如用到了Transformer里的Full Self-Attention(完全自注意力)。

BERT模型的出现宣告了预训练时代的到来。各大公司都延着BERT思路,将模型做得越来越大,能力也越来越强。可以说大规模语言模型的参数正在呈指数级增长,非常类似摩尔定律。而预训练技术和大规模语言模型,正在快速推动的自然语言处理领域的发展,使得大量应用落地成为了可能。

大规模语言模型的工业化落地实践

姜大昕所在的微软亚洲互联网工程院,目前主要负责微软全球产品的研发工作,包括微软的必应搜索引擎、智能语音助手、Azure认知服务以及Microsoft 365的自然语言理解系统等。姜大昕介绍,对于包括大规模语言模型在内的各种人工智能模型落地实践工作,微软亚洲互联网工程院主要通过自研的Carina AI平台,帮助中国企业落地和实践人工智能技术。

微软亚洲互联网工程院主要在微软内部主要负责全球产品的模块技术打磨,无论是微软搜索引擎或者是微软办公系统,都是非常庞大的系统,有上千人的开发团队,微软亚洲互联网工程院团队主要是通过各种算法提高微软产品的性能指标。不过对于服务外部客户,还缺乏对企业需求的真正了解。约在四年前,微软亚洲互联网工程院开始和企业合作,共同探讨数字化转型的道路,通过接触很多的企业和政府部门,发现数字化转型的共同痛点,比如无论是自建AI能力还是采购AI解决方案都有一定的问题,包括技术黑盒、可拓展性差、无法与自建系统进行深度集成以及开发人员成本昂贵、技术门槛较高等等。

大语言模型PPL_自然语言处理_04

 

经过一段时间的讨论以后,微软亚洲互联网工程院找到了两个路线之间的折中路线,这就是Carina AI平台。Carina AI平台包含四层:数据层、平台层、工具层和业务层,微软亚洲互联网工程院主要负责开发平台层和工具层,企业团队或是业务人员在平台和工具之上,根据具体的业务场景开发相应的应用。这样,企业可以享受到成熟技术的好处,同时微软作为厂商也不需要特别深入理解企业的具体业务。

实际上,Carina AI平台是吸取了微软内部AI平台的精华,开放出来给所有企业提供一套开发环境。在微软内部,有专门的团队负责类似的AI平台,给所有内部人员提供强大的开发环境支持,经过多年实践和不断开发验证以及改进已经变得稳定好用,可以稳定支持上千人同时协同开发。具体来看,Carina AI的平台层是围绕着机器学习模型的生命周期,为开发人员提供模型的开发和部署的环境与工具,整体框架包含了四个平台——训练平台、部署平台、调度平台和共享平台。

目前Carina AI平台已经服务于多个客户,也得到了非常好的反馈。例如与华泰证券合作的例子,部署在华泰的Carina AI平台面向信息技术部和相关业务部门,平均每天的使用人数约为上百人,目前该平台已经稳定运行了三年多,主要提供的功能包括统一调度数据和计算资源,提供数据科学开发平台和大数据的量化分析等,有效提升了整体的业务分析能力和策略研究的效率。

在平台层之上是工具层,Carina平台的工具层提供各种自然语言处理任务的模型、调用接口和定制化工具,赋能业务层构建各种场景下的应用。

在实践当中,Carina平台的工具层主要解决了三个挑战。首先是自然语言处理任务种类非常多,算法也不一样。例如语法分析、语义分析等,每个类别下面也有很多应用,比如语法分析之下有分词、词性标注、依存分析等等。如何很好地涵盖这么多的任务?这是一个挑战。

第二个挑战是训练自然语言处理模型,需要大量的标注数据。这些标注数据的代价往往非常昂贵,而且工业级应用追求高质量模型,高质量的模型就需要高质量的标注,但是标注质量越高也就意味着代价越昂贵。这是第二个挑战。

第三个挑战就是通用模型往往在细分领域表现不佳。即使是同一个任务,在不同的领域也需要适应。那么如何根据领域的特点,灵活地加入领域知识的优化模型?这也是一个挑战。

为了应对三大挑战,Carina平台的工具层制定了四步走策略。第一步是训练大规模的预训练模型。第二步在预训练模型的基础上对不同的任务进行微调。第三步是针对不同的领域进一步进行微调。最后一步是把大模型通过知识蒸馏的方法进行压缩成为小模型,然后部署上线。

第一步,预训练大规模语言模型,Carina采用了微软自己的图灵模型。也就是在2020年3月份发布的具有78个Transformer层、参数量达到170亿的微软图灵模型。该模型在当时发布的时候,是世界上最大的预训练模型。Carina通过一系列的硬件和软件加速,将该超大规模的模型训练出来。超大规模的图灵模型为Carina处理后面所有任务,打下了很好的基础。

第二步,对大规模语言模型进行微调。针对不同任务进行微调时,就需要标注数据,不同任务的标注数据是不一样的。Carina使用了微软自有产品数据作为微调基础,例如必应搜索引擎用到了大量不同类型的自然语言处理任务,已经累积了大量的标注数据。除了搜索引擎之外,Office、Dynamics、Linkedin甚至是 Xbox也都有积累的标注数据。有了这些标注数据,可以说Carina平台上的每一个任务的表现都是经过实战检验的,能够满足工业级应用。

第三步,是要通过微调使得模型能够适应特定的领域。在这一步,Carina平台就不再贡献现成的模型或者参数,而是提供工具让平台使用者能够非常方便地加入领域知识和数据,使得模型能够很好地适应不同的领域。

最后当模型完成微调后,仍是上千亿参数的大规模模型,这是无法发布的。所以最后一步还要对模型进行压缩,以方便进行发布。最常用的方法就是所谓的知识蒸馏,让大模型产生训练数据来训练一个小模型,通常小模型只有几十兆的模型参数,再经过软件和硬件的优化以后,在实践中即使在CPU上也能够跑得起来。而Carina平台上的“蒸馏”过程,可以做到一键式完成,对用户来说是透明的。

目前Carina平台已经服务多个客户,包括券商、银行、医疗、地产等多个行业。某商业银行在Carina平台上打造的NLP文本智能中台和MLOps工具链,主要是运用在银行的智能客服、智能投研、智能风控等等场景当中。某房地产公司采用Carina平台作为人工智能中台,服务于智能审图、文档审核、钢筋清点等多个设计、法务、物业等方面的应用场景。

大规模语言模型的未来展望

针对大规模语言模型的未来,姜大昕认为概括来说有两点:一是跨语言和多模态,这两个方向目前是学术界和工业界都在努力攻关的热点方向,有望在未来几年时间内能够得到较好的解决;二是常识和推理,仍然任重而道远,可能是需要很长时间才能够解决的。

首先是跨语言。机器学习领域经过了多年的发展,迎来了深度学习和大规模预训练模型的爆发。近期,图灵奖获得者Raj Reddy教授认为,在未来十年的时间里,机器翻译的问题可以被彻底解决,彻底解决指的是包括小语种也能够进行自由的互译。

跨语言模型的现状是什么呢?它正在处于高速发展的时期。跨语言模型不仅仅是狭义上的机器翻译,还包括支持上百种语言的自然语言处理任务模型。过去两年中,在自然语言处两大顶级大会ACL和EMNLP上,语言模型录用的论文数量都超过了100篇,所以在学术界是一个非常活跃的领域。同时在工业界,跨语言模型也到了成熟落地的时期。以微软产品为例,许多微软产品都要求支持100多种语言、200多个地区。

看几个微软产品的例子。必应搜索引擎目前是跨语言的,可以为世界上100多种语言、200多个地区提供这个搜索服务;而在搜索的同时,还为100多种语言提供自动拼写纠错功能。 Outlook邮件里也有自动回复功能,也就是如果用户收到邮件,对方意图非常明显的话, Outlook会提供自动回复框,通过点击回复框的内容,就可以自动回复了,该功能目前也支持绝大多数主流语言。Microsoft Teams里面的智能助手,可以与之进行语音交互,这个功能也为多个语言提供了语言理解服务,能够准确地识别用户的意图。

姜大昕强调,跨语言模型在中国市场有很多机会,例如一带一路的发展战略,很多企业出海需要打通语言障碍,将出现潜在的应用场景。

微软亚洲互联网工程院进行了很多跨语言的研究和产品落地。从实践来看,跨语言还存在几个问题。一是对于语料丰富的大语言已经实现了工业级应用,但对于许多小语言,由于语料的贫乏,效果仍然不是很好,尤其是双语平行数据的缺乏,因此处于五六十分的水平。所以研究的重点在于如何把大语言丰富的语料知识迁移到小语言上。二是即使对语料丰富的大语言来说,尽管已经有了工业级的应用,但在实际应用中也只达到八九十分的水平,而最后的10到20分很难拿到。

其次是多模态,也就是让计算机拥有处理不同模态信息的能力。模态包括语音、文本、图像、视频、知识等,每一个都是一个模态。以前,几个模态平行发展,互相之间很少有交集。而出现大规模语言模型后,就可以互相交流,但很难用一个模型同时接收多个模态的输入,这个以前是没有的。

多模态学习,是当前人工智能领域的一个热点方向。多模态学习在工业落地方面,一个体现是搜索引擎,比如在必应搜索上用文本可以搜索到图片和视频,现在一大进步就是能够很精确的定位到搜索相关的视频上,这样一个功能就需要文字和视频的信息进行紧密的融合。多模态的应用也是非常多的,比如增强现实、虚拟现实、虚拟人类等方向。如果多模态的研究能够取得突破的话,相信这些领域的应用也会得到飞跃式的发展。

当然,如果要让机器理解常识的话,就得需要机器能够把多种模态联系起来。因为人类获得常识的途径往往不是单纯通过文本,而是通过自身在现实世界中的体验,而体验一定是多模态的。而如果让机器获得人类自身体验比较困难的话,退一步能够让它观察现实世界的体验,对理解常识也会有所帮助,那么观察体验也是多模态的。从这个意义上来说,多模态领域对推动整个通用人工智能的发展,意义重大。当然了,多模态也遇到一系列挑战,比如缺乏平行训练数据、如何生成长序列、生成高精度序列等等,都是需要进一步的解决。

如果跨语言和多模态有希望在近几年内取得突破的话,常识和推理涉及到通用人工智能概念,那么要想人工智能在开放领域拥有常识和推理的能力,确实还是任重而道远。因为如果在一个小范围、一个闭域、一个具体的特定领域,让人工智能具有一定的常识和一定的推理能力,目前是可以办到的。但是在开放领域怎么拥有普适的常识和推理能力,这是非常难的。其实现在也经常看到,一不小心人工智能就变成了人工智障。所以这方面许多学者也有很多的辩论,认为通用人工智能的发展一定要通过脑科学、心理学、神经学多个科学的融合,这也是将来的一个方向。

整体来说:目前自然语言处理处于一个美好时代,更是一个黄金时期,虽然还有很多问题没有解决,但是已经有很多成功的商业应用。相信随着大规模语言技术的进一步发展,一定能够打开数字化转型的新天地,推进通往通用人工智能之路。(文/宁川)