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

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*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。

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

相关文章
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
当语言遇见智慧火花:GPT家族历代模型大起底,带你见证从平凡到卓越的AI进化奇迹!
【10月更文挑战第6天】随着自然语言处理技术的进步,GPT系列模型(Generative Pre-trained Transformers)成为该领域的明星。从GPT-1的开创性工作,到GPT-2在规模与性能上的突破,再到拥有1750亿参数的GPT-3及其无需微调即可执行多种NLP任务的能力,以及社区驱动的GPT-NeoX,这些模型不断进化。虽然它们展现出强大的语言理解和生成能力,但也存在如生成错误信息或偏见等问题。本文将对比分析各代GPT模型的特点,并通过示例代码展示其部分功能。
157 2
|
2月前
|
数据采集 API 决策智能
华为诺亚联合中科大发布工具调用模型ToolACE,效果持平GPT-4获开源第一
 【10月更文挑战第10天】华为诺亚方舟实验室与中国科学技术大学合作推出ToolACE,一种自进化合成过程的工具调用模型。ToolACE通过多智能体交互和双重验证系统生成准确、复杂、多样化的工具学习数据,显著提升大型语言模型(LLM)的功能调用能力。实验结果显示,使用ToolACE数据训练的80亿参数模型性能媲美GPT-4,在伯克利功能调用排行榜上获得开源第一。
90 4
|
3月前
|
API 云栖大会
通义千问升级旗舰模型Qwen-Max,性能接近GPT-4o
通义旗舰模型Qwen-Max全方位升级,性能接近GPT-4o
1505 11
|
19天前
|
数据采集 人工智能 数据可视化
InternVL 2.5,首个MMMU超过70%的开源模型,性能媲美GPT-4o
近期Internvl2.5发布,性能与GPT-4o和Claude-3.5-sonnet等领先的商业模型相媲美,成为首个在MMMU上超过70%的开源模型,通过链式思考(CoT)推理实现了3.7个百分点的提升,展示了强大的测试时间可扩展性潜力。
|
1月前
|
自然语言处理 搜索推荐 Serverless
基于函数计算部署GPT-Sovits模型实现语音生成
阿里云开发者社区邀请您参加“基于函数计算部署GPT-Sovits模型实现语音生成”活动。完成指定任务即可获得收纳箱一个。活动时间从即日起至2024年12月13日24:00:00。快来报名吧!
|
2月前
|
存储 数据采集 数据安全/隐私保护
商汤、清华、复旦等开源百亿级多模态数据集,可训练类GPT-4o模型
商汤科技、清华大学和复旦大学等机构联合开源了名为OmniCorpus的多模态数据集,规模达百亿级,旨在支持类似GPT-4级别的大型多模态模型训练。该数据集包含86亿张图像和1696亿个文本标记,远超现有数据集规模并保持高质量,具备广泛来源和灵活性,可轻松转换为纯文本或图像-文本对。经验证,该数据集质量优良,有望促进多模态模型研究,但同时也面临存储管理、数据偏见及隐私保护等挑战。
189 60
|
1月前
|
弹性计算 自然语言处理 搜索推荐
活动实践 | 基于函数计算部署GPT-Sovits模型实现语音生成
通过阿里云函数计算部署GPT-Sovits模型,可快速实现个性化声音的文本转语音服务。仅需少量声音样本,即可生成高度仿真的语音。用户无需关注服务器维护与环境配置,享受按量付费及弹性伸缩的优势,轻松部署并体验高质量的语音合成服务。
|
12天前
|
人工智能 API Windows
免费部署本地AI大语言模型聊天系统:Chatbox AI + 马斯克grok2.0大模型(简单5步实现,免费且比GPT4.0更好用)
本文介绍了如何部署本地AI大语言模型聊天系统,使用Chatbox AI客户端应用和Grok-beta大模型。通过获取API密钥、下载并安装Chatbox AI、配置模型,最终实现高效、智能的聊天体验。Grok 2大模型由马斯克X-AI发布,支持超长文本上下文理解,免费且易于使用。
50 0
|
2月前
|
机器学习/深度学习 弹性计算 人工智能
大模型进阶微调篇(三):微调GPT2大模型实战
本文详细介绍了如何在普通个人电脑上微调GPT2大模型,包括环境配置、代码实现和技术要点。通过合理设置训练参数和优化代码,即使在无独显的设备上也能完成微调,耗时约14小时。文章还涵盖了GPT-2的简介、数据集处理、自定义进度条回调等内容,适合初学者参考。
485 6
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
开源版GPT-4o来了,AI大神Karpathy盛赞!67页技术报告全公开
【10月更文挑战第20天】近日,开源版GPT-4o的发布成为AI领域的焦点。作为GPT系列的最新成员,GPT-4o在性能和多模态数据处理方面实现了显著提升,得到了知名AI专家Andrej Karpathy的高度评价。该模型的开源特性将进一步促进AI研究的进展。
72 3

热门文章

最新文章