02|大语言模型基础:Agent 的推理引擎如何工作
理解词元预测、注意力、消息和生成设置如何影响 Agent。
理解词元预测、注意力、消息和生成设置如何影响 Agent。
传统系统像只接受固定按钮的机器;LLM 像能读懂不同说法的调度员,但理解灵活不等于事实可靠。

本课交付物
把五种用户说法归一为一个天气工具 schema,检查歧义时何时必须追问。
核心讲解
在上一节中,我们了解到每个智能体都需要一个核心的人工智能模型,而大语言模型 (LLM) 是实现这一目标最常见的 AI 模型类型。
现在,我们将学习什么是大语言模型,以及它们如何为智能体提供动力。
本节将提供一个简洁的技术解释,说明大语言模型的用途。如果你想更深入地了解相关内容,可以参考我们的 免费自然语言处理课程。
什么是大语言模型?
大语言模型 (LLM) 是一种擅长理解和生成人类语言的人工智能模型。它们通过大量文本数据的训练,能够学习语言中的模式、结构,甚至细微差别。这些模型通常包含数千万甚至更多的参数。
如今,大多数大语言模型都是基于 Transformer 架构构建的 —— 这是一种基于“注意力”算法的深度学习架构。自 2018 年 Google 推出 BERT 以来,这种架构引起了广泛关注。
原始的 Transformer
架构如下所示,左侧是编码器(encoder),右侧是解码器(decoder)。
Transformer 有三种类型:
-
编码器(Encoders)
基于编码器的 Transformer 接收文本(或其他数据)作为输入,并输出该文本的密集表示(或嵌入)。- 示例:Google 的 BERT
- 用例:文本分类、语义搜索、命名实体识别
- 典型规模:数百万个参数
-
解码器(Decoders)
基于解码器的 Transformer 专注于逐个生成 token 以完成序列。- 示例:Meta 的 Llama
- 用例:文本生成、聊天机器人、代码生成
- 典型规模:数十亿(按美国用法,即 10^9)个参数
-
序列到序列(编码器-解码器,Seq2Seq(Encoder–Decoder))
序列到序列的 Transformer 结合了编码器和解码器。编码器首先将输入序列处理成上下文表示,然后解码器生成输出序列。- 示例:T5、BART
- 用例:翻译、摘要、改写
- 典型规模:数百万个参数
虽然大语言模型 (LLMs) 有多种形式,但它们通常是基于解码器的模型,拥有数十亿个参数。以下是一些最知名的大语言模型:
| 模型 | 提供商 |
|---|---|
| Deepseek-R1 | DeepSeek |
| GPT4 | OpenAI |
| Llama 3 | Meta(Facebook AI Research) |
| SmolLM2 | 模型服务平台 |
| Gemma | |
| Mistral | Mistral |
大语言模型 (LLM) 的基本原理简单却极其有效:其目标是在给定一系列前一个 token 的情况下,预测下一个 token。这里的“token”是 LLM 处理信息的基本单位。你可以把 “token”想象成“单词”,但出于效率考虑,LLM 并不直接使用整个单词。
例如,虽然英语估计有 60 万个单词,但一个 LLM 的词汇表可能只有大约 32,000 个 token(如 Llama 2 的情况)。Tokenization 通常作用于可以组合的子词单元。
举个例子,考虑如何将 token“interest”和“ing”组合成“interesting”,或者添加“ed”形成“interested”。
你可以在下面的交互式游乐场中尝试不同的 tokenizer 来实验:
每个大语言模型 (LLM) 都有一些特定于该模型的特殊 token。LLM 使用这些 token 来开启和关闭其生成过程中的结构化组件。例如,用于指示序列、消息或响应的开始或结束。此外,我们传递给模型的输入提示也使用特殊 token 进行结构化。其中最重要的是序列结束 token (EOS,End of Sequence token)。
不同模型提供商使用的特殊 token 形式差异很大。
下表展示了特殊 token 的多样性:
<table>
<thead>
<tr>
<th>
<strong>Model</strong>
</th>
<th>
<strong>Provider</strong>
</th>
<th>
<strong>EOS Token</strong>
</th>
<th>
<strong>Functionality</strong>
</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<strong>GPT4</strong>
</td>
<td>OpenAI</td>
<td>
<code><|endoftext|></code>
</td>
<td>End of message text</td>
</tr>
<tr>
<td>
<strong>Llama 3</strong>
</td>
<td>Meta (Facebook AI Research)</td>
<td>
<code><|eot_id|></code>
</td>
<td>End of sequence</td>
</tr>
<tr>
<td>
<strong>Deepseek-R1</strong>
</td>
<td>DeepSeek</td>
<td>
<code><|end_of_sentence|></code>
</td>
<td>End of message text</td>
</tr>
<tr>
<td>
<strong>SmolLM2</strong>
</td>
<td>模型服务平台</td>
<td>
<code><|im_end|></code>
</td>
<td>End of instruction or message</td>
</tr>
<tr>
<td>
<strong>Gemma</strong>
</td>
<td>Google</td>
<td>
<code><end_of_turn></code>
</td>
<td>End of conversation turn</td>
</tr>
</tbody>
</table>
提示:
我们并不期望你记住这些特 token,但重要的是要理解它们的多样性以及它们在大语言模型 (LLM) 文本生成中所扮演的角色。如果你想了解更多关于特殊 token 的信息,可以查看模型在其 Hub 仓库中的配置。例如,你可以在SmolLM2 模型的 tokenizer_config.json 文件中找到该模型的特殊 token。
理解下一个词元预测
大语言模型 (LLM) 被认为是自回归的,这意味着一次通过的输出成为下一次的输入。这个循环持续进行,直到模型预测下一个词元为 EOS(结束符)词元,此时模型可以停止。
换句话说,LLM 会解码文本,直到达到 EOS。但在单个解码循环中会发生什么?
虽然对于学习智能体而言,整个过程可能相当技术化,但以下是简要概述:
- 一旦输入文本被词元化,模型就会计算序列的表示,该表示捕获输入序列中每个词元的意义和位置信息。
- 这个表示被输入到模型中,模型输出分数,这些分数对词汇表中每个词元作为序列中下一个词元的可能性进行排名。
基于这些分数,我们有多种策略来选择词元以完成句子。
- 最简单的解码策略是总是选择分数最高的词元。
您可以在此 Space 中使用 SmolLM2 自己与解码过程进行交互(记住,它会一直解码,直到达到 EOS 词元,对于这个模型来说,EOS 词元是**<|im_end|>**):
- 但还有更先进的解码策略。例如, 束搜索(beam search) 会探索多个候选序列,以找到总分数最高的序列——即使其中一些单个词元的分数较低。
如果你想了解更多关于解码的信息,可以查看NLP 课程。
注意力机制就是你的全部所需
Transformer 架构的一个关键方面是注意力机制。在预测下一个词时,句子中的每个词并不是同等重要的;例如,在句子 “The capital of France is …” 中,“France” 和 “capital” 这样的词携带了最多的意义。
这种识别最相关词以预测下一个词元的过程已被证明是非常有效的。
尽管自 GPT-2 以来,大语言模型(LLM)的基本原理——预测下一个词元——一直保持不变,但在扩展神经网络以及使注意力机制能够处理越来越长的序列方面已经取得了显著进展。
如果你与大语言模型交互过,你可能对上下文长度这个术语很熟悉,它指的是大语言模型能够处理的最大词元数,以及其最大的注意力跨度。
提示大语言模型很重要
考虑到大语言模型(LLM)的唯一工作是通过查看每个输入词元来预测下一个词元,并选择哪些词元是“重要的”,因此你提供的输入序列的措辞非常重要。
你提供给大语言模型的输入序列被称为提示。精心设计提示可以更容易地引导大语言模型的生成朝着期望的输出方向进行。
大语言模型是如何训练的?
大语言模型是在大型文本数据集上进行训练的,它们通过自监督或掩码语言建模目标来学习预测序列中的下一个词。
通过这种无监督学习,模型学习了语言的结构以及文本中的潜在模式,使模型能够泛化到未见过的数据。
在这个初始的预训练之后,大语言模型可以在监督学习目标上进行微调,以执行特定任务。例如,一些模型被训练用于对话结构或工具使用,而其他模型则专注于分类或代码生成。
我如何使用大语言模型?
你有两个主要选择:
-
本地运行(如果你有足够的硬件资源)。
-
使用云服务/API(例如,通过 模型服务平台 的无服务器推理 API)。
在本课程中,我们将主要通过 模型服务平台 Hub 上的 API 使用模型。稍后,我们将探讨如何在你的本地硬件上运行这些模型。
大语言模型在 AI 智能体中是如何使用的?
大语言模型是 AI 智能体的关键组件,为理解和生成人类语言提供了基础。
它们可以解释用户指令,在对话中保持上下文,制定计划并决定使用哪些工具。
我们将在本单元中更详细地探讨这些步骤,但现在你需要理解的是,大语言模型是智能体的大脑。
那信息量可真不小!我们已经涵盖了大语言模型(LLM)的基本概念、工作原理以及它们在驱动 AI 智能体中的作用。
如果你想更深入地探索语言模型和自然语言处理这个迷人的世界,不妨查看我们的免费 NLP 课程。
现在我们已经了解了大语言模型的工作原理,接下来是时候看看大语言模型如何在对话语境中构建其生成内容了。
要运行这个笔记本,你需要一个 模型服务平台 token,你可以从 获取。
有关如何运行 Jupyter 动手实验 的更多信息,请查看 模型服务平台 Hub 上的 Jupyter 动手实验。
你还需要请求访问 Meta Llama 模型。
本站实战工作台
LLM 成了自然语言与软件之间的调度层
传统自动化要求用户选择固定按钮或填写严格字段。大模型可以把“明天下午上海会不会下雨,我要不要带伞”解析为地点、时间、天气工具和回答方式,也能从工具结果生成自然说明。这种语义归一能力降低了开放目标进入软件系统的门槛。
但语言理解灵活不等于事实可靠。模型可能补全不存在的参数、选择错误工具或把失败结果解释成成功。因此 LLM 适合提出结构化意图,确定性代码仍负责校验、执行与权限。
从五种说法归一到一个 Schema
{
"name": "get_weather",
"parameters": {
"city": "string",
"date": "YYYY-MM-DD",
"units": "metric | imperial"
},
"required": ["city", "date"]
}
把“北京今天冷吗”“查明天 London”“周五出门穿什么”“我这儿会下雨吗”“给我 2026-13-40 天气”分别映射。前两条可结构化;“周五”需结合当前日期与时区;“我这儿”缺定位;非法日期必须拒绝。追问不是能力不足,而是避免猜测的正确动作。
LLM 带来的三种新能力
它能把多样表达归一为意图;能在多个工具间做语义选择;能把非结构化观察压缩为下一步上下文。这些能力使通用 Agent 可行,但也带来概率性:相同输入可能走不同轨迹,评估必须覆盖分布而不是一次演示。
模型不该负责的部分
不要让模型直接执行 SQL、拼 shell、决定退款权限或计算精确金额。它可以输出受约束候选,程序完成 schema 校验、业务规则、幂等与审计。事实来自工具或可信资料,模型负责组织,不负责凭记忆制造最新状态。
对比实验
为五条天气请求记录模型输出,再用验证器检查必填、日期、枚举与长度。统计一次生成成功、需追问、可自动修正和必须拒绝。把温度单位默认值放进业务配置而不是藏进提示词,观察行为是否更稳定。
通过标准是你能同时说出 LLM 让 Agent 可用的原因和它不能被信任的边界。大模型是灵活调度员,不是权限系统、数据库和事实世界本身。