主题
什么是大语言模型(LLM)?
📚 本节目标
在上一节中,我们了解到每个智能体都需要一个核心的人工智能模型,而大语言模型 (LLM) 是实现这一目标最常见的 AI 模型类型。
现在,我们将学习什么是大语言模型,以及它们如何为智能体提供动力。
本节将提供一个简洁的技术解释,说明大语言模型的用途。
什么是大语言模型?
大语言模型 LLM 是一种擅长理解和生成人类语言的人工智能模型。它们通过大量文本数据的训练,能够学习语言中的模式、结构,甚至细微差别。这些模型通常包含数千万甚至更多的参数。
如今,大多数大语言模型都是基于 Transformer 架构 构建的 —— 这是一种基于"注意力"算法的深度学习架构。
Transformer 架构
原始的 Transformer 架构如下所示,左侧是编码器(encoder),右侧是解码器(decoder)。
加载图表中...
Transformer 有三种类型:
1. 编码器(Encoders)
基于编码器的 Transformer 接收文本(或其他数据)作为输入,并输出该文本的密集表示(或嵌入)。
2. 解码器(Decoders)
基于解码器的 Transformer 专注于逐个生成新令牌以完成序列。
3. 序列到序列(编码器-解码器,Seq2Seq)
序列到序列的 Transformer 结合了编码器和解码器。编码器首先将输入序列处理成上下文表示,然后解码器生成输出序列。
主流大语言模型
虽然大语言模型 LLM 有多种形式,但它们通常是基于解码器的模型,拥有数十亿个参数。以下是一些知名的大语言模型:
| 模型 | 提供商 | 类型 | 特点 |
|---|---|---|---|
| Deepseek-R1 | DeepSeek | 推理模型 | 具备强大的数学和编程能力 |
| GPT-4o | OpenAI | 通用模型 | 多模态、高质量文本生成 |
| Qwen | Alibaba | 开源模型 | 性能优异、社区友好 |
| SmolLM2 | Hugging Face | 小型模型 | 高效、适合边缘设备 |
令牌化:LLM 的基本单位 (Token)
大语言模型 LLM 的基本原理简单却极其有效:其目标是在给定一系列前一个令牌的情况下,预测下一个令牌。
这里的"令牌"是 LLM 处理信息的基本单位。你可以把"令牌"想象成"单词",但出于效率考虑,LLM 并不直接使用整个单词。
令牌化示例
例如,虽然英语估计有 60 万个单词,但一个 LLM 的词汇表可能只有大约几万个令牌。令牌化通常作用于可以组合的子词单元。
每个模型使用的词汇表也是不同的。 每个单词可以被拆分为多个子词,每个子词被映射为一个唯一的令牌。
举个例子:
"Hello"+" Bao"+"cheng"→"Hello Baocheng""你好"+",小"+"黄"→"你好,小黄"
特殊令牌
每个大语言模型 LLM 都有一些特定于该模型的 特殊令牌 。LLM 使用这些令牌来开启和关闭其生成过程中的结构化组件。例如,用于指示序列、消息或响应的开始或结束。
其中最重要的是 序列结束令牌 (EOS,End of Sequence token)。
不同模型提供商使用的特殊令牌形式会不一样:
| 模型 | 提供商 | EOS 令牌 | 功能 |
|---|---|---|---|
| GPT-4o | OpenAI | <|endoftext|> | 消息文本结束 |
| Deepseek-R1 | DeepSeek | <|end_of_sentence|> | 消息文本结束 |
| Qwen | Alibaba | <|im_end|> | 消息文本结束 |
| SmolLM2 | Hugging Face | <|im_end|> | 指令或消息结束 |
⚠️ 重要提示
并不期望你记住这些特殊令牌,但主要的是要理解它们的多样性以及它们在大语言模型 LLM 文本生成中所扮演的角色。如果你想了解更多关于特殊令牌的信息,可以查看模型在其 Hub 仓库中的配置。
例如,你可以在 Qwen3 模型的 tokenizer_config.json 文件 中找到该模型的特殊令牌。
例如,你可以在 Deepseek-R1 模型的 tokenizer_config.json 文件 中找到该模型的特殊令牌。
理解下一个令牌预测
大语言模型 LLM 被认为是 自回归的,这意味着一次通过的输出成为下一次的输入。这个循环持续进行,直到模型预测下一个令牌为 EOS(结束符)令牌,此时模型可以停止。
自回归生成动画演示
下面的动画展示了自回归解码过程:输入序列 → 解码器处理 → 逐步生成输出序列:
自回归生成动画演示
中国的首都是北京。
Decoder 解码器
▁
加载图表中...
解码过程详解
在单个解码循环中会发生什么?
- 令牌化:输入文本被转换为令牌序列
- 表示计算:模型计算序列的表示,捕获每个令牌的意义和位置信息
- 分数计算:模型输出分数,对词汇表中每个令牌作为下一个令牌的可能性进行排名
- 令牌选择:基于分数选择下一个令牌
解码策略
基于这些分数,我们有多种策略来选择令牌:
- 贪心解码:总是选择分数最高的令牌
- 束搜索(Beam Search):探索多个候选序列,找到总分数最高的序列
- 随机采样:基于概率分布随机选择令牌
- Top-k 采样:从分数最高的 k 个令牌中随机选择
- Top-p 采样:从累积概率达到 p 的令牌中选择
注意力机制:关键的创新
"Attention is all you need" —— 这是 Transformer 论文的标题
Transformer 架构的一个关键方面是注意力机制。在预测下一个词时,句子中的每个词并不是同等重要的。
注意力机制示例
例如,在句子 "中国的首都是 …" 中:
- "中国" 和 "首" 这样的词携带了最多的意义
- "的"、"是" 等功能词相对不那么重要
加载图表中...
这种识别最相关词以预测下一个令牌的过程已被证明是非常有效的。
上下文长度
如果你与大语言模型交互过,你可能对上下文长度这个术语很熟悉,它指的是:
- 大语言模型能够处理的最大令牌数
- 其最大的注意力跨度
不同模型的上下文长度对比:
| 模型 | 上下文长度 | 相当于页数 |
|---|---|---|
| gpt-4o | 128 K 令牌 Tokens | ~200 页 |
| Claude-4 | 20 万 令牌 Tokens | ~300 页 |
| Gemini-2.5 | 100 万 令牌 Tokens | ~1,500 页 |
提示工程的重要性
考虑到大语言模型(LLM)的唯一工作是通过查看每个输入令牌来预测下一个令牌,并选择哪些令牌是"重要的",因此你提供的输入序列的措辞非常重要。
你提供给大语言模型的输入序列被称为提示(Prompt)。精心设计提示可以更容易地引导大语言模型的生成朝着期望的输出方向进行。
提示工程示例
📝 不同提示效果对比
普通提示:
写一个运动记录网页改进的提示:
你的任务是编写一个运动记录网页。请仔细阅读以下信息,并按照指示完成网页编写。
网页标题:
<page_title>
运动记录
</page_title>
运动记录类型:
<record_types>
跑步,骑车
</record_types>
在编写网页时,请遵循以下指南:
1. 使用 vue.js + element-plus 创建一个简洁美观的网页布局。
2. 网页标题使用 <page_title> 标签。
3. 设计记录运动的表单,表单应包含 <record_types> 中提到的运动记录类型。
4. 为表单添加提交按钮,当点击提交按钮时,表单数据应能够以某种方式被记录。
5. 确保网页具有良好的可读性和易用性。
6. 使用清晰、合理的样式来美化网页,例如设置背景颜色、字体样式等。第二个提示更具体,能够产生更符合期望的输出。
大语言模型是如何训练的?
大语言模型的训练通常分为几个阶段:
加载图表中...
训练阶段详解
预训练(Pre-training)
- 使用大规模文本数据集
- 通过自监督学习预测下一个令牌
- 学习语言的结构和模式
监督微调(Supervised Fine-tuning)
- 使用特定任务的标注数据
- 训练模型执行特定功能
- 如对话、代码生成、翻译等
强化学习从人类反馈(RLHF)
- 使用人类偏好数据
- 训练模型生成更有用、更安全的输出
- 提高模型的对齐性
如何使用大语言模型?
你有两个主要选择:
| 类型 | 服务/工具 | 硬件要求 | 数据隐私 | 网络依赖 | 定制化 | 特点 |
|---|---|---|---|---|---|---|
| 🌐 云服务 | OpenAI API | 无需本地硬件 | 数据需上传到云端 | 需要稳定网络连接 | 有限的定制选项 | 高质量模型,广泛应用 |
| Hugging Face API | 无需本地硬件 | 数据需上传到云端 | 需要稳定网络连接 | 有限的定制选项 | 开源友好,模型丰富 | |
| Anthropic Claude API | 无需本地硬件 | 数据需上传到云端 | 需要稳定网络连接 | 有限的定制选项 | 安全性强,对话能力佳 | |
| Google Gemini API | 无需本地硬件 | 数据需上传到云端 | 需要稳定网络连接 | 有限的定制选项 | 多模态支持,集成度高 | |
| 💻 本地工具 | Ollama | 需要足够的 GPU 内存 | 完全本地化,数据隐私高 | 无网络依赖 | 高度可定制化 | 简单易用,支持多种模型 |
| LM Studio | 需要足够的 GPU 内存 | 完全本地化,数据隐私高 | 无网络依赖 | 高度可定制化 | 图形化界面,用户友好 | |
| vLLM | 需要足够的 GPU 内存 | 完全本地化,数据隐私高 | 无网络依赖 | 高度可定制化 | 高性能推理,适合生产环境 | |
| Transformers 库 | 需要足够的 GPU 内存 | 完全本地化,数据隐私高 | 无网络依赖 | 高度可定制化 | 高度灵活,开发者友好 |
使用示例:
python
# 使用 OpenAI API
from openai import OpenAI
client = OpenAI()
completion = client.chat.completions.create(
model="gpt-5",
messages=[
{
"role": "user",
"content": "写一个睡前故事"
}
]
)
print(completion.choices[0].message.content)📖 课程说明
在本课程中,我们将主要通过云平台上的 API 使用模型。
大语言模型在 AI 智能体中的作用
大语言模型是 AI智能体的关键组件 ,为理解和生成人类语言提供了基础。
加载图表中...
LLM 在智能体中的具体作用:
- 🎯 指令理解:解析和理解用户的自然语言指令
- 💭 上下文维护:在多轮对话中保持上下文连贯性
- 📋 计划制定:基于目标制定详细的行动计划
- 🔧 工具选择:决定何时以及如何使用可用工具
- 💬 响应生成:生成自然、有用的回应
我们将在本单元中更详细地探讨这些步骤,但现在你需要理解的是:
大语言模型是智能体的大脑 🧠