大语言模型 (LLM) 技术正在以前所未有的方式改变人与软件的互动。曾经通过预定义规则进行的静态交互,如今已演变为动态、生成式和情境化的互动。无论是赋能 ChatGPT、GitHub Copilot 等通用工具,还是驱动医疗、法律、教育、物流和机器人等行业的数千个特定应用,LLM 都扮演着核心角色。本文将深入剖析 LLM 的定义、架构、关键算法,以及如何利用这些技术构建定制化的 LLM 或智能体。
LLM 的定义与重要性
大语言模型 (LLM) 是一种复杂的 AI 系统,旨在理解、生成和处理人类语言。 它们的“大”体现在两个方面:首先,它们接受过海量文本数据(数十亿到数万亿个单词)的训练; 其次,它们包含大量的参数(数百万到数万亿),这使得它们能够学习复杂的语言模式、事实知识和推理能力。这种“大”不仅仅是数字上的炫耀,更直接影响着 LLM 的以下关键能力:
- 语言丰富度: 能够模拟细致的语法、语法和含义。例如,一个能够理解细微情感色彩并能模仿不同写作风格的 LLM,在创作故事或生成营销文案时具有显著优势。
- 世界知识记忆:理解事实、实体和背景。 例如,一个拥有广泛医学知识的 LLM 可以帮助医生诊断疾病,或为患者提供个性化的健康建议。
- 涌现行为:推理、工具使用、链式思维生成和规划等能力随着规模的扩大而涌现。一个典型的例子是,参数量较小的 LLM 可能只能完成句子补全,而参数量巨大的 LLM 则可以撰写文章、创作诗歌,甚至批判自己的结构。
Transformer 架构:LLM 的核心驱动力
Transformer 架构是 LLM 革命的核心。其创新的自注意力机制使每个单词(或 token)都能关注句子中的每个其他单词,从而不仅在线性序列中,而且在复杂的上下文网络中捕获含义。 从训练的角度来看,这使得模型能够更好地扩展,从而可以使用更多的数据、更大的模型和更深层次的语义理解。
Transformer 架构的核心优势在于其并行处理能力和长距离依赖捕获能力。传统的循环神经网络 (RNN) 在处理长文本时会面临梯度消失或爆炸的问题,而 Transformer 通过自注意力机制,允许模型直接关注文本中任意两个位置之间的关系,从而克服了这一难题。
现代 LLM 基于 vanilla Transformer 的增强功能构建,例如:
- FlashAttention:用于快速、内存高效的计算。FlashAttention 通过优化内存访问模式,显著减少了 GPU 的内存占用,从而允许训练更大的模型,并加速训练过程。
- 旋转位置嵌入 (RoPE):改进序列排序。RoPE 能够更好地处理序列中的位置信息,尤其是在处理长文本时,能够更准确地理解单词之间的相对位置关系,从而提高 LLM 的性能。
- 稀疏注意力:用于长上下文窗口。稀疏注意力机制只关注文本中最重要的部分,从而减少了计算量,并允许 LLM 处理更长的文本序列。
主流 LLM 及其架构变体
虽然 Transformer 是现代 LLM 的主要架构,但该架构内存在一些变体,可以满足不同的用例:
-
仅解码器 Transformer 模型:主要用于文本生成(自回归模型),根据前面的上下文预测序列中的下一个 token。它们擅长创意写作、聊天机器人、代码生成、总结和开放式文本完成。这类模型的设计采用单一方向的注意力——从左到右。它们的逐个 token 预测能力使它们成为文本完成、生成和对话代理的理想选择。代表性模型包括 OpenAI 的 GPT 系列(GPT-3、GPT-3.5、GPT-4、GPT-4o)、Google 的 PaLM、Gemini 系列、Meta AI 的 Llama 系列(LLaMA、Llama 2、Llama 3、Llama 4)、Anthropic 的 Claude 系列、Mistral AI 的模型以及 DeepSeek、Qwen、Grok、Cohere Command、BLOOM、Falcon 等。以Llama 3为例,Meta开源了不同参数规模的模型,并允许研究者和开发者在其基础上进行定制和优化,促进了 LLM 技术的普及和创新。
-
仅编码器 Transformer 模型:旨在深入理解文本,通常通过双向处理整个输入序列。它们擅长理解来自左右两侧的上下文。适用于情绪分析、文本分类、命名实体识别、问题解答(抽取式)和文本嵌入等任务。代表性模型包括 Google 的 BERT(Transformer 的双向编码器表示)、Meta 的 RoBERTa 和 Microsoft 的 DeBERTa。这些模型不用于生成,但对于检索、分类、嵌入和搜索至关重要。 它们通常为检索增强生成 (RAG) 管道的检索端提供支持。 例如,在构建一个基于知识库的问答系统时,可以使用 BERT 来对问题和知识库中的文档进行编码,然后通过计算相似度来检索与问题最相关的文档。
-
编码器-解码器 Transformer 模型(序列到序列模型):结合了编码器(用于理解输入)和解码器(用于生成输出)。它们擅长于需要将输入序列转换为不同输出序列的任务,例如机器翻译、文本摘要和抽象问题解答。代表性模型包括 Google 的 T5(文本到文本传输 Transformer)、Meta 的 BART(双向和自回归 Transformer)以及 Google 的 Flan-T5、Flan-UL2。编码器-解码器模型功能强大,但比仅解码器模型更重且成本更高。它们非常适合结构化生成,例如将合同转换为摘要或将 SQL 转换为英语。 机器翻译就是一个典型的应用场景,例如,可以将一段中文翻译成英文,或者将一段英文翻译成法文。
-
混合专家 (MoE) 模型:这些模型由多个“专家”子模型组成,每个子模型专门研究输入的不同方面。 “门控网络”学习将输入的不同部分路由到最相关的专家。 它们可以实现非常大的有效参数计数,同时仅激活给定输入的参数子集,从而实现大规模模型的更高效训练和推理。 一些先进的 LLM,特别是那些具有数万亿个参数的 LLM,利用 MoE 架构来有效扩展。 Mistral AI 的 Mixtral 8x7B 就是一个值得注意的例子。MoE 代表了在没有数万亿规模成本的情况下实现万亿规模建模的途径。您只需激活 8 位专家中的 2 位,因此虽然完整模型可能包含 65B+ 参数,但推理发生在很小的切片上。这种架构的优势在于,它可以在有限的计算资源下实现更大的模型规模,从而提高 LLM 的性能。
LLM 中使用的算法
现在让我们探索驱动 LLM 大脑的技术——它的学习和优化技术。 LLM 中的“算法”广义上是指用于训练、优化和推理的技术。 虽然 Transformer 架构是基本构建块,但这些算法使模型能够学习和执行其任务:
-
预训练算法:
- 自监督学习:LLM 预训练的核心。 LLM 无需人工标记数据,而是通过预测大量未标记文本中缺失的部分来进行学习。
- 掩码语言建模 (MLM):(由 BERT 等编码器模型使用)
- 下一个 Token 预测(自回归语言建模):(由 GPT 等仅解码器模型使用)
- 序列到序列 (Seq2Seq) 预训练:(由 T5 等编码器-解码器模型使用)
- 海量数据集:“LLM”中的“大”来自对 Common Crawl、维基百科、书籍和代码等庞大数据集进行训练。
这些模型通过数十亿个自我预测任务的示例来学习。 无需人工标记——只需大量数据和计算。 例如,GPT-3 通过预测下一个单词来学习语言模式,而 BERT 通过预测被屏蔽的单词来学习上下文信息。
-
优化算法:
- 随机梯度下降 (SGD) 及其变体(Adam、AdamW):
- 梯度累积:模拟大批量大小
- 混合精度训练:减少内存,提高训练速度
这些技术使万亿 token 规模的训练成为可能。 例如,Adam 是一种自适应学习率优化算法,可以根据参数的历史梯度动态调整学习率,从而加速训练过程。
-
微调算法:
- 监督微调 (SFT):经过预训练后,LLM 通常会在较小的、特定于任务的数据集上使用人工标记的示例进行微调。
- 从人类反馈中进行强化学习 (RLHF):
- 收集人类偏好
- 训练奖励模型
- 强化学习(例如,近端策略优化 — PPO)
此步骤是发生对齐的地方——使 LLM 安全、有用且符合人类意图。 例如,通过收集人类对不同 LLM 输出的偏好,可以训练一个奖励模型,该模型可以用来指导 LLM 的训练,使其生成更符合人类期望的输出。
-
推理算法:
- 贪婪解码、束搜索、采样方法(温度、Top-K、核)
您可以使用这些算法来控制生成输出的音调、随机性和连贯性。 例如,通过调整温度参数,可以控制 LLM 生成文本的创造性和多样性。较高的温度会生成更随机和创造性的文本,而较低的温度会生成更保守和连贯的文本。
如何使用 LLM 构建定制 LLM 或智能体
现在让我们从理论转向工程。
-
Prompt 工程:
-
概念:这是在不重新训练 LLM 的情况下“定制”LLM 的最常见方法。
-
技术:
- 零样本学习
- 少样本学习
- 指令调优
- 思维链提示
-
用例:聊天机器人、内容生成、内部工具。例如,通过提供一个清晰的指令,可以引导 LLM 生成特定类型的文本,例如撰写一篇关于某个主题的文章,或者回答一个问题。
-
-
微调现有 LLM:
-
概念:采用预训练的 LLM,并使用较小的、特定于领域的资料集对其进行进一步训练。
-
方法:
- 完全微调
- 参数高效的微调(LoRA、适配器)
- 指令微调
-
用例:特定行业的代理、自定义音调/样式、内部合规性。例如,可以将一个预训练的 LLM 在医学文本数据集上进行微调,使其能够更好地理解和生成医学领域的文本。
-
-
检索增强生成 (RAG):
- 概念:检索相关文档并将其输入到提示中。
- 过程:查询 → 检索 → 扩充提示 → 生成
- 用例:具有专有数据的聊天机器人、客户服务、法律文件问答。例如,在构建一个基于公司内部知识库的聊天机器人时,可以使用 RAG 技术来检索与用户问题相关的文档,并将这些文档作为上下文信息提供给 LLM,使其能够更准确地回答用户的问题。
-
构建 LLM 代理:
-
概念:LLM 作为使用工具、记忆、计划的“大脑”。
-
主要组件:
- 推理器
- 工具
- 记忆
- 执行框架
-
框架:LangChain、LlamaIndex、AutoGen
-
用例:自主系统、任务代理、工作流自动化。例如,可以构建一个自主的客户服务代理,该代理可以使用 LLM 来理解客户的问题,使用工具来访问客户的账户信息,并使用计划来解决客户的问题。
-
-
从头开始训练 LLM:
- 概念:构建自己的基础模型
- 挑战:计算量非常大
- 用例:隐私关键型行业、新语言、专有领域。例如,对于需要处理高度敏感数据的行业,例如金融和医疗保健,从头开始训练 LLM 可以更好地控制数据的安全性和隐私。
总结
将 LLM 用于定制应用程序通常涉及智能提示工程、现有模型的有效微调,或构建将 LLM 与外部工具和知识库相结合的智能代理。 大语言模型 (LLM) 技术正在迅速发展,未来将会涌现出更多创新应用。 通过深入了解 LLM 的架构、算法和应用,我们可以更好地利用这些技术来解决现实世界中的问题,并创造新的可能性。 理解和掌握 LLM 技术,将是在未来人工智能时代取得成功的关键。