【LLM基础】6. LLM 推理时的温度值、top_p、top_k等采样算法原理

大模型推理常见采样策略:Top-k, Top-p, Temperature, Beam Search 大模型推理采样策略,举例通俗易懂汇总介绍 阅读详情

在大语言模型(LLM)的开发与应用中,我们经常遇到这样一个问题:为什么相同的 Prompt,模型每次给出的回答都不一样?如何才能让它的输出变得高度稳定?

这背后的核心枢纽,就是模型的采样算法(Sampling)。当 Transformer 网络的最后一层输出包含数万个词汇特征的 Logits(未归一化的得分)时,模型面临着“下一个词该选谁”的抉择。本文将从数学原理到工程实现,带你彻底看懂 Temperature、Top-k、Top-p 及其组合策略。

一、 核心采样参数解析

在探讨组合策略之前,我们必须先严谨地定义这三个最常用的控制旋钮。

1. Temperature (温度):改变概率分布的形状

Temperature 是对模型原始输出 Logits 进行缩放的参数。在工程实现中,为了防止指数爆炸(溢出为 NaN),底层计算 Softmax 前必定会先减去 Logits 中的最大值(即平移不变性)。其真实的底层数学计算公式如下:

P(yi)=e(xi−xmax)/T∑j=1Ve(xj−xmax)/TP(y_i) = \frac{e^{(x_i - x_{max})/T}}{\sum_{j=1}^{V} e^{(x_j - x_{max})/T}}P(yi​)=∑j=1V​e(xj​−xmax​)/Te(xi​−xmax​)/T​

  • T = 1.0:标准状态,不改变模型原始输出的相对概率。
  • T > 1.0(升温):分母变大,指数项趋近于 0,经过 exe^xex 计算后所有词的概率会趋于平均。值越大,模型越“放飞自我”,随机性和创造性越强。
  • T < 1.0(降温):这是提高稳定性的关键。当 TTT 变小,原本哪怕只有微弱优势的最大值 xmaxx_{max}xmax​,在除以极小的 TTT 后,其与次大值的差距会被无限放大。
  • 极致情况 T → 0:在数学极限下,最大值的概率无限逼近 1.0。在工程代码中,一旦检测到 T=0T=0T=0,系统通常会直接触发特判分支,跳过上述除法与 Softmax,执行 argmax(贪心采样),即 100% 只取 Logit 最高的词。

2. Top-k 采样:基于排名的硬性截断

模型词表通常高达几万到十几万,其中存在大量极不合理的“废词”。Top-k 的作用是粗筛。

  • 原理:将所有候选词按概率从高到低排序,只保留前 k 个。将第 k+1k+1k+1 名及之后的所有候选词的 Logits 强制设为 −∞-\infty−∞。
  • 缺点:不够智能。在分布集中的场景下,选前 50 会引入垃圾词;在分布平滑的场景下,选前 50 可能会扼杀合理的创造力。

3. Top-p (Nucleus) 采样:基于质量的动态截断

为了弥补 Top-k “一刀切”的缺陷,Top-p 引入了动态质量控制。

  • 原理:将候选词按概率降序排列,并依次累加。当累积概率首次超过 p 时,停止保留。
  • 优势:如果模型当前非常“自信”(前两个词概率加起来就到了 ppp),候选池就只有 2 个词;如果模型在“犹豫”(概率平缓),候选池可能动态扩展到几十个词。

二、 采样流水线:参数组合的先后顺序

在主流的推理框架(如 Hugging Face transformers、vLLM)中,当你同时传入这三个参数时,它们不会冲突,而是构成一条串行处理流水线(Logits Processors)。

处理顺序如下:

  1. 温度缩放 (Temperature Scaling):最先执行。直接在最原始的 Logits 数组上除以 TTT。
  2. Top-k 截断 (Top-k Filtering):基于缩放后的 Logits 进行排序,保留前 kkk 个,其余设为 −∞-\infty−∞。
  3. Top-p 截断 (Top-p Filtering):对剩下的 kkk 个词计算一次临时概率,按概率累加,超过阈值 ppp 的部分再次设为 −∞-\infty−∞。
  4. 最终采样 (Final Softmax & Sample):对历经两轮砍伐后存活下来的 Logits 执行最终的 Softmax,并进行多项式采样(加权随机掷骰子,即将厮杀后还幸存的token按照logits归一化,后按照归一化后的概率进行采样。e.g. “你”的概率是0.7,“我”的概率是0.2,“好”的概率是0.1,那么在[0,1]之间掷骰子,落在[0,0.7]则选择“你”,[0.7, 0.9]则选择“我”,[0.9, 1]则选择“好”)。

