跳转到内容

2.4 大语言模型(LLM)技术原理

解密语言智能的引擎:大型语言模型 (LLM) 技术原理

Section titled “解密语言智能的引擎:大型语言模型 (LLM) 技术原理”

大型语言模型(Large Language Models, LLMs)无疑是当前人工智能浪潮之巅最耀眼的明星,它们正以前所未有的深度和广度渗透到法律行业的各个角落。无论是辅助律师进行快速的法律研究、起草各类法律文书的初稿,还是提供初步的法律咨询服务、对繁杂的合同进行智能审查,以ChatGPT、Claude、DeepSeek、通义千问、Llama等为代表的LLM驱动工具,都在深刻地改变着法律工作的传统范式。

然而,要真正有效地驾驭这些强大的工具,并能审慎地评估其潜在风险与局限,法律专业人士不应仅仅满足于了解其“能做什么”,更需要对其“如何工作”的核心技术原理有一个基本的认知。理解其内部机制,有助于我们更明智地使用它们,识别其输出结果的可靠性,并预见其可能出现的“陷阱”。

本节将聚焦于LLM的技术心脏——Transformer架构,并深入探讨其背后的预训练(Pre-training)微调(Fine-tuning) 等关键训练策略,为您揭开语言智能引擎的神秘面纱。

一、 Transformer架构:奠定LLM辉煌的革命性基石

Section titled “一、 Transformer架构:奠定LLM辉煌的革命性基石”

在2017年Google研究团队发表那篇影响深远的论文《Attention Is All You Need》并提出Transformer架构之前,处理序列数据(尤其是自然语言这种典型的序列信息)的主流深度学习模型是循环神经网络(Recurrent Neural Networks, RNN) 及其各种改进版本(如LSTM、GRU)。RNN通过循环结构处理序列,试图将前文的信息传递下去。然而,RNN模型存在两个难以克服的主要瓶颈,限制了其在处理复杂长文本时的表现:

  1. 长距离依赖捕捉难题: RNN的信息是逐步向前传递的,如同耳语游戏,信息在长距离传递过程中容易丢失或失真(技术上称为梯度消失/爆炸问题)。这使得RNN很难有效关联句子或段落中相距较远的词语之间的复杂语义或语法关系,而这对于理解法律文本中常见的长句、复杂从句和前后照应至关重要。
  2. 并行计算的天然障碍: RNN的循环特性决定了它必须按顺序逐个处理序列中的元素(比如逐词阅读),无法进行大规模并行计算。这极大地限制了模型的训练速度,使其难以充分利用现代图形处理器(GPU)强大的并行处理能力来高效学习海量的文本数据。

Transformer架构的横空出世,以一种优雅而高效的方式革命性地解决了上述两大难题。其核心创新在于彻底摒弃了循环结构,完全依赖一种名为“自注意力机制”(Self-Attention Mechanism) 的新颖设计来直接捕捉序列内部任意位置之间的依赖关系,并天然支持高度并行化的计算。

1. 自注意力机制 (Self-Attention Mechanism):洞悉语境的利器

Section titled “1. 自注意力机制 (Self-Attention Mechanism):洞悉语境的利器”

自注意力机制的核心思想在于:一个词的精确含义,往往取决于它所处的具体语境。例如,“面”这个字,在“这家店的面很好吃。”(指面条)和“他的面色不太好。”(指脸色)这两个句子中,含义截然不同。再比如,“花”这个字,在“院子里开满了花。”(指植物的花朵)和“他花了很多钱买新车。”(指花费)这两个句子中,也有完全不同的含义。

