大模型理论基础初步学习笔记——第二章 大模型的能力

大模型理论基础初步学习笔记——第二章 大模型的能力

本文GitHub地址https://github.com/panda-like-bamboo/Study-CS324

2.1概述

我们的研究对象:

GP-3

2.1.1基准测试:

标准的自然语言处理(NLP)基准测试,例如问题回答;
一些特殊的一次性演示,例如在句子中使用新词。

2.1.2结果:

在某些任务上,比如语言建模,GPT-3大幅度超越了现有技术的最高水平;
在其他任务上,GPT-3与训练有素,拥有大量标签数据的系统竞争时,却明显落后。

2.1.3结论:

在广泛的NLP任务中做得不错;
未特殊训练过度拟合,由很大的提升潜力;
对于特殊任务,可利用大量的标签数据来适应GPT-3,并超越当前的技术水平

2.1.4总结(太长不看版):

通过标准NLP测试和一些特殊演示,我们发现GPT-3在一些任务上表现优异,如语言建模,但在与专门训练的系统竞争时,表现较差。理解这一现象的关键是GPT-3未专门为这些任务进行训练,而是作为通用语言模型。尽管如此,GPT-3在广泛的NLP任务中表现良好,且因未过度拟合,具备在其他任务上发挥潜力的可能性。对于特定任务的优化,使用大量标签数据可以帮助适应GPT-3并超越当前技术水平。总体而言,GPT-3展示了通用性,但特定任务的性能提升可能需要更多专业知识和数据。

2.2 语言模型的适应性:从语言模型到任务模型的转化

在自然语言处理的世界中,语言模型 p p p是一种对token序列 x 1 : L {x_{1:L}} x1:L的分布。

其实这一部分主要通过展示gpt-3的优越性能,来告诉大家这个大模型怎么怎么好,以及其中怎么转化的。总而言之,gpt-3真不错。(笑)

2.2.1任务:

被定义为从输入映射到输出。

2.2.2适应(Adaptation):

指代将语言模型转化为任务模型的过程。

2.2.2.1输入(2个):

任务的自然语言描述;
一组训练实例(输入-输出对)。

2.2.2.2适应方法(2个):

训练(标准的有监督学习)
提示(上下文)学习

2.2.2.2.1训练(标准的有监督学习):

训练一个新模型,使其能够将输入映射到输出。
创建新模型并利用语言模型作为特征(探针法)。
或者从现有的语言模型出发,根据训练实例进行更新(微调)。
或者在创建新模型和微调之间找到平衡(轻量级的微调)。

2.2.2.2.2提示(上下文)学习:

根据任务描述创建一个或一组提示/上下文信息,将其输入到语言模型中以获取基于该任务的生成结果。
根据提示/上下文信息的数量,可以进一步细分为:
零样本学习(Zero-shot): 模型直接基于对任务的理解输出结果,即不使用任何提示/上下文信息。
单样本学习(One-shot): 模型基于1个例子,这种情况下,使用一个示例来更好地理解任务从而生成更好的结果。
少样本学习(Few-shot): 模型可以看到更丰富的例子,一般来说,使用多个例子可以获得比单样本学习更好的效果。

训练适用于一般的有监督学习,而提示学习则允许通过提示/上下文信息进行零样本、单样本或少样本学习,以更好地适应各种任务。

2.2.2.2.3对于上述中方法的名词进行解释

探针(probe)
通常指的是一个额外的模型或一组参数,被添加到一个已经训练好的模型之上,以用于执行特定的任务或评估模型对任务的性能。探针的目的是在不改变原始模型结构的情况下,通过在模型的中间层或输出层添加额外的参数,使得模型适用于特定任务。
在上文提到的"创建新模型并利用语言模型作为特征(探针法)"中,探针就是指将语言模型作为特征嵌入到新模型中。这个新模型(探针)在原始模型(如语言模型)的输出上进行训练,以适应特定任务。这样的探针充当了新模型与语言模型之间的连接,使得模型能够在新任务上表现良好,同时充分利用了语言模型在通用语言理解上的优势。
总体来说,"探针"是一种策略,用于将已有模型应用于特定任务或领域,而不必重新训练整个模型。通过添加探针,可以更灵活地利用已有模型的通用性,并在特定任务上实现更好的性能。

