news 2026/2/22 5:53:47

温度如何影响 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/2/20 17:24:42

网络通信协议全景:从传输层到应用层的演化与综合应用

网络通信协议全景&#xff1a;从传输层到应用层的演化与综合应用 摘要&#xff1a;本文以经典TCP套接字编程为基础&#xff0c;系统剖析了不同层次网络协议的实现原理与设计哲学。在深入探讨TCP可靠传输、UDP无连接通信及HTTP应用层规范的基础上&#xff0c;将研究视野扩展至IC…

作者头像 李华
网站建设 2026/2/22 5:37:09

图片坐标查看器

import tkinter as tk from tkinter import filedialog import customtkinter as ctk from PIL import Image, ImageTk import platform# <span style"color: red;">【关键配置】解除 Pillow 的大图像素限制</span> Image.MAX_IMAGE_PIXELS Nonectk.set…

作者头像 李华
网站建设 2026/2/17 18:33:51

电脑硬件升级全攻略:从入门到精通

硬件升级前的准备工作确认当前硬件配置&#xff08;CPU、GPU、RAM、存储等&#xff09;和主板兼容性 检查电源功率是否满足新硬件需求 备份重要数据以防升级过程中意外丢失处理器&#xff08;CPU&#xff09;升级指南选择与主板插槽兼容的CPU型号 考虑散热需求&#xff0c;可能…

作者头像 李华
网站建设 2026/2/17 6:15:17

JavaScript性能优化全攻略

JavaScript性能优化实战大纲性能分析与诊断工具使用Chrome DevTools的Performance面板进行运行时性能分析 借助Lighthouse生成综合性能报告&#xff0c;识别关键指标&#xff08;FCP、LCP等&#xff09; 通过Memory面板检测内存泄漏问题 WebPageTest进行多环境下的负载测试代码…

作者头像 李华
网站建设 2026/2/20 4:39:16

计算机是如何工作的:为我们中的新手提供的指南。

原文&#xff1a;towardsdatascience.com/how-computers-work-for-the-greenhorns-amongst-us-40dbf1b59546?sourcecollection_archive---------9-----------------------#2024-03-18 了解个人电脑如何运作的初学者指南。 https://opheliapjohnson.medium.com/?sourcepost_p…

作者头像 李华