目录
[大语言模型的基本概念 "大"体现在什么地方?](#大语言模型的基本概念 “大”体现在什么地方?)
[思维链提示(Chain-of-Thought Prompting)的基本概念](#思维链提示(Chain-of-Thought Prompting)的基本概念)
大语言模型的基本概念 "大"体现在什么地方?
大语言模型(Large Language Model, LLM)是指那些具有非常大的参数量、训练数据集规模和计算资源需求的深度学习模型 ,它们通常基于神经网络架构,并通过大量文本数据进行训练。这些模型能够生成人类语言的文本,执行各种自然语言处理任务,如翻译、问答、摘要等。
大语言模型的"三大"特点: 大数据(训练数据巨大)、大模型(参数数量大)、大算力
预训练+微调两阶段的基本流程和作用
第一阶段:利用语言模型进行无监督预训练
通过设计好一个网络结构来作语言模型任务,然后用海量无标注自然语言文本作为原料,用无监督学习的方式训练模型。
第二阶段:通过监督微调的模式解决下游任务
流程:①准备特定任务数据集 :为特定的下游任务 收集带有标签 的小规模 数据集。② 调整模型结构:根据需要添加新的层或者修改现有层来适应具体任务的要求③ 设置微调参数 ④训练模型
是在已有的模型上进行进一步训练,改变模型内部参数,让模型更适应特定任务,属于监督微调SFT: Supervised Fine-Tuning)
BERT模型中MLM和NSP机制基本概念
BERT(Bidirectional Encoder Representation from Transformer),是基于Transformer 的自然语言表示框架。
- Transformer 编码器:BERT与GPT一样,都是基于Transformer的二阶段训练模型,都在Pre-Training阶段无监督地训练出一个可通用的Transformer模型,然后在Fine-Tuning阶段对这个模型中的参数进行微调,使之能够适应不同的下游任务。
- 双向性:与以前的单向模型(如 GPT)不同,BERT采用的是双向的Transformer,也就是不用进行Mask操作,同时考虑一个词左右两边的信息来推断该词的意义。这种特性使得 BERT 能够更准确地理解词汇的上下文。
为了使模型获得对语言结构的广泛理解,BERT 有了两个预训练方法创新 :MLM和NSP
MLM
- 掩码语言建模 (Masked Language Modeling, MLM) :**随机遮盖输入序列中的一部分词(通常是15%),然后让模型预测这些被遮盖掉的词。**这个任务帮助模型学习到词语之间的相互关系和上下文信息。
理解: 在Transformer中,我们即想要知道上文的信息,又想要知道下文的信息,但同时要保证整个模型不知道要预测词的信息,那么就干脆不要告诉模型这个词的信息就可以了。也就是说,BERT在输入的句子中,挖掉一些需要预测的词,然后通过上下文来分析句子,最终使用其相应位置的输出来预测被挖掉的词。这其实就像是在做完形填空 一样。
但是,直接将大量的词替换为<MASK>标签可能会造成一些问题,模型可能会认为只需要预测<MASK>相应的输出就行,其他位置的输出就无所谓。同时Fine-Tuning阶段的输入数据中并没有<MASK>标签,也有数据分布不同的问题。为了减轻这样训练带来的影响,BERT采用了如下的方式:
1.输入数据中随机选择15%的词用于预测,这15%的词中,
2.80%的词向量输入时被替换为<MASK>
3.10%的词的词向量在输入时被替换为其他词的词向量
4.另外10%保持不动
这样一来就相当于告诉模型,我可能给你答案,也可能不给你答案,也可能给你错误的答案,有<MASK>的地方我会检查你的答案,没<MASK>的地方我也可能检查你的答案,所以<MASK>标签对你来说没有什么特殊意义,所以无论如何,你都要好好预测所有位置的输出。
NSP
- 下一句预测 (Next Sentence Prediction, NSP) :**给定两个句子 A 和 B,模型需要判断 B 是否是 A 的下一个句子。**这个任务有助于提高模型对于句子间连贯性的理解,在问答、文本蕴含等任务中有重要作用。
BERT还提出了另外一种预训练方式NSP,与MLM同时进行,组成多任务预训练。这种预训练的方式就是往Transformer中输入连续的两个句子,左边的句子前面加上一个<CLS>标签,它的输出被用来判断两个句子之间是否是连续上下文关系。采用负采样的方法,正负样本(是否有连续上下文关系)各占50%。
输入表示:BERT 的输入是由三个向量相加组成的,以确保模型可以区分不同的部分并捕捉到句子的位置和顺序信息。
词向量(Token Embeddings):每个 token(包括特殊符号如 [CLS] 和 [SEP])都有一个对应的词嵌入,这代表了词汇表中的位置。
位置向量(Positional Embeddings):虽然 Transformer 架构本身并不具备处理序列顺序的能力,但通过加入位置编码,BERT 能够了解 token 在序列中的绝对或相对位置。
段向量(Segment Embeddings) :也称为句子 A/B 嵌入,**用于标识哪个 token 属于句子 A 或句子 B。**这对于二元分类任务尤其重要,例如 NSP,其中需要明确知道哪些部分构成了第一个句子,哪些构成了第二个句子。
Prompt学习的基本概念
提示学习(Prompt-based Learning)是一种利用预训练语言模型(如BERT、GPT等)进行特定任务 的方法,它通过构造一个或多个提示(prompt)来引导模型生成预期的输出 。这种方法允许用户以自然语言的方式与模型交互,并且可以在不改变模型权重的情况下实现多种应用。
提示学习的基本概念
-
提示(Prompt):提示是指一段文本,通常包含一些上下文信息和一个空白处,用于指导模型生成特定类型的输出。例如,在问答任务中,提示可以是"问题: [问题内容] 答案:",然后让模型填充答案部分。
-
零样本学习(Zero-shot learning):在没有针对特定任务进行任何微调的情况下,直接使用预训练好的大语言模型完成新任务。提示学习特别适合这种场景,因为它依赖于模型已经学到的语言知识。
-
少样本学习(Few-shot learning):提供少量的例子作为示范,帮助模型理解如何应对新的任务。这些例子被嵌入到提示中,形成所谓的"in-context learning"。
流程
- 提示添加
- 答案搜索
- 答案映射
思维链提示(Chain-of-Thought Prompting)的基本概念
随着语言模型规模的不断扩大,其也具备了丰富的知识和强大的语境学习能力。然而,仅仅通过扩大语言模型的规模,并不能显著提升推理(Reasoning)能力, 如常识推理、逻辑推理、数学推理等。通过示例(Demonstrations)或者明确指导模型在面对问题时如何逐步思考,促使模型在得出最终答案之前生成中间的推理步骤,可以显著提升其在推理任务上的表现。这种方法被称为思维链提示 (Chain-of-Thought Prompting)。
理解:语言模型在推理能力方面的表现一直未能令人满意,一些研究人员认为这可能是因 为此前的模式是直接让模型输出结果,而忽略了其中的思考过程。人类在解决包括 数学应用题在内的、涉及多步推理的问题时,通常会逐步书写整个解题过程的中间 步骤,最终得出答案。如果明确告知模型先输出中间的推理步骤,再根据生成的步 骤得出答案,是否能够提升其推理表现呢? 针对这个问题,Google Brain 的研究人员提出了思维链(Chain-of-Thought, CoT)提示方式[171],除了将问题输入模型,还将类似题目的解题思路和步骤输 入模型,使得模型不仅输出最终结果,还输出中间步骤,从而提升模型的推理能力。 研究人员甚至提出了零样本思维链(Zero-shot Chain-of-Thought,Zeroshot CoT)提示方式,只需要简单地告知模型**"让我们一步一步思考(Let's thinkstep by step)"**,模型就能够自动输出中间步骤。
模型蒸馏的基本概念
采用的方法:迁移学习
主要思想:通过预先训练好的复杂模型(Teacher model)的最后输出结果来作为先验知识,结合One-Hot label数据,共同指导个简单的网络(Student model)学习,最终使学生模型大导或媲美老师模型的准确度。
目标:让student学习到teacher的泛化能力
多模态的基本概念
每一种信息的来源或者形式,都可以称为一种模态。例如,人有触觉,听觉,视觉等;信息的媒介,有语音、视频、文字等。以上的每一种都可以称为一种模态。多模态机器学习旨在通过机器 学习的方法实现处理和理解多源模态信息的能力。目前比较热门 的研究方向是图像、视频、音频、语义之间的多模态学习。
多模态表示学习
- 定义:利用多模态之间的互补性,剔除模态间的冗余性,从而学习到更好的特征表示。
- 两大研究方向 :
- 联合表示(Joint Representations):将多个模态的信息一起映射到一个统一的多模态向量空间。
- 协同表示(Coordinated Representations):将多模态中的每个模态分别映射到各自的表示空间,但映射后的向量之间满足一定的相关性约束。