自注意力机制赋予模型一种能力:在处理序列中的每一个词(或更小的单元,称为Token,目前国内也称为“词元”)时,能够 同时“关注”(Attend to)序列中所有其他词(包括它自身) ,并根据这些词与当前词的 “相关性”或“重要性”(通过计算得到的Attention Score) ,来动态地生成当前词的富含上下文信息的表示(Contextualized Representation)

  • 工作原理概览 (Query, Key, Value): 为了实现这种“关注”,自注意力机制为输入序列中的每个词向量(Word Embedding)都学习生成三个不同的向量:

    • 查询向量 (Query, Q): 代表当前正在处理的词,它要去“查询”序列中其他词与自己的相关程度。
    • 键向量 (Key, K): 代表序列中的每一个词(包括自身),它相当于一个“标签”,用来被Q查询匹配。Q和K的相似度决定了相关性。
    • 值向量 (Value, V): 也代表序列中的每一个词(包括自身),它包含了该词实际蕴含的信息。一旦Q确定了对某个词的K的关注度(权重),就从对应的V中提取相应的信息。
  • 计算流程简述:

    1. 计算相关性得分 (Score): 对当前词的Q向量,计算它与序列中所有词(包括自身)的K向量之间的相似度(通常使用点积运算)。得分越高,表示相关性越强。
    2. 得分缩放 (Scaling): 为保持训练稳定性,将计算出的得分除以一个缩放因子(通常是K向量维度的平方根)。
    3. 权重归一化 (Normalization): 使用Softmax函数将缩放后的得分转换成一组注意力权重(Attention Weights) 。这些权重都是非负数,且总和为1。它们代表了当前词应该将多少“注意力”(即权重)分配给序列中的其他每一个词(对应的Value)。相关性得分越高的词,获得的注意力权重越大。
    4. 信息加权汇总 (Weighted Sum): 将每个词的V向量乘以其对应的注意力权重,然后将所有加权后的V向量求和。最终得到的这个向量,就是当前词融合了整个序列上下文信息之后的新表示。

2. 多头注意力 (Multi-Head Attention):多视角、多维度审视

Section titled “2. 多头注意力 (Multi-Head Attention):多视角、多维度审视”

为了让模型能够从不同的表示子空间(Representation Subspaces) 、或者说从不同的角度去审视和学习输入序列中词语间的关系,Transformer并没有简单地只使用一组Q, K, V进行自注意力计算,而是巧妙地采用了多头注意力(Multi-Head Attention) 机制。

其做法是:将原始的Q, K, V向量分别通过不同的线性变换(如同戴上不同颜色的滤镜)投影到多个较低维度的“头”(Head)中。在每个“头”内部独立地执行上述的自注意力计算过程。最后,将所有“头”计算得到的上下文表示向量拼接(Concatenate)起来,再经过一次线性变换进行融合,得到最终的多头注意力输出。

这种设计允许模型同时关注输入序列中不同类型的关联模式。例如,一个“头”可能更关注词语间的句法结构关系(如主谓宾),另一个“头”可能更关注语义上的关联(如同义、反义),还有一个“头”可能关注某些特定的指代关系等。多头机制极大地增强了模型捕捉复杂信息的能力。

3. 位置编码 (Positional Encoding):让模型理解语序

Section titled “3. 位置编码 (Positional Encoding):让模型理解语序”

自注意力机制本身在计算相关性时,并没有考虑词语在序列中的位置和顺序信息(它平等地看待所有位置)。然而,在自然语言中,语序至关重要(“律师告诉客户”和“客户告诉律师”含义截然不同)。

为了解决这个问题,Transformer在将每个词的初始词嵌入向量(Word Embedding,代表词的语义)输入到模型主体之前,会给它加上(Add)一个特殊的位置编码向量(Positional Encoding) 。这个位置编码向量通常是根据词语在序列中的绝对或相对位置,使用固定的数学函数(如正弦和余弦函数)预先计算生成的。它为每个位置提供了一个独特的“时间戳”或“位置信号”,使得模型能够区分不同位置的词语,并理解它们的先后顺序和相对距离。

4. Transformer整体架构:编码器与解码器的经典组合

Section titled “4. Transformer整体架构:编码器与解码器的经典组合”

