60天企业 AI 实战训练营 · 阶段 2 · 第 2 周

大语言模型
工程基础

搞懂输入、输出、随机性、上下文与幻觉 —— 别把"概率机器"当数据库用

Day 07 讲师 · 包学斌 2026 · 09 含实操 · 请自带电脑
"报销制度" human text tok tokenizer · BPE 计费按 token 不按字

按 → 或 空格键 翻页 · F 全屏

今天这堂课解决什么问题

课程目标

01
会用"工程单位"看模型
Token 计量、上下文预算、Temperature 旋钮 —— 输入输出都是可计算的资源。
02
知道它为什么会错
概率语言模型的本质决定它会幻觉 —— 长尾知识、易变知识靠体系兜底,不靠运气。
03
会做能力分层
通用能力用参数、企业知识用 RAG、实时数据用 Tool、写操作加审批。
它在 60 天课程中的位置
Day 4 · Git 与企业软件开发规范已完成
Day 5 · Docker 与 AI 运行环境已完成
Day 6 · HTTP、REST API 与 FastAPI已完成
Day 7 · 大语言模型工程基础今天
Day 8 · Prompt Engineering 与 Structured Output下一课
阶段 2 从今天开始:基础设施 ✓ 已就绪 —— 接下来四天,把"大脑"接进你的服务链路
互动 · 举手投票 + 点击选择

模型给你的答案,你凭什么信?

凭直觉点一个 —— 这四个理由里只有一个靠得住

点一个选项,看看它意味着什么 →
01
Part 01

模型眼中的文字

它不认"字",只认 token

tiktoken Token 计量 BPE 子词 成本与容量
Part 01 · 模型眼中的文字

Token:模型处理文本的最小单位

每点一次,看一个事实 —— 计费、限长、容量,全部以 token 论

TOKENIZER · BPE / WordPiece / SentencePiece
英文"unbelievable" → un · believable · ve(子词)
中文通常 1 字 ≈ 1–2 token
英文1 词 ≈ 1–1.3 token
计数tiktoken / 官方 tokenizer 精确计算
企业含义:一切按 token 预算
成本估算、上下文容量、限流配额都以 token 为准 —— 不是字数,不是页数
常见坑
按字数估成本 → 中英混合直接翻倍;没算 token 就把百页 PDF 塞进 prompt → 当场报错。
Part 01 · 模型眼中的文字

Transformer 在做什么:猜下一个 token

多头注意力 · 不用推公式
Transformer = 多头自注意力 + 前馈网络堆叠。注意力让模型在处理每个 token 时"看见"上下文里相关的其他 token。
工程上只需一个认知
它是概率语言模型:给定前文,输出下一个 token 的概率分布 —— 生成 = 不断重复这一步。
# 模型的每一次"发言" # 只是一次 next-token 采样 "发票金额超过" → 5000? 需要? 审批? ✓? 无需? ✗?
边界要记牢
别把 LLM 当精算器、数据库用;复杂条件判断塞进 prompt 让它硬算 —— 数学和查表都有更可靠的工具。
互动 · 快问快答

对错判断:三道送命题

先举手投票,再点击揭晓答案

1. 一段 2000 字的中文,token 数也大约 2000?
错 —— 中文通常 1 字 ≈ 1–2 token,这段可能是 2500–4000 token。计费按 tokenizer 实际切分算,请精确计数。
✗ 错
2. 模型回答"发票超 5000 需总监审批",是因为它"知道"这条制度?
它只是在"猜下一个 token"—— 答案可能来自训练数据的巧合,而不是贵司制度。企业制度不进模型参数,就得靠检索给证据。
✗ 想多了
3. 同样的问题问两遍,模型答案一定相同?
不一定 —— 采样有随机性(temperature/top_p)。温度不为 0 时,同一个输入本来就该期待不同输出。Part 03 细讲。
✗ 不一定
实操 ① · 8 分钟 · 需要联网或本地 Python

