大模型是什么(直觉版)
阶段 1 你打完了工程地基(会调 API、懂异步、能开服务)。今天进入阶段 2,掀开主角的盖头——大模型到底是什么。搞懂它只是在"预测下一个词",你就能理解它为什么强、为什么会胡说,也才知道明天(Day 11)调它的 API 时每个参数在干嘛。今天不写业务代码,重在建立正确直觉。
先破一个误解:它不是搜索引擎
| 搜索引擎 | 大模型 | |
|---|---|---|
| 在干嘛 | 从已有网页里查出来 | 根据语感生成/接出来 |
| 给你的 | 链接,让你自己看 | 直接一段新写的话 |
| 会不会编 | 不会(顶多找不到) | 会(接得很顺但可能是假的) |
本质:预测下一个 token
比如你输入"今天天气真",模型内部会算出一张概率表,然后挑高分的接上:
token:接话的最小积木
粗略的换算感觉(不同模型略有差异,记个量级即可):
- 英文:大约 1 个 token ≈ 4 个字符 ≈ 0.75 个单词;
- 中文:大约 1 个汉字 ≈ 1~2 个 token;
- 一段 700 字左右的中文短文,大概 1000~1400 token。
["我","爱","学习"," Ag","ent"] 这样 5 个 token——注意 "Agent" 这种词可能被拆成好几块,而空格也常跟着后面的词。你不用精确算,只要知道"字越多、token 越多、越费钱"就够了。
👶 小白:为什么不干脆按"字"算,非要搞个 token?
👨🏫 老师:因为按字太碎、按整词又太多种,token 是个折中——它把常见的片段(像 "ing"、"学习")打包成一块,让模型用更少的单位覆盖更多语言,效率更高。你只需记住三件事:① 模型的"下一个词"其实是"下一个 token";② 输入输出都按 token 计费;③ 想省钱就少啰嗦。
上下文窗口:它一次能看多长
不同模型窗口差别很大,从几千 token 到上百万 token 不等。窗口越大越能塞长文档,但也越贵、有时越慢,而且塞太满模型还容易"顾此失彼"(这个现象叫"lost in the middle",阶段 3 的 Day 18 会专门讲)。
参数量:脑子里的"语感"厚度
粗略的直觉(不是硬规则,只帮你建立量级感):
- 参数越多,通常越"博学、会推理",但也越慢、越贵、越吃显卡;
- 参数越少(小模型),跑得快又便宜,适合简单、高频的活;
- 这正是后面 Day 15 "模型路由"的由头:贵活派大模型、便宜活派小模型,别拿牛刀杀鸡。
幻觉:为什么它会一本正经地胡说
理解了这点,你就明白幻觉不是偶发故障,而是"预测下一个词"这套机制的自然副产物。所以整条学习路线后面才有那么多"防幻觉"的功夫:
- 给它真资料:RAG(阶段 4)——先检索真实文档再让它基于文档回答;
- 让它调工具查:Function Calling(阶段 5)——算数/查库交给真程序;
- 加审查:Critic 防幻觉(阶段 10,深潜 gov-agents)——专门挑"编造"的刺;
- 做评测:faithfulness 等指标(阶段 9)——量化"它有没有忠于事实"。
👶 小白:那它是不是很不靠谱,不能用?
👨🏫 老师:恰恰相反——正因为你懂了它的脾气,才能把它用好。它极擅长"改写、总结、生成、按格式整理"这类"顺"就够的活;对"必须准确"的事实/计算,就别让它硬答,而是喂真资料、给工具、加校验。"知道它会编,所以给它护栏"——这正是你未来作为 Agent 工程师的核心价值,也是面试高频考点。
今日小结 + 动手 10 分钟
🧠 今天你应该能回答
- 大模型和搜索引擎的根本区别?(一个查、一个"接话生成";它不查库,靠语感生成)
- 它的核心动作是什么?(给定上文,一个 token 一个 token 地预测"下一个最可能的")
- token 是什么?为什么重要?(文字碎片,模型读写的单位,也是计费单位)
- 上下文窗口是什么?(一次能处理的 token 上限,输入+输出共享这张"桌子")
- 幻觉为什么会发生?怎么治?(它只求"顺"不保证"真";用 RAG/工具/审查/评测来防)
✋ 动手:直观感受"文字→token"(无需 API Key)
大厂大多提供在线的"Tokenizer"网页,你可以搜 "OpenAI tokenizer" 或 "tokenizer 可视化",把下面几句话粘进去,观察它被切成几个 token、每块长什么样:
# 分别粘进 tokenizer 网页,比较 token 数:
# 1) Hello, how are you?
# 2) 你好,最近怎么样?
# 3) Agent工程师转行学习路线
# 观察:中文 vs 英文,谁更“费 token”?“Agent”这种词被切成了几块?
想在本地用代码数 token,也可以(可选,需联网装库):
# pip install tiktoken # OpenAI 的分词工具,可离线数 token
import tiktoken
enc = tiktoken.get_encoding("cl100k_base") # 一种常见编码
text = "你好,我在学 Agent 开发"
tokens = enc.encode(text) # 把文字切成 token 的 id 列表
print("token 数:", len(tokens)) # 打印这句话占几个 token
print("大致费用感:字越多,token 越多,越贵")
system/user/assistant(分别是"设定人设、你说话、模型回话"),并把今天的 token、上下文窗口在真实调用里对上号。