刚上手 AI 时,你多半会遇到这种场面:同事说「模型会幻觉是因为没联网」,有人又说「加个知识库就行」,听得越多越糊。问题不在术语本身,而在于没人把整条流水线从头到尾讲一遍。这篇按「数据进—参数出—文字出」的顺序拆开生成式模型的工作原理,每一段都配一个可执行的核对动作,让你听完别人的说法能自己判断对不对。
刚上手 AI 时,你多半会遇到这种场面:同事说「模型会幻觉是因为没联网」,有人又说「加个知识库就行」,听得越多越糊。问题不在术语本身,而在于没人把整条流水线从头到尾讲一遍。这篇按「数据进—参数出—文字出」的顺序拆开生成式模型的工作原理,让你听完别人的说法能自己判断对不对。
下面四个环节各配一个可执行的核对动作。你不需要背公式,只需要知道每一步在做什么、哪些说法一听就不对。遇到拿不准的名词,先去站内词典页把定义对齐,再回头看别人给的解释,效率会高很多。
第一步:文字怎么变成模型能算的东西
模型不认识字,只认识数字。分词器负责把你的句子切成一串 token 再映射成编号,这一步没有「理解」,只是查表。中文、英文、代码的切法差别很大,同一个句子在不同分词器下切出的长度也不一样。所以「按 token 计费」「上下文长度」这些说法的源头都在这里。跨模型直接比 token 数没有意义,因为量尺本身不同。
- 分词器不同,同一句话切出的 token 数就不同,跨模型比长度是无效对比
- token 和「字数」不是一回事,中文里一个常见词常被切成多个 token
- 计费、限长、截断都按 token 算,估算成本前先确认你用的是哪套分词
- 这一步不涉及理解,看到「模型读懂了每个字」的说法要打个问号
想确认某个词到底怎么被切开、上下文这个词具体指什么,到 /ai-dict/category/basics 对照 Token 与上下文两个词条,比看二手科普稳。
第二步:预训练到底在训练什么
主流做法是预测下一个 token:给前文、猜后一个,猜错就调参数,反复几轮之后得到的就是那堆权重数字。所以模型学到的是「什么样的字后面通常跟着什么字」这种统计规律,不是事实数据库。这也是幻觉的根因之一——它生成的是「看起来该接下去」的内容,而不是查证过的结论。
- 权重
- 训练结束后固化的那堆数字,模型能力就存在里面
- 基座模型
- 只做完预训练、还没做指令调教的原始模型
- 参数量
- 权重的规模指标,不等于任务表现,别拿它当质量结论
训练数据规模和算力投入会左右最终能力,但它和「某次任务答得好不好」不是一回事。评估口径、榜单怎么读,到 /benchmarks 看你当时关心的那几项数字,别用单次体验下结论。想搞清权重、基座这类词,翻 /ai-dict/category/tech 比看长文快。
第三步:从会接话到会听话
预训练完的模型只会续写,你问它问题它可能接着编一段类似问题的话。指令微调和人类偏好对齐才让它学会按格式回答、拒绝越界请求。注意,对齐调的是「倾向」,不是往里灌知识。所以指望对齐解决事实错误基本无效,想补事实得靠检索或工具调用。
| 现象 | 大概率缺什么 | 先动哪里 |
|---|---|---|
| 答得对但格式乱 | 指令服从 | 看系统提示词和示例 |
| 事实错、编得顺 | 外部知识 | 接检索或知识库 |
| 推理题做不动 | 模型能力 | 换更强模型或拆步骤 |
| 时好时坏不稳定 | 采样随机性 | 调温度、固定输出格式 |
同一套权重在不同版本之间行为差异,往往就出在指令微调、偏好对齐和采样参数这几步。判断一个模型适不适合你的任务,先分清缺的是知识、能力还是格式服从,再决定调什么,别一上来就换模型。
第四步:你按下发送之后发生了什么
推理是一次次前向计算,逐个 token 吐出来,所以输出长度直接决定等待时间和成本。温度、top-p 这类采样参数控制的是随机性,不是「聪明程度」;调高只会更发散,调低更保守,但都不会让模型突然学会新知识。
- 确认上下文占用把系统提示、历史消息、检索片段全算进去,看还剩多少空间留给输出,规则到 /models/deploy 按你用的模型核对
- 固定采样参数做结构化输出时把随机性压低,先保证格式稳定再谈内容质量
- 测一次真实延迟用你的实际输入长度和输出长度跑一遍,看到 /tools/speed-test 的记录,比看宣传口径靠谱
- 判断本地还是接口差别在显存与吞吐,不在原理;分界线先看 /compute/sizing 给出的容量参考
想横向看各家模型在这条链上的差异,去 /models 或 /rankings 核对当时的资料和数字,别用几个月前的印象做选型。
下一步把这四个环节当成排查顺序:先看 token 与上下文够不够,再看知识缺不缺,然后看对齐与格式,最后看采样与延迟。按这个顺序试,比盲目换模型省事。→常见问题
模型答错了,是它没联网还是它不懂?
先分清两类问题:知识类错误可能是训练语料里就没有或已过期,联网、加检索能补;推理类错误比如算错、逻辑跳步,联网也救不了,属于能力边界。判断方法很简单——把同样的原始资料直接贴进上下文再问一次,答对了就是知识缺口,还错就是能力问题。
上下文越长是不是就越强?
不是。窗口长只代表一次能塞进去更多内容,不代表它会把每段都用好,中间段落被忽略是常见现象。真正要看的是你的任务需要多少有效信息,以及超长输入下的响应速度和费用能不能接受,这两项到 /models/deploy 按模型实测口径核对更靠谱。
为什么同一个问题每次回答都不一样?
生成过程本身带随机采样,只要温度不为零,同一个输入就可能走到不同分支。想要稳定输出,要么把随机性调低,要么在提示里把格式和判断条件写死。反过来说,这种随机性也是它能一次给多个思路的原因,别把它当成 bug。