微调
微调是指在一个已经训练好的模型的基础上,通过使用新的、任务相关的数据集进行进一步的训练,以调整模型的参数,使其适应新任务。微调的目的是在不从头开始训练模型的情况下,使模型适应于特定的应用或领域。
微调的优势在于,它可以在已有模型的基础上,通过相对较少的训练步骤就能够适应新任务,从而节省计算资源和时间。这对于任务特定的应用场景非常有用,尤其是当已有模型在通用领域已经表现很好时。

轻量级的微调
这表示在新模型和微调之间进行一些权衡,以平衡通用性和任务特定性。这可能涉及在模型中引入一些特定任务的结构或调整模型的某些方面,而不完全创建全新的模型。

2.2.3训练可能出现的问题

过拟合

2.2.4对于任务的讨论

定义:任务是什么,以及其动机?
适应:我们如何通过提示将任务简化为语言模型?
结果:与该任务的最先进模型相比,GPT-3的定量性能如何?
目的:查看模型的大小和上下文训练实例的数量是否真的重要?

(这一部分到文末会进行总结)

2.2.5实验任务选择

Language modeling (预测)(此部分包含对于困惑度的讲解)
Question answering (输入问题输出问题)
Translation (翻译)
Arithmetic (抽象逻辑,做算术题)
News article generation (给标题写文章)
Novel tasks (文字功底)

2.2.6Language modeling
2.2.6.1语言模型和困惑度:

语言模型(Language Modeling): 在NLP中,语言模型用于对给定的文本序列计算概率分布。作者提到语言模型可以评估序列(如给定的文本序列的概率)或生成完整的序列。一个典型的任务是给定一个上下文,预测下一个词的概率。

困惑度(Perplexity):

是衡量语言模型性能的指标,用于评估模型在预测下一个词时的不确定性。困惑度越低,表示模型在预测时越准确。具体计算方式是对模型在测试集上的负对数似然值取指数平均。这个指标可以理解为模型对每个词的平均“分支因子”,即模型认为在每个位置有多少种可能的词。
例如,若困惑度为10,那意味着每次模型在预测下一个词时,平均上会考虑10个词作为可能的选择。
不取算数平均,取几何平均。

困惑度的计算公式(看看得了,看不懂问题似乎也不大)

Perplexity  p ( x 1 : L ) = exp ⁡ ( 1 L ∑ i = 1 L log ⁡ p ( x i ∣ x 1 : i − 1 ) ) \text{Perplexity } p(x_{1:L}) = \exp\left(\frac{1}{L}\sum_{i=1}^{L} \log p(x_i \mid x_{1:i-1})\right) Perplexity p(x1:L)=exp(L1i=1Llogp(xix1:i1))

  • x1:L: 表示一个长度为 L 的序列,例如文本中的一段话或一篇文章。
  • p(xi | x1:i−1): 表示在给定前面的词序列 x1:i−1 后,模型预测下一个词 xi 出现的条件概率。这个概率值是模型在训练过程中学到的。
  • log p(xi | x1:i−1): 对上述条件概率取对数,这样做有助于处理概率相乘时的数值稳定性问题。
  • ∑ i=1 to L log p(xi | x1:i−1): 对整个序列中每个位置的条件概率取对数后求和,得到一个表示整个序列概率的对数似然值。
  • 1/L: 对上述对数似然值取平均,即除以序列的长度 L。这是为了得到每个词的平均预测不确定性。
  • exp(∑ i=1 to L log p(xi | x1:i−1) / L): 最后,对上述平均对数似然值取指数,得到最终的困惑度。
两类错误:

召回错误:语言模型未能正确地为某个词符分配概率值。这种情况下,困惑度是毫不留情的。
精确度错误:语言模型为某些错误的词序列过度分配了概率值。在这种情况下,困惑度会进行适度的惩罚,如混入5%的问题信息,就会由5%的概率出现一个没有意义的词。

这里面由公式来看能证明这两个的问题,不过为了简略一点,此处不放公式了。总而言之,如果分配的很离谱,比如概率为0,困惑度为无穷,就会被公式甄别处理;如果分配仅仅是精度上的问题,公式就不能很好解决

2.2.6.2数据集和任务:
  • Penn Tree Bank (PTB): 是一个经典的NLP数据集,最初用于句法解析任务。在这里,作者使用PTB数据集来评估语言模型的性能。通过将整个文本作为提示输入到GPT-3中,并计算困惑度,作者展示了GPT-3在这个任务上的表现超过了先前的最佳结果(state-of-the-art)。
    注意: 数据泄露是当前大型数据集的另一个复杂问题:很难检查你的测试数据是否出现在你的训练数据中,并被记忆下来。

  • LAMBADA: 是一个任务,要求模型预测句子的最后一个词。通过构建输入-输出映射,使用额外的示例进行上下文学习,作者展示了GPT-3在这个任务上的性能较先前的最佳结果(GPT-2)更好。

  • HellaSwag: 是一个多项选择任务,旨在评估模型进行常识推理的能力。作者使用语言模型为每个候选答案打分,并预测“最佳”答案。虽然GPT-3在这个任务上表现良好,但没有超过最先进水平(state-of-the-art)。
    注意: 这玩意就是选择题选择最优项

