将整个人工智能看成一个很大的皇冠,
自然语言处理就是皇冠最顶端的那个亮点。
宗成庆·中国科学院自动化研究所研究员
格致论道第94期|2023年5月5日杭州
大家好,我是宗成庆,来自中国科学院自动化研究所。今天我跟大家来聊一聊大语言模型。
什么是自然语言处理
在讲这个问题之前,我们先思考一下,什么是语言?语言是人们交流思想、表达情感最直接、最方便、最容易的一种方式。人从生下来第一声啼哭开始,就希望通过语音和别人进行交流,表达自己的祝愿,语音本身就是语言的一种属性。
当人们学会了说话、写字,学会了使用各种各样的通信工具以后,就可以随时随地和别人交流。我们希望可以在任何一个地方、任何一个国家,使用任何一种语言获得信息,表达自己的思想。
在这种情况下,人们希望计算机能帮助我们破除一些语言的障碍。因为每个人所掌握的语言是有限的,全世界正在使用的语言有4000多种,不可能什么语言都懂。很多事情我们做起来非常麻烦,计算机能不能帮助我们呢?
另外,当你打开网络,上面有很多很多信息,根本看不过来。大量的信息到底哪些是最重要的?之前我们随便打开一个网页,向计算机提出一个问题时,几乎所有计算机系统没办法直接给出答案,很多时候要靠自己去思考、分析一篇篇文章,最后得到结论。
网络上还有很多图片,很多Flash广告。这些广告对大多数人是没用的,像我根本不在乎。还有文本、视频,视频有兴趣我可能会点开看,也可以不看。这么多内容,怎么能够让计算机来帮助我们提高工作效率?
另外,除了我们熟悉的语言外,还可能有其他各种各样的语言的信息。在信息爆炸的时代,怎么利用这些信息?非常非常麻烦,不管是写作也好,还是获取信息也好,我们需要计算机技术的帮助。
这项技术就叫自然语言处理技术。通过计算机自动地帮助我们理解、分析、挖掘语言文本,甚至帮助我们写作、获取信息,实现推理、说话、听声音、做翻译……各种各样和语言文本信息处理相关的计算技术,就是自然语言处理技术。
这些技术不仅涉及语言本身的问题,还涉及到人的情感,涉及历史文化知识,所以对语言的分析是非常非常困难的。因此,我们常把自然语言处理称为是“人工智能皇冠上的明珠”。
整个人工智能可以看成一个很大的皇冠,它研究各方面的技术,其中自然语言处理是最顶端的那个亮点。它要理解人的语言,必须理解人的需求、人的目的、人的感受、人的意图,这是非常非常困难的。
其实,这样一项技术对在座各位来讲可能不是太陌生,或多或少已经接触过了,比如说语音助手。语音本就是对人声音的一种处理,也算是对语言技术的一种应用。包括机器翻译,当你看到一篇外语的文章时,希望计算机帮助我们翻译一下,这本身也是自然语言处理技术的一个具体应用。
刚才说过,人的需求是非常多的,除了翻译和语音助手外,还想要做各种各样的事情,包括写作,包括更复杂的一些问答等等。
聪明又愚蠢的
已完成:20%//////////
最近一段时间,可能有一项技术让大家看到了摘取皇冠明珠的希望,或者说至少是向这个目标迈进了一大步,这项技术就是。它具有非常强大的能力,很多人可能已经试过了,下边我跟大家交流一下我曾经尝试的结果。
▲第一次试验 (2022.12.15)
2022年12月15日,北京飘着雪花,我自己在家办公。我就问它“我们聊聊滑雪吧”。
回答说,“它滑不了雪,因为它只是一个语言模型,没办法对外边世界进行感知”。
我又说,“你能写一首关于大雪的诗吗”,它很快写给我一首诗。对我这样一个不懂诗的人,觉得它写得很好。
但我说“有点不押韵”,它表示了歉意,给了我一个看上去还挺不错的回答。下边我就考它能不能做别的事情,能不能把这首诗翻译成英文,它很快翻译成英文。我一看翻译得非常准确,没有问题。
接下来我又问它一个问题“你能不能把这首诗改成散文”,其实我要考它什么呢?考它知不知道散文和诗歌的区别。我以为它会把那首诗拼凑到一起,结果不完全是这样,它增加了一些内容,我觉得写的挺好。
后来我就告诉它我要下班了,结果它马上祝我有一个愉快的下午。当时我感到很吃惊,大家想想的系统是在美国,我在北京,美国和北京的时差至少差12个小时,它知道我在什么地方,所以祝我有一个愉快的下午,证明它非常聪明。
从的写作情况来看,它有很强的能力。它完全能够理解我想表达什么意图,而且写出来的句子非常流畅、规范。感觉很多时候它写的句子比我的学生还好,这让我很吃惊。
▲医学问题
除了写作以外,我又问它医学方面的问题。我喜欢运动,前段时间我运动让脚有点问题,我问“前掌有点麻木应该怎么处理”。结果它的回答是这样,“可能有4种原因,一种是运动损伤,一种是跖筋膜炎,再一个是足底筋膜纤维化等等,还可能有一些神经性问题”。
这个回答和我在医院里得到的答案几乎一样,我为这个事跑了好多家医院,大夫跟我说的和差不多,或许他们都是从同样的教科书学来的吧。
▲ 法律问题
我又问了一些法律性问题。比如说两个人在饭店里一起吃饭,发生了纠纷,A打了B,应该怎么办?派出所民警来了以后把他们带到派出所去了,该怎么处理?它给我了非常周全的回答。
它说,第一应该对A和B进行询问和取证,然后进行医学鉴定,根据相应法律做处罚。最后有一条让我感到很吃惊,它说应该加强宣传教育。非常全面,可以说滴水不漏,是非常好的一个回答。
▲ 算术问题
我还考它一些算术题。不能光写作文,看看算术怎么样。这一次我用英文问它,“当我6岁时,我妹妹是我年龄的一半,现在我已经70岁了,妹妹现在多大”。
它很快给我一个结论,它能算出来我6岁时妹妹3岁,年龄差是3,我现在70了,70减3就是67岁,非常聪明。当然这个题也不太难,但是证明什么呢?它可以做这样一些文字表达的、应用性的算术题,而且做得很好。
复旦大学的邱老师曾经做过一个实验,让做一下2022年的高考题。它能够在126个样本上,在客观题上达到76%的准确率,这是比较高的,相当于文科、理科500分水平的考生。对主观性的题目,它能够在历史、地理、政治这些试卷达到78%的得分率,已经相当不错了。
实际上,它在各种各样的任务测试里,大多数都能够达到中等以上水平,这是我们以前没想到的,它竟然具有这样强大的能力。
当然我们也别太乐观,当问到一些其他问题时,它可能回答得并不如意或者说非常糟糕。比如说我问它“鲁迅和周树人是不是一个人?”结果给出的答案让我非常失望。大家都清楚鲁迅就是周树人本人,我甚至不知道它下边这个周懋华是怎么来的。
我也问了这样一个网络上别人问过的问题,关于林黛玉能不能倒拔垂杨柳。实际上这是故意设置的陷阱,结果它知道这是发生在荣国府里的一件事。但故事大家都看到了,我就不细细读了。中国人都知道,林黛玉是《红楼梦》里的,和《水浒传》里的倒拔垂杨柳完全不是一回事。
我又问它一个鸡兔同笼的问题,这是三年级小孩都会做的算术题。结果它说了一大堆,基本意思知道,它还列了一个方程,看上去像那么回事。但仔细读,我加黄的文字其实都有问题。
因为只知道头的总数不可能算出这个题来,它需要有两个条件,要知道鸡是两条腿,兔子是4条腿。而如果鸡和兔子一共36个头、94只脚,可以很容易得到答案应该是25只鸡、11只兔子,可它给出的答案完全错误。
很多时候它会“一本正经地胡说八道”。比如我问它两个人在饭店里打架那件事,它有时会告诉我一个结论,根据《中华人民共和国刑事诉讼法》多少多少条,应该对A刑事拘留15天,对B罚金2000块钱。其实我一查《中华人民共和国刑事诉讼法》,都没有那一条。
所以它本身有很多内生性缺陷,它在臆想,它每一步怎么做出来的我们也不清楚,这里面有很多很多问题。另外,这个系统在构建过程中,因为不断有调试人员来帮助它修正错误,这个机器要和调试人员的答案保持一致,我们叫“对齐”。如果调试人员本身是错的,或者他的观点只代表自己,就会直接影响到机器。
当然还有很精深的专业知识,比如说更精深的医学或者生物、物理、化学的一些知识,可能它没办法做得更好。这也很正常,因为人也是一样,不可能面面俱到、所有能力都很强,而且人也会犯错误。
自然语言处理的关键技术
已完成:50%//////////
我们更关注的是,它为什么会有那么强大的能力?而且在所有领域、所有专业上都表现的比一般人、大多数人的水平还要高。接下来,我们就对它的理论、方法做简单的介绍。
对我们从事自然语言处理研究的人来讲,所用的并不是很新的技术。它是一个语言模型,语言模型在上个世纪80年代就已经提出了,从神经网络语言模型、注意力机制、预训练语言模型到大语言模型,一步步发展到今天。
语言模型用于计算一段文字的概率,统计在给定一些词汇时,下一个词可能会出现什么。大家想,当你看到一个句子“那是2023年阳春”,下边的词应该接“三月”,对吧?因为“阳春”后跟着“三月”的可能性最大,这种可能性就叫概率。
通常情况下,我们根据当前临近的几个词选定。假设用3个词来预测当前这个词,加上预测出来的词就是4个词。我们把这4个词叫做一个n元词组或一个n元组,这就叫做n元语法模型。
这就是生成式语言模型的基本思路。我只要给你几个词,就可以接着推算或预测出下边将有可能出现什么样的词。大多数人说话都是有规律的,可以根据大量的语言资料去做统计。
但这个方法有一点问题,是什么呢?我只能采用有限词汇,前边更长的历史性条件没法充分利用。而且不同的词即使语意比较接近,也没法互相替换。
▲ 神经语言模型
所以后来人们采用神经网络的方法来解决这个问题。即使句子很长,它可以从句子一开始,把前边所有的词都利用起来,经过神经网络多次变换,它预测出现的下一个词就更加准确。
这样就可以写一个很长很长的句子。就像这句话可以直接编下去,它不仅可以预测出阳春后的“三月”,而且可以顺着往下编“一个早晨,美丽的西子湖畔”等等。它可以写出一段话,甚至一篇文章,这就是神经网络的好处。
▲ 注意力机制
同时我们考虑到,人在看一个句子时并不是平均地对每一个词花同样的时间。有些词会看很长时间,我要琢磨这个词,同时要考虑这些词和词之间是什么样的关系。
因此人们又提出“注意力机制”的概念:不同词在理解句子时发挥的作用不同,我们就给它赋予不同的权重。同时考虑这些词上下文之间相互的关联,利用这些信息来共同预测下边可能要出现的词汇。
把注意力机制融进来以后,就可以在已有的大规模语言资料上做统计,统计出任意的词相互之间出现或者说处在相同上下文里的概率,每一个词应该赋予什么样的权重表示最准确。这些数据通常情况下用向量表示,都称作参数。
▲ 预训练语言模型
通过这些参数,我们可以在大规模数据上事先训练,这就是预训练语言模型。
然后针对一些特定任务可以事先训练。比如说让机器做翻译“请你把下边这句话翻译成英文”,这是一个指令,然后给它正确的翻译结果,让机器照着例子去学。就像老师上课一样,出一个例题,让你照着例题去做。根据一些特定任务、通过一些指令一条条来调试它,叫做“微调”。·
除翻译以外,还可以教它做摘要,和它对话、做问答等等,所有任务都会做大量这样的调试。我可以构造出在很多很多任务上都能让它表现比较好的模型,这就是后来出现的不同版本的GPT( Pre- ),也就是生成式预训练模型。
从2018年推出第一版GPT到2019年的2.0版本、2020年的3.0版本,再到2022年11月底(11月29号)的3.5版本,3.5版本我们通常叫,2023年3月份又推出了4.0版本。
这张表粗略给出了不同版本每一个模型所拥有的参数量。所谓的参数,包括给定某些词的概率,不同词出现在不同上下文里的权重、注意力机制大小等等。从3.0版本开始,参数量非常非常大,到1750亿个参数,因为它几乎用了2021年之前全网的数据,做了一些数据清洗后,在这个基础上做训练。
目前,参数量至少在100亿以上的规模才叫所谓的大语言模型,几十亿或者几个亿的已经算不上大语言模型了。当然现在有一些模型已经达到几千亿甚至上万亿更大规模的参数量。
随着参数量提升,在很多任务上性能也在逐渐提升。而且参数量达到一定规模后它的能力也非常强大,我们叫智慧的“涌现”,大家可能也听过这样一个词汇。
实际上里边最关键的有3个技术。
首先要有一个预训练语言模型。要知道每一个词的表示,每个词在不同上下文里的作用和词与词之间的关系;接着指令微调,大量人工地给它指令,针对不同任务写出指令调试机器;然后系统根据人调试给出的指令再不停进行训练,当它犯错误时,给它一个惩罚,打一个低分,当它答对时,给它打一个高分。
机器会根据人的反馈来不断调试自己、不断优化模型。这3个主要技术造就了现在非常强大的能力。
要做这样一件事,需要“3个大”来支撑。
一是大数据,刚才我说过.0、3.5版本几乎用了全网的数据。它有1750亿个参数,每一个参数用向量表示,这个向量是高维的向量,运算量非常巨大,所以它有上万台服务器在工作。同时要有大量人工,因为要人工写这些指令,要去调试它,要帮机器进行优化和改进。
为什么参数量到了这样一个规模后,它的智慧涌现会超出人的想象,能力会这么强大?这个问题技术人员还在研究当中。包括我们使用神经网络,它在数学上可以写出一个公式来,但这个公式在物理意义上意味着什么,每一步运算意味着什么?现在还没有给出很清晰的解释,这也是技术人员正在努力的一件事。
通往通用人工智能之路?
已完成:80%//////////
但是,我们可以看到所表现出来的能力,使我们向着通用人工智能的目标迈进了一步,或者说从某种程度上验证了走向通用人工智能这条路是一条可能的道路。
▲图灵测试( test)
所谓通用人工智能,人们通常比喻一个任务或者技术能够通过图灵测试,就看成是通用人工智能。图灵测试是什么?实际上它是一个游戏,假设一个人不停地提问题,让机器回答,让人也回答,然后人和机器同时给出答案。提问题的人判断不出来这个答案到底是机器给出的还是人给出的,我就可以认为这个机器具备和回答问题的人几乎同样的智能,这就是图灵测试。
在所有任务、各种各样问题上去测试机器和人,机器如果都能够通过回答,那么它几乎就是通用的了。在各个任务、各个领域都可以做,它能够通过这样的测试,这就是一种通用人工智能技术。
那么,大模型使用以后会带来什么样的影响?这个我们必须要考虑。
首先从好的一面,它可以大幅度提高工作效率。可以帮助我们回答问题,当我们想查询什么不熟悉的知识时,它很快就可以给出答案。它可以帮助我们写作,起草各种各样的内容,包括法律的、医药的、科研的等等,作为人工智能助手提供非常好的帮助。
当然它还有很多问题。刚才说过,它和人一样会犯错误。而在做系统过程中需要人去调试,如果人的认识有问题,这个机器或者模型学出来就有问题。它也会臆想甚至胡说八道,它说出来一个答案,信它还是不信它?它如果造谣,对社会的影响肯定不好。有些学生如果偷偷用它去写作业,老师怎么判卷呢?会有各种各样的问题。
那么,大模型是让人类变的更加聪明了还是更加愚蠢了?实际上这是一个双刃剑。它有很多好处,也有很多问题,应该怎么做?
我觉得我们应该拥抱或者接受这项技术,没必要排斥,它能够给社会带来很多很多好处。当然,这种利用不是无限度的,必须有一定约束。在什么情况下该用,什么情况下不该用?如何使用,利用它能做什么?都要有界定。
当然最重要的,特别对我们技术研究人员来讲,要沉下心来做好自己的事,做好中国的大语言模型来服务社会、服务国家,我们一直在向这个方向努力。
如果大家对GPT这个技术感兴趣,欢迎大家阅读我前段时间刚出的一本书,叫做《文本数据挖掘》。
谢谢大家!
– END –
发表回复