语言模型的基础

一,语言模型的分类

根据技术框架进行分类,可分为基于统计的语言模型和基于学习的语言模型两大类;目前市场上主流大模型都是基于学习的。

基于统计的语言模型

主要是通过统计语言符号在语料库中出现的频率来预测语言符号的概率。其中n-grams是最具代表性的统计语言模型

基于学习的语言模型

基于学习的语言模型以神经网络为核心,主流类型包括基于 RNN 的模型和基于 Transformer 的模型(其中 Transformer 是当前大语言模型的主导框架)
RNN(循环神经网络)是一类网络连接中包含环路的神经网络的总称。
Transformer是一类基于注意力机制(Attention)的模块化构建的神经网络结构。

二,语言模型的采样方法

什么是语言模型的采样?

语言模型的输出为一个向量,该向量的每一维代表着词典中对应词的概率,在采用自回归式文本生成任务中,语言模型将依次生成一组向量并将其解码为文本。将这组向量解析为文本的过程称为语言模型的解码,在解码过程中,从每个步骤的概率分布中选择下一个 token 的操作称为采样。

采样的方法

两类主流解码方法:概率最大化方法,随机采样方法。
概率最大化方法包含:贪心搜索,波束搜索
随机采样方法:Top-K采样,Top-P采样

三,语言模型的评测

语言模型的评测就是对其核心能力(包括概率预测准确性、生成文本质量等)的评估,以判断其优劣。分为两类:第一类不依赖具体下游任务,通过模型的基础能力(如概率预测准确性、生成文本的连贯性等)直接测评,例如计算困惑度(Perplexity)或评估生成文本的流畅度,称为内在评测;第二类通过某些具体任务,如机器翻译,摘要生成等来评测的称之为外在评测。也就是说内在评测不依赖任务,外在评测则需要通过任务。

四,语言模型的架构

当前,绝大多数语言模型以Transformer框架为核心,进一步演化出了三种经典架构,分别是Encoder-Only架构,Decoder-Only架构,Encoder-Decoder架构。

  • Encoder-Only架构:选择了Transformer中的编码器(Encoder)部分,用于接收输入文本并生成与上下文相关的特征。包含三个部分:输入编码部分,特征编码部分,任务处理部分。双向注意力机制,同时利用前后文信息,深入理解复杂的语义联系和上下文依赖。特别适合于自然语言理解(Natural Language Understanding, NLU)任务,如情感分析或文本分类等判别任务,在语言生成任务(Natural Language Generation, NLG)表现不如专门设计的生成模型。基于此架构的语言模型:BERT及其变体,RoBERTa, ALBERT,ELECTRA等
  • Encoder-Decoder架构:在Encoder-Only的基础上引入了一个解码器(Decoder),并采用交叉注意力机制来实现编码器与解码器之间的有效交互。解码器包括:输出编码,特征解码,输出生成三部分。可以有效的处理复杂的输入条件,并生成相关且连贯的高质量内容,非常适合处理各种复杂的有条件生成任务,如机器翻译,文本摘要和问答系统等需要同时理解输入并生成相应输出的场景。同时也带来了模型规模以及计算量庞大的问题。基于此架构的语言模型:T5(Text-to-text Transfer Transformer)、BART、MarianMT 等
  • Decoder-Only架构:为了缩减模型规模以及降低计算复杂度,摒弃了Encoder-Decoder中的编码器部分以及与编码器交互的交叉注意力模块。利用自回归机制,在给定上文的情况下,生成流畅且连贯的下文。包含:输入编码部分,特征解码部分,输出生成三部分。Decoder-Only 架构的注意力机制是 “因果注意力”(Causal Attention),即当前 Token 只能关注前文 Token,属于单向注意力的一种,单向注意力机制,确保了生成过程的顺序性和文本的连续性。大规模预训练数据使得 Decoder-Only 架构能通过输入上下文(如 Prompt)生成高质量文本,在开放域生成、条件生成(如基于问题的回答)等任务中表现出色;由于缺少编码器提供的双向上下文,在需要深度解析输入的复杂条件生成任务(如机器翻译)中通常不如 Encoder-Decoder 架构。基于此架构的语言模型:GPT系列,LLaMA系列
  • 非Transformer架构:基于 RNN 的变体、状态空间模型(SSM,如 RWKV、Mamba)等。

注意力矩阵(Attention Matrix):是Transformer中的核心组件,用于计算输入序列各个Token之间的依赖关系。通过注意力机制,模型可以在处理当前Token时,灵活地关注序列中其他Token所携带的信息,决定了在这一过程中哪些Token能够相互影响。

五,Prompt工程 

1,Prompt是什么?
Prompt 是引导生成式人工智能模型执行特定任务的输入文本,通常以自然语言形式呈现,可包含指令、上下文、示例等信息。


2,Prompt的作用是什么?
Prompt 可引导模型适应多种下游任务,在许多场景下减少对传统全参数微调的依赖,从而降低计算成本。


3,Prompt工程是什么?
是一门专注于如何编写这些有效指令技术,是连接模型与任务需求之间的桥梁。通过Prompt工程,能最大化的发挥大语言模型的潜力,使其在多样化的应用场景中发挥出卓越的性能。也就是说Prompt工程是为了让大模型理解任务,进而提升处理任务的质量。

4,Prompt工程的组成
通常由任务说明,上下文,问题,输出格式四个基本元素组成。
任务说明:向模型明确提出具体的任务要求。任务说明应当清晰,直接,尽可能详细地描述期望模型完成的任务。
上下文:向模型提供的任务相关背景信息,用于增强其对任务的理解以及提供解决任务的思路。
问题:向模型描述用户的具体问题或需要处理的信息。
输出格式:期望模型给出的回答的展示形式。包括输出的格式,以及任何特定的细节要求,如简洁性或详细程度。

