后GPT 3.0时代,主流大模型技术精要详解,走向AGI之路的大门已开(2)

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型训练 PAI-DLC,5000CU*H 3个月
简介: 后GPT 3.0时代,主流大模型技术精要详解,走向AGI之路的大门已开

规模效应:当 LLM 越来越大时会发生什么
我们知道,近年来,LLM 模型规模在快速增长,目前效果最好的 LLM 模型,其参数规模大都超过了千亿(100B)参数规模。比如,OpenAI 的 GPT 3 的规模为 175B,Google 的 LaMDA 规模为 137B,PaLM 的规模为 540B,DeepMind 的 Gogher 规模为 280B 等,不一而足。国内也有中文巨型模型,比如智源 GLM 规模 130B,华为 “盘古” 规模 200B,百度 “文心” 规模 260B,浪潮 “源 1.0” 规模 245B。那么,一个很自然的问题就是:随着 LLM 模型规模不断增长,会发生些什么呢?

预训练模型的应用往往是两阶段的:预训练阶段,及具体场景应用阶段。在预训练阶段,其优化目标是交叉熵,对 GPT 这种自回归语言模型来说,也就是看 LLM 是否正确预测到了下一个单词;而场景应用阶段,一般要看具体场景的评价指标。一般我们的直觉是:如果 LLM 模型在预训练阶段的指标越好,自然它解决下游任务的能力就越强。然而,事实并非完全如此。现有研究已证明,预训练阶段的优化指标确实和下游任务表现出正相关关系,但是并非完全正相关。也就是说,只看预训练阶段的指标,来判断一个 LLM 模型是否够好,这是不够的。基于此,我们分头来看在这两个不同阶段,随着 LLM 模型增大,有什么影响。

首先,我们先看在预训练阶段,随着模型规模逐步增大,会发生什么。OpenAI 在 “Scaling Laws for Neural Language Models” 中专门研究了这个问题,并提出 LLM 模型所遵循的 “伸缩法则”(scaling law)。如上图所示,这个研究证明:当我们独立增加训练数据量、模型参数规模或者延长模型训练时间(比如从 1 个 Epoch 到 2 个 Epoch),预训练模型在测试集上的 Loss 都会单调降低,也就是说模型效果越来越好

既然三个因素都重要,那么我们在实际做预训练的时候,就有一个算力如何分配的决策问题:假设用于训练 LLM 的算力总预算(比如多少 GPU 小时或者 GPU 天)给定,那么是应该多增加数据量、减少模型参数呢?还是说数据量和模型规模同时增加,减少训练步数呢?此消彼长,某个要素规模增长,就要降低其它因素的规模,以维持总算力不变,所以这里有各种可能的算力分配方案。最终 OpenAI 选择了同时增加训练数据量和模型参数,但是采用早停策略 (early stopping) 来减少训练步数的方案。因为它证明了:对于训练数据量和模型参数这两个要素,如果只单独增加其中某一个,这不是最好的选择,最好能按照一定比例同时增加两者,它的结论是优先增加模型参数,然后才是训练数据量。假设用于训练 LLM 的算力总预算增加了 10 倍,那么应该增加 5.5 倍的模型参数量,1.8 倍的训练数据量,此时模型效果最佳。

DeepMind 的一项研究(参考:Training Compute-Optimal Large Language Models)更深入地探究了这个问题,其基本结论和 OpenAI 的结论差不多,比如确实需要同时增加训练数据量和模型参数,模型效果才会更好。而很多大模型在做预训练的时候,并没有考虑这一点,很多 LLM 大模型只是单调增加模型参数,而固定住了训练数据量,这个做法其实是不对的,限制了 LLM 模型的潜力。但是它修正了两者的比例关系,认为训练数据量和模型参数是同等重要的,也就是说,假设用于训练 LLM 的算力总预算增加了 10 倍,那么应该增加 3.3 倍的模型参数量,3.3 倍的训练数据量,这样模型效果才最好。

