大模型基础 · 30 道灵魂拷问
每题附考察意图、答题框架与加分点:概率预测 / message list / 幻觉解释 / RAG vs 重训 / Temperature / 上下文窗口
本页解决的问题
先给结论「大模型基础 · 30 道灵魂拷问」要解决的关键问题是什么?
每题附考察意图、答题框架与加分点:概率预测 / message list / 幻觉解释 / RAG vs 重训 / Temperature / 上下文窗口
让这个结论先证明自己值得留下。 把这一页当成决策工具,而不是需要背下来的定义。把概念连到一个真实任务、一个可观察结果,以及一个能改变你判断的失败上。
写下一个问题:试完这个方法后,你能用什么证据回答它?
结论听起来很完整,却没有检查最关键的假设。
- 先给本质:大模型是超大型概率预测机器,每次只做一件事,根据已有的所有 Token 预测下一个 Token 出现的概率,逐个生成。
- 区分训练和推理:训练是在海量文本上学统计规律;你和它对话时参数已经冻结,它没有在学习,只是在计算。
- 正面回答思考问题:它没有人类意义上的思考,规模够大后又确实表现出类似推理的能力。所以既不要神化,也不要贬低成复读机。
- 落一个例子:输入「今天天气真」,模型给出好 62% / 差 18% / 冷 9% 这样的分布,按概率采样。整段回答就是这个动作重复几百次。
- 点破本质:模型底层是续写机器。所谓对话,是把历史包装成聊天记录格式,让模型续写出助手的下一句。
- 多轮的真相:模型没有记忆。每一轮都是把完整的 message list(system + 历史 user/assistant + 当前提问)重新发一遍。
- 补上工程环节:模型能听懂对话格式,靠的是 Chat Template + SFT 指令微调,这是 Base 模型学会说话的关键一步。
- 拔高一层:所有 AI Harness 操作(RAG、记忆、Agent)本质都是对这个 message list 的处理。理解它,就找到了所有方案的入口。
- 先给结论、不回避:幻觉是概率预测机制的必然产物,无法彻底消除,但可以用工程手段压到业务可接受的水平。
- 再解释根因:两个来源:参数知识有误(训练数据错误或过期),以及上下文理解偏差(模型总是选最可能的续写,最可能不等于最准确)。
- 给方案组合拳:RAG 注入真实退款政策文档 + Prompt 约束「只依据文档回答」 + 调低 Temperature + 上线评测与人工审核兜底。
- 给量化承诺方式:定义幻觉率指标(抽样审核),按周汇报收敛情况,把「什么时候修好」转化成「指标降到多少」。
- 列全四种手段:Prompt 约束(最便宜)、RAG(对知识型幻觉最有效但有成本)、Temperature 调低(只降随机性、不补知识)、评测 + 人工审核(外部兜底)。
- 先反问场景:幻觉主要是编造事实,还是表达不稳定?知识库变不变?预算多少?
- 给条件化答案:知识型幻觉(编政策、编数据)→ RAG;表达不稳定 → Prompt 约束 + 低 Temperature,几乎零成本先上。
- 补一个原则:无论选哪个,评测先行。没有评测就无法验证效果,等于白做。
- 先接住梗:不用重训。参数冻结不代表知识进不去,上下文窗口就是知识的入口。
- 给方案:上 RAG。手册切块、建向量索引,用户提问时检索相关段落注入上下文。手册更新只需重建索引,天级生效,成本和重训差几个数量级。
- 说清微调的正确用途:微调改的是行为风格(语气、格式、领域话术),不适合注入时效性知识。知识一旦进权重,每次更新都要再训一次。
- 展示成本意识:RAG 也有代价:每次请求 token 变多、延迟上升,需要配合缓存、路由、精准切块做优化。
- 说清机制:Temperature 控制概率分布的陡峭程度,越低越确定、越高越发散;Top-P 控制采样的候选池范围,两者配合决定输出的随机性。
- 给场景化设置:客服 / 事实问答 / 数据提取 → 调低(0~0.3);创意文案 / 头脑风暴 → 调高(0.7 以上)。
- 说清边界:这只能缓解表达上的随机性,解决不了知识缺失。低 Temperature 下模型依然会自信地胡说。
- 给验证方法:参数值要用评测集 A/B 验证出来。拍脑袋定一个全产品共用的值,不可取。
- 说清概念:窗口 = 模型一次能看到的 Token 总量(输入 + 输出),超出部分被截断,对模型来说等于从未存在。
- 戳破陷阱:更大的窗口意味着更贵的账单。Token 按量计费,把资料全塞进去,成本跟着线性上涨。
- 给技术局限:长上下文存在中间遗忘(lost in the middle)问题:信息越多,注意力越稀释,中段内容的召回率明显下降。
- 给正确姿势:大窗口只是能力上限。正确做法是上下文工程:检索、压缩、筛选,让窗口里只放该放的东西。
- 先给定义:Token 是模型处理文本的基本单元,训练第一步就是 Tokenization,把连续文本切成词表里的单元。中文一个字约对应 1 到 3 个 Token,英文一个词约 1 个 Token。
- 连到成本:推理按 Token 计费,输入输出都算钱。一个看着只有 500 字的 Prompt 模板,实际可能吃掉 1500 Token,多轮对话每轮重发,费用跟着累积。
- 连到窗口:上下文窗口的额度也按 Token 算,超出就截断。模板越臃肿,留给正文和历史的空间越少。
- 落一个动作:上线前用 Tokenizer 实测关键 Prompt 的真实 Token 数,别按字数拍脑袋估。
- 给构成:预训练语料大头是网页文本约 70%,书籍约 12%,代码约 8%,学术论文和对话数据各约 5%。
- 给量级直觉:约 1B Token 的小模型训练量相当于 75 万本小说,一座小型图书馆;15T Token 量级相当于把整个互联网读了两三遍。
- 给结论:训练数据的质量和多样性决定模型世界观的上限。数据没覆盖的领域,模型要么拒答,要么编造。
- 落一个实测:同一个小众人物问题,270M 模型直接捏造身份,1.8B 只能拒绝回答,30B 以上才答对。数据和参数够了,知识才被正确覆盖。
- 先给反例:课程实测里,70B 的 Llama-3.3 把歌手李知恩认成了同名女演员,出生年份差 6 年、代表作全错;30B 的 Qwen 反而答对了。参数量大不代表不幻觉。
- 说清根因:知识边界由训练数据覆盖决定。数据没覆盖到的小众事实,多大的参数也只能编。
- 给正确思路:知识型错误靠 RAG 注入真实资料。换模型解决不了「参数里没有」的问题。
- 补成本账:更大的模型意味着每个 Token 更贵、延迟更高。先归因错误类型,再定方案。
- 定义 Base:预训练结束得到的是一台 Token 推 Token 机器,只会根据前文预测下一个最可能的 Token。它不会理解问题、思考答案、查阅知识。
- 给后果:直接问 Base 模型「紫霞仙子是谁」,它会按语料风格续写出「紫霞仙子是哥哥,哥哥你喜欢我」这类文字,完全没有在回答问题。
- 说清跨越:从 Base 到 Chat 靠两步:先约定 Chat Template 对话格式,再用海量格式化对话数据做 SFT 指令微调,模型才学会以助理身份作答。
- 点破本质:SFT 之后模型做的仍然是 Token 预测,变的只是训练数据,换成了格式化对话加高质量回答。
- 说清旧路线:GPT 之前都是任务专用模型,先确定任务再训练,换任务就要换模型。
- 逐个点局限:CNN 只能看滑动窗口内的词,窗口外的关系一步捕捉不到;RNN 的记忆逐步衰减,长文本开头的信息到结尾几乎消失;BERT 双向注意力理解强,但预训练目标是填空,不擅长生成。
- 给 GPT 的答案:因果预训练目标就是预测下一词,和生成天然一致,不需要特殊任务数据,规模越大涌现的能力越惊人。
- 拔高到范式:PreTraining 用几乎所有文字做 Token 预测,语法、常识、事实、逻辑全是副产品。预训练一次,能力迁移到任意任务,这就是 Foundation Model 的核心思路。
- 先解释机制:模型参数在对话时完全冻结,它本身没有记忆。所谓多轮对话,是系统每次把完整历史重发一遍让它续写。
- 定位这次的问题:历史超过上下文窗口就会被截断,截掉的内容对模型等于从未存在,用户的感受就是「它忘了」。
- 给产品方案:控制历史长度、把关键信息保留在上下文里、避免臃肿的 System Prompt 和历史互相挤占窗口。
- 给承诺方式:量化触发截断的对话轮数和字数边界,针对超长对话单独设计,别承诺「以后不会忘」。
- 分清两个阶段:预训练在海量通用语料上学统计规律;SFT 用格式化对话数据继续训练,让模型学会在对话格式下做助理。
- 说清 Template:借鉴 Jinja 模板语言,用 <|im_start|> 和 <|im_end|> 这类 special token 包裹每条消息,区分 system、user、assistant 三种角色。
- 讲生成起点:所有消息按格式拼成一段文本,模型从 <|im_start|>assistant 之后开始补全。SFT 训练的就是它在这个位置输出像样的回答。
- 点破本质:SFT 本质上还是 Token 预测,只是训练数据换成了格式化对话加高质量回答。
- 给原理链条:模型按前文推后文,提示词就是高质量前文,前文好后文就好。PreTraining 之后换任务无需重新训练,把任务描述喂进去就行。
- 说清载体:这一切靠大上下文窗口撑着:任务说明、规则、Few-Shot 样例全塞进前文,效果等同于专门训练。
- 给边界:Prompt 够用的前提是知识在训练数据里,适合格式、风格、语气类问题。私有知识、实时数据、知识截止后的内容要 RAG;固定领域风格和推理范式要微调。
- 给排查习惯:Prompt 改了没用时,先查是不是 System Prompt 被截断、历史占满窗口。问题常出在上下文管理,跟 Prompt 写得好不好没关系。
- 先给判断:幻觉是概率预测机制的必然产物,不可完全消除。宣称彻底解决幻觉的说法都值得怀疑,这是行业共识,所有厂商都面对同一条边界。
- 给拆穿方法:追问对方的评测口径:幻觉率多少、测试集覆盖什么场景。没有数字的「解决了」只是宣传话术。
- 给自证方案:拿出我们自己的评测基线,用已知答案的测试集量化幻觉率,和竞品放在同一口径下比。
- 给行动承诺:把幻觉率当可量化指标按周汇报收敛,写进 PRD 做验收标准,像「加载时间小于 2 秒」一样管理它。
- 列全四类:事实性幻觉捏造不存在的事实和数据;来源幻觉引用不存在的论文、链接、作者;推理幻觉前提正确但推理步骤出错;代码幻觉调用不存在的 API 或函数。
- 给一个狠例子:让模型写 pandas 多列排序,它会把 numpy.sort 的 stable 参数错用到 sort_values 上。语法看着没问题,一运行直接抛 TypeError。
- 说清为什么危险:代码幻觉的杀伤力在于像真的:逻辑错了,测试数据小的时候看不出来,上了生产才爆。
- 收在根因:模型对 API 只有大致印象,按概率拼出最像的写法。概率上合理,事实上错误。
- 承认措辞问题:推理时参数完全冻结,模型学不进任何东西。RAG 是运行时把检索到的文档临时注入上下文,用完就丢。
- 给准确类比:参数是写完就封存的百科全书,上下文是放在桌上的参考资料。知识库内容进的是后者。
- 说清工程含义:正因为是临时注入,知识库更新只要重建索引就生效,不用动模型,这恰恰是 RAG 的优点。
- 给修正动作:PRD 改成「检索注入」,并写清每次请求注入多少 Token、检索失败时怎么兜底。
- 先分两个阶段:知识库构建是一次性离线动作,文档切块后经 Embedding 模型转成向量存入向量数据库;查询阶段每次对话实时执行。
- 走完查询链路:用户问题用同一个 Embedding 模型向量化,按余弦相似度检索 Top-K 相关块,拼进 Prompt 当参考资料,模型基于注入文档生成带来源的回答。
- 答切块问题:粒度直接影响检索质量:太大注入冗余 Token 浪费钱,太小丢失上下文。最佳实践约 512 到 800 Token 一块,以标题、段落为边界保留语义完整。
- 补关键细节:问题向量和文档向量必须出自同一个 Embedding 模型,才能在同一语义空间里比相似度。
- 讲清成本大头:涨在 Prompt 增大:每次查询多注入 500 到 2000 Token,LLM 费用跟着倍增。向量化和检索本身反倒便宜,问题向量化约 0.1 元每百万 Token。
- 给最关键的优化:先做意图识别判断要不要检索。约 70% 的对话其实不需要查文档,直接回答更快更便宜。
- 给组合拳:关键词触发能跳过 30% 到 70% 的查询;简单问题路由到小模型,整体 LLM 费用降 60% 到 80%;相似问题走语义缓存,向量相似度 0.95 以上直接复用结果。
- 给管理动作:把 RAG 触发率和单次对话成本做成看板,按周看优化收敛。
- 先查检索环节:Chunking 粒度、Embedding 模型、相似度阈值,三个最常见的坏点。盯检索命中率这个指标,课程案例里 78% 对目标 85%,就是明确的未达标信号。
- 再查知识库本身:RAG 的质量上限就是知识库质量。文档过期、内容互相矛盾,检索再准也答错。
- 再看生成环节:注入的内容有限,模型会用训练记忆脑补文档外的部分,形成 RAG 加幻觉的混合输出,比纯幻觉更难识别。
- 给排查抓手:强制显示引用来源,每个回答可回溯到具体文档块,坏 case 一眼能定位是检索错了还是生成飘了。
- 先拆机制:Temperature 在 softmax 之前对 logits 做等比缩放。T 越小分布越尖锐,调到 0 相当于每步都锁定概率最高的词。
- 点破陷阱:低温锁定的是「最可能」,最可能不等于最正确。训练数据里那个答案本身是错的,模型就会极其稳定地错。
- 给边界:Temperature 只影响每步怎么采样,不影响知识边界。模型不知道的事,低温下照样编,只是编得更一致。
- 给结论:参数调优是成本最低的第一道防线,解决的是表达稳定问题。事实准确性要求高的场景,必须搭配 RAG 或人工审核。
- 先接住:确实不该全量检索。约 70% 的对话不需要查文档,「今天几号」这类问题直接答就行。
- 给过滤方案:上意图分类器或简单规则做关键词触发,「我们的退款政策」这类才走 RAG,能跳过 30% 到 70% 的查询。
- 给缓存方案:高频相似问题走语义缓存,问题向量相似度 0.95 以上直接返回缓存结果,跳过整条检索链路,延迟和费用都能降一半左右。
- 给场景边界:闲聊、创意场景本来就不适合 RAG,检索注入反而让回答死板。
- 先定性:这是典型的来源幻觉。模型编数据和编报告名,用的是同一套概率续写能力,单靠叮嘱它「别编」解决不了。
- 给第一道防线:System Prompt 约束:具体数字、报告名、机构名如非用户提供,必须标注「需核实」,宁可留空白让人填。
- 给第二道防线:分级审核:对外材料属于高风险内容,AI 只做初稿,发出前必须有人签字确认。
- 给闭环:这条 bad case 进评测集,走归因、Prompt 迭代、回归验证的流程,同类问题的复发率才会真正降下来。
- 给机制:模型推每个 Token 时,上下文里的每个 Token 都在影响概率分布。约束词就是高质量前文,拉高「承认不知道」这个序列的概率,压低编造序列的概率。
- 给有效条件:模型对问题本身有不确定感时最有效,适合超出知识范围的问题、模糊查询、时效性信息。
- 给失效条件:模型对某个错误答案高度自信时,第一候选词就是错的,约束词干预不了。训练数据里的系统性错误、被当成事实的过时知识,都属于这类。
- 给搭配:对「高度自信但可能错」的领域,Prompt 约束不够,要配 RAG 注入真实知识,或人工审核兜底。
- 上线前建基线:用一批已知正确答案的问题做幻觉测试集,量化幻觉率、设准入门槛。课程案例的口径:事实准确率 94.2%,幻觉率 5.8% 对目标小于 3%,未达标就不上线。
- 上线后分级审核:按风险自动路由:低风险直接发出,高风险先人工审核再发送。金融、医疗这类领域 AI 只出初稿。
- 长期做反馈闭环:审核发现的幻觉标成 bad case,走归因、Prompt 迭代、回归验证的循环。案例里发现到修复平均 3.2 天。
- 指标进 PRD:「幻觉率小于 3%」要像「加载时间小于 2 秒」一样,成为可量化的验收标准。
- 先正面回应:评测保证的是已知风险点不复发。测试集之外的长尾问题,模型照样可能幻觉,评测通过从来不等于全面可靠。
- 给数据视角:看闭环速度,别只看单周新增。课程案例的节奏:本周新增 12 条 bad case,已修复归档 47 条,回归通过率 96.8%。
- 给流程:每条 bad case 走四步:发现、归因分析、Prompt 迭代、回归验证。修完加入测试集,评测集就这样越滚越厚。
- 给根因解释:模型没有自我检查机制,推错一个 Token 会以它为基础继续推,误差累积。评测加审核是架在输出端的外部纠错层,它拦结果,管不住生成过程本身。
- 先分错误类型:是上下文没给对,还是参数里压根没这个知识?两件事的修复方式完全不同,搞错方向浪费大量时间。
- 给排查顺序:先试 Prompt:把任务描述、规则、示例补全再测。知识在训练数据里、问题出在格式风格语气的,Prompt 就能修,成本比重训低 100 倍。
- 判断要不要 RAG:私有知识、实时数据、知识截止日期之后的内容,参数里没有,Prompt 写再多也没用,要检索注入。
- 最后才是微调:固定专业领域的风格、需要改变推理范式,这类才值得微调。微调改的是行为风格,不适合注入时效性知识。
- 先解释机制:它没有撒谎的动机,只是在做概率续写。「吃了吗」后面接「吃了」是训练语料里最高频的应答模式,被追问时它又按语境概率编出了具体细节。
- 说清对齐的边界:只有被用户明确质疑时,RLHF 对齐训练才让它承认自己没有身体。用户不追问,它会一直演下去,置信度不因内容虚假而下降。
- 给关键认知:幻觉和创意同源。它能编出番茄鸡蛋面这种生动细节,和它能写文案用的是完全相同的能力,消灭幻觉的同时创意也会没了。
- 给产品动作:分场景定策略:闲聊场景的角色扮演无伤大雅,事实场景才需要 RAG 和审核压制。全局一刀切,两头都做不好。
- 列高频误区:调高 Temperature 更聪明,实际只是更随机;RAG 让模型学习了文档,实际只是运行时临时注入;模型在调用 API,实际它只是输出了格式化文字;答错就重新训练,实际 Prompt 先试成本低 100 倍。
- 挖共同根源:这四个误区都源于没分清训练和推理的边界。参数冻结之后,一切运行时手段都是在操作上下文。
- 上升到方法:所有工程化操作本质都是对 message list 的处理。拿这个视角看任何新方案,都能判断它在哪一层起作用、局限在哪。
- 给自我定位:用达克曲线收尾:刚学会名词时最危险,觉得什么都懂。持续动手、持续被打脸,才能从愚昧之巅走到平稳高原。
「大模型基础 · 30 道灵魂拷问」为什么能找到相关内容
「每题附考察意图、答题框架与加分点:概率预测 / message list / 幻觉解释 / RAG vs 重训 / Temperature / 上下文窗口」把检索问题从“把资料存起来”推进到“怎样找到真正相关的资料”。这一步决定了 RAG、推荐和以图搜图最后交给模型的输入质量。
相似度不是答案,召回之后还要核对
在「每题附考察意图、答题框架与加分点:概率预测 / message list / 幻觉解释 / RAG vs 重训 / Temperature / 上下文窗口」对应的流程里,Embedding 负责把对象放到可比较的语义空间,近邻索引负责减少搜索范围,最终的回答仍然依赖召回片段是否覆盖问题、距离指标是否合适,以及内容有没有过期。
- 先给本质: 大模型是超大型概率预测机器,每次只做一件事,根据已有的所有 Token 预测下一个 Token 出现的概率,逐个生成
- 区分训练和推理: 训练是在海量文本上学统计规律;你和它对话时参数已经冻结,它没有在学习,只是在计算
- 正面回答思考问题: 它没有人类意义上的思考,规模够大后又确实表现出类似推理的能力。所以既不要神化,也不要贬低成复读机
先区分找得到和找得准
把「每题附考察意图、答题框架与加分点:概率预测 / message list / 幻觉解释 / RAG vs 重训 / Temperature / 上下文窗口」落成一次小测试:准备几条有明确答案的查询,记录召回的相关性、遗漏和无关结果,再决定是否需要换切分方式、索引或重排。
从这个例子继续往下看
这篇内容先从「先给本质: 大模型是超大型概率预测机器,每次只做一件事,根据已有的所有 Token 预测下一个 Token 出现的概率,逐个生成」展开,再把问题推进到「区分训练和推理: 训练是在海量文本上学统计规律;你和它对话时参数已经冻结,它没有在学习,只是在计算」。把这两个片段放在一起看,可以更清楚地分辨:哪些是文章给出的事实,哪些是需要结合条件才能成立的判断。
把这条判断带到下一个场景
检索系统也可以这样看:先确定什么算相关,再观察召回是否覆盖问题,最后检查排序、切分和时效性有没有把真正有用的内容挤出去。
- 「大模型基础 · 30 道灵魂拷问」:先给本质: 大模型是超大型概率预测机器,每次只做一件事,根据已有的所有 Token 预测下一个 Token 出现的概率,逐个生成
- 「继续往下看」:区分训练和推理: 训练是在海量文本上学统计规律;你和它对话时参数已经冻结,它没有在学习,只是在计算
- 「最后的要点」:点破本质: 模型底层是续写机器。所谓对话,是把历史包装成聊天记录格式,让模型续写出助手的下一句
最后的「最后的要点」把讨论落到「点破本质: 模型底层是续写机器。所谓对话,是把历史包装成聊天记录格式,让模型续写出助手的下一句」。回看这条线索时,最值得保留的是:当输入、规模或风险改变,哪些判断需要重新做一遍。
我把这篇文章里的一个判断改写成了今天可以验证的小实验。比记住结论更有用的是,知道下一步要观察什么。
读完以后我先回头找它成立的条件,而不是直接把方法搬进项目。这个顺序让后面的取舍清楚很多。
如果把这个判断放到真实工作里,最先需要补的约束是什么?我想知道从阅读到第一次实践之间,哪一步最值得先做。
还没有这篇文章的讨论。