最佳实践建议:在日常业务调参中,强烈建议仅调节 Temperature 或 Top-p 其中之一,另一个保持默认。同时调节两者会让生成结果的分布变化变得不可预测,难以进行控制变量分析。


三、 参数调优速查表

参数名取值范围调大时的影响 (↑)调小时的影响 (↓)建议设定场景
Temperature0.0 ~ 2.0+分布变平缓,随机性与创造力增强,可能出现幻觉。分布变尖锐,确定性增强,输出趋向保守和重复。创意写作: 0.7~1.2
代码/信息抽取: 0.0
Top-p0.0 ~ 1.0候选池扩大,包容更多长尾词,多样性增加。候选池收缩,仅保留头部高确信度词汇,稳定性提升。闲聊对话: 0.8~0.95
严谨问答: 0.1~0.5
Top-k0 ~ V (词表大小)截断变宽,允许更多生僻词出现。截断变严,可能导致表达单一。通常设为 40~50 作为兜底,防止极低概率词出现即可。

(注:Top-k 为 0,Top-p 为 1.0 时,通常代表禁用该过滤项。)


四、 如何最大限度保证绝对稳定性?

在提取 JSON 结构、进行严肃的数学推理等工业场景中,我们要求模型输出的“随机性尽可能为 0”。要做到这一点,需要从算法和系统两个层面下手:

第一步:算法层锁死(贪心搜索)

最直接的方法是设置 Temperature = 0。
如前文所述,这会触发底层框架的 argmax 逻辑,直接抛弃一切概率采样行为,采用贪心解码策略(每次只拿得分最高的那个词)。此时,传入的 Top-p 和 Top-k 参数将会失效(被框架忽略)。

第二步:系统层消除浮点误差(针对极其严苛的场景)

大家可能经常会发现:明明设置了 Temperature = 0,为什么面对极长的长文本生成时,模型偶尔还是会改变输出?

这就是工业界常踩的坑:浮点数非确定性(Floating-Point Non-determinism)。
在 GPU 并行计算庞大的注意力矩阵时,由于浮点数加法不满足结合律(即 (a+b)+c≠a+(b+c)(a+b)+c \neq a+(b+c)(a+b)+c=a+(b+c) 在极高精度下成立),底层 CUDA 算子并行的原子累加操作顺序不同,会导致算出的 Logits 在小数点后极低位(如第 6 位)产生微小波动。
如果某次推理恰好有两个 Token 的 Logits 极其接近(例如都是 15.220000),这种微小的浮点噪音就会导致 argmax 选出的冠军发生易主!

缓解方案:

  1. 固定随机种子 (Seed):强制 GPU 算子以固定的模式执行计算,大多数接口均提供 seed 参数。
  2. 强制 FP32 累加:在某些支持底层的推理引擎中,开启更高精度的浮点数累加(而非 FP16/BF16),减少舍入误差。

具有温度系数(Temperature)的Softmax函数 softmax 函数是一种激活函数,通常用作神经网络最后一层的输出函数。该函数是两个以上变量的逻辑函数的推广。Softmax 将实数向量作为输入,并将其归一化为概率分布。softmax函数的输出是与输入具有相同维度的向量,每个元素的范围为0到1。并且所有元素的总和等于1。 阅读详情

相关推荐

大模型采样策略调优:温度、Top-k与Top-p实战指南

大语言模型推理并非简单‘选概率最高的词’,而是通过采样策略动态调控输出分布的实时决策过程。温度(Temperature)控制模型自信程度,影响输出确定性与多样性;Top-k限制候选词数量,守住语义底线;Top-p(核采样)则依据累积概率自适应截断,更贴合语言不确定性本质。这些策略共同决定生成内容的事实准确性、逻辑连贯性与业务适配度,在金融报告生成、医疗摘要、代码辅助等高要求场景中尤为关键。忽视参数调优,往往导致幻觉频发、术语错误或逻辑断裂——默认配置不是最优解,而是需工程化调试的起点。

weixin_34208185的博客 324

Huggingface的GenerationConfig 中的top_k与top_p详细解读

举个例子,在使用语言模型生成「这个周末天气很」的句子时,top-k保留概率最高的三个单词为「好」「热」「冷」,此时将剩余单词进行概率归一化,把它们的概率设定为0,之后在三个保留的单词中随机选择一个,比如选择了「好」后,这个句子就变成了「这个周末天气很好」。从这个例子可以看出,top-k和top-p可以结合使用,确保我们生成的语句既具有多样性,又具有合理性,同时可以吸引读者的注意力。接下来,我们可以使用top-p的方法,保留概率的累计和达到0.9的单词,也就是选取橙子、苹果、草莓三种水果。