这意味着:增加训练数据量的重要性,比我们之前所认为的,还要重要。基于这个认知,DeepMind 在设计 Chinchilla 模型时,在算力分配上选择了另外一种配置:对标数据量 300B、模型参数量 280B 的 Gopher 模型,Chinchilla 选择增加 4 倍的训练数据,但是将模型参数降低为 Gopher 的四分之一,大约为 70B。但是无论预训练指标,还是很多下游任务指标,Chinchilla 效果都要优于规模更大的 Gopher。

这带给我们如下启示:我们可以选择放大训练数据,并同比例地减少 LLM 模型参数,以达到在不降低模型效果的前提下,极大缩小模型规模的目的。缩小模型规模有很多好处,比如在应用的时候,推理速度会快很多等,无疑这是一个很有前途的 LLM 发展路线

以上是从预训练阶段来看模型规模的影响,如果从 LLM 解决下游具体任务效果的角度来看,随着模型规模增大,不同类型的任务有不同的表现,具体而言,有以下三类情况。

第一类任务完美体现了 LLM 模型的 scaling law,就是说随着模型规模逐步放大,任务的表现越来越好,如上图里的(a)图所示。这类任务通常符合如下共性:它们往往都是知识密集型任务,也就是说如果 LLM 模型包含的知识量越多,这类任务表现越好。而很多研究已经证明越大的 LLM 模型学习效率越高,也就是说相同训练数据量,模型越大任务效果越好,说明面对的即使是同样的一批训练数据,更大的 LLM 模型相对规模小一些的模型,从中学到了更多的知识。更何况一般情况下,在增大 LLM 模型参数的时候,往往会同步增加训练数据量,这意味着大模型可以从更多数据中学习更多的知识点。这些研究可以很好地解释上图,为何随着模型规模增大,这些知识密集型的任务效果越来越好。大多数传统的自然语言理解类任务,其实都属于这种知识密集型任务,而很多任务在近两年获得了极大的效果提升,甚至超过了人类表现。很明显,这大概率是 LLM 模型的规模增长带来的,而非归功于某项具体的技术改进。

第二类任务展现出 LLM 具备某种 “涌现能力(Emergent Ability)”,如上图(b)所示。所谓 “涌现能力”,指的是当模型参数规模未能达到某个阀值时,模型基本不具备解决此类任务的任何能力,体现为其性能和随机选择答案效果相当,但是当模型规模跨过阀值,LLM 模型对此类任务的效果就出现突然的性能增长。也就是说,模型规模是解锁 (unlock) LLM 新能力的关键,随着模型规模越来越大,会逐渐解锁 LLM 越来越多的新能力。这是个很神奇的现象,因为它意味着如下让人对未来可报乐观预期的可能:或许很多任务,目前 LLM 还不能很好地解决,甚至站在现在这个时刻的我们看起来,LLM 完全没有能力解决这类任务,但因 LLM 具备 “涌现能力”,所以如果我们继续推大模型,也许某一天它的这项能力就被突然解锁了。LLM 模型的规模增长会给我们带来意想不到的精彩礼物。

“Beyond the Imitation Game: Quantifying and extrapolating the capabilities of language models” 这篇文章指出,这类体现出 “涌现能力” 的任务也有一些共性:这些任务一般由多步骤构成,要解决这些任务,往往需要先解决多个中间步骤,而逻辑推理能力在最终解决这类任务中发挥重要作用。思维链(Chain of Thought)Prompting 是典型的增强 LLM 推理能力的技术,能大幅提升此类任务的效果,关于 CoT 技术,在随后小节内容会做解释,此处暂不展开。

问题是,为何 LLM 会出现这种 “涌现能力” 现象呢?上述文章以及 “Emergent Abilities of Large Language Models” 给出了几个可能的解释:

一种可能解释是有些任务的评价指标不够平滑。比如说有些生成任务的判断标准,它要求模型输出的字符串,要和标准答案完全匹配才算对,否则就是 0 分。所以,即使随着模型增大,其效果在逐步变好,体现为输出了更多的正确字符片段,但是因为没有完全对,只要有任何小错误都给 0 分,只有当模型足够大,输出片段全部正确才能得分。也就是说,因为指标不够平滑,所以不能体现 LLM 其实正在逐步改善任务效果这一现实,看起来就是 “涌现能力” 这种外在表现。

另外一种可能的解释是:有些任务由若干中间步骤构成,随着模型规模增大,解决每个步骤的能力也在逐步增强,但是只要有一个中间步骤是错的,最终答案就是错的,于是也会导致这种表面的 “涌现能力” 现象。

当然,上面的解释目前还都是猜想,至于为何 LLM 会出现这种现象,还需要进一步更深入的研究。

还有少部分任务,随着模型规模增长,任务的效果曲线展现出 U 形特性:随着模型规模逐渐变大,任务效果逐渐变差,但是当模型规模进一步增长,则效果开始越来越好,呈现出 U 形增长趋势,如上图所示的粉红色 PaLM 模型在两个任务上的指标走势。为何这些任务表现得如此特殊呢?“Inverse scaling can become U-shaped” 这篇文章给出了一种解释:这些任务,内部其实隐含了两种不同类型的子任务,一种是真正的任务,另外一种是 “干扰任务(distractor task)”。当模型规模小的时候,无法识别任意一种子任务,所以模型的表现跟随机选择答案差不多,当模型增长到中等规模的时候,主要执行的是干扰任务,所以对真正的任务效果有负面影响,体现为真正任务效果的下降,而当进一步增加模型规模,则 LLM 可以忽略干扰任务,执行真正的任务,体现为效果开始增长。

对于那些随着模型规模增大,效果一直下降的任务,如果采用思维链(CoT)Prompting,则部分任务的表现转换为遵循 Scaling law,即模型规模越大效果越好,而其它任务则转换为 U 性增长曲线。这其实侧面说明了:此类任务应属于推理类型的任务,所以加入 CoT 后任务表现会发生质的变化。

人机接口:从 In Context Learning 到 Instruct 理解
一般我们经常提到的人和 LLM 的接口技术包括:zero shot prompting、few shot prompting、In Context Learning,以及 Instruct。这些其实都是表达某个具体任务的描述方式。不过如果你看文献,会发现叫法比较乱。

其中 Instruct 是 ChatGPT 的接口方式,就是说人以自然语言给出任务的描述,比如 “把这个句子从中文翻译成英文”,类似这种。zero shot prompting 我理解其实就是现在的 Instruct 的早期叫法,以前大家习惯叫 zero shot,现在很多改成叫 Instruct。尽管是一个内涵,但是具体做法是两种做法。早期大家做 zero shot prompting,实际上就是不知道怎么表达一个任务才好,于是就换不同的单词或者句子,反复在尝试好的任务表达方式,这种做法目前已经被证明是在拟合训练数据的分布,其实没啥意思。目前 Instruct 的做法则是给定命令表述语句,试图让 LLM 理解它。所以尽管表面都是任务的表述,但是思路是不同的。

而 In Context Learning 和 few shot prompting 意思类似,就是给 LLM 几个示例作为范本,然后让 LLM 解决新问题。我个人认为 In Context Learning 也可以理解为某项任务的描述,只是 Instruct 是一种抽象的描述方式,In Context Learning 是一种例子示范的例子说明法。当然,鉴于目前这几个叫法用的有点乱,所以上述理解仅代表个人看法。

所以我们此处只对 In Context Learning 和 Instruct 进行介绍,不再提 zero shot 和 few shot 了。

神秘的 In Context Learning
如果你细想,会发现 In Context Learning 是个很神奇的技术。它神奇在哪里呢?神奇在你提供给 LLM 几个样本示例,然后给它 ,LLM 竟然能够成功预测对应的听到这你会反问:这有什么神奇的呢?Fine-tuning 不就是这样工作的吗?你要这么问的话,说明你对这个问题想得还不够深入。


