初识大模型

1 大模型定义:

“大模型”全称为大型语言模型(LLM),,狭义上指基于深度学习算法进行训练的自然语言处理(NLP)模型,主要应用于自然语言理解和生成等领域,广义上还包括机器视觉(CV)大模型、多模态大模型等。大模型“大”的特点体现在“大数据+大算力+大参数”

大模型是指具有数千万甚至数亿参数的深度学习模型,为了提高模型的性能,研究者们不断尝试增加模型的参数数量,从而诞生了大模型这一概念。

2 大模型基本原理:

基于深度学习,利用大量的数据和计算资源来训练具有大量参数的神经网络模型,并通过不断地调整模型参数,使得模型能够在各种任务中取得最佳表现。
通常说的大模型的“大”的特点体现在:参数数量庞大、训练数据量大、计算资源需求高等。很多先进的模型由于拥有很“大”的特点,使得模型参数越来越多,泛化性能越来越好,在各种专门的领域输出结果也越来越准确。

3 主流的大模型网络架构:

当前流行的大模型的网络架构其实并没有很多新的技术,还是一直沿用当前NLP领域最热门最有效的架构——【Transformer结构】
当前流行的大模型的网络架构是【Transformer结构】。相比于传统的循环神经网络(RNN)和长短时记忆网络(LSTM),Transformer具有独特的注意力机(Attention),这相当于给模型加强理解力,对更重要的词能给予更多关注,同时该机制具有更好的并行性和扩展性,能够处理更长的序列,成为NLP领域具有奠基性能力的模型,在各类文本相关的序列任务中取得良好的效果。

基于Transformer这种网络架构的变形,主流的框架可以分为Encoder-Decoder, Encoder-Only和Decoder-Only:

3.1 Encoder-Only:

仅包含【编码器】部分,主要适用于【不需要生成序列的任务】,只需要【对输入进行编码和处理的单向任务场景,如文本分类、情感分析】等,这类代表是BERT相关的模型,如BERT、RoBERT、ALBERT等;

3.2 Encoder-Decoder:

既包含【编码器也包含解码器】,通常用于序列到序列(Seq2Seq)任务,如机器翻译、对话生成等,这类代表是以Google训出来T5为代表的相关大模型。

3.3 Decoder-Only:

仅包含【解码器】部分,通常用于【序列生成任务,如文本生成、机器翻译】等。这类结构的模型适用于需要生成序列的任务,可以从输入的编码中生成相应的序列。同时还有一个重要特点是可以进行无监督预训练。在预训练阶段,模型通过大量的无标注数据学习语言的统计模式和语义信息。这种方法可以使得模型具备广泛的语言知识和理解能力。在预训练之后,模型可以进行有监督微调,用于特定的下游任务(如文本生成、翻译等)。这类结构的代表就是GPT类模型,它们都是基于Decoder-Only的形式来逐步演化的。

4 大模型训练过程

4.1 预训练(Pretraining)

预训练是大模型训练的第一步,目的是让模型学习语言的表达方式和语义信息。预训练阶段最重要的是数据,需要收集【大量的无标注数据】,例如百科、新闻、博客、论坛等,这些数据可以是多种语言的。这些数据需要经过一定的清洗和处理以去除噪音,最后会以【tokenizer粒度】输入到上文提到的语言模型中,用于训练和优化语言模型。预训练过程中,模型会学习训练数据集中词汇、句法和语义的规律,以及上下文之间的关系。

4.2 指令微调

