进阶 11 分钟配置

温度、top-p、top-k: 参数

直接回答

top-p(核采样)只保留概率最高的一组 token,直到其累积概率达到 p,例如 0.9。top-k 保留固定数量的候选项,例如 40。温度控制抽样的随机性:当温度接近 0 时,模型几乎总是选择概率最高的 token。Ollama 的初始设置为温度 0.8、top-k 40、top-p 0.9。

本地模型的各项设置中,总会出现三个数值:温度、top-p 和 top-k。本指南解释各个参数会从候选词列表中剔除哪些词,或如何调整这些词的分布,并提供数值示例、Ollama 和 llama.cpp 的默认值、模型发布方公布的建议,以及应用这些设置的方法。

作者: Mohamed Meguedmi·更新于 2026-09-29·已在 Windows、macOS 和 Linux 上测试

#Top-p、top-k、温度:以表格形式定义

每生成一个词,模型都会为其词汇表中的每个 token 计算概率。采样参数随后决定抽取哪个 token。Top-p 和 top-k 会缩小候选列表;温度参数则调整高概率与低概率 token 之间的概率差距。这些参数都不会为模型增加知识:它们只调节输出的多样性和风险。

每个参数的作用
参数其作用范围低值高值Ollama 默认值
temperature高概率令牌与低概率令牌之间的差距回复更具确定性多样性更高,错误也更多0,8
top_p列表大小,由累积概率定义简短列表,保守输出列表更长,多样性更高0,9
top_k最大候选数量候选项较少候选项较多40
min_p相对于最高概率设定的阈值轻量级过滤强过滤0.0(已禁用)
repeat_penalty对最近使用过的 token 施加惩罚减少重复重复更少,但可能产生奇怪的内容1.0(已禁用)

这些默认值来自 Ollama 的 Modelfile 参考文档。许多模型会在自己的配置文件中提供参数值,从而覆盖这些默认值。因此,阅读模型说明很有必要,下文会进一步介绍。

#LLM如何选择下一个词

本地 AI 套件

只需 1 小时,即可在您的电脑上拥有专属的免费 ChatGPT — LM Studio、Ollama、Open WebUI、您的文档,无需云端。

  • 在线空间,终身可用
  • PDF + 文件
  • 30 天内退款

模型会为每个位置生成一个覆盖整个词汇表的概率分布。始终选择概率最高的 token,这种做法称为贪婪解码,会使文本单调、重复,有时还会陷入循环。因此,需要引入由采样参数控制的随机抽样。固定种子(seed)可使这一抽样过程复现:Ollama 文档明确指出,对于相同的提示词,给定的种子会生成相同的文本。

过滤器的应用顺序很重要。llama.cpp 是 LM Studio 等工具使用的 GGUF 推理引擎,其默认顺序为:惩罚项、DRY、top-n sigma、top-k、typical-p、top-p、min-p、XTC,最后才应用温度。也就是说,top-k 和 top-p 作用于原始概率,而温度只用于从剩余候选中采样。许多教程声称顺序恰好相反;实际顺序可能因引擎而异,在 llama.cpp 中可通过 --samplers 参数调整。

i
对您而言的变化
由于 llama.cpp 在过滤之后才应用温度参数,提高温度不会让已被 top-k 或 top-p 排除的不合理 token 重新进入候选范围:它只会重新分配剩余候选 token 的概率。

#数值示例:各项设置会保留什么

为下一个词选取七个候选词及其概率:0.45;0.25;0.12;0.08;0.05;0.03;0.02。该表格为示例计算,非真实模型的测量结果。

不同筛选条件下保留哪些候选项
筛选器规则保留的候选项覆盖概率
无全部词汇7100 %
top_k = 3三大最佳382 %
top_p = 0,9当累计值达到0.90时停止4 (0,45 + 0,25 + 0,12 + 0,08)90 %
top_p = 0.7累计 0.70270 %
min_p = 0.1保留概率高于最高概率值的 10% 的 token,即阈值为 0.045595 %

需要记住的关键点:无论情况如何,top-k 始终保留相同数量的候选项;top-p 和 min-p 则会自适应调整。当模型非常确信(某个 token 的概率为 0.95)时,top-p 可能只保留一两个候选项;当模型在十个词之间犹豫时,则会保留更多。因此,相比 top-k,人们往往更倾向于使用 top-p。

#1. 温度:控制随机性的旋钮

采样前,模型的 logits 会除以温度值。温度较低时,token 之间的差距会增大,概率最高的 token 会压倒其他 token。温度较高时,差距则会缩小。温度为 0 时,模型始终选择概率最高的 token,每次尝试都产生相同的输出;llama.cpp 的文档也确认了这一点。