Fine-tuning 和 In Context Learning 表面看似都提供了一些例子给 LLM,但两者有质的不同(参考上图示意):Fine-tuning 拿这些例子当作训练数据,利用反向传播去修正 LLM 的模型参数,而修正模型参数这个动作,确实体现了 LLM 从这些例子学习的过程。但是,In Context Learning 只是拿出例子让 LLM 看了一眼,并没有根据例子,用反向传播去修正 LLM 模型参数的动作,就要求它去预测新例子。既然没有修正模型参数,这意味着貌似 LLM 并未经历一个学习过程,如果没有经历学习过程,那它为何能够做到仅看一眼,就能预测对新例子呢?这正是 In Context Learning 的神奇之处。这是否让你想起了一句歌词:“只是因为在人群中多看了你一眼 再也没能忘掉你容颜”,而这首歌名叫 “传奇”。你说传奇不传奇?看似 In Context Learning 没从例子里学习知识,实际上,难道 LLM 通过一种奇怪的方式去学习?还是说,它确实也没学啥?关于这个问题的答案,目前仍是未解之谜。现有一些研究各有各的说法,五花八门,很难判断哪个讲述的是事实的真相,甚至有些研究结论还相互矛盾。这里提供几个目前的说法,至于谁对谁错,只能你自己把握了。当然,我认为追求这个神奇现象背后的真相,是一个好的研究课题。

试图证明 In Context Learning 没有从例子中学习的工作是 “Rethinking the Role of Demonstrations: What Makes In-Context Learning Work?”。它发现了:在提供给 LLM 的样本示例中,是否对应的正确答案,其实并不重要,如果我们把正确答案替换成随机的另外一个答案,这并不影响 In Context Learning 的效果。这起码说明了一点:In Context Learning 并没有提供给 LLM 那个从映射到的映射函数信息: ,否则的话你乱换正确标签,肯定会扰乱这个映射函数。也就是说,In Context Learning 并未学习这个输入空间到输出空间的映射过程。
真正对 In Context Learning 影响比较大的是:的分布,也就是输入文本的分布和候选答案有哪些,如果你改变这两个分布,比如把替换成候选答案之外的内容,则 In Context Learning 效果急剧下降。

总之,这个工作证明了 In Context Learning 并未学习映射函数,但是输入和输出的分布很重要,这两个不能乱改。

有些工作认为 LLM 还是从给出的示例学习了这个映射函数,不过是种隐式地学习。比如 “What learning algorithm is in-context learning? Investigations with linear models” 认为 Transformer 能够隐式地从示例中学习的映射过程,它的激活函数中包含了一些简单映射函数,而 LLM 通过示例能够激发对应的那一个。而 “Why Can GPT Learn In-Context? Language Models Secretly Perform Gradient Descent as Meta-Optimizers” 这篇文章则将 ICL 看作是一种隐式的 Fine-tuning。

总而言之,目前这还是一个未解之谜。

相关文章
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
当语言遇见智慧火花:GPT家族历代模型大起底,带你见证从平凡到卓越的AI进化奇迹!
【10月更文挑战第6天】随着自然语言处理技术的进步,GPT系列模型(Generative Pre-trained Transformers)成为该领域的明星。从GPT-1的开创性工作,到GPT-2在规模与性能上的突破,再到拥有1750亿参数的GPT-3及其无需微调即可执行多种NLP任务的能力,以及社区驱动的GPT-NeoX,这些模型不断进化。虽然它们展现出强大的语言理解和生成能力,但也存在如生成错误信息或偏见等问题。本文将对比分析各代GPT模型的特点,并通过示例代码展示其部分功能。
107 2
|
1月前
|
数据采集 API 决策智能
华为诺亚联合中科大发布工具调用模型ToolACE,效果持平GPT-4获开源第一
 【10月更文挑战第10天】华为诺亚方舟实验室与中国科学技术大学合作推出ToolACE,一种自进化合成过程的工具调用模型。ToolACE通过多智能体交互和双重验证系统生成准确、复杂、多样化的工具学习数据,显著提升大型语言模型(LLM)的功能调用能力。实验结果显示,使用ToolACE数据训练的80亿参数模型性能媲美GPT-4,在伯克利功能调用排行榜上获得开源第一。