2.2.7 Question answering问答任务

在问答任务中,模型需要回答一个问题,而不依赖于外部数据库或文档。举例来说:

Input: What school did Burne Hogarth establish?
Output: School of Visual Arts

这里使用的数据集包括 TriviaQA,WebQuestions,NaturalQuestions。GPT-3 在这些任务上的性能与其他模型(如RAG)相比较好。

2.2.8 Translation机器翻译

机器翻译任务是将源语言的句子翻译成目标语言的句子。对于德语到英语的翻译,GPT-3 在 zero-shot 和 few-shot 的情况下都取得了较好的结果。这显示了即使在没有监督训练数据的情况下,GPT-3 也能达到与全监督系统相媲美的水平。

2.2.9 Arithmetic算术

在算术任务中,模型需要解答算术问题,如加法、减法、乘法。虽然这不是 GPT-3 的主要任务,但模型在这个任务上表现出令人惊讶的结果。

2.2.10 News article generation新闻文章生成

在新闻文章生成任务中,给定标题和副标题,模型需要生成一篇新闻文章。人类评分结果显示,人类仅有52%的时间能够正确地区分“人类”与“机器”。

2.2.11 Novel tasks新颖任务

在新颖任务中,模型需要执行一些新颖的任务,如使用新造词生成句子,或者纠正不合语法的句子。

2.2.12 其他任务

除了上述任务之外,GPT-3 还应用于多个其他任务,包括基准数据集和一次性演示。这些任务涵盖了词汇替换、多任务理解、问答数据集等多个领域。

2.2.13总结

本文深入研究了语言模型 p p p在自然语言处理中的应用,重点关注了将其从语言模型转化为任务模型的适应性过程。任务模型指的是从输入到输出的映射,而适应性方法包括训练和提示学习。在训练中,我们通过有监督学习、利用语言模型作为特征、微调以及轻量级微调等方式训练新模型。而提示学习则通过根据任务描述创建提示/上下文信息,实现零样本、单样本和少样本学习。本文引入了困惑度作为度量语言模型性能的标准,并讨论了不同任务上的实验结果,包括问答、机器翻译、算术、新闻文章生成等。总体而言,GPT-3在各类任务中表现卓越,展现了其在多领域适应性上的强大性能。

  • GPT-3在广泛的标准NLP基准测试和一次性任务上进行了评估。
  • GPT-3可以表现得极好或者非常普通。
  • 增加模型的大小和示例的数量都有助于提高性能。
  • 有一些启发式的方法可以将语言模型适应到感兴趣的任务。
  • 但是为什么会有这样表现,没有人知道。
2.2.14任务讨论总结回答(回答2.2.4)
  • 定义:任务是什么,以及其动机?
    任务指的是将输入映射到输出的问题或目标。在多任务适应性中,这些任务可以涵盖问答、翻译、算术等多个领域。动机在于测试语言模型在各种任务上的通用性和适应性。

  • 适应:我们如何通过提示将任务简化为语言模型?
    通过提示学习,将任务描述或训练实例输入到语言模型中。这包括零样本、单样本和少样本学习,允许模型通过上下文信息进行适应,而无需重新训练。

  • 结果:与该任务的最先进模型相比,GPT-3的定量性能如何?
    GPT-3在问答、机器翻译、算术和新闻生成等任务上展现出卓越性能,超越了先进模型,表现出强大的通用性。

  • 目的:查看模型的大小和上下文训练实例的数量是否真的重要
    目的在于验证模型的通用性是否受模型大小和训练实例数量的影响。结果显示,GPT-3在各任务上的出色表现表明其对任务适应性的鲁棒性,不仅仅受模型规模和数据量的限制。

本篇学习心得总结(彩蛋):

“总体而言,GPT-3在各类任务中表现卓越,展现了其在多领域适应性上的强大性能。”(本总结来自chatgpt-3.5

参考:

[1]datawhale讲义: https://github.com/datawhalechina/so-large-lm
[2]CS324: https://stanford-cs324.github.io/winter2022/lectures/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值