day01-初探大模型
1.介绍
1.1所需技术栈
基础模型层----中间件层----应用层
1.2历史发展
早期人工智能----机器学习----深度学习----大语言模型
2.预热篇:解码注意力机制(Attention Mechanism)
2.1实现效果
能够更好的关注到关键的信息,忽略冗余的信息。
2.2底层原理
架构图
循环神经网络(recurrent neural network,简称RNN)
**Encoder **: 将词通过RNN转换成一个个向量
Decoder : 将向量通过RNN转换成词
第一种方式(无注意力机制):击鼓传花,A to B to C to D,数据的传输可能有丢失。
第二种方式(带注意力机制):A to B to C ----- A,B,C to D
h : 输入的词
阿法 :权重
c : 加权平均值
s2不仅学了输入h也学了前一个s1
a() : 对齐函数,用来找输入与关键词的关系(alignment function)
p() : 分布函数,将其归一化,得到0~1的结果
v :输入
3.Transformer
3.分支:GPT与BERT
BERT 独特价值
1.全方位上下文理解:与以前的模型(例如GPT)相比,BERT能够双向理解上下文,即同时考虑一个词
的左边和右边的上下文。这种全方位的上下文理解使得BERT能够更好地理解语言,特别是在理解词义、
消歧等复杂任务上有明显优势。
2.预训练+微调(Pre-training + Fine-tuning)的策略:BERT模型先在大规模无标签文本数据上进行预训
练,学习语言的一般性模式,然后在具体任务的标签数据上进行微调。这种策略让BERT能够在少量标签
数据上取得很好的效果,大大提高了在各种NLP任务上的表现。
3.跨任务泛化能力:BERT通过微调可以应用到多种NLP任务中,包括但不限于文本分类、命名实体识别、
问答系统、情感分析等。它的出现极大地简化了复杂的NLP任务,使得只需一种模型就能处理多种任务。
**4.多语言支持:**BERT提供了多语言版本(Multilingual BERT),可以支持多种语言,包括但不限于英语、
中文、德语、法语等,使得NLP任务能够覆盖更广的语言和区域。
**5.性能优异:**自BERT模型提出以来,它在多项NLP基准测试中取得了优异的成绩,甚至超过了人类的表
现。它的出现标志着NLP领域进入了预训练模型的新时代。
6.开源和可接入性:BERT模型和预训练权重由Google公开发布,让更多的研究者和开发者可以利用BERT
模型进行相关研究和应用开发,推动了整个NLP领域的发展。
Embedding : 就是用一个低维稠密的向量表示一个对象,这里的对象可以是一个词(Word2vec),也可以是一个物品(Item2vec),亦或是网络关系中的节点(Graph Embedding)。Embedding向量能够表达对象的某些特征,两个向量之间的距离反映了对象之间的相似性
4.GPT介绍
SOTA model:并不是特指某个具体的模型,而是指在该项研究任务中,目前最好/最先进的模型
预训练语言模型的三种网络架构(2018-2020):
GPT1 : 2018年,GPT-1诞生,这一年也是NLP(自然语言处理)的预训练模型元年。性能方面,GPT-1有着一定的泛化能力,能够用于和监督任务无关的NLP任务中, 虽然GPT-1在未经调试的任务上有一些效果,但其泛化能力远低于经过微调的有监督任务,因此GPT-1只能算得上一个还算不错的语言理解工具而非对话式AI。
GPT2 : 2019年如期而至,不过,GPT-2并没有对原有的网络进行过多的结构创新与设计,只使用了更多的网络参数与更大的数据集,**在性能方面,除了理解能力外,GPT-2在生成方面第一次表现出了强大的天赋:阅读摘要、聊天、续写、编故事,甚至生成假新闻、钓鱼邮件或在网上进行角色扮演通通不在话下。**在“变得更大”之后,GPT-2的确展现出了普适而强大的能力,并在多个特定的语言建模任务上实现了彼时的最佳性能。
GPT3 : GPT-3出现了,作为一个无监督模型(现在经常被称为自监督模型),几乎可以完成自然语言处理的绝大部分任务, 该模型在诸多任务上表现卓越,例如在法语-英语和德语-英语机器翻译任务上达到当前最佳水平, 且GPT-3不需要微调,在处理语法难题方面,它只需要一些输出类型的样本(少量学习)。可以说GPT-3似乎已经满足了我们对于语言专家的一切想象。
3个关键概念
In-Context Learning:在上下文中学习指的是大型语言模型如GPT-3的一种能力,即在给定的上
下文中使用新的输入来改善模型的输出。这种学习方式并不涉及到梯度更新或微调模型的参数,
而是通过提供一些具有特定格式或结构的示例输入,使模型能够在生成输出时利用这些信息。例
如,如果你在对话中包含一些英法翻译的例子,然后问模型一个新的翻译问题,模型可能会根据
你提供的上下文示例生成正确的翻译。
Few-Shot Learning:少样本学习是指用极少量的标注样本来训练机器学习模型的技术。在GPT-
3的案例中,少样本学习的实现方式是向模型提供少量的输入-输出对示例,这些示例作为对话的
一部分,描述了模型应该执行的任务。然后,模型会生成一个输出,该输出是对与示例类似的新
输入的响应。例如,你可以给模型提供几个英法翻译的例子,然后给出一个新的英文单词让模型
翻译,模型会尝试产生一个正确的翻译。
Prompt Engineering:提示工程是指设计和优化模型的输入提示以改善模型的输出。在大型语言
模型中,如何提问或构造输入的方式可能对模型的输出有重大影响。因此,选择正确的提示对于
获取有用的输出至关重要。例如,为了让GPT-3生成一个诗歌,你可能需要提供一个详细的、引
导性的提示,如“写一首关于春天的十四行诗” ,而不仅仅是“写诗” 。
5.OpenAI的模型迭代:预训练与微调共舞
在 GPT 模型的演进过程中,OpenAI 采用了一系列的训练策略,这包括基础的大规模预训练,也包括后
续的指令微调等方法。这两种策略在模型的训练过程中起到了不同的作用。
• 预训练(Pre-Trained):大规模预训练是为了使模型获取丰富的语言知识和理解能力。在预训练过程
中,模型通过大量的无标签数据来学习语言的基础知识,这一过程主要是依赖无监督学习的。
• 指令微调(Instruction-Tuning):在预训练模型的基础上,通过针对特定任务的标注数据进行微调,
能够使模型在特定任务上的表现得到提升。同时,通过对微调数据的精心设计和选择,还能够引导模
型按照人类的预期来执行任务。这一过程主要依赖有监督学习。
在这个过程中,预训练和微调是相辅相成的。预训练为模型提供了丰富的语言知识,而微调则利用这些
知识来解决特定的任务。然而,微调的数据量通常比预训练的数据量要少得多,因此微调的主要作用并
不是为模型注入新的知识,而是激发和引导模型利用已有的知识来完成特定任务。
在GPT模型的演进过程中,OpenAI还探索了多种微调策略,例如GPT-3.5的分化技能树等。这些微调策
略能够帮助模型在不同的任务上表现得更好,同时也使模型的输出更符合人类的预期。
此外,OpenAI还注意到,模型在进行微调时可能会出现一些问题,例如数据稀疏性、灾难遗忘、资源
浪费和通用性差等。为了解决这些问题,OpenAI提出了一种新的训练策略,即提示学习。通过设计提
示信息,可以激发预训练大模型的能力,从而提高模型在具体任务上的表现。
5.1初代 GPT-3.5 : code-davinci-002
初代GPT-3.5系列(以下简称新模型)相比 GPT-3 系列模型,具有以下优点:
• 人类指令响应 (Responding to Human Instructions):新模型能针对特定指令生成更恰当的回应,而非回复训练
集中频繁出现的无关句子。
• 任务泛化能力 (Task Generalization):当新模型接收大量指令调整后,能自动适应并有效回答未见过的新指令,
这在应对用户不断变化的问题上至关重要。
• 代码理解与生成 (Code Understanding and Generation):经过代码训练的新模型能理解并生成代码,强化了编
程相关应用的能力。
• 复杂推理的思维链 (Chain of Thought for Complex Reasoning):新模型已提高思维链推理能力,使其能处理
需要多步推理的问题,这可能是突破模型缩放法则(scaling laws)限制,实现真正的突现性能力的关键。
5.2**总结:**ChatGPT 是技术和商业的成功结合
1. 模型训练:虽然GPT-3和ChatGPT都是基于Transformer的语言模型,但在训练数据和目标函数
上有所不同。GPT-3主要是用大量的非结构化文本进行训练的,而ChatGPT则在GPT-3的基础
上进行了进一步的训练,这包括使用与对话相关的数据集和更适合对话任务的训练目标。
2. 对话管理:ChatGPT在对话管理方面进行了优化,以提供更自然、连贯的对话体验。这包括保
持对话的上下文、处理多轮对话、以及在一个对话中处理多个话题等。
3. 用户输入处理:ChatGPT也进行了优化以更好地处理用户的输入。这包括理解和响应各种类型
的查询,如信息查询、任务请求、小说式的输入等。
4. 输出生成:ChatGPT进行了一些优化以生成更贴近人类的输出。这包括使用更复杂的生成策
略、生成更长的响应、以及更好地处理模糊或不确定的输入等。
5. 安全性和道德规范:ChatGPT还进行了一些改进以提高模型的安全性和符合道德规范。这包括
对模型的过滤和调节,以防止生成不适当或有害的内容,以及对模型进行额外的评估和测试,
以确保其在各种情况下都能表现良好。
5.3GPT-4: 多模态开启 LLM-native 应用时代
2022年8月,GPT-4 模型训练完成。2023年3月14日,OpenAI 正式发布 GPT-4。 与GPT-3和GPT-3.5相比,
GPT-4在各方面都有所优化和提升:
1. 多模态模型: GPT-4支持图像输入,出色的视觉信息理解能力使得GPT-4能对接更多样化的下游任务,
如:描述不寻常图像中的幽默、总结截屏文本以及回答包含图表的试题。在文本理解能力上,GPT-4 在中
文和多轮对话中也表现出远超 GPT-3.5 的能力。
2. **扩展上下文窗口:**gpt-4 and gpt-4-32k 分别提供了最大长度为8192和32768个token的上下文窗口。这使得
GPT-4可以通过更多的上下文来完成更复杂的任务,也为 思维链(CoT)、思维树(ToT)等后续工作提供
了可能。
**3. GPT+**生态 :借助GPT-4强大能力,依托 ChatGPT Plugin 搭建AIGC应用生态商店(类似 App Store)
4. 应用+GPT:GPT-4已经被应用在多个领域,包括微软Office、Duolingo、Khan Academy等。
6.**提示学习(**Prompt Learning)
6.1Prompt Learning vs In-context Learning
• Prompt learning 是一种使用预训练语言模型的方法,它不会修改模型的权重。在这种方法中,模型
被给予一个提示(prompt),这个提示是模型输入的一部分,它指导模型产生特定类型的输出。这
个过程不涉及到对模型权重的修改,而是利用了模型在预训练阶段学习到的知识和能力。
• In-context learning 是指模型在处理一系列输入时,使用前面的输入和输出作为后续输入的上下
文。这是Transformer模型(如GPT系列)的一种基本特性。例如,当模型在处理一个对话任务时,
它会使用对话中的前几轮内容作为上下文,来生成下一轮的回答。这个过程也不涉及到对模型权重的
修改。
总的来说,prompt learning和in-context learning都是利用预训练语言模型的方法,它们都不会修改模
型的权重。它们的主要区别在于,prompt learning关注的是如何通过设计有效的提示来引导模型的输
出,而in-context learning则关注的是如何利用输入序列中的上下文信息来影响模型的输出。
6.2Prompt Learning vs Prompt Tuning
Prompt learning和prompt tuning都是自然语言处理(NLP)中的概念,它们都与如何使用和优化预**
训练语言模型(例如GPT-3或GPT-4)有关。
• Prompt learning:是一种方法,其中模型被训练以响应特定的提示(prompt)。在这种情况下,
提示是模型输入的一部分,它指导模型产生特定类型的输出。例如,如果你向模型提供了"Translate
the following English text to French: {text}"这样的提示,模型就会学习到这是一个翻译任务,并尝试
将{text}从英语翻译成法语。这种方法的关键在于找到能够引导模型正确响应的有效提示。
• Prompt tuning,又称为"prompt engineering" ,是一种优化技术,它涉及到寻找或生成能够最大限
度提高模型性能的提示。这可能涉及到使用启发式方法、人工智能搜索算法,或者甚至是人工选择和
优化提示。Prompt tuning的目标是找到一种方式,使得当给定这个提示时,模型能够生成最准确、
最相关的输出。
总的来说,prompt learning和prompt tuning都与如何使用和优化模型的输入提示有关。它们的主要区
别在于,prompt learning更关注于如何训练模型以响应特定的提示,而prompt tuning则更关注于如何
找到或生成最优的提示以提高模型的性能
7.思维链**(**Chain-of-Thought, CoT)
7.1Chain-of-Thought Prompting
CoT Prompting 作为一种促进语言模型推理的方法具有几个吸引人的特点:
• 首先,从原则上讲,CoT 允许模型将多步问题分解为中间步骤,这意味着可以将额外计算资源分配
给需要更多推理步骤的问题。
• 其次,CoT 提供了对模型行为的可解释窗口,提示了它可能是如何得出特定答案的,并提供了调试
推理路径错误之处的机会(尽管完全描述支持答案的模型计算仍然是一个未解决问题)。
• 第三,在数学应用题、常识推理和符号操作等任务中都可以使用思维链推理(CoT Reasoning),
并且在原则上适用于任何人类能够通过语言解决的任务。
• 最后,在足够大规模现成语言模型中很容易引发 CoT Reasoning ,只需在少样本提示示例中包含一
些连贯思路序列即可
8.**自洽性(**Self-Consistency):多路径推理
多条思维链寻最优