Hanze的博客 1万+

LLM生成参数调控:Temperature、Top-p、Top-k与Max Tokens实战指南

大语言模型(LLM)的输出行为并非随机,而是由Temperature、Top-p、Top-k和Max Tokens等核心生成参数共同决定的概率采样过程。这些参数分别控制模型的创造性与确定性平衡、候选词池的动态范围、词汇选择的硬性边界以及输出长度的结构性约束。其技术价值在于将模糊的‘提示工程’升级为可量化、可复现、可嵌入工作流的工程化控制手段,广泛应用于LangChain链式调用与LangGraph多节点协同场景中,支撑金融问答、法律审查、客服Agent等对准确性、安全性与风格一致性有严苛要求的AI应用落地。

ciqiaofu0192的博客 425

什么是Top-p采样与Top-k采样?大模型推理时如何同时设置?解析Transformers库源代码

Top-k可能会限制候选词的数量,导致生成文本的多样性降低。通过引入Top-p,可以保证在保证概率约束的同时,仍然有一定的多样性。

阿正的梦工坊 3775

为什么大语言模型必须用温度采样和核采样来避免鹦鹉学舌

大语言模型(LLM)本质是确定性函数,其输出重复、刻板或胡言乱语,并非源于‘随机性’本身,而是最大似然估计训练与贪婪解码共同导致的曝光偏差和局部最优陷阱。信息论指出:低熵输出必然趋向复读,而适度引入随机性(如温度缩放、核采样)实为注入可控熵值,以提升生成多样性与长程一致性。温度采样调节概率分布平滑度,核采样(Top-p)动态截断可信词集,二者协同可显著缓解‘the the the…’式崩溃与事实幻觉。这些并非调参技巧,而是基于KL散度、链式法则与条件概率建模的工程必然——尤其在开放域对话、创意生成与长文本摘

张 作强 BLOG 416

大语言模型的词语生成机制:Logits、Softmax 与Sampling详解

本文解析了大语言模型(LLM)生成词语的核心机制。首先介绍了logits通过softmax函数转换为概率分布的过程,以及温度参数如何影响概率分布的形状——高温增加多样性,低温增强确定性。接着详细讲解了两种重要采样策略:top-k采样通过限制候选词范围平衡创造力和效率,而top-p采样则动态调整候选词数量。文章通过代码示例展示了不同参数设置下的概率分布变化,帮助读者理解LLM推理背后的机制,掌握调整输出特性的方法。这些技术共同构成了LLM生成多样化输出的基础。

AI算法蒋同学的博客 1018

温度值、Top-P、Top-K 分别是什么?

