前端进阶之旅前端进阶之旅
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
  • 基础篇HTML/CSS/JS 打底
  • 进阶篇原理与工程化
  • 高频篇面试最常问的那批
  • 精选篇按模块收敛的总结
  • 手写篇常考代码手写实现
  • 面经篇真实面试问题复盘
  • AI 篇NEWAI 时代的前端考点
  • 历年面经NEW按年份追踪真实考点
  • 每日一题每天一道,攒手感
  • 专项自测100 题快速查漏
  • 小程序题库小程序专项刷题
  • 算法题库NEW在线编码即时判题
  • 知识卡片NEW碎片时间过考点
  • 面试题大全常见问题解析
  • AI 答疑NEW随时提问,即时解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • AI 定制路线NEW按你的简历现排
  • AI 知识地图NEW串起全站知识点
  • 原理篇React / Vue 源码拆解
  • HTTP从报文一路讲到 HTTPS
  • 浏览器渲染、事件循环、进程
  • 计算机基础Linux、网络、操作系统
  • 设计模式23 种模式怎么用
  • Node学习指南从环境搭建到服务端
  • NPM工作流script、依赖与发布
  • Docker容器化部署上手
  • Canvas图形与动画实战
  • 前端系统进阶学习大型项目工程化
  • 前端综合文章长期沉淀的实践文
  • 思维导图知识点全景图
  • 学习路线按图索骥不跑偏
  • AI 热点NEWAI 每日动态
  • 公众号动态公众号历史文章
  • 博客动态站长的技术博客
  • 开发者导航常用工具与文档站
首页程序员面试题库top-p 核采样 与 top-k 区别
AIAI 开发大模型基础

什么是 top-p(核采样),它和 top-k 采样有什么区别?

top-p核采样按累计概率动态截断候选集,top-k固定候选数量,两者都以重新归一化方式从截断后分布采样,可组合使用。

前端进阶之旅 · 一题精讲更新于 2026.09.05
AI 开发#大模型基础
先看核心答案
理解线索

截断采样候选集逻辑

  1. 累计概率阈值按概率降序累加直到超过p
  2. 固定数量k无条件保留概率最高k个
  3. 重归一化截断后重新缩放为概率分布

top-p集合大小随分布变化,top-k与分布形状无关。

核心回答

先记住这个答案

top-p从模型词表概率分布中按降序累加,直到累计概率超过阈值p,把这些token作为候选集并重新归一化后采样。top-k只保留概率最高的前k个token。区别在于top-p根据分布形状自动调整候选数量,top-k始终固定k。当分布平坦时top-p可能保留很多token,尖锐时可能很少。实际常先top-k粗暴过滤,再top-p精确截断。

  • top-p按累计概率动态截断
  • top-k固定保留前k个token
  • 两者可组合,先top-k再top-p

动态候选集与固定数量截断的区别

top-p即核采样:把下一个token概率按降序排列,从最高概率开始累加,直到累计概率超过阈值p(如0.9),这些被累加的token构成候选集合,之后将该集合内的概率重新归一化,再从中采样。因此,候选集合大小并非固定,而是由p和当前概率形状共同决定,分布越平坦集合越大。

top-k则简单直接:无论概率分布形状,总是保留概率最高的前k个token,然后同样重归一化采样。因此,当分布尖锐时top-k可能包含一些概率极低的尾部token;当分布平坦时top-k可能截掉大量有合理概率的token。两种截断都改变原始分布,只作用于采样阶段,不影响模型输出的logits。

代码生成中设置top_k=50与top_p=0.9

假设用大模型生成Python函数,temperature=0.8。目标函数需要调用外部API,候选token分布较为分散。若只用top_k=50,当词表分布很尖时,第50个token概率可能已低于0.001,引入噪声;当分布很平,50个可能不够。实际设定top_k=50先拦掉长尾,再用top_p=0.9在剩余中截出核心集合。这样生成代码时既避免无关token,又保持候选多样性。

处理时,采样器先按概率降序,取前50个token,再在这些token中按top_p=0.9累加截断,最终重归一化。例如某时刻前50个token累计概率0.99,其中前10个就达到0.9,则实际只用10个。相比之下,单独top_k=50会保留40个低风险token,单独top_p=0.9可能因分布某些区域集中而漏掉多模态选项。组合后更平稳。

分布极端情况下各自失效与代价

当整个分布的熵极低,比如模型对下一个token有绝对把握时,top_p=0.9可能只保留1个token,几乎退化为贪婪解码,若这个token并非全局最优会锁死错误;top_k=10也会因k过大而掺入噪声。相反,当分布近似均匀(如要求随机回答),top_p=0.9会保留约90%的词表,使采样几乎失去约束;top_k=100也可能覆盖不了长尾。

处理这类边界需动态调整p和k,或结合temperature先拉平/锐化分布。但注意温度改变的是采样前的logits缩放,不是截断逻辑。实践上,高确定性任务可调小p到0.5并减小k;开放式生成可调大p但限制k以控制成本。没有万能配置,需按生成任务的人工评测来校准,并监控重归一化后采样数的分布。

回答前,多想一步

容易答错的地方

top_p=0.9意味保留概率前90%的token
top_p是累计概率阈值,不是比例。假设分布极平,前90%的token可能只占累计概率的0.5;而分布极尖时,前100个token累计已超0.9。需按概率降序累加,而非按数量。
top_k总是优于top_p,因为它更可控
可控不一定好。top_k的k与分布形状无关,在分布差异大的步骤中可能截掉合理候选或留下噪声。top_p自适应更符合“只保留高累计概率质量”的直觉,但p值难以校准。二者常结合使用。
试着用自己的话回答

面试官还会怎么问?

为什么说重归一化不是重新计算概率?

重归一化只把截断后的原始概率按比例放大,使总和为1,不改变相对大小。模型logits保持不变,这是采样策略,不影响训练。

temperature和top_p同时设置时谁先起作用?

temperature先对logits缩放得到softmax分布,然后top_k/top_p在这个分布上截断。因此温度改变形状后,top_p的候选集合可能随之变化。

有没有只用temperature不截断的情况?

有,全部token参与采样。但长尾token可能使输出离题,截断能降低风险。截断也常用于降低解码延迟,因为只需计算部分token概率。

从一道题,走向一组知识

把知识连起来

大模型基础

什么是大模型的上下文窗口,它如何限制一次请求能处理的内容?

同属「大模型基础」专题,接着看 LLM context window 上下文窗口 限制 在具体场景中的处理方式。

大模型基础

max_tokens 参数控制的是什么,设置过小会导致什么问题?

同属「大模型基础」专题,接着看 max_tokens 最大输出长度 截断 在具体场景中的处理方式。

参考资料

  • Increase output consistency - Claude Platform Docs

示例用于理解所注明的运行环境与边界;延伸学习可结合原文中的更多案例。

本题目录
  1. 先记住这个答案
  2. 动态候选集与固定数量截断的区别
  3. 代码生成中设置top_k=50与top_p=0.9
  4. 分布极端情况下各自失效与代价
  5. 容易答错的地方
  6. 面试官还会怎么问
  7. 把知识连起来
读懂,再试着讲出来

先看核心答案,再读代码。最后展开追问,检查自己有没有遗漏边界。

试着回答追问
浏览全部面试题理解原理,也关注真实的使用场景。回到顶部 ↑