59 4
|
2月前
|
API 云栖大会
通义千问升级旗舰模型Qwen-Max,性能接近GPT-4o
通义旗舰模型Qwen-Max全方位升级,性能接近GPT-4o
946 11
|
3月前
|
知识图谱
ARTIST的中文文图生成模型问题之通过GPT生成图像序列的问题如何解决
ARTIST的中文文图生成模型问题之通过GPT生成图像序列的问题如何解决
|
1月前
|
存储 数据采集 数据安全/隐私保护
商汤、清华、复旦等开源百亿级多模态数据集,可训练类GPT-4o模型
商汤科技、清华大学和复旦大学等机构联合开源了名为OmniCorpus的多模态数据集,规模达百亿级,旨在支持类似GPT-4级别的大型多模态模型训练。该数据集包含86亿张图像和1696亿个文本标记,远超现有数据集规模并保持高质量,具备广泛来源和灵活性,可轻松转换为纯文本或图像-文本对。经验证,该数据集质量优良,有望促进多模态模型研究,但同时也面临存储管理、数据偏见及隐私保护等挑战。
145 60
|
22天前
|
机器学习/深度学习 弹性计算 人工智能
大模型进阶微调篇(三):微调GPT2大模型实战
本文详细介绍了如何在普通个人电脑上微调GPT2大模型,包括环境配置、代码实现和技术要点。通过合理设置训练参数和优化代码,即使在无独显的设备上也能完成微调,耗时约14小时。文章还涵盖了GPT-2的简介、数据集处理、自定义进度条回调等内容,适合初学者参考。
147 6
|
21天前
|
机器学习/深度学习 人工智能 自然语言处理
开源版GPT-4o来了,AI大神Karpathy盛赞!67页技术报告全公开
【10月更文挑战第20天】近日,开源版GPT-4o的发布成为AI领域的焦点。作为GPT系列的最新成员,GPT-4o在性能和多模态数据处理方面实现了显著提升,得到了知名AI专家Andrej Karpathy的高度评价。该模型的开源特性将进一步促进AI研究的进展。
40 3
|
1月前
|
机器学习/深度学习 测试技术
ACL杰出论文奖:GPT-4V暴露致命缺陷?JHU等发布首个多模态ToM 测试集,全面提升大模型心智能力
【10月更文挑战第6天】约翰斯·霍普金斯大学等机构提出了一项荣获ACL杰出论文奖的研究,旨在解决大模型在心智理论(ToM)上的不足。他们发布了首个MMToM-QA多模态ToM测试集,并提出BIP-ALM方法,从多模态数据中提取统一表示,结合语言模型进行贝叶斯逆规划,显著提升了模型的ToM能力。这一成果为机器与人类自然交互提供了新思路,尽管仍面临一些局限性和技术挑战。论文详情见:https://arxiv.org/abs/2401.08743。
47 6
|
2月前
|
数据采集 自然语言处理 监控
大模型微调使GPT3成为了可以聊天发布指令的ChatGPT
正是通过微调大模型使得GPT3成为了可以聊天发布指令的ChatGPT。聊天大模型在通用大模型的基础上加一层微调就实现人人能用的大模型,使得通用大模型的能力被更多人使用和了解。
54 4
大模型微调使GPT3成为了可以聊天发布指令的ChatGPT
|
1月前
|
API
2024-05-14 最新!OpenAI 新模型 GPT-4 omni 简单测试,4o速度确实非常快!而且很便宜!
2024-05-14 最新!OpenAI 新模型 GPT-4 omni 简单测试,4o速度确实非常快!而且很便宜!
41 0

热门文章

最新文章