前述示例中温度的影响(计算示例)
候选项原始概率T = 0,5T = 1,5
1er45 %70 %34 %
2e25 %22 %23 %
3e12 %5 %14 %
4e8 %2 %11 %
5e à 7e总计 10 %1,3 %17,8 %
0 à 0,3
提取、分类、忠实摘要:您希望每次尝试都得到相同的回答。
0,4 à 0,7
技术写作、翻译、支持:保持多样性,同时避免偏离。
0,8
Ollama 和 llama.cpp 的默认值:通用对话。
1 及以上
创造力、头脑风暴;出现错误和偏离主题的风险更高。
!
温度设为 0:对于代码生成并非总是最佳选择
对于需要解析的输出(JSON、分类结果),设置较低的温度是合理的。但推理模型的发布方往往推荐更高的数值:Qwen3.5 的模型说明为推理模式下的代码任务给出的温度是 0.6,为通用任务给出的是 1.0。在强行设为 0 之前,请先阅读模型说明。

#2. Top-p:自适应过滤

Top-p(核采样)会保留概率最高的 token,直到它们的累计概率达到 p。设为 0.9 时,会舍弃累计概率为 10% 的低概率尾部;设为 1.0 时,不进行任何过滤。Ollama 文档指出,较高的值(例如 0.95)会让文本更多样,而较低的值(例如 0.5)会让文本更聚焦、更保守。

0,5 à 0,7
非常保守:回答稳妥,有时略显单调。
0,9
Ollama 的默认值:截去分布尾部,同时保留多样性。
0,95
llama-server 的默认值,也是多个模型文档推荐的值。
1,0
过滤器已关闭:仅温度因素起作用。

#3. Top-k:固定上限

Top-k 仅保留概率最高的 k 个 token。Ollama 的文档将此参数描述为降低生成无意义内容概率的一种方法:值较高(100)时,回答更多样;值较低(10)时,回答更保守。其默认值为 40,与 llama.cpp 相同;在 llama.cpp 中,设为 0 可禁用此参数。

Top-k、top-p 或 min-p:应选择哪一个
筛选器优点限制何时使用
top_k简单,能限制计算量忽略分布形态:模型确定时候选过多,犹豫时候选过少范围较宽的限制机制(20 至 100)
top_p根据模型置信度进行适配如果概率分布较平坦,可能会保留较长的尾部调节多样性的主要参数
min_p相对于最高概率设定的阈值,即使温度参数较高也保持稳定相对较少人了解,且在 Ollama 中默认未启用top_p 的替代方案,通常配合较高的温度使用

对于“top p vs top k”这一查询:将 top-p 作为主要设置,保留 top-k 作为辅助限制,并且不要在同一次测试中同时调整两者,否则你就无法知道是哪一个造成了差异。

#厂商默认值与推荐配置

推理引擎的默认设置是一种通用折中。模型发布者往往会公布适合自家模型的参数值,这些值可能与默认设置不同。以下是 Qwen3.5 模型卡为其模型推荐的设置,可与 Ollama 的默认设置(温度 0.8、top-p 0.9、top-k 40)进行比较。

Hugging Face上Qwen3.5-9B模型卡片中的推荐设置
模式温度top_ptop_kpresence_penalty
推理、通用任务1,00,95201,5
推理、精准的代码生成0,60,95200,0
无推理,通用任务0,70,8201,5

这些数值适用于这一模型系列,而不是所有模型。其他发布方的模型卡会给出不同的数值:请在 Hugging Face 模型卡或 Ollama 模型库中的模型页面上,查找推荐采样参数的部分。Qwen 的模型卡还指出,不同推理引擎对这些参数的支持情况有所不同。

#惩罚项:重复、频率、存在性

本地模型,尤其是小型或高度量化的模型,有时会反复输出相同的句子。惩罚机制可以解决这一问题,但其默认设置往往不为人熟知。在Ollama中,repeat_penalty的默认值为1.0,因此不施加惩罚;文档以1.5作为施加更强惩罚的示例。经常被提及的1.1是需要自行选择的设置,并非默认值。

repeat_penalty
对最近出现过的 token 施加惩罚;repeat_last_n(默认值为 64)决定回溯窗口的大小。
frequency_penalty
惩罚力度与出现次数成正比,适用于较长的文本生成。
presence_penalty
只要某个token已经出现过,就对它施加惩罚,以鼓励使用更丰富的词汇;Qwen在多个模式中推荐设为1.5,但数值过高可能导致多种语言混用。
→
小幅逐步提高惩罚系数
较高的惩罚值会促使模型选择罕见或意外的词汇。建议将 repeat_penalty 以 0.05 至 0.1 的步长逐步增加,直至循环现象消失为止。