在完成预训练后,就可以通过指令微调去挖掘和增强语言模型本身具备的能力。
指令微调(Instruction tuning)是大模型训练的一个阶段,它是一种【有监督微调】的特殊形式,旨在让模型【理解和遵循人类指令】。在指令微调阶段,首先需要准备一系列的NLP任务,并将每个任务转化为指令形式,其中指令包括人类对模型应该执行的任务描述和期望的输出结果。然后,使用这些指令对已经预训练好的大语言模型进行监督学习,使得模型通过学习和适应指令来提高其在特定任务上的表现。
为了让模型训练更加高效和简单,这个阶段还有一种高效的微调技术,这为普通的从业者打开了通向使用大模型的捷径。
【Parameter-Efficient Fine-Tuning (PEFT)】旨在通过最小化微调参数的数量和计算复杂度,达到高效的迁移学习的目的,提高预训练模型在新任务上的性能,从而缓解大型预训练模型的训练成本。在训练过程中,预训练模型的参数保持不变,只需微调少量的额外参数,就可以达到与全量微调相当的性能。
目前,很多研究对PEFT方法进行了探索,例如Adapter Tuning和Prefix Tuning等。其中,Adapter Tuning方法在面对特定的下游任务时,将预训练模型中的某些层固定,只微调接近下游任务的几层参数。而Prefix Tuning方法则是在预训练模型的基础上,添加一些额外的参数,这些参数在训练过程中会根据特定的任务进行更新和调整。
现在常用的【Adapter Tuning的技术是Low-Rank Adaptation(LoRA)】。它通过最小化微调参数的数量和计算复杂度,实现高效的迁移学习,以提高预训练模型在新任务上的性能。LoRA 的核心思想是将预训练模型的权重矩阵分解为两个低秩矩阵的乘积。通过这种分解,可以显著减少微调参数的数量,并降低计算复杂度。该方式和机器学习中经典的降维的思想很类似,类似地,LoRA 使用了矩阵分解技术中的奇异值分解 (Singular Value Decomposition, SVD) 或低秩近似 (Low-Rank Approximation) 方法,将原始权重矩阵分解为两个低秩矩阵的乘积。
在微调过程中,LoRA只更新这两个低秩矩阵的参数,而保持其他预训练参数固定不变。这样可以显著减少微调所需的计算资源和时间,并且在很多任务上取得了与全量微调相当的性能。
【LoRA技术】的引入使得在大规模预训练模型上进行微调更加高效和可行,为实际应用提供了更多可能性。

4.3 对齐微调

主要目标在于将语言模型与人类的偏好、价值观进行对齐,其中最重要的技术就是使用RLHF(reinforcement learning from human feedback)来进行对齐微调。
主要步骤包括:
(1)预训练模型的有监督微调
先收集一个提示词集合,并要求标注人员写出高质量的回复,然后使用该数据集以监督的方式微调预训练的基础模型。

(2)训练奖励模型
这个过程涉及到与人类评估者进行对话,并根据他们的反馈来进行调整和优化。评估者会根据个人偏好对模型生成的回复进行排序,从而指导模型生成更符合人类期望的回复。这种基于人类反馈的训练方式可以帮助模型捕捉到更多人类语言的特点和习惯,从而提升模型的生成能力。
(3)利用强化学习模型微调
主要使用了强化学习的邻近策略优化(PPO,proximal policy optimization)算法,对于每个时间步,PPO算法会计算当前产生和初始化的KL散度,根据这个分布来计算一个状态或动作的预期回报,然后使用这个回报来更新策略,达到对SFT模型进一步优化。

对齐微调是一个关键的阶段,这一阶段使用强化学习从人类反馈中进行微调,以进一步优化模型的生成能力。它通过与人类评估者和用户的互动,不断优化模型的生成能力,以更好地满足人类期望和需求。

5 提示词工程(写提示词,提示词-Prompt)

提示词工程是给大模型应用做出合适的提示,使其能实现更好生成效果的一种技术。
基本思路是,通过给模型提供一个或多个提示词或短语,来指导大模型输出符合要求的内容,本质上是通过恰当的初始化参数,来激发大模型自身的潜力。
提示词一般分为以下四种:

  1. 零样本(Zero-Shot Prompt)
    在零样本场景中,模型根据提示或指令进行任务处理,不需要针对每个新任务或领域都进行专门的训练,这类一般作为训练【通用大模型】的最常见的评估手段。

  2. 少样本(Few-Shot Prompt)
    在少样本场景中,模型从【少量示例中学习特定任务】,利用【迁移学习】的方法来【提高泛化性能】,该类prompt也是很多实际应用案例都采取来进行大模型微调训练的方式。

  3. 思维链(Chain-of-thought Prompt)
    这类Prompt常见于推理复杂任务,它通过引导模型逐步解决问题,以一系列连贯的步骤展示推理的思路和逻辑关系。通过这种逐步推理的方式,模型可以逐渐获得更多信息,并在整个推理过程中累积正确的推断。

  4. 多模态信息(Multimodal Prompt)
    这类Prompt包含的信息更丰富,主要是将不同模态的信息(如文本、图像、音频等)融合到一起,形成一种多模态的提示,以帮助模型更好地理解和处理输入数据。比如在【问答系统】中,可以将问题和相关图像作为多模态输入,以帮助模型更好地理解问题的含义和上下文背景,并生成更加准确和全面的答案。

你可能感兴趣的:(大模型,大模型)