引入温度系数T(通常满足T > 0温度值、Top-K 与 Top-P,共同构成了现代大语言模型从高维抽象认知空间走向离散人类自然语言的“桥梁与阀门”。│ 三大核心超参数全景总结 ││ 参数名称 │ 核心物理职能 │ 优选场景与一句话评价 ││ Temperature │ 宏观塑造概率分布的平坦 │ 控制全局创造力与收敛度的大旋钮 ││ (温度值) │ 与陡峭程度 (退火平滑) │ ││ Top-K │ 静态硬截断,强制仅保留 │ 设定确定性安全天花板的刚性筛子 │。

2603_96126046的博客 435

LLM探索:GPT类模型的几个常用参数 Top-k, Top-p, Temperature

上一篇文章介绍了几个开源LLM的环境搭建和本地部署,在使用ChatGPT接口或者自己本地部署的LLM大模型的时候,经常会遇到这几个参数,本文简单介绍一下~top_ptop_k。

具身机器人和通用AI 7322

大语言模型解码策略:温度、top-k与top-p参数详解

在自然语言处理中,解码策略是文本生成的核心技术,它决定了如何从模型的概率分布中选择输出词。温度采样、top-k和top-p是三种关键参数,分别通过调整概率分布形态、限制候选词数量和动态选择概率累计阈值来控制生成文本的多样性与连贯性。这些策略在对话系统、创意写作和技术文档生成等场景中具有重要应用价值。合理配置温度值和top-p参数能显著提升大语言模型的生成质量,而top-k采样则提供了更直观的概率修剪方式。理解这些参数的数学本质和协同效应,是优化LLM生成效果的关键。

weixin_34208283的博客 452

无似然温度采样:提升LLM解码效率的创新方法

温度采样是大型语言模型(LLM)文本生成中的关键技术,通过调节概率分布控制生成多样性。传统方法依赖完整的softmax计算,在长文本生成和实时系统中面临性能瓶颈。无似然温度采样采用Top-k过滤和Gumbel-Top-k技巧,绕过softmax计算直接采样,显著提升解码速度。该技术特别适合实时对话系统和边缘设备部署,能减少40%解码时间和显存占用。结合FlashAttention等优化技术,可进一步处理超长上下文场景,是平衡生成质量与效率的创新解决方案。

weixin_42525189的博客 528

C++调用海康相机SDK采集图像(C++\QT Creator\openCV\线程\接口)

C++调用海康相机SDK采集图像(C++\QT Creator\openCV\线程\接口) 之前写了一篇关于C++调用海康相机SDK采集图像的文章,有很多人私下发送消息咨询了一些问题,由于工作繁忙,只答复了一部分问题,今天抽出时间从头梳理了一下大家提出的问题,把我能够回答的问题都解答一次。上一次的程序只是简单的实现了图像的采集,没有使用到线程,今天把程序重新做出调整,把线程和多态加进去。文章最后有项目的下载地址。 我使用的是QT Creator这个IDE,版本信息如下: 我把相机采集的图像转换为openC

大樱桃的博客 1万+

深入解析LLM核心参数:温度、Top-p与采样策略的原理与应用

在自然语言处理领域,解码策略是语言模型生成文本的核心技术,它决定了模型如何从概率分布中选择下一个词。其原理基于模型预测的词汇概率分布,通过不同的采样算法来平衡生成文本的确定性与多样性。这项技术的价值在于,它使开发者能够精细控制生成文本的风格、质量和适用性,从而提升模型在各类任务中的表现。从技术实现角度看,温度参数通过重塑概率分布的形状来控制输出的随机性,而Top-p采样则根据累积概率动态筛选候选词,两者协同工作,构成了现代大语言模型生成能力的基石。这些策略广泛应用于对话系统、内容创作、代码生成等场景,帮助模

weixin_30644369的博客 516

用ADS2023手把手仿真SKYWORKS SMA1234变容二极管:从Datasheet到S参数结果全流程

本文详细介绍了如何使用ADS2023仿真SKYWORKS SMA1234变容二极管的全流程,从Datasheet参数解析到S参数结果验证。通过等效电路建模、关键公式编写和仿真设置,帮助工程师掌握变容二极管在射频电路设计中的应用技巧,提升仿真精度和工程实践能力。

weixin_29233333的博客 502

llama.cpp 采样策略全解析:温度、Top-k 与贪心解码如何塑造 LLM 的输出风格?

llama.cpp 是用纯 C/C++ 编写的轻量级 LLM 推理引擎,让大模型可以在本地设备上高效运行。它的**采样策略**——温度(temperature)、top-k、贪心解码——直接决定了模型输出是充满创意还是稳定保守。本文带你一次读懂这些核心参数如何塑造大模型的输出风格,并附上新手可调的参数速查表。 [![llama.cpp 本地大模型推理引擎采样策略调参横幅图](https://ra

gitblog_01136的博客 348

新手避坑指南:手把手教你从零编写DC综合的.synopsys_dc.setup配置文件

本文详细介绍了如何从零开始编写DC综合的.synopsys_dc.setup配置文件,帮助新手避开常见误区。内容涵盖工艺库路径设置、核心参数详解、实用调试技巧以及高效配置模板,特别强调了配置文件在数字IC设计流程中的重要性。通过实战案例和常见报错解决方案,读者可以快速掌握DC综合配置的关键技能。

weixin_30517215的博客 296

天地图Api4.0.怎么根据geojson的数据。把一个省的所有市区标记色块和文字

天地图

肖肖肖丽珠的博客 1513

LLM温度Temperature底层采样机理

基于Qwen2-14B、Llama3-8B双模型,采集1800条业务真实Query,分为专业问答、闲聊创作、代码编写、数据推理四类,复盘固定温度带来的不可逆采样畸变,这是线上答非所问、代码报错的隐性根源。高分Token概率无限趋近1,低分Token概率趋近0,模型贪心择优,只选最优答案,无随机性,容错率极低,微小输入偏差直接输出错误标准答案。大模型自回归解码,最后一层线性层输出原始Logit分值,经过带温度系数的Softmax归一化,得到词表采样概率,这是温度唯一作用,全网极少给出标准公式。

2602_95606446的博客 512

国密系列算法简介

众所周知,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC)那等等。其中SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。目前,这些算法已广泛应用于各个领域中,期待有一天会有采用国密算法的区块链应用出现。其中SM1、SM7算法不公开,调用该...

HardessGod的博客 5776

大模型不是随机鹦鹉:温度与Top-p如何用可控随机性破除确定性复读

语言模型本质上是确定性函数,其输出重复、僵化并非源于‘随机性’,而是贪婪解码等确定性策略导致的正反馈坍缩;温度(Temperature)通过调节logits分布的锐度,控制生成结果在准确性与多样性间的平衡;Top-p采样则依据累积概率动态构建高质量候选词集,实现语境自适应的智能筛选;二者协同构成对抗‘确定性鹦鹉’的核心机制,在对话系统、创意生成、技术文档等场景中保障输出的连贯性、专业性与表现力;本文从信息熵出发,揭示可控随机性实为语言生成的数学刚需。

张 作强 BLOG 606

ISCC-Amy‘s Code CTF-Reverse

ISCC-Amy's Code CTF-Reverse

m0_72904009的博客 682

PLC凸轮开关指令编程应用——控制算法

凸轮开关指令的作用是在PLC程序中根据凸轮开关(Cam Switch)的状态执行不同的操作。凸轮开关通常是机械式的开关装置,它的位置会随着机械运动的变化而改变。凸轮开关的状态可以用来检测机器的位置、角度或其他相关信息,从而触发相应的控制动作。总结起来,凸轮开关指令是PLC编程中常用的一种控制算法,通过检测凸轮开关的状态来触发相应的操作。本文将介绍凸轮开关指令的应用和相应的控制算法,并提供相关的源代码示例。在这个示例中,凸轮开关状态的值代表不同的位置,根据凸轮开关状态的不同,执行相应的动作。

LiJavascript的博客 1034

LLM大模型-术语解释-推理层

概率分布采样贪心解码重复惩罚解码策略KV Cache量化推理批处理推理连续批处理投机解码长上下文推理推理模型推理幻觉。

互联网叫兽 296

18、项目运行与调试全攻略

本文详细介绍了在IntelliJ IDEA中进行项目运行与调试的完整流程,涵盖运行配置的创建与管理、临时配置的使用与保存、运行窗口的控制台操作及多程序并行运行的处理。同时,讲解了如何通过调试器定位和修复语法错误、运行时错误及逻辑错误,并结合ACME项目演示了第三方库Log4J的集成方法和命令行客户端的功能改进。文章还提供了调试流程图,帮助开发者系统掌握IDEA的强大调试功能,提升开发效率与代码质量。

svm4gardener的博客 75

mistral.rs文本生成:采样策略参数调优指南

你是否曾遇到生成文本重复冗余、逻辑断裂或偏离主题的问题?在大规模语言模型(LLM)推理中,采样策略直接决定了输出质量。mistral.rs作为高性能LLM推理引擎,提供了Top K、Top P、Min P等多种采样技术,通过精准调参可显著提升文本生成效果。本文将系统解析各参数工作原理,提供实用调优指南,并通过实战案例展示如何解决常见生成问题。 读完本文你将掌握: - 6种采样参数的底层实现与作用...

gitblog_00816的博客 887

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

万字拆解 LLM 运行机制:Token、上下文与采样参数

当我们把大模型作为一个核心组件接入业务系统时,第一步就是要抛弃拟人化的业务直觉,建立起工程师的客观视角。Token 是成本与性能的物理标尺:它不仅决定了你的计费账单和推理延迟,更决定了模型对文本的理解粒度。做容量规划时,必须按 Token 算账,而不是按字数算账。上下文窗口是极其稀缺的资源:哪怕模型宣称支持 1M 上下文,也不意味着可以毫无节制地堆砌数据。为 Prompt、RAG 检索片段、历史对话和输出预留做好严格的 Token 预算分配,是走向生产环境的必修课。采样参数是业务场景的调音台。

JavaGuide 978

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

为什么同样的提示词结果不同:LLM的随机性解析

大型语言模型(LLM)的随机性源自其概率生成机制,主要受Temperature参数控制。Temperature值越高,输出随机性越强。此外,Top-K/Top-P采样算法和提示词中的"信息缺口"也会影响结果差异。随机性既是LLM创造力的来源,也是输出不稳定的原因。驾驭随机性的六大策略包括:1)增加提示词信息密度填补信息缺口;2)设置输出格式约束;3)使用系统提示词;4)多次采样择优;5)固定输出模板;6)分步拆解复杂任务。不同场景需采用不同随机性管理策略,如事实查询需极低随机性,而创

未来 95% 的 AI 应用将变得隐形,广泛融入日常生活。 5160

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 【LLM基础】0. LLM 相关的常见术语及其含义
下一篇: 【LLM进阶-后训练&部署】1. 大语言模型全参数微调:从前向推理到反向传播的底层原理解析
RuiBo_Qiu
博客等级 码龄11年 158粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值