最初,Transformer模型是为机器翻译(Machine Translation) 任务设计的,其经典的架构包含两个主要部分:编码器(Encoder)解码器(Decoder)

  • 编码器 (Encoder): 它的职责是接收并“理解”输入序列(例如,源语言句子)。它通常由N个(例如6个或12个)完全相同的编码器层堆叠而成。每个编码器层内部包含两个核心子层:

    1. 一个多头自注意力层 (Multi-Head Self-Attention Layer):让输入序列中的每个词都能关注到序列中的其他所有词,从而获得丰富的上下文表示。
    2. 一个位置前馈神经网络层 (Position-wise Feed-Forward Network, FFN):这是一个简单的全连接神经网络,对自注意力层的输出进行进一步的非线性特征变换,增强模型的表达能力。 在每个子层(自注意力和FFN)的输出之后,都会应用一个残差连接(Residual Connection)层归一化(Layer Normalization) 。这两个技术对于训练非常深的网络至关重要,它们有助于缓解梯度消失问题,加速并稳定训练过程。
  • 解码器 (Decoder): 它的职责是基于编码器对输入序列的理解,生成目标输出序列(例如,目标语言的翻译结果)。解码器也通常由N个相同的解码器层堆叠而成。每个解码器层比编码器层稍微复杂一些,包含三个核心子层:

    1. 一个带掩码的多头自注意力层 (Masked Multi-Head Self-Attention Layer):对已经生成的部分输出序列进行自注意力计算。这里的关键是“带掩码”(Masked),它确保在预测当前位置的词时,模型只能关注到该位置之前已经生成的词,而不能“偷看”未来的词(因为在实际生成时,未来的词还不存在)。这维持了生成的自回归(auto-regressive)特性。
    2. 一个多头编码器-解码器注意力层 (Multi-Head Encoder-Decoder Attention Layer):这是连接编码器和解码器的桥梁。它允许解码器中的每个位置都能够关注到编码器输出的所有位置(即输入序列的最终表示)。这使得解码器在生成每个词时,能够充分利用输入序列的相关信息。
    3. 一个位置前馈神经网络层 (FFN)。 同样,解码器的每个子层后面也都有残差连接和层归一化。

LLM架构的演进:解码器模型的兴盛

Section titled “LLM架构的演进:解码器模型的兴盛”

虽然经典的Encoder-Decoder架构在机器翻译等序列到序列任务中非常成功,但现代许多最著名的大型语言模型(如OpenAI的GPT系列)实际上采用了仅解码器(Decoder-only) 的架构。

  • Decoder-only架构 (如GPT): 这类模型本质上只使用了Transformer的解码器部分(但通常移除了Encoder-Decoder Attention层,只保留Masked Self-Attention和FFN)。它们非常擅长文本生成(Text Generation) 任务。通过在海量的文本数据上进行“下一词预测”的预训练(见下文),它们学习到了语言的内在统计规律、语法结构以及大量的世界知识。在接收到一个输入提示(Prompt)后,它们能够基于提示和已生成的文本,自回归地、逐词(或Token)地预测最可能出现的下一个词,从而“续写”出连贯、相关的长篇文本。

  • 其他架构: 也有一些重要的LLM(如Google的BERT及其变种)主要使用了仅编码器(Encoder-only) 的架构,它们特别擅长需要深度理解上下文的自然语言理解(Natural Language Understanding, NLU) 任务,如文本分类、情感分析、命名实体识别、问答(抽取式)等。还有像T5这样的模型则坚持使用完整的Encoder-Decoder架构。

二、 锻造LLM:预训练与微调的两步走策略

Section titled “二、 锻造LLM:预训练与微调的两步走策略”

要训练出一个能力强大的大型语言模型,通常需要经历两个主要阶段:预训练(Pre-training)微调(Fine-tuning)

1. 预训练 (Pre-training):奠定通用语言理解的基石

Section titled “1. 预训练 (Pre-training):奠定通用语言理解的基石”
  • 目标: 这是训练过程的第一步,也是最关键、最耗费资源的一步。其目标是让模型从极其海量的、通常是未经人工标注的文本数据中,学习到关于语言本身的广泛知识(语法、语义、语用)、关于世界的大量事实性知识,乃至初步的推理和模式识别能力。目标是构建一个具备强大通用能力的 “基础模型”(Foundation Model)

  • 数据: 预训练使用的数据规模是惊人的,往往达到数万亿词(Tokens)的量级。这些数据通常来源于互联网的公开文本,如维基百科、海量网页(如Common Crawl)、 digitized书籍、新闻文章、专业论坛、代码托管平台(如GitHub)等等。绝大部分数据是未经人工标注的。

  • 核心任务:自监督学习 (Self-supervised Learning): 既然数据大多是无标注的,模型如何学习呢?答案是自监督学习。模型通过完成一些从数据本身就能自动生成“标签”的任务来学习。对于LLM,最核心的自监督预训练任务就是语言建模(Language Modeling)

    • 掩码语言模型 (Masked Language Modeling, MLM): 这是BERT等Encoder模型常用的预训练任务。其做法是:随机地将输入文本中的一小部分词(比如15%)替换成一个特殊的“[MASK]”标记,然后让模型根据该词周围的上下文语境,预测出原本被遮盖的词是什么。这迫使模型学习词语之间的双向依赖关系。
    • 下一词预测 (Next Token Prediction) / 因果语言模型 (Causal Language Modeling, CLM): 这是GPT等Decoder模型(尤其是生成式模型)最核心的预训练任务。其做法是:给定一段文本的前缀(比如“人工智能正在改变”),让模型预测下一个最有可能出现的词是什么(比如“法律”、“世界”、“医疗”等)。模型需要学习基于前面的文本来预测后续内容。在实际生成文本时,模型就是反复执行这个下一词预测的过程。
  • 成果: 经过大规模预训练后,模型内部数以亿计甚至万亿计的参数(神经网络中的权重和偏置)就如同一个高度压缩的知识库,蕴含了从海量文本中学到的丰富语言模式和世界知识。这个训练好的模型,就是所谓的基础模型(Foundation Model) ,它具备了广泛的通用语言理解和生成能力,可以作为后续多种任务的基础。