亲手称一次 token

1进入课件 demo/ 目录:pip install tiktoken openai
2运行 python token_lab.py:对比纯中文、纯英文、中英混合各 200 字的 token 数
3把脚本里的 DOC 换成本地一份制度文件,算出它的 token 总量与一次全量塞入的费用
4算一笔账:每天 2000 次调用 × 每次输入 3000 token → 每月成本多少?
08:00
验收标准
说出中文 token/字 的实测比例
中英混合比纯中文贵,并给出倍数
算出一项真实的月度调用成本

卡住就举手 —— 实操环节助教会巡场

02
Part 02

上下文是一笔预算

窗口再大,也不是垃圾桶

Context Window 预算表 Lost in the middle
Part 02 · 上下文是一笔预算

一次推理,模型"看见"的全部东西

窗口上限 = 输入 + 输出的 token 总量,超出即截断或报错

CONTEXT WINDOW · 都挤在一个窗口里
System Prompt角色 + 规则 + 输出要求
对话历史多轮会话的全部往返
检索结果RAG 召回的文档片段
工具返回Function / Tool 的调用结果
当前输入用户这一轮的问题
期望输出也给模型留答复的空间
工程做法:先做预算表
System 500 · 检索 3000 · 历史 2000 · 输出 1500 —— 随场景动态调整,每一块都有上限,超了先裁剪低价值部分。
常见坑
"我们用的是 128K 窗口"≠ 可以随便塞。塞满 ≠ 用好 —— 下一点看为什么。
Part 02 · 上下文是一笔预算

长上下文的暗礁:lost in the middle

头部 · 模型注意力强 —— 放关键指令 ✓ System:只依据 <policy> 回答,无依据要拒答 …… 3000 token 检索片段 …… 中部 · 最容易被"看漏"的位置 —— 关键条款藏在这就完了 ✗ …… 更多片段 …… 尾部 · 紧贴问题处注意力回升 —— 放最后指令与问题 ✓ 问题:员工差旅住宿标准是多少?
现象
窗口塞得越长,中间部分的内容越容易被忽略 —— 模型答"没找到",其实证据就在上下文里。
对策
高价值内容放首尾;检索宁缺毋滥(明天 Few-shot、后天 Top-K 都在解决这件事);长文档先摘要再入窗口。
心法
上下文预算思维:把每一块内容当花钱买的广告位 —— 放不重要的内容就是浪费。
互动 · 找茬游戏

这些上下文用法,哪个在埋雷?

先心里给个判断,再点击揭晓

用 tiktoken 预统计长度,超限自动截断低优先级块 预算表 + 精确计数,标准做法
100 页员工手册整个贴进 prompt,让模型"重点看第 47 页" lost in the middle + 成本爆炸:该用检索定位
对话历史只保留最近 N 轮 + 更早轮次的摘要 滚动窗口 + 摘要压缩,企业常用
系统提示、检索结果、用户输入混成一段纯文本 没有分节边界:模型分不清哪是指令哪是数据(Day 8 细讲)
关键规则放开头、重申一遍放结尾 利用首尾注意力强的位置特性
"模型窗口 1M,所以每次把全库文档都带上最保险" 噪声越多答案越差,token 费还翻倍 —— 大 ≠ 好
实操 ② · 8 分钟 · 两人一组

做一个"塞爆窗口"实验

1打开 demo/context_lab.py:脚本把关键条款放在长上下文的开头 / 中间 / 结尾三种位置
2分别运行,问同一个问题:"差旅住宿标准是多少?"
3记录三种位置的回答正确率与输入 token 数
4讨论:如果线上就是"中间位置"的用法,你会怎么改?
08:00
验收标准
三种位置各至少跑 2 次并记录
能复述"预算表"四个组成部分
给出一条降 token 成本的改进措施

没有 API Key 的组:看教师演示 + 记录结论

03
Part 03

随机性旋钮