5,Prompt工程的意义
Prompt工程提供了一种高效且灵活的途径来执行自然语言处理任务。它允许我们无需对模型进行微调,便能有效地完成既定任务,避免微调带来的巨大开销。通过精心设计的Prompt,能够激发大语言模型的潜力,使其在垂直任务,数据增强,智能代理等多个领域发挥出卓越的性能。也就是说不需要微调就可以更好的完成任务,减少成本,缩小用户需求与模型理解之间的差距,提升输出质量。

6,Prompt工程的基础范式
上下文学习(In-Context Learning, ICL)和思维链(Chain-of-Thought, CoT)。
上下文学习:定义了 “如何通过提示中的信息(任务说明、示例)让模型理解任务”。模型在不更新参数的情况下,仅通过输入提示(Prompt)中的上下文信息(如任务说明、示例、规则等),就能理解并完成新任务的学习方式。
思维链:定义了 “如何引导模型显式拆解推理过程”。是一种针对大语言模型的提示策略,核心是在提示中引导模型 “分步推理”,将复杂问题的解决过程拆解为一系列中间步骤,最终得出结论。
其他技术大多是这两大范式的衍生(如思维树)、强化(如自洽性)、结合(如少样本 CoT)或互补(如 RAG)。即使是看似独立的技术(如 APE),最终也需通过优化 “上下文引导” 或 “推理引导” 来生效。因此,绝大多数 Prompt 工程技术都与两者存在直接或间接的关联,共同构成了 “通过提示设计释放模型能力” 的技术体系。

六,参数高效微调

为了让语言模型更好的在垂直领域及相应的下游任务进行适配,上下文学习和指令微调是进行下游任务适配有效途径,但在效果或效率上存在缺陷,为了弥补这些不足,参数高效微调(Parameter-Efficient-Fine-Tuning PEFT)技术就产生了。也就是参数高效微调(PEFT)主要解决全参数微调的缺陷(如计算成本高、对小数据集易过拟合等),而参数微调解决的问题是让模型更好的应用于垂直领域或者更好的适应下游任务。

参数高效微调的主旨在避免微调全部参数,减少在微调过程中需要更新的参数数量和计算开销,从而提高大语言模型的效率。主流的PEFT方法有三类:参数附加方法(Additional Parameters Methods),参数选择方法(Parameter Selection Methods),低秩适配方法(Low-Rank Adaptation Methods)。优势在于计算效率高(减少了更新参数的数量),存储效率高(因为参数量少了存储空间也就降低了),适应性强

  • 参数附加方法(Additional Parameters Methods):在模型结构中附加新的,较小的可训练模块。这些模块称为适应层(Adapter Layer),插入到模型的不同的层之间,用于捕获特定的任务的信息。典型方法:适配器微调(Adapter Tuning)、提示微调(Prompt Tuning)、前缀微调(Prefix Tuning)等。
  • 参数选择方法(Parameter Selection Methods):仅选择模块的一部分参数进行微调,而冻结其余参数。仅调关系参数,可以降低计算负担同时提升模型性能。典型方法:BitFit, Child-tuning, FishMask
  • 低秩适配方法(Low-rank Adaptation Methods):通过低秩矩阵来近似原始权重矩阵,并冻结原始参数矩阵,仅微调低秩更新矩阵。经典方法:LoRA,以及LoRA的变体AdaLoRA,DyLoRA,DoRA

七,模型编辑

解决大语言模型中的存在的偏见,毒性,知识错误等问题,仅对模型中的特定知识点进行修正。偏见是指模型生成的内容中包含刻板印象和社会偏见等不公正的观点,毒性是指模型生成的内容中包含有害成分,而知识错误则是指模型提供的信息与事实不符。模型编辑主旨是通过增加或修改模型参数,改变模型行为和输出。模型编辑的目标是修正模型使其输出期望结果(如纠正错误回答、减少偏见和毒性等),同时不影响其他无关输出,首要目标涵盖上述多类问题的修正。

模型编辑的性质可以归纳为五个方面:准确性(Accuracy),泛化性(Generality),可迁移性(Transferability),局部性(Locality),高效性(Efficiency)。

  • 准确性:衡量对某个知识点k的直接修改是否有效。
  • 泛化性:用来衡量编辑后模型能否适应目标问题的其他表达形式,即判断模型面对相似问题时,是否能给出统一的目标答案。
  • 可迁移性:是指编辑后模型将特定的知识点迁移到其它相关问题上的能力。
  • 局部性:要求编辑后的模型不影响其他不相关问题的输出。
  • 高效性:主要考虑模型编辑的时间成本和资源消耗。直接影响模型编辑的可行性和实用性。

常用的模型编辑方法:外部扩展法,内部修改法。

外部扩展法:核心思想是将新知识存储在附加的外部参数或外部知识库中,将其和原始模型一起作为编辑后模型。又可划分为知识缓存法和附加参数法。

内部修改法:在通过更新原始模型的内部参数为模型注入新知识,能够优化模型的自我学习和适应能力,提高其在特定任务上的表现,而不是仅仅停留在表面的知识积累。又可划分为元学习法和定位编辑法。

八,检索增强生成(RAG)

为了解决语言模型中的幻觉问题,即生成看似合理实则逻辑混乱或违背事实的回答。并进一步提升大语言模型的生成质量。通过检索和整合外部知识来辅助改善大语言模型生成质量的技术方法被称之为检索增强生成(Retrieval-Augmented Generation RAG),其核心是集成外部知识库、信息检索器、大语言模型等模块的协同机制。RAG利用信息检索、深度学习等多种技术为大语言模型在生成过程中引入最新的,特定领域的知识,从而克服传统大语言模型的局限性,提供更加精准和可靠的生成内容。