LLM 如何工作
Token、上下文窗口、幻觉;how-llms-work 节点。
30 分钟
LLM 如何工作
ChatGPT、Copilot、Cursor 背后都是 大语言模型(LLM):根据上文 预测下一个 token,不是查数据库、也不是真正「理解」你的仓库。知道这一点,才能避免把 AI 当 oracle。
学习目标
- 理解 token、上下文窗口、训练截止的基本概念
- 说清「幻觉」为何必然存在
- 对照路线图 how-llms-work 节点
核心机制
Token 与上下文窗口
- Token:文本被切成的片段(中英文混合时,一个汉字常接近 1 token)
- 上下文窗口:模型一次能「看见」的最大 token 数(如 8K、128K、200K)
窗口满了,较早内容会被截断或摘要丢失——长对话里 AI「忘记」你刚说的约束,常源于此。
训练与推理
| 阶段 | 做什么 | 对你意味着什么 |
|---|---|---|
| 预训练 | 海量文本学语言统计 | 知识有 截止日期,新库可能不熟 |
| 对齐 | 安全与指令跟随 | 会拒答、会过度谨慎 |
| 推理 | 按 prompt 生成 | 同一 prompt 可能略有不同(temperature) |
LLM 没有运行你的代码:它只是在文本空间里续写「像正确答案的样子」。
幻觉(Hallucination)
模型会 自信地编造:
- 不存在的 API、错误的方法签名
- 假的包版本、虚构的文件路径
- 看似合理的错误解释
对策:以官方文档、IDE 跳转、测试为准;AI 输出是 假设,不是 事实。
与编程工具的关系
Copilot / Cursor 会把 当前文件、选中代码、@ 引用的文件 塞进上下文,提高相关性,但 仍可能漏读或未读到的文件。
写 CodeRoadMap 讲义时:给 AI 贴 outline.yaml + 相邻 draft,比空口描述「写一节测试课」准确得多——仍要人工核对链接与代码路径。
与测试、Git 的衔接
- 生成代码后跑 test-junit 里的断言,比问 AI「这对吗」可靠
- 不确定的改动用 git-branch 开分支,方便
git diff审查
练习
- 用同一问题问 AI 两次,观察回答是否完全一致
- 故意问一个冷门内部类名,看 AI 是否编造用法
- 查你所用模型的 context window 文档,估算一份 medium draft 占多少 token
小结
LLM = 有限上下文下的 token 预测;幻觉不是 bug,是使用方式问题。 下一课 GitHub Copilot 如何把 LLM 嵌进编辑器。