「Hello Agents 第03章」LLM原理:它不理解语言,却比你更会用语言
一句话结论:GPT不”理解”语言——它是一个极其精密的概率机器,通过预测”下一个词是什么”来完成几乎一切语言任务。但正是这个”不理解”,让它比任何”理解”的系统都更强大。
为什么GPT能”读懂”你的问题?
你有没有想过:GPT是怎么知道你问的是什么意思?
它没有词典可以查。它没有语法书可以翻。它甚至没有一条规则说”动词+名词=动作”。
它只做一件事:预测下一个词出现的概率。
输入”今天天气”,它算出”不错”的概率比”很差”高,比”飞机”高得多。然后它选出最可能的词输出,再把”今天天气不错”作为新输入,预测下一个词……如此反复。
听起来很朴素?但把这个简单机制扩展到1750亿个参数、数万亿词的训练数据上,奇迹就发生了——涌现(Emergence)。模型开始”会”写代码、”会”解数学题、”会”分析法律文件,而这些能力没有被明确编程进去。
这就是大语言模型(Large Language Model, LLM)最迷人的地方:一个极其简单的目标,在极大规模上产生了极其复杂的智能行为。
对于Agent来说,LLM是它的”大脑”。理解LLM的工作原理,就是理解Agent的推理核心。
一、从”接龙游戏”到”万能模型”
N-gram:最古老的”语言预测”
最早的语言模型叫N-gram模型,原理极其简单:统计历史语料,如果”今天天气”后面出现”不错”的频率最高,那就预测”不错”。
这个方法在小场景下有效,但有致命弱点:只能看最近的N个词。如果句子很长,开头的信息会被完全忽略。
RNN:有了”记忆”,但记性不好
**循环神经网络(Recurrent Neural Network, RNN)**引入了”隐藏状态”,相当于一个可以传递的记忆:读完每个词,把这个词和之前的记忆合并,传给下一步。
比N-gram聪明很多,但有个问题:序列太长时,早期信息会被后期信息覆盖,就像人长时间没复习就会忘记最初学的东西。这叫”梯度消失”问题。
Transformer:注意力是最关键的资源
2017年,Google Brain的研究者发表了那篇改变历史的论文——《Attention is All You Need》。
Transformer架构彻底抛弃了RNN的”顺序处理”,改为所有词同时并行处理,核心机制叫做自注意力(Self-Attention)。
二、自注意力:用餐厅点菜来理解
自注意力听起来很抽象,但它的逻辑其实很像你在餐厅点菜的过程。
想象你在看菜单,脑子里在做这样的事:
- 🍜 “我想吃辣的” → 查询(Query):你当前的诉求
- 🍛 “每道菜的辣度标签” → 键(Key):菜单提供的检索信息
- 🥘 “每道菜的实际味道” → 值(Value):匹配后你实际获取的内容
你会把”我的诉求”和”每道菜的标签”逐一比对,越匹配的菜,你对它的注意力权重越高,最终你的选择综合了所有菜按权重叠加的信息。
这就是Self-Attention的本质:让句子中的每个词,都去”关注”句子里所有其他词,按相关度分配注意力,然后综合这些信息更新自己的表示。
graph LR
subgraph "句子:银行在河边"
W1["🔵 银行"]
W2["🟡 在"]
W3["🟢 河边"]
end
ATT["⚙️ Self-Attention<br/>计算每对词的相关度"]
OUT1["🔵 银行<br/>(更靠近'河',<br/>理解为河岸)"]
OUT2["🟡 在"]
OUT3["🟢 河边"]
W1 & W2 & W3 --> ATT
ATT --> OUT1 & OUT2 & OUT3
style W1 fill:#C7CEEA,stroke:#9FA8DA,color:#333
style W2 fill:#FFF9C4,stroke:#F9A825,color:#333
style W3 fill:#B5EAD7,stroke:#80CBC4,color:#333
style ATT fill:#E8D5F5,stroke:#CE93D8,color:#333
style OUT1 fill:#C7CEEA,stroke:#9FA8DA,color:#333
style OUT2 fill:#FFF9C4,stroke:#F9A825,color:#333
style OUT3 fill:#B5EAD7,stroke:#80CBC4,color:#333这也是为什么Transformer能处理”多义词”问题:同一个”银行”,在”存钱去银行”里,Self-Attention让它更关注”存钱”;在”银行边钓鱼”里,更关注”河、鱼”。同一个词,不同语境,不同含义,全靠注意力动态调整。
三、三个必须懂的核心概念
Token:模型看到的基本单位
LLM处理的不是”字”也不是”词”,而是Token(词元)。
一个Token大约等于英文的3/4个单词,或者中文的1-2个字。”Hello World”会被切分为["Hello", " World"];”你好世界”可能被切分为["你好", "世界"]。
为什么这个重要?因为Token数量决定了处理成本。GPT-4的API按Token计费,100个汉字大约消耗150个Token,而GPT-4每1000个Token大约收费0.03美元(输出价格)。
Embedding:把词变成数字空间里的坐标
模型不能直接处理文字,需要把Token转化为数字向量——这就是Embedding(嵌入)。
神奇之处在于:语义相近的词,在Embedding空间里距离也近。
- “猫” 和 “狗” 的向量距离,远比 “猫” 和 “飞机” 近
- “北京” 和 “中国”,”东京” 和 “日本” 的关系,在向量空间里几乎等价
这让模型能做类比推理:北京 - 中国 + 日本 ≈ 东京。
Context Window:模型的”工作记忆”
**上下文窗口(Context Window)**是模型在单次对话中能处理的最大Token数。
GPT-3.5的上下文窗口是4K Token(约3000个汉字),GPT-4 Turbo扩展到128K Token(约10万汉字,相当于一本中篇小说),Claude 3.5把它推到了200K Token。
对Agent来说,上下文窗口是关键瓶颈:执行长任务时,历史信息容易超出窗口限制,需要通过记忆模块进行压缩和管理。
四、专门为Agent服务的LLM能力
不是所有LLM能力对Agent都同等重要。以下三个是Agent最依赖的:
能力一:上下文学习(In-Context Learning, ICL)
你不需要重新训练模型,只需要在Prompt里给几个例子,模型就能学会新的格式或任务模式。
1 | # 示例:3个例子教会模型"情感分析" |
不需要任何训练,模型会输出”负面”。这叫做Few-Shot Learning(少样本学习)。
能力二:思维链(Chain-of-Thought, CoT)
研究发现,让模型说出推理步骤,能显著提升复杂任务的准确率。
Google的研究者Wei等人(2022)在GSM8K数学题数据集上发现:使用CoT提示,GPT-3的准确率从17.9%跳升到56.9%。让模型”想清楚再说”,效果接近让模型参数量翻10倍。
1 | # 不用CoT(直接问答) |
能力三:工具调用(Tool Calling / Function Calling)
这是LLM能成为Agent大脑的核心能力。模型不只是输出文字,还能输出结构化的工具调用指令。
OpenAI在2023年发布的Function Calling功能,让这个能力标准化了。
五、实战代码:Tool Calling完整示例
下面这段代码展示了如何用OpenAI API实现工具调用,这是构建Agent的核心技术。
运行条件:需要
pip install openai,并设置OPENAI_API_KEY环境变量。
1 | import json |
运行后你会看到,对于多工具联动的问题,模型会先后调用两个工具,然后综合结果给出答案——这正是LLM作为Agent大脑的工作方式。
六、Prompt Engineering:和LLM说话的艺术
既然LLM这么重要,怎么跟它沟通得更高效?
System Prompt:给模型”定角色”
1 | # 普通对话 |
Few-Shot:用例子比说规则更有效
1 | # 不如直接给例子(Few-Shot效果更稳定) |
CoT提示:强制模型”说出思路”
1 | # 在复杂推理任务中,加上这句话能显著提升准确率 |
七、常见误区
❌ 误区一:更大的模型一定更好
GPT-4的参数量是GPT-3.5的数倍,但在很多特定场景下,经过专门微调的小模型(如7B参数的Code Llama)在代码任务上不输GPT-4,而成本只有1/10。选择模型要看场景,不能只看参数量。
❌ 误区二:上下文越长越好
上下文窗口越大,计算成本越高,推理速度越慢。更关键的是,研究发现LLM在处理超长上下文时,中间部分的信息容易被忽略(”Lost in the Middle”问题,2023年研究发现)。长上下文是工具,不是万能药。
❌ 误区三:Prompt越详细越好
有时候,过于复杂的Prompt会让模型”迷失”,不如简洁清晰的指令。最好的Prompt是:明确目标 + 必要约束 + 1-3个示例。
八、下一步怎么学?
你现在理解了:
- LLM通过预测下一个词来工作,Transformer是它的架构基础
- Self-Attention让它能理解词与词之间的关系
- Token、Embedding、Context Window是三个核心概念
- In-Context Learning、Chain-of-Thought、Tool Calling是Agent最依赖的能力
- Prompt Engineering是与LLM高效沟通的技术
推荐行动:
- 运行上面的Tool Calling代码,观察模型如何自主决策调用哪个工具
- 修改System Prompt,看不同角色设定如何改变模型输出风格
- 下一章,我们将用这些知识,从零实现三种经典的Agent范式:ReAct、Plan-and-Solve、Reflection
📚 本文参考:datawhalechina/hello-agents 第三章
📚 Hello Agents 系列导航
本文是《Hello Agents》开源系列第 3/16 章,适合 AI Agent 开发入门到进阶学习。
| 方向 | 章节 |
|---|---|
| ◀ 上一章 | 第02章:智能体60年:从会下棋到能打工 |
| 下一章 ▶ | 第04章:Agent思考三剑客:ReAct、Plan-and-Solve与Reflection |
📖 全部 16 章目录(点击展开)
- 初识智能体:LLM会聊天,Agent能办事
- 智能体60年:从会下棋到能打工
- LLM原理:它不理解语言,却比你更会用语言 ← 当前
- Agent思考三剑客:ReAct、Plan-and-Solve与Reflection
- 不会写代码也能搭AI Agent?低代码平台实战指南
- 当一个Agent不够用时:三大框架多智能体实战
- 为什么要造轮子?200行Python手写Agent框架
- Agent为何失忆?RAG与记忆系统深度解析
- Context Engineering:让Agent真正聪明的隐秘武器
- AI Agent如何与世界对话:MCP、A2A、ANP协议全解析
- 用强化学习驯服AI Agent:GRPO与Agentic RL全解析
- 你的Agent真的好用吗?智能体评估体系完全指南
- 用Agent规划日本5日游,2分钟搞定2小时的活
- 自动写研究报告的Agent:比ChatGPT深,但有盲点
- 赛博小镇:25个AI角色自主生活,涌现了什么?
- 学完16章,现在从0构建你自己的Agent