2. 微调 (Fine-tuning):量体裁衣,适配特定需求

Section titled “2. 微调 (Fine-tuning):量体裁衣,适配特定需求”

预训练得到的基础模型虽然能力强大且通用,但它可能并不完美地适用于所有特定的下游任务或专业领域(比如法律、医疗)。它可能缺乏特定领域的精深知识,输出的风格不符合要求,或者在遵循复杂指令方面表现不佳,甚至可能生成有害或不实信息(因为预训练数据来源复杂)。因此,通常需要进行第二阶段的微调(Fine-tuning)

  • 目标: 微调的目标是将通用的基础模型进行 “二次开发”或“适配”,使其更好地满足特定的应用需求。这可能包括提升其在特定专业领域(如法律)的知识准确性和术语运用能力,增强其遵循用户指令(Instructions)的能力,或者使其输出更加安全、可靠、符合人类价值观(即对齐 Alignment)。

  • 数据: 与预训练使用海量无标注数据不同,微调通常使用规模相对小得多(可能从几百到几十万样本)的、高质量的、与目标任务或领域高度相关的标注数据。数据的质量在这里比数量更重要。例如:

    • 对于法律问答任务,可以使用一批由法律专家精心编写的“法律问题-标准答案”对。
    • 对于合同风险审查任务,可以使用一批由资深律师标注了风险条款和类型的合同文本。
    • 对于提升指令遵循能力,可以使用大量形式多样的“指令-期望输出”示例。
  • 常见的微调技术:

    • 有监督微调 (Supervised Fine-tuning, SFT): 这是最常见的微调方式。使用特定任务的“输入-输出”标注数据对(例如 <指令, 回答> 对, <文章, 摘要> 对)来继续训练模型,让模型直接学习如何根据输入产生期望的输出。
    • 领域自适应微调 (Domain-adaptive Fine-tuning): 如果目标是让模型更好地适应某个专业领域(如法律)的语言风格和知识体系,但缺乏大量的标注数据,可以采用这种方法。使用目标领域的大量无标注文本(例如,海量的法律判决文书、法规、期刊论文),继续在这些数据上进行类似预训练的任务(如语言建模)。这有助于模型“浸泡”在领域语言中,熟悉专业术语和表达方式。
    • 基于人类反馈的强化学习 (Reinforcement Learning from Human Feedback, RLHF): 这是近年来提升大型语言模型对齐(Alignment) 能力(即让模型的行为更符合人类的期望,使其更有用、更诚实、更无害)的一项关键技术,被认为是ChatGPT等模型表现出色的重要原因之一。其过程大致分为三步:
      1. 收集人类偏好数据: 首先,让模型针对一批输入提示(Prompts)生成多个不同的回答。然后,邀请人类评估员(Annotators)对这些回答进行比较和排序,指出哪个回答更好、更符合要求、更安全。
      2. 训练奖励模型 (Reward Model, RM): 利用收集到的人类偏好排序数据,训练一个独立的“奖励模型”。这个奖励模型的目标是学习人类的偏好标准,能够对任意一个由LLM生成的回答打分(预测人类会给出的评价高低)。
      3. 使用强化学习优化LLM: 将训练好的奖励模型作为环境的反馈信号。使用强化学习算法(如Proximal Policy Optimization, PPO),来微调原始的LLM。目标是让LLM生成能够从奖励模型那里获得更高分数的回答,从而使其行为逐渐向人类偏好靠拢。
    • 指令微调 (Instruction Fine-tuning): 这是一种特殊的有监督微调,其目标是让模型能够理解并遵循各种形式的自然语言指令。训练数据是大量的“指令-期望输出”示例对,覆盖各种可能的任务类型(如问答、翻译、摘要、写作、代码生成等)。经过指令微调的模型(如InstructGPT)通常表现出更强的通用任务处理能力和“听话”能力。

