news 2026/4/16 12:59:49

温度如何影响 LLMs 中的下一个标记预测?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
温度如何影响 LLMs 中的下一个标记预测?

原文:towardsdatascience.com/how-does-temperature-impact-next-token-prediction-in-llms-779bd908f2cf?source=collection_archive---------1-----------------------#2024-05-06

https://ankur-m.medium.com/?source=post_page---byline--779bd908f2cf--------------------------------https://towardsdatascience.com/?source=post_page---byline--779bd908f2cf-------------------------------- Ankur Manikandan

·发布于Towards Data Science ·阅读时间 4 分钟·2024 年 5 月 6 日

简而言之

1. 在温度为 1 时,概率值与标准 softmax 函数得出的概率值相同。

2. 提高温度会增加较不可能的标记的概率,从而扩展模型预测下一个标记的潜在候选范围(或多样性)。

3. 降低温度则会使最可能标记的概率接近 1.0,从而增强模型的信心。减少温度有效地消除了模型中的不确定性。

Google Colab 笔记本.

介绍

大型语言模型(LLMs)是多功能的生成模型,适用于广泛的任务。它们可以生成一致、可重复的输出,也可以通过将不太可能的单词组合在一起生成创造性内容。温度设置允许用户微调模型的输出,控制预测的可预见性程度。

让我们通过一个假设的例子来理解温度对下一个标记预测的影响。

我们让一个大型语言模型(LLM)完成句子**“这是一个美妙的 _____。”** 假设潜在的候选标记是:

|token|logit||------------|-------||day|40||space|4||furniture|2||experience|35||problem|25||challenge|15|

对数值通过 softmax 函数处理,使得值的总和等于 1。实际上,softmax 函数为每个标记生成概率估计。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d581b23a99b01e18aef8ec99d1dabb2b.png

标准 softmax 函数

让我们在 Python 中计算概率估计值。

importnumpyasnpimportseabornassnsimportpandasaspdimportmatplotlib.pyplotaspltfromipywidgetsimportinteractive,FloatSliderdefsoftmax(logits):exps=np.exp(logits)returnexps/np.sum(exps)data={"tokens":["day","space","furniture","experience","problem","challenge"],"logits":[5,2.2,2.0,4.5,3.0,2.7]}df=pd.DataFrame(data)df['probabilities']=softmax(df['logits'].values)df
|No.|tokens|logits|probabilities||-----|------------|--------|---------------||0|day|5.0|0.512106||1|space|2.2|0.031141||2|furniture|2.0|0.025496||3|experience|4.5|0.310608||4|problem|3.0|0.069306||5|challenge|2.7|0.051343|
ax=sns.barplot(x="tokens",y="probabilities",data=df)ax.set_title('Softmax Probability Estimates')ax.set_ylabel('Probability')ax.set_xlabel('Tokens')plt.xticks(rotation=45)forbarinax.patches:ax.text(bar.get_x()+bar.get_width()/2,bar.get_height(),f'{bar.get_height():.2f}',ha='center',va='bottom',fontsize=10,rotation=0)plt.show()

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/ed3c4b8677cc0f1065ceb18f6e73ccc1.png

带温度的 softmax 函数定义如下:

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/0805fb3b6ec66ae8072b0ecacbd3fdd0.png

其中 (T) 是温度,(x_i) 是输入向量 (logits) 的第 (i) 个分量,(n) 是向量中分量的数量。

defsoftmax_with_temperature(logits,temperature):iftemperature<=0:temperature=1e-10# Prevent division by zero or negative temperaturesscaled_logits=logits/temperature exps=np.exp(scaled_logits-np.max(scaled_logits))# Numerical stability improvementreturnexps/np.sum(exps)defplot_interactive_softmax(temperature):probabilities=softmax_with_temperature(df['logits'],temperature)plt.figure(figsize=(10,5))bars=plt.bar(df['tokens'],probabilities,color='blue')plt.ylim(0,1)plt.title(f'Softmax Probabilities at Temperature ={temperature:.2f}')plt.ylabel('Probability')plt.xlabel('Tokens')# Add text annotationsforbar,probabilityinzip(bars,probabilities):yval=bar.get_height()plt.text(bar.get_x()+bar.get_width()/2,yval,f"{probability:.2f}",ha='center',va='bottom',fontsize=10)plt.show()interactive_plot=interactive(plot_interactive_softmax,temperature=FloatSlider(value=1,min=0,max=2,step=0.01,description='Temperature'))interactive_plot