#在 Ollama 中应用这些设置

有两种方法:使用 Modelfile,为一个有名称的模型固定参数值;或使用 API 请求中的 options 字段,该字段接受与 Modelfile 相同的参数。Modelfile 适合日常使用,API 则适合程序调用。

Modelfile:自定义模型
FROM llama3.2
PARAMETER temperature 0.3
PARAMETER top_p 0.9
PARAMETER top_k 40
创建并启动该模型
ollama create llama-precis -f ./Modelfile
ollama run llama-precis
API 请求中的相同设置
curl http://localhost:11434/api/generate -d '{"model":"llama3.2","prompt":"Résume en une phrase : ...","stream":false,"options":{"temperature":0.3,"top_p":0.9}}'

想进一步了解 Modelfile(系统提示、上下文、模板),请参阅定制指南。在 LM Studio 和 Jan 中,同样的参数可以在模型配置面板中调整。

#推理模型:不要只靠温度参数调节一切

推理模型会先生成思考过程,再给出回答。在 Ollama 中,这些模型会提供一个独立的思考字段,可用命令因模型而异:文档建议查询 show API,以了解可接受的值和默认值。例如,gpt-oss 的级别为 low、medium 和 high,默认为 medium。

为减少对简单问题的无谓生成,应优先调整推理层级(若存在),而非温度参数。温度参数应遵循模型的官方说明:过冷的推理可能导致僵化,过热的推理则可能分散。

#按用途划分的初始预设

需要调整的起始设置,不适用于已有专门设置建议的模型
用途温度top_p其他设置
提取、分类、JSON0 à 0,20,9提示中要求的严格格式
忠实摘要0,2 à 0,30,9repeat_penalty 略高于 1
通用对话0,7 à 0,80,9引擎默认设置
写作、创意0,8 à 1,00,95适中的 presence_penalty
虚构创作、创意用途1,00,95控制偏离主题的情况

这些预设是起点,并非实测数据。每次只修改一个参数,将同一条提示词运行三次,再比较结果:如果三次试验给出的回答相同,而您希望得到多样化的回答,那么温度过低或随机种子被固定了。

#症状与可尝试的设置

模型重复相同的句子
启用 repeat_penalty 并将其设为约 1.1,或启用 presence_penalty,也可以通过 num_predict 缩短生成长度。
回答平淡且泛泛而谈
将温度调高一档(从 0.7 调到 0.9),或放宽 top_p 的限制。
模型会编造事实
降低温度,但请注意这并不足够:请参阅关于幻觉的指南。
JSON 格式损坏
将温度参数设低,并明确指定所需格式;如果 Ollama 的结构化输出模式可用,请使用该模式。
语言混杂或奇怪的词汇
降低 presence_penalty 或 repeat_penalty,或略微提高模型量化所用的位数。
关于top-p、top-k和温度的常见问题
LLM 中 top-p 是什么?+
top-p 是一个筛选机制,仅保留概率总和达到阈值 p(例如 0.9)的最可能 token,其余部分在抽样前被剔除。与 top-k 不同,候选数量是可变的:模型确定时较少,犹豫时则较多。
top-p 和 top-k 有什么区别?+
top-k 无论在什么情况下,都会保留固定数量的候选 token,例如 40 个。top-p 则根据累积概率保留数量可变的候选 token。因此,top-p 能更好地适应模型的置信度;top-k 则提供一道简单的防线,排除概率极低的 token。
是否需要同时调整温度和 top-p 参数?+
建议每次只修改一个参数以理解其影响。实际操作中,保持top-p和top-k使用默认值或模型文档中的推荐值,仅调整温度参数。如果同时更改多个设置,将无法判断哪个参数导致了差异。
生成代码时应设置多大的温度值?+
对于非推理模型,较低的值(0 至 0.2)可产生可复现的输出。对于推理模型,请遵循发布方的模型说明:Qwen3.5 的模型说明建议,在推理模式下生成精确代码时使用 0.6。请用您自己的案例进行测试,并检查代码能否编译或通过您的测试。
Ollama中的默认值是什么?+
Modelfile文档指定温度为0.8,top-k为40,top-p为0.9,min-p为0.0(关闭),重复惩罚为1.0(关闭)。模型可自带参数并覆盖这些值;使用ollama show --modelfile可查看具体配置。
什么是min-p,是否需要使用它?+
min-p会剔除概率低于最佳候选token概率某一比例的token:当min-p设为0.05、最佳token的概率为0.9时,筛选阈值为0.045。它是top-p的替代方案,在Ollama中默认关闭。仅在模型说明推荐时使用。
这份指南对您有帮助吗?

有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。