文章主题:自然语言处理, 机器学习, 人工智能, 大模型技术
机器之心编辑部
在3月21日举行的一场由机器之心主办的ChatGPT及大模型技术大会上,哈尔滨工业大学计算学部长聘教授、博士生导师车万翔带来了主题为《ChatGPT浅析》的精彩演讲。在演讲过程中,车教授深入剖析了ChatGPT所解决的科學問題,阐述了它是如何解決這些問題的,同時也指出未來仍需解決的一些關鍵性问题。
另外我们也了解到,车万翔教授大模型相关的科研成果也正在进行产业转化,机器之心后续将为大家带来报道。
以下为车万翔在机器之心 AI 科技年会上的演讲内容,机器之心进行了不改变原意的编辑、整理:
大家好,我是来自哈尔滨工业大学的车万翔,非常感谢机器之心的邀请,我本次报告的题目为《ChatGPT 浅析》。之所以说是浅析,是因为我们确实没有了解到关于 ChatGPT 的更多详细内容,只是根据发表的一些论文来猜测它背后的技术。
自然语言处理
作为自然语言处理领域的一项突破性成果,ChatGPT 代表了该领域最新的技术发展。那么,什么是自然语言处理呢?简单来说,它涉及的是计算机理解和生成人类语言(主要是指文本符号,而非语音信号)的各种理论和方法。然而,历史上的自然语言处理,其实质等同于自然语言理解,因为在早期,自然语言生成的难度极高,因此人们主要采用一些模板化的方法来进行生成。但随着AIGC等技术的不断进步,自然语言生成逐渐成为了自然语言处理的主流方向。ChatGPT正是这种趋势的体现,它是一种生成模型,也是自然语言处理领域的重大突破。
自然语言处理对于人工智能而言是一项极具挑战性的任务。从人类智能的角度来看,自然语言处理可以被视为认知智能的一个范畴,它要求AI具有更高级别的抽象和推理能力。
自然语言处理(NLP)面临着众多挑战,其中之一就是歧义问题。例如,在对话中,往往会出现多种不同的含义,而这些不同的含义可能会导致理解上的困难。除此之外,NLP还必须面对抽象性、组合性和进化性等问题。抽象性是指语言中的词语通常具有多种含义。例如,当我们谈论“汽车”这个词语时,它可能代表着各种不同的概念,如车型、品牌、颜色等等。这种多样性使得NLP系统很难准确地理解话语中的含义。组合性是指任何一种语言都是由一系列基本的符号组成的。这些基本符号可以组合成无限数量的语义,从而形成复杂的语言结构。因此,NLP系统必须具备良好的符号组合能力,以便正确地理解语言的意义。进化性是指随着时间的推移,语言也在不断发展和变化。这可能导致NLP系统在处理新的语言数据时出现错误或不适应。因此,NLP系统必须具备足够的灵活性和可扩展性,以便随着语言的变化而不断改进。综上所述,自然语言处理面临着许多难点,包括歧义性、抽象性、组合性和进化性等。要解决这些问题,需要开发更加智能和灵活的NLP技术,以便更好地理解和处理自然语言。
自然语言处理作为人工智能领域的一个关键环节,其难度系数较高,这直接限制了人工智能实现更大的突破和更广泛的运用。早在多年前,包括图灵奖在内的多位学者就预测,自然语言处理将成为人工智能未来发展的重要趋势。因此,自然语言处理被誉为“人工智能皇冠上的明珠”。事实上,近期人工智能在很多方面的进展都离不开自然语言处理,如知名的Transformer技术、BERT和ChatGPT等,这些都与自然语言处理密切相关。由此看来,将自然语言处理视为人工智能领域的核心支柱,并不显得过分夸张。
传统自然语言处理主要涵盖四个关键领域:首先,是底层资源的建设,这包括构建大规模的语料库和其他必要的数据集;其次,是中间层的基础研究,如分词、词性标注等,这些研究对于后续的应用技术研究有着至关重要的作用;然后,是应用技术研究阶段,其中包括信息抽取、机器翻译、问答系统等;最后,是应用系统层面,例如教育、医疗等领域如何利用自然语言处理技术来改善其服务。
尽管如此,我们仍需探讨为何称之为“传统自然语言处理”。这三个字仅在过去三个月内添加,其背后的原因有两个主要方面。首先,许多基础研究任务,例如分词和词性标注等,已经被融入到大型模型中,因此在未来的工作中,这些基础任务将变得不再必要。其次,ChatGPT 并非专为某一特定模型或单独任务而设计,而是将所有应用任务整合在一起,这使得传统的按任务划分的方法面临着挑战。因此,对于整个自然语言处理领域来说,可能需要重新审视和调整。
自然语言处理(NLP)的发展历程与人工智能(AI)的历史同步,可以追溯到上世纪五十年代。当时主要依赖小型专家的知识来推动。随着技术的发展,1990年出现了浅层次的机器学习算法,为NLP领域带来了新的活力。到了2010年,深度学习算法的出现,让NLP技术有了质的飞跃。2018年,预训练模型的代表范式出现,标志着NLP进入了一个新的阶段。如今,随着2023年ChatGPT等模型的诞生,NLP领域已经经历了五次范式变迁,实现了从专家知识到机器学习算法,再到深度学习和预训练模型的演变。
预训练语言模型
无论是 ChatGPT、还是 BERT,其背后都是预训练模型。什么是预训练模型呢?传统的机器学习方法,从一些未标注的数据里面采样出一些数据,然后经过人工标注训练出一个模型。但是随着未标注数据的增加,人类已经没办法逐个标注,怎么办呢?然后预训练模型出来了,有人称其为无指导方法,其实更准确的名字是自指导或者自监督方法,毕竟这一方法利用了语言自身的顺序性。
有了预训练模型之后,我们在目标任务上进行精调,这样就可以获得目标任务更好的模型。传统的方法根据不同的任务训练不同的模型,假如说有很多任务,就需要精调很多模型,这样给模型训练和应用带来很大的麻烦。
在预训练模型阶段比较有代表性的研究是 GPT-3,它是 OpenAI 和微软在 2020 年发布的大模型,参数量达 1750 亿,以当时的视角来看,研究者认为这个模型太大没办法精调,所以「提示语」方法出现了。所谓提示语,即直接给出任务描述,可以让模型自动补全这个任务,这个补全过程就是在完成任务,如果再给出一些示例,模型性能可能会更好,这种也叫做情境学习。采用这种方式的一个好处是模型无需针对某一个任务再次训练,就可以完成不同文本生成任务。当然,这个文本生成任务是加引号的,因为它不仅能回答问题、文章续写,还可以完成生成网页,甚至生成代码等范文本任务。
GPT-3 的出现并没有引起大家的特别关注,为什么呢?因为当时大家发现 GPT-3 虽然能够实现这些任务,但效果并不是很好。举几个典型的例子,比如问 GPT-3「烤箱和铅笔哪个重」,它会说「铅笔比较重」;再问「我的脚上有几只眼睛」,它会说「两只眼睛」。
GPT-3 给出的答案很多是错误的,有些人就认为花这么多钱构造这么大的模型也没有解决根本任务。当然 GPT-3 原文也指出,在故事结尾选择任务上比我们组丁效老师等所提出的具有知识推理能力的模型低 4.1%。因此大家认为这种大模型鲁棒性差、可解释性弱、推理能力也不强,因此需要有更多的知识。
由于这些问题的存在,学术界走了两条路:
第一条路:既然模型缺知识、缺推理能力、缺可解释性,就需要针对这些任务进行专门优化。我们能不能加知识,比如往里面加知识图谱,专门做可解释性?这是一条路。
第二条路:以 OpenAI 为代表,不是针对特定任务解决,而是不停的往里面加数据,有多少人工就有多少数据,就像现在 ChatGPT 的路线,不停的往里面加数据,甚至是加人工标注的数据。
现在看来,这种加知识图谱的方法好像确实没有特别明显的进步,反倒是大力出奇迹的方法取得更好的进展。比如还是问刚才那两个问题,ChatGPT 就会说「烤箱更重」,而且会给出一个解释;问「脚上几只眼」,它也会否定说「脚上没有眼」,同时给出解释。可以说很好的解决了这个问题。
当然还有其他示例,比如让 ChatGPT 用藏语写学术会议致辞,它首先会否定,说自己不会。这是很厉害的,原来我们做问答和聊天模型很难否定一个问题。另外,它说会用英语写,如果我说可以,它就真的会用英语写。可见 ChatGPT 对会的语言掌握的很好。
还是前面那个例子,「领导和阿呆的对话」直接问 ChatGPT 这到底是什么意思,它会回答说有两个意思,具体每一句话的意思是什么,模型都解释的很清楚。这是非常惊艳的,仔细看未必准确,但模型至少理解了这个问题,这是很难做到的。
所以 ChatGPT 到底是什么?其实这个名字有一点误导,说到 Chat 很多人就会想到聊天系统,其实它本质上不是一个聊天系统,它只是伪装成聊天,本质上是「对话式通用人工智能工具」。当然有了这样强大的工具之后,不同的学者有不同的观点,像比尔・盖茨、黄仁勋他们认为这个发明很伟大,类比成 PC 互联网和 iPhone 这种技术,可以造福人类;当然还有另外一派以马斯克为代表的,他们认为像 ChatGPT 这种通用人工智能的出现会威胁人类;还有一些理性派,像图灵奖得主 Yann LeCun 曾表示,就底层技术而言,ChatGPT 并不是多么了不得的创新,他表示虽然在公众眼中,它是革命性的,但是我们知道,它就是一个组合得很好的产品,仅此而已。
大家看到的更多的是表面现象,说它效果多么惊艳,但是一个惊艳的东西未必会引起这么大的轰动,到底背后产生了哪种变革或者真的解决了什么实质性的科学问题?
我认为主要解决的是知识的表示以及知识调用这种根本性的革命,可以说每次知识表示和调用方式的转变都会引起产业界巨大的变革。知识最早是以数据库的方式存储在计算机内部,想调用它就需要 SQL 语句等,需要人去适应机器,即使是这样的技术也产生了很多伟大的公司,如 Oracle 等。但后来大量的知识是存储在互联网里,这种知识是非结构化存储的,包括文本、图像,甚至视频等。要想调用这里面的知识,我们就不需要学 SQL 语句,只要用关键词,通过搜索引擎的方式就可以把存储在互联网中的知识调用出来。现在 ChatGPT 仍然会存互联网的知识,但是它不是以显示的方式存储,而是以参数的方式存储在大模型中。
但是 GPT-3 两年前就能完成这样的任务,为什么没有引起这么大的轰动呢?因为它没有解决好另外一部分问题,即怎样把这些知识调用出来。ChatGPT 很好的解决了这个问题,通过自然语言的方式就可以很好的把这些知识调用出来。ChatGPT 等于把这两块打通了,一旦打通之后就引起了剧烈革命,相信也会像前两次一样产生伟大的公司,现在 OpenAI 先行一步,或者说拔得头筹,但能不能笑到最后也不一定,因为现在很多公司都在积极跟进。当然还有一个比较有意思的发现,就是后面代表性的公司每个都离不开微软,每个都有微软的身影,但微软每次都不是老大,都跟在后面,这也是挺有趣的现象。
ChatGPT 的发展历程也非常励志,第一代 GPT 就是 OpenAI 提出来的,甚至比 BERT 提出的还要早,GPT 开启了自然语言处理预训练时代。但是大家记住更多的是 BERT,因为当时 OpenAI 还是个小公司,大家还没太关注它的工作,同时 BERT 是 Google 提出来的,从自然语言理解的角度来讲,BERT 参数量大,具有双向理解方式,所以它的效果比 GPT 好。但是 OpenAI 并没有模仿这种方式做双向,它继续沿着 GPT 单向结构进行,后来就产生了 GPT-2,学术界用的也比较多,GPT-3 的出现,风靡了一阵,不过之后大家觉得这模型浪费钱,效果还不怎么好,去年 3 月 InstructGPT 出现了,吸引了很多国际学术界的关注,但国内关注的相对较少。
直到去年 11 月底 ChatGPT 的发布,一炮打响,引起更多关注,以及今年 3 月份发布的 GPT-4,它不光处理文本,甚至融合了多模态。OpenAI 整个历程比较励志,它一直沿着 GPT 这条路线在走,最后还走通了,有人说 OpenAI 比较犟,比较执拗,但确实它有自己的信心和理想,走成了。
从 GPT-3 到 ChatGPT,也不是一蹴而就的,中间做了很多工作。其中比较有意思的是 CodeX 的提出,这一模型单纯的做代码预训练,进行代码补全,有了它,在代码编辑器里可以帮助我们写代码,这个工具非常好用。此时,GPT 等于分化了,一部分走语言,一部分走代码,中间 code-davinci-002 又把这两者合并了,在语言模型的基础上继续使用代码数据进行预训练,竟然产生了很好的推理效果,这是为什么呢?可能代码里面有很好的逻辑性,解决问题有顺序逻辑,甚至有远程的依赖,当然这里面有很多解释,这只是其中一种猜测,现在大家也不了解为什么 ChatGPT 出现了这么好的效果。
总结来看,ChatGPT 大概有三项核心技术:
1、一定要有大规模预训练模型。到底模型多大算大?现在也没有明确的定义和概念,就像大数据的概念一样,有人认为百亿以上参数就差不多了,但想要模型涌现推理能力可能需要 600 亿以上的参数。
2、Instruction Tuning。不是针对一个任务一个任务的精调,而是把所有的任务都统一成 Instruction 指令,以及相应的答案。其实又回到了有指导学习这种思路,只是它融入的任务更多。这样做的好处是这些任务可以互相帮助,此外还能达到任务泛化的效果,对于一些没有见过的新任务,可以通过对原来见过的任务的学习来处理新任务,起到任务组合的效果。比如我想做一种跨语言文摘,这个任务没见过,但是模型见过机器翻译任务,又见过文摘的任务,让它做这个新的跨语言文摘任务,它也可能做的很好,Zero-shot 能力非常强。其实这也是强人工智能必须的,否则一个任务、一个任务的去训练,又回到原来弱的人工智能方式。
3、现在大家关注比较多的是基于人类反馈的强化学习,从提升模型上限的角度可能不是主要目的,它要提升模型生成结果的多样性和安全性。当然这种方法还带来一个好处,随着模型上线可以收集越来越多的人类反馈,用人类反馈可以更好的帮助训练模型。
ChatGPT 给自然语言处理领域带来了很大冲击,现在越来越多的资源,包括计算资源、数据资源、用户资源,都为工业界所掌握,因此更容易做系统级的创新。
学术界面临的困难会越来越大,因为我们没有那么多数据,没有那么多计算资源。当然也不是说学术界就无事可做了,以后怎么办呢?可能还是要往下走,但是再往下走又面临选择,你是不是沿着大模型的路往下走,学术界有人认为这不是很好的路线。
不仅是自然语言处理,从人工智能发展的过程来讲,其实能看到两个明显的趋势:
一是模型同质化现象越来越严重。原来要根据不同任务、不同领域,用不同模型,现在统一使用 Transformer,我觉得这个趋势没法逆转,即使出来 Transformer 替代品,但它一定是一个同质化的模型。
第二,模型规模越来越大。很多证据表明,随着模型规模越来越大,会出现智能的涌现。我们很难做到把模型变小,让它具有很好的通用性。当然具体行业应用还是需要小的模型,但要实现通用人工智能,可能还是需要模型足够大。
正是由于这两种趋势,即使在学术界也不得不拥抱大模型,这不是以个人意志为转移的。既然拥抱,怎么拥抱?有很多条路可以走,主要从以下三个方面入手:
1、弥补大模型的不足,查缺补漏,发现模型哪里做的不好就去弥补它;
2、探究大模型的机理,现在很多任务都停留在实验阶段,至于模型背后为什么产生这样的效果我们也不了解,我们要知道背后的机理;
3、推广大模型的应用。
大模型有哪些不足之处?虽然 ChatGPT 效果惊艳,但它还不完美、存在很多不足,包括事实一致性不足、逻辑一致性不足。
但是怎么弥补呢?可以用增强的方法,图灵奖得主 Yann LeCun 发表过一篇文章就总结过这种方法,包括加上搜索引擎、知识库、外挂工具等,这些都可以叫增强。除此之外,目前也有很多工作使用搜索引擎来弥补现在 ChatGPT 的不足。
接下来是探究大模型背后的机理,现在的争议围绕到底是 Encoder-Decoder 结构好,还是 Decoder only 结构好。这些方法各有各的优缺点。Decoder only 如 GPT,其参数和数据利用率更高,但从对输入理解的角度,Encoder-Decoder 结构可能更好。这两者之间怎么平衡,或者说到底哪个好,现在也没有统一的结论,还处于探索阶段。
还有就是怎么对大模型进行评价。现在有很多评价模型的数据集发布,但这个数据集一旦发布就有可能泄漏,有些人会把数据集用到训练数据里,怎么解决这种问题,也是需要考虑的。
三是解释包括涌现现象、CoT 等出现的机理。
最后要推广大模型的应用。ChatGPT 是一种通用模型,怎么把它落地到各行各业,包括怎么做定制化、小型化、个性化,甚至角色化、安全性、隐私性等等,这些都是需要考虑和解决的问题。
ChatGPT 到底还会走多远,我还以之前的趋势图进行介绍。从图中可以看到,一个技术范式的历程大概是上一个历程的一半。比如前面基于专家知识做了四十年,浅层机器学习算法做了二十年,深度学习做了十年,预训练模型做了五年,那么 ChatGPT 还能做多少年?根据现有的趋势推测可能 2.5 年,也就是到 2025 年可能又要更新换代了。但是这么发展下去会什么样?
有人会说这个预测不对,如果按这个预测来讲,可能到某一天技术就停止进步了。我认为也可能会出现这种情况,因为随着人工智能的发展,可能会威胁到人类,一旦人工智能威胁到人类生存之后,有可能会被立法禁止人工智能技术的进步。
再往后人工智能怎么走,现在 ChatGPT 比较好的解决了推理问题,以后可能要解决语用的问题,同样一段话所处的语境不一样,对象不一样,用的语气语调不一样,可能表达的含义就不一样。
当然,只从文本入手没法解决这个问题,还是要往多模态等发展。结合更多的模态,通往真正的 AGI。
之前有学者把机器能够利用的数据范围划为五个,从最简单的小规模文本一直到和人类社会互动这五个范围。之前很长一段时间大家都只用文本端,现阶段等于是跨过中间的两个(多模态和具身),直接到了和人类社会的互动,因为现在 ChatGPT 就是和人类社会交互。在交互过程中,人也在教机器怎么说语言,怎么理解语言。但跨过中间两段不代表就真的包含这两段,还是要把这两段补齐。现在 GPT-4 补齐了多模态,Google、微软等也在做具身方面的研究。
总结和展望
最后是总结和展望,自然语言处理是人工智能皇冠上的明珠,ChatGPT 是继数据库和搜索引擎之后的全新一代知识表示和调用方式,模型同质化和规模化的趋势不可逆转。要想真正实现 AGI,需要结合多模态和具身智能。
以上就是我报告的全部内容,谢谢大家!
自然语言处理, 机器学习, 人工智能, 大模型技术
AI时代,拥有个人微信机器人AI助手!AI时代不落人后!
免费ChatGPT问答,办公、写作、生活好得力助手!
搜索微信号aigc666aigc999或上边扫码,即可拥有个人AI助手!