Temperature 不是"创意开关",是采样参数

softmax 分布 top_p 核采样 版本化固定参数
Part 03 · 随机性旋钮

Temperature 在拨什么

模型输出的是每个候选 token 的概率分布,temperature 改变分布的"尖锐程度"

T → 0 接近贪婪
永远挑概率最大的 token —— 结果稳定、可复现,但可能干瘪、复读。
T = 1 原始分布
按训练时的概率原样采样 —— 默认值,企业问答用它 = 每次答案都可能不同。
T > 1 更发散
拉平分布,冷门词更容易被选中 —— 创意文案、头脑风暴适用,事实场景灾难。
配合 top_p(核采样):只从累计概率前 p% 的候选里抽 —— 两个旋钮一起决定"随机性预算"。
Part 03 · 随机性旋钮

企业场景:把参数钉死在版本里

0 – 0.2结构化抽取 · SQL 生成 · 制度问答 —— 要的是确定,不是文采低随机
0.3 – 0.5摘要改写 · 翻译 —— 留一点措辞灵活度中低
0.7 – 1.0创意生成 · 营销文案 · 头脑风暴高随机
top_p通常与 temperature 二选一动,别两个都拉满
写进版本管理
业务提示词 + temperature / top_p / 模型版本一起进 Git(Day 4 的技能)—— 改参数 = 改代码,走评审。
两个反直觉
默认 1.0 做企业问答 → 同题不同答没人负责;temperature=0 也不完全确定 —— 批处理、硬件浮点差异仍可能翻车。
实操 ③ · 8 分钟 · 两人一组

同一个问题,两种温度

1打开 demo/temp_lab.py:同一个抽取任务跑 temperature=0temperature=1
2各跑 3 次,diff 两次输出是否一致
3高温度下故意观察:字段名会不会被"创意改写"?数字会不会漂移?
4为你们组的任务选定参数并写一行理由 —— 这就是将来 prompt 版本注释的雏形
08:00
验收标准
能说出低温度输出更稳定的证据
给任务选定了 temperature 并说明理由
知道参数要与 prompt 一起进版本管理

没有 API Key 的组:看教师演示 + 记录结论

04
Part 04

幻觉与知识边界

它会一本正经地胡说 —— 体系比运气可靠

Hallucination 对抗三板斧 能力分层
Part 04 · 幻觉与知识边界

幻觉:从"猜词"机制里长出来的

成因
模型目标是"生成看起来最像的下一个 token",不是"生成真实的 token" —— 流畅与真实是两回事。
什么时候最严重
长尾的知识越容易编:冷门条款、内部编号、具体数字、人名日期 —— 训练分布里本来就稀。
上线判据不是"感觉对"
"用户感觉答对了"就上线 = 把评测外包给运气;连"我不知道"都要被评测 —— 拒答率不测,模型就会过度自信。
# 一次教科书式幻觉 问: 我司差旅住宿标准? 答: 根据《员工差旅管理办法 (2023版)》第十四条: 一线城市 600 元/晚… # 该文件不存在 · 条款编的 # 引用格式却完美 ✓
记一句就够
格式越漂亮、引用越具体,越要回原文核对 —— 幻觉最会伪装成专业。
Part 04 · 幻觉与知识边界

对抗幻觉三板斧 + 一层兜底

① RAG 给证据
先检索企业原文再作答,无证据就拒答 —— 明天之后两周专门讲它(Day 9–10)。
② Structured Output 限格式
按 schema 输出,字段名、枚举值被语法约束住 —— 编造空间小一半(明天 Day 8)。
③ Golden Set 回归评测
准备 50–100 条标准问答,每次改动跑一遍 —— 幻觉率、拒答率用数字说话。
兜底设计:在 prompt 里明确授权模型说 "我不知道" —— 拒答不是失败,自信的错答才是事故
Part 04 · 幻觉与知识边界

模型参数 ≠ 企业知识库:四层分工

