
LLM是如何回答你的问题的当你发起提问到大模型返回结果其中究竟发生了什么呢第一步分词用户输入的文本经过分词器转换成模型此表中的tokenId第二步向量化将tonkenId转为高维向量让模型能感知到token的顺序关系第三步Transform基于多层的自注意算法Self-Attention处理tokenid最终得到词表上的logits-概率分布第四步生成输出llm会产出一批token类似一个集合里面包含命中的token和概率分。再根据概率选出一个作为最终输出涉及算法贪心算法、Top、Temperature所以问同一个问题llm每次会返回不同的答案采样策略面试重点对比① Greedy Search贪心解码next_token argmax(p)每步选概率最高的优点确定、快速、无随机性缺点容易重复循环、输出单调、可能错过全局更优序列局部最优≠全局最优适用代码生成、数学计算、需要精确输出的场景② Top-k 采样只保留概率最高的 k 个 token重新归一化后在其中采样k1 贪心k50 是常见设置缺点k 是固定值不适应分布形态。当分布很集中时如 “中国的首都是___”“北京” 概率 95%还从 50 个里随机选不合理③ Top-pNucleus Sampling核采样⭐ 最常用按概率从高到低累加取累计概率达到 p 的最小集合在其中采样p0.9 表示只在覆盖 90% 概率质量的候选集中选自适应分布集中时候选集小可能就 2-3 个分布分散时候选集大可能几百个优点既避免低概率离谱 token又保持适当多样性是目前 ChatGPT、Claude 等的默认策略④ Beam Search集束搜索不是 LLM 对话主流但面试可能对比每步保留概率最高的 k 条完整路径beam最终选整体概率最高的优点比贪心更接近全局最优缺点显存和计算量 ×k且输出容易重复、缺乏多样性适用机器翻译早期 NMT 常用现代 LLM 对话基本不用对比总结表格第五步自回归循环循环重复第二步到第四步直到EOS结束符题外话如何训练模型