三、 模型规模:参数量的意义与权衡

Section titled “三、 模型规模:参数量的意义与权衡”

在讨论LLM时,经常会听到“参数量”(Number of Parameters)这个指标,例如说某个模型有“百亿参数”或“千亿参数”。

  • 参数是什么: 简单来说,参数就是模型内部需要通过训练过程学习到的数值(主要是神经网络连接的权重Weight和偏置Bias)。这些参数共同决定了模型的行为和能力。参数量的大小是衡量LLM规模的一个关键指标。

  • 规模效应(再探) : 正如前面提到的,通常情况下,增加模型的参数量,可以让模型有能力学习更复杂的数据模式,掌握更广泛的知识,并在各种任务上表现出更强的性能。目前业界的模型规模大致可以粗略分为:

    • 小型模型: 参数量在数亿到数十亿级别。
    • 中型模型: 参数量在百亿级别。
    • 大型模型 (LLM): 参数量在千亿级别(例如,GPT-3有1750亿参数,Google的PaLM有5400亿参数)。
    • 超大型模型: 参数量可能达到万亿级别或更高。
  • 性能与成本的权衡: 然而,并非模型越大就一定越好。更大的模型通常意味着:

    • 更高的训练成本: 需要更多的计算资源和时间。
    • 更高的推理成本: 部署和运行模型进行预测或生成文本时,需要更强大的硬件(如GPU),消耗更多能源,成本也更高。
    • 更长的响应时间: 模型越大,处理输入并生成输出所需的时间可能越长。
    • 部署挑战: 在本地设备或资源受限的环境中部署超大模型非常困难。

因此,在实际应用中,需要在模型的性能表现经济成本、运行效率之间做出权衡。近年来,研究界和工业界也在积极探索如何通过改进模型架构(如Mixture-of-Experts, MoE)、优化训练方法、进行模型压缩(如量化Quantization、蒸馏Distillation)等技术,来提升参数量相对较小的模型的性能,使其在保持较高效率的同时也能达到接近甚至媲美超大模型的效果,这对于LLM技术的普及应用至关重要。

结论:理解引擎,方能稳健驾驭

Section titled “结论:理解引擎,方能稳健驾驭”

大型语言模型(LLM)是构建在革命性的Transformer架构之上,通过海量数据预训练奠定通用智能基础,再经过精心微调以适配特定应用需求的复杂人工智能系统。对其核心的自注意力机制如何实现上下文理解,预训练如何赋予其广博知识(及潜在偏见),微调(尤其是RLHF)如何塑造其行为以符合人类期望,以及模型规模如何影响其能力与成本有基本认知,将极大地帮助法律专业人士:

  • 更深入地理解LLM驱动工具的能力边界: 明白它们为何能理解复杂的法律术语和长句,为何能生成看似专业的文本,同时也理解其知识可能过时、可能“一本正经地胡说八道”(幻觉)。
  • 更清晰地认识其潜在风险: 了解预训练数据的来源可能带来的偏见,理解微调不足可能导致的不专业或不安全输出。
  • 更有效地运用提示工程(Prompt Engineering) : 知道模型依赖上下文、擅长遵循模式,就能设计出更精准、更能引导模型产生期望结果的提示。
  • 更审慎地评估和选择AI法律工具: 能够更有依据地询问供应商关于模型基础、训练数据来源、是否针对法律领域进行了高质量微调、采取了哪些安全对齐措施等关键问题。

掌握这些基本原理,是法律人在这个被AI深刻影响的时代,保持专业判断力、有效利用技术红利、同时规避潜在风险的关键一步。在接下来的章节中,我们将进一步探讨当前主流的LLM模型实例、它们的特性差异、评估模型性能的方法,以及如何通过更高级的提示工程技巧来更好地“驾驭”这些强大的语言智能引擎。