先想清楚知识住在哪一层,再写代码

模型参数
通用语言能力
有截止日期 · 不可追溯
RAG
企业私域知识
制度 · 主数据 · 可溯源
Tool 调用
实时数据查询
库存 · 订单 · 汇率
Agent + 审批
写操作 · 不可逆动作
必须人过一道闸
两个昂贵错觉
"改改 prompt 就能让模型学会新制度" —— 它只是这次看见了,换批人问就穿帮;把易变知识写进 System Prompt —— 每次制度变更都要发版,维护地狱。
Part 04 · 复盘 · 互动讨论

三大血泪坑

1
按"字数"估成本做预算
上线后账单直接翻倍 —— token 用 tiktoken 实测,中英混合尤其贵。
2
默认参数裸奔上线
temperature 默认 1.0 做制度问答,今天答 500 明天答 600 —— 参数写进版本,随 prompt 一起管。
3
"同事试过没问题"就信任回答
没有 Golden Set、没测拒答率 —— 幻觉专挑长尾问题爆发,出事的永远是没测过的那一条。
课堂讨论 · 2 分钟
把公司最新差旅制度全文写进 System Prompt,是不是就不用 RAG 了?
答案:短期能用,长期是坑
每次制度修订都要改 prompt 发版;文档一多挤爆窗口还贵;无法按部门/权限过滤。易变、量大、要权限的知识,住 RAG 才安稳。
实操 ④ · 15 分钟 · 综合演练

给昨天的服务加一个"懂预算"的问答端点

1打开 demo/qa_service.py:在 Day 6 的 FastAPI 骨架上补 /ask 端点
2实现上下文预算:System + 证据片段 + 问题,超预算先裁证据保指令
3prompt 中写入拒答规则:"材料中未提及的,回答'无法确认'"
4temperature=0.2;用 demo/golden_set.json 里 5 条问答冒烟测试(含 1 条应拒答)
5响应里带上 usage.input_tokens —— 日志按 JSON 记录(呼应阶段 1 底线)
15:00
验收清单
/ask 对材料内问题答对
材料外问题得到"无法确认"式拒答
响应含 token 用量
temperature 显式写在代码里

卡住就举手 —— 实操环节助教会巡场

总结

今天你带走了什么

原理
文本按 token 处理:中文 1 字 ≈ 1–2 token
原理
LLM = 概率语言模型:猜下一个 token
原理
窗口 = System+历史+检索+输入+输出的总预算
原理
temperature 控制采样尖锐度,0 也不完全确定
规范
成本用 tiktoken 实测,预算表先于代码
规范
关键内容放上下文首尾,检索宁缺毋滥
规范
参数与 prompt 一起进版本管理
规范
授权模型说"我不知道",拒答率要评测
分层
通用能力住参数,企业知识住 RAG
分层
实时数据走 Tool,写操作必须过审批
分层
幻觉三板斧:证据 · 格式 · 回归评测
心法
上下文是买的广告位,不是免费的垃圾桶
"模型负责说话,体系负责说真话。"
课后作业 · 明日预告

今天到此,明天开"嘴"

作业 1 · 预算表
为你手头一个真实 AI 场景写上下文预算表(各块 token 上限 + 超限裁剪策略),并用 tiktoken 验证。
作业 2 · 黄金五十问
收集 20 条员工真会问的业务问题 + 标准答案,其中至少 3 条是"材料里没有、应拒答"的。
作业 3 · 阅读
OpenAI Prompt Engineering Guide;tiktoken README;复习明天关键词:Role / Goal / Context / Rules / Few-shot。
明日预告 · Day 08
Prompt Engineering 与 Structured Output
模型会说话之后,教它按你的规矩说 —— 五要素提示词、schema 约束输出,以及躲开 Prompt 注入。

谢谢 · Q&A —— 实操问题随时在群里 @ 包学斌

Day 07 · 大语言模型工程基础 · 包学斌
1 / 25