我们都是架构师!
关注架构师(JiaGouX),添加“星标”
获取每天技术干货,一起成为牛逼架构师
技术群请加若飞:1321113940 进架构师群
投稿、合作、版权等邮箱:admin@137x.com
人工智能(Artificial Intelligence, AI)最近取得了巨大的进展,特别是大语言模型(Large Language Models, LLMs),比如最近火爆全网的ChatGPT和GPT-4。GPT模型在各项自然语言处理任务上有着惊人的效果。
正所谓「大力出奇迹」,把参数量调「大」能提高模型性能已经成为了大家的普遍共识。但是仅仅增加模型参数就够了吗?仔细阅读GPT的一系列论文后就会发现,仅仅增加模型参数是不够的。它们的成功在很大程度上还归功于用于训练它们的大量和高质量的数据。
在本文中,我们将从数据为中心的人工智能视角去分析一系列GPT模型(之后会用Data-centric AI以避免啰嗦)。Data-centric AI大体上可以分为三个目标:
本文将讨论GPT模型是如何实现(或者可能即将实现)这三个目标的。
综述论文:https://arxiv.org/abs/2303.10158
短篇介绍:https://arxiv.org/abs/2301.04819
GitHub资源:https://github.com/daochenzha/data-centric-AI
这章将简单介绍下大语言模型和GPT模型,对它们比较熟悉的读者可以跳过。大语言模型指的是一类自然语言处理模型。顾名思义,大语言模型指的是比较「大」的(神经网络)语言模型。语言模型在自然语言处理领域已经被研究过很久了,它们常常被用来根据上文来推理词语的概率。例如,大语言模型的一个基本功能是根据上文预测缺失词或短语的出现概率。我们常常需要用到大量的数据去训练模型,使得模型学到普遍的规律。
GPT模型是由OpenAI开发的一系列大语言模型,主要包括GPT-1,GPT-2,GPT-3,InstructGPT以及最近上线的ChatGPT/GPT-4。就像其他大语言模型一样,GPT模型的架构主要基于Transformer,以文本和位置信息的向量为输入,使用注意力机制来建模词之间的关系。
之后的GPT系列模型结构大体上都与GPT-1类似,主要区别在于更多参数(更多层,更多隐含层维度等等)。
Data-centric AI是一种搭建AI系统的新理念,被吴恩达老师大力倡导。我们这里引用下他给出的定义:
Data-centric AI is the discipline of systematically engineering the data used to build an AI system. — Andrew Ng
传统的搭建AI模型的方法主要是去迭代模型,数据相对固定。比如,我们通常会聚焦于几个基准数据集,然后设计各式各样的模型去提高预测准确率。这种方式我们称作以模型为中心(model-centric)。然而,model-centric没有考虑到实际应用中数据可能出现的各种问题,例如不准确的标签,数据重复和异常数据等。准确率高的模型只能确保很好地「拟合」了数据,并不一定意味着实际应用中会有很好的表现。
与model-centric不同,Data-centric更侧重于提高数据的质量和数量。也就是说Data-centric AI关注的是数据本身,而模型相对固定。采用Data-centric AI的方法在实际场景中会有更大的潜力,因为数据很大程度上决定了模型能力的上限。
需要注意的是,「Data-centric」与「Data-driven」(数据驱动),是两个根本上不同的概念。后者仅强调使用数据去指导AI系统的搭建,这仍是聚焦于开发模型而不是去改变数据。
Data-centric AI框架包括三个目标:
数月前,Yann LeCun发文称ChatGPT在技术上并不是什么新鲜事物。的确如此,ChatGPT和GPT-4中使用的方法,比如Transformer、「从人类反馈中进行的强化学习」(Reinforcement Learning from Human Feedback,RLHF)等都不是什么新技术。即便如此,ChatGPT还是取得了以前的模型无法企及的惊人效果。那么,是什么推动了它的成功?
毋庸置疑,增加模型参数的数量对GPT模型的成功至关重要,但这只是其中的一个原因。通过详细阅读GPT-1、GPT-2、GPT-3、InstructGPT和ChatGPT/GPT-4论文中有关数据的描述,我们可以明显看出OpenAI的工程师们花了极大心血去提高数据的质量和数量。以下,我们用Data-centric AI框架从三个维度进行分析。
训练数据开发:从GPT-1到ChatGPT/GPT-4,通过更好的数据收集(data collection)、数据标注(data labeling)和数据准备(data preparation)策略,用于训练GPT模型的数据数量和质量都得到了显著提高。以下括号中标识了每个具体策略对应到Data-centric AI框架中的子目标。
GPT-1:训练使用了BooksCorpus数据集。该数据集包含4629.00 MB的原始文本,涵盖了各种类型的书籍,如冒险、奇幻和浪漫等。
GPT-2:训练使用了WebText数据集。这是OpenAI的一个内部数据集,通过从Reddit上抓取出站链接创建而成。
GPT-3:训练主要使用了Common Crawl,一个很大但质量不算很好的数据集。
InstructGPT:在GPT-3之上用人类反馈去微调模型,使得模型与人类期望相符。
ChatGPT/GPT-4:至此,产品走向了商业化,OpenAI不再「Open」,不再披露具体细节。已知的是ChatGPT/GPT-4在很大程度上遵循了以前GPT模型的设计,并且仍然使用RLHF来调整模型(可能使用更多、更高质量的数据/标签)。鉴于GPT-4的推理速度比ChatGPT慢很多,模型的参数数量大概率又变多了,那么也很有可能使用了一个更大的数据集。
从GPT-1到ChatGPT/GPT-4,所用的训练数据大体经历了以下变化:小数据(小是对于OpenAI而言,对普通研究者来说也不小了)->大一点的高质量数据->更大一点的更高质量数据->高质量人类(指能通过考试的标注者)标注的高质量数据。模型设计并没有很显著的变化(除了参数更多以顺应更多的数据),这正符合了Data-centric AI的理念。从ChatGPT/GPT-4的成功,我们可以发现,高质量的标注数据是至关重要的。在AI的任何子领域几乎都是如此,即便是在很多传统上的无监督任务上,标注数据也能显著提高性能,例如弱监督异常检测。OpenAI对数据和标签质量的重视程度令人发指。正是这种执念造就了GPT模型的成功。这里顺便给大家推荐下朋友做的可视化文本标注工具Potato,非常好用!
https://github.com/davidjurgens/potato
推理数据开发:现在的ChatGPT/GPT-4模型已经足够强大,强大到我们只需要调整提示(推理数据)来达到各种目的,而模型则保持不变。例如,我们可以提供一段长文本,再加上特定的指令,比方说「summarize it」或者「TL;DR」,模型就能自动生成摘要。在这种新兴模式下,Data-centric AI变得更为重要,以后很多AI打工人可能再也不用训练模型了,只用做提示工程(prompt engineering)。
当然,提示工程是一项具有挑战性的任务,它很大程度上依赖于经验。这篇综述很好地总结了各种各样的方法,有兴趣的读者可以继续阅读。与此同时,即使是语义上相似的提示,输出也可能非常不同。在这种情况下,可能需要一些策略去降低输出的方差,比如Soft Prompt-Based Calibration。
大语言模型的推理数据开发研究仍处于早期阶段。我相信在不久的将来,很多其他任务中用到过的推理数据开发方法也会逐渐被迁移到大语言模型中,例如构建对抗攻击(Adversarial Attacks)数据以测试模型的鲁棒性。
数据维护:作为一款商业产品,ChatGPT/GPT-4一定不是仅仅训练一次就结束了,而是会被持续更新和维护。我们在外部没办法知道OpenAI数据维护具体是如何进行的。因此,我们只能推测。OpenAI可能采取了如下策略:
大语言模型的成功可以说是颠覆性的。展望未来,我做几个预测:
回想起五年前,我还在纠结「如何才能提高文本分类的准确率」,多次失败的经历曾让我一度怀疑自然语言处理和AI没有半点关系。如今ChatGPT/GPT-4惊人的能力让我提前见证了历史!
未来AI的发展将走向何方?大语言模型的进展日新月异,经常看到一些研究自然语言处理的朋友们担心大模型的出现会不会让AI科研无路可走了。我认为完全不需要有这种担心。技术永远是不断进步的。新技术的出现不可避免会取代旧的技术(这是进步),但同时也会催生更多新的研究方向。比如,近年来深度学习的飞速发展并没有让传统机器学习的研究无路可走,相反,提供了更多的可供研究的方向。
同时,AI一个子领域的突破势必会带动其他子领域的蓬勃发展,这其中就有许多新的问题需要研究。比如,以ChatGPT/GPT-4为代表的大模型上的突破很可能会带动计算机视觉的进一步提升,也会启发很多AI驱动的应用场景,例如金融、医疗等等。
无论技术如何发展,提高数据的质量和数量一定是提高AI性能的有效方法,Data-centric AI的理念将越来越重要。
那么大模型就一定是达成通用人工智能的方向吗?我持保留态度。纵观AI发展历程,各个AI子领域的发展往往是螺旋上升、相互带动的。这次大模型的成功是多个子领域的成功碰撞出的结果,例如模型设计(Transformer)、Data-centric AI(对数据质量的重视)、强化学习(RLHF)、机器学习系统(大规模集群训练)等等,缺一不可。在大模型时代,我们在AI各个子领域依然都大有可为。比如,我认为强化学习相比大模型可能有更高的上限,因为它能自我迭代,可能不久的将来我们将见证由强化学习引领的比ChatGPT更惊艳的成果。
在这个AI发展日新月异的时代,我们需要不断学习。我们对Data-centric AI这个领域进行了总结,希望能帮助大家快速高效地了解这个领域,相关链接见本文开头。鉴于Data-centric AI是一个很大的领域,我们的总结很难面面俱到。欢迎感兴趣的读者去指正、补充。
如喜欢本文,请点击右上角,把文章分享到朋友圈
如有想了解学习的技术点,请留言给若飞安排分享
因公众号更改推送规则,请点“在看”并加“星标”第一时间获取精彩技术分享
进ChatGPT群请加若飞:1321113940,暗号 “gpt”
·END·
相关阅读:
作者:一堆废纸
来源:https://zhuanlan.zhihu.com/p/617057227
版权申明:内容来源网络,仅供学习研究,版权归原创者所有。如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!
我们都是架构师!
关注架构师(JiaGouX),添加“星标”
获取每天技术干货,一起成为牛逼架构师
技术群请加若飞:1321113940 进架构师群
投稿、合作、版权等邮箱:admin@137x.com