当 T = 1 时,

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/4250d9a5ebcd02c95d879ccd132cc5a3.png

在温度为 1 时,概率值与标准 softmax 函数推导出的概率值相同。

当 T > 1 时,

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/28a0ff2d89cddc0ce05b88819422a3b3.png

提高温度会膨胀不太可能出现的标记的概率,从而扩大模型下一个标记预测的潜在候选范围(或多样性)。

当 T < 1 时,

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/0803db21504f8d41d771b1ed63ea7350.png

降低温度则会使最可能的标记的概率接近 1.0,从而提高模型的信心。降低温度有效地消除了模型中的不确定性。

结论

大型语言模型(LLMs)利用温度参数为其预测提供灵活性。模型在温度为 1 时表现得可预测,紧跟原始的 softmax 分布。提高温度会引入更多的多样性,放大不太可能的标记。相反,降低温度则使预测更加集中,通过减少不确定性来增强模型对最可能标记的信心。这种适应性使得用户可以根据不同任务调整大型语言模型的输出,在创意探索和确定性输出之间找到平衡。

除非另有说明,所有图片均为作者提供。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 9:59:32

2025-12-19:包含 K 个连通分量需要的最小时间。用go语言,给定一个含有 n 个顶点(编号 0 到 n-1)的无向图,图中的每条边用三元组 edges[i] = [ui, vi, timei

2025-12-19&#xff1a;包含 K 个连通分量需要的最小时间。用go语言&#xff0c;给定一个含有 n 个顶点&#xff08;编号 0 到 n-1&#xff09;的无向图&#xff0c;图中的每条边用三元组 edges[i] [ui, vi, timei] 表示&#xff0c;含义是该无向边连接 ui 和 vi&#xff0c;并…

作者头像 李华
网站建设 2026/4/16 12:52:04

Flutter 权限管理实战手册:permission_handler 全平台适配与最佳实践

【前言】在 Flutter 跨平台开发中&#xff0c;访问设备核心功能&#xff08;如相机、定位、相册、麦克风等&#xff09;均需获取用户授权。permission_handler 作为 Flutter 生态中最主流的权限管理插件&#xff0c;提供了统一的跨平台 API&#xff0c;支持 iOS、Android 等系统…

作者头像 李华
网站建设 2026/4/16 11:11:17

21、正则表达式完全指南

正则表达式完全指南 正则表达式基础 正则表达式是用于匹配文本模式的强大工具。它由普通字符和元字符组成。普通字符就是它们本身,而元字符则用于指定更复杂的匹配规则。正则表达式的元字符包括: ^ $ . [ ] { } - ? * + ( ) | \ 。除了这些元字符,其他字符都被视为普通…

作者头像 李华
网站建设 2026/4/16 11:15:29

深入浅出 Ajax:从原理到实战,打造高可靠的前端请求方案

在前端开发中&#xff0c;Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;是实现 “无刷新交互” 的核心技术&#xff0c;尤其在后台管理系统、电商平台等场景中&#xff0c;Ajax 几乎是前端与后端通信的标配。尽管如今 Fetch API、Axios 等工具层出不穷&#xf…

作者头像 李华
网站建设 2026/4/14 8:34:54

语言模型中的因果推理能力增强方法

语言模型中的因果推理能力增强方法关键词&#xff1a;语言模型、因果推理能力、增强方法、算法原理、应用场景摘要&#xff1a;本文围绕语言模型中的因果推理能力增强方法展开深入探讨。首先介绍了研究背景&#xff0c;包括目的范围、预期读者等内容。接着阐述了因果推理与语言…

作者头像 李华