具有温度系数(Temperature)的Softmax函数

Softmax 函数

softmax 函数是一种激活函数,通常用作神经网络最后一层的输出函数。该函数是两个以上变量的逻辑函数的推广。

Softmax 将实数向量作为输入,并将其归一化为概率分布。 softmax函数的输出是与输入具有相同维度的向量,每个元素的范围为0到1。并且所有元素的总和等于1。

在数学上,我们将 softmax 函数定义为:

带有温度系数的Softmax函数

术语“softmax”来自“soft”和“max”这两个词。 “soft”部分表示该函数产生的概率分布比硬最大值函数更软。 “max”部分意味着它将选择输入向量中的最大值作为最可能的选择,但以软概率的方式。

例如,如果我们有一个输入向量 (0.4, 0.4, 0.5),则硬极大值函数将输出向量 (0, 0, 1)。相反,softmax 函数的输出将为 (0.32, 0.32, 0.36)。

在softmax函数中引入温度参数来控制输出概率分布的“softness”或“peakiness”。温度是我们用来控制函数输出的随机性水平的参数。在数学上,具有温度参数 T 的 softmax 函数可以定义为:

温度参数T可以取任意数值。当 T=1 时,输出分布将与标准 softmax 输出相同。 T的值越高,输出分布就会变得越“软”。例如,如果我们希望增加输出分布的随机性,我们可以增加参数T的值。

下面的动画展示了softmax函数的输出概率如何随着温度参数的变化而变化。输入向量为(0.1,0.4,0.5,0.6,0.9),温度从0.1变化到2,步长为0.1:

为什么在 Softmax 中使用温度


当我们想要在输出分布中引入更多随机性或多样性时,温度会很有用。这在用于文本生成的语言模型中特别有用,其中输出分布表示下一个单词标记的概率。如果我们的模型经常过于自信,它可能会产生非常重复的文本。

例如,温度是 GPT-2、GPT-3、BERT 等语言模型中使用的超参数,用于控制生成文本的随机性。当前版本的 ChatGPT(gpt-3.5-turbo 模型)也使用带有 softmax 函数的温度。

ChatGPT 拥有 175,000 个子词的词汇表,与 softmax 函数的输入和输出向量的维度数相同。 softmax 函数输出中的每个维度对应于词汇表中特定单词作为序列中下一个单词的概率。因此,ChatGPT API 有一个温度参数,可以取 0 到 2 之间的值来控制生成文本的随机性和创造性。默认值为 1。

在openAI的playground中,温度系数的定义和取值范围(0-2)

https://platform.openai.com/playground/chat

OpenAI原始对于温度(Temperature)参数说明:

temperature:number or null,Optional,Defaults to 1
What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
We generally recommend altering this or top_p but not both.

其它

通过softmax函数得到的所有token的概率分布,怎么选择其中一个token(或者说单词),通常有以下几种常用的方法:

  • 贪心解码(Greedy Decoding):直接选择概率最高的token(单词)。这种方法简单高效,但是可能会导致生成的文本过于单调和重复。
  • 随机采样(Random Sampling):按照概率分布随机选择一个token(单词)。这种方法可以增加生成的多样性,但是可能会导致生成的文本不连贯和无意义。
  • Beam Search:维护一个大小为 k 的候选序列集合,每一步从每个候选序列的概率分布中选择概率最高的 k 个token(单词),然后保留总概率最高的 k 个候选序列。这种方法可以平衡生成的质量和多样性,但是可能会导致生成的文本过于保守和不自然。

以上方法都有各自的问题,而 top-k 采样和 top-p 采样是介于贪心解码和随机采样之间的方法,也是目前大模型解码策略中常用的方法。

Top k采样

Top-k 采样是对前面“贪心策略”的优化,它从排名前 k 的 token 中进行抽样,允许其他分数或概率较高的token 也有机会被选中。在很多情况下,这种抽样带来的随机性有助于提高生成质量。

top-k 采样的思路是,在每一步,只从概率最高的 k 个单词中进行随机采样,而不考虑其他低概率的单词。例如,如果 k=2,那么我们只从女孩、鞋子中选择一个单词,而不考虑大象、西瓜等其他单词。这样可以避免采样到一些不合适或不相关的单词,同时也可以保留一些有趣或有创意的单词。

下面是 top-k 采样的例子:

Top p 采样

top-k 有一个缺陷,那就是“k 值取多少是最优的?”非常难确定。于是出现了动态设置 token 候选列表大小策略——即核采样(Nucleus Sampling)。

top-p 采样的思路是,在每一步,只从累积概率超过某个阈值 p 的最小单词集合中进行随机采样,而不考虑其他低概率的单词。这种方法也被称为核采样(nucleus sampling),因为它只关注概率分布的核心部分,而忽略了尾部部分。例如,如果 p=0.9,那么我们只从累积概率达到 0.9 的最小单词集合中选择一个单词,而不考虑其他累积概率小于 0.9 的单词。这样可以避免采样到一些不合适或不相关的单词,同时也可以保留一些有趣或有创意的单词。

下图展示了 top-p 值为 0.9 的 Top-p 采样效果:

top-p 值通常设置为比较高的值(如0.75),目的是限制低概率 token 的长尾。我们可以同时使用 top-k 和 top-p。如果 k 和 p 同时启用,则 p 在 k 之后起作用。

总结

提高 temperature 可以增加多样性但会降低质量。top-p 和 top-k 可以在不损失多样性的前提下提高质量。frequency penalty 和 presence penalty 可以增加回复的词汇多样性和话题多样性。

参考

大模型文本生成——解码策略(Top-k & Top-p & Temperature)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/298951.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hbuilderX创建的uniapp项目转移到vscode

场景:一直使用hbuilderX开发的朋友想转移到vscode获取更好的TypeScript支持,所以想把整个项目目录拖到vscode进行开发,但发现运行不了,提示没有package.json等,并且不能执行pnpm命令 首先,我们先来看一下h…

10.图像高斯滤波的原理与FPGA实现思路

1.概念 高斯分布 图像滤波之高斯滤波介绍 图像处理算法|高斯滤波   高斯滤波(Gaussian filter)包含很多种,包括低通、高通、带通等,在图像上说的高斯滤波通常是指的高斯模糊(Gaussian Blur),是一种高斯低通滤波。通常这个算法也可以用来模…

错误:找不到或无法加载主类(vscode的解决方法)

项目场景: 某天,喵某人在敲代码的过程中,点击运行代码,突然显示找不到或无法加载主类。之前创建的java文件都可以正常运行。但新建的java文件无论是什么,点击运行都会显示“错误:找不到或无法加载主类”。 …

【Docker系列】在 Linux 上安装 Docker Compose 的简明步骤

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

基于单片机多功能数字钟系统仿真设计

**单片机设计介绍,基于单片机多功能数字钟系统仿真设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机多功能数字钟系统仿真设计是一个结合了硬件仿真、软件编程和时钟管理技术的综合性项目。以下是对该设计项目的概…

在CentOS 7上安装Python 3.7.7

文章目录 一、实战步骤1. 安装编译工具2. 下载Python 3.7.7安装包3. 上传Python 3.7.7安装包4. 解压缩安装包5. 切换目录并编译安装6. 配置Python环境变量7. 使配置生效8. 验证安装是否成功 二、实战总结 一、实战步骤 1. 安装编译工具 在终端中执行以下命令 yum -y groupin…

小林coding图解计算机网络|基础篇02|键入网址到网页显示,期间发生了什么?

小林coding网站通道:入口 本篇文章摘抄应付面试的重点内容,详细内容还请移步:小林coding网站通道 文章目录 孤单小弟——HTTP真实地址查询——DNS指南好帮手——协议栈可靠传输——TCP远程定位——IP两点传输——MAC出口——网卡送别者——交…

顺序表的应用

文章目录 目录1. 基于动态顺序表实现通讯录项目2.顺序表经典算法2.1 [移除元素](https://leetcode.cn/problems/remove-element/description/)2.2 [合并两个有序数组](https://leetcode.cn/problems/merge-sorted-array/description/) 3. 顺序表的问题及思考 目录 基于动态顺序…

VSCode好用插件

由于现在还是使用vue2,所以本文只记录vue2开发中好用的插件。 美化类插件不介绍了,那些貌似对生产力起不到什么大的帮助,纯粹的“唯心主义”罢了,但是如果你有兴趣的话可以查看上一篇博客:VSCode美化 1. vuter 简介&…

特朗普数字钱包被空投100万MVP,加密资产或将提供更多竞选资金

唐纳德.特朗普先生对待加密货币的态度正在发生改变,曾经他对加密货币持有负面的态度,曾多次在公开场合批评比特币等数字货币。然而,随着特朗普NFT等加密资产的上链,他对加密货币的态度也发生了巨大的转变。 据相关媒体报道&#x…

Hadoop-入门

资料来源:尚硅谷-Hadoop 一、Hadoop 概述 1.1 Hadoop 是什么 1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 2)主要解决:海量数据的存储和海量数据的分析计算问题。 3)广义上来说,Hadoop…

政安晨【AIGC实践】(一):在Kaggle上部署使用Stable Diffusion

目录 简述 开始 配置 执行 安装完毕,一键运行 结果展示 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 人工智能数字虚拟世界实践 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提…

GIt 删除某个特定commit

目的 多次commit,想删掉中间的一个/一些commit 操作方法 一句话说明:利用rebase命令的d表示移除commit的功能,来移除特定的commit # 压缩这3次commit,head~3表示从最近1次commit开始,前3个commit git rebase -i head~3rebase…

UNIAPP(小程序)每十个文章中间一个广告

三十秒刷新一次广告 ad-intervals"30" <template><view style"margin: 30rpx;"><view class"" v-for"(item,index) in 100"><!-- 广告 --><view style"margin-bottom: 20rpx;" v-if"(inde…

物联网行业中,我们如何选择数据库?

在当今数字化潮流中&#xff0c;我们面对的不仅是海量数据&#xff0c;更是时间的涟漪。从生产线的传感器到金融市场的交易记录&#xff0c;时间序列数据成为了理解事物演变和趋势的关键。在面对这样庞大而动态的数据流时&#xff0c;我们需要深入了解一种强大的工具——时序数…

03-自媒体文章发布

自媒体文章发布 1)自媒体前后端搭建 1.1)后台搭建 ①&#xff1a;资料中找到heima-leadnews-wemedia.zip解压 拷贝到heima-leadnews-service工程下&#xff0c;并指定子模块 执行leadnews-wemedia.sql脚本 添加对应的nacos配置 spring:datasource:driver-class-name: com…

机器学习知识点全面总结

机器学习按照模型类型分为监督学习模型、无监督学习模型两大类。 1、有监督学习 有监督学习通常是利用带有专家标注的标签的训练数据&#xff0c;学习一个从输入变量X到输入变量Y的函数映射。Y f (X)&#xff0c;训练数据通常是(nx,y)的形式&#xff0c;其中n代表训练样本的大…

初识二叉树和二叉树的基本操作

目录 一、树 1.什么是树 2. 与树相关的概念 二、二叉树 1.什么是二叉树 2.二叉树特点 3.满二叉树与完全二叉树 4.二叉树性质 相关题目&#xff1a; 5.二叉树的存储 6.二叉树的遍历和基本操作 二叉树的遍历 二叉树的基本操作 一、树 1.什么是树 子树是不相交的;…

了解这些技术:Flutter应用顺利登陆iOS平台的步骤与方法

引言 &#x1f680; Flutter作为一种跨平台的移动应用程序开发框架&#xff0c;为开发者提供了便利&#xff0c;使他们能够通过单一的代码库构建出高性能、高保真度的应用程序&#xff0c;同时支持Android和iOS两个平台。然而&#xff0c;完成Flutter应用程序的开发只是第一步…

HTML转pdf批量高效转换:释放文本潜力,让信息流动更自由!

在数字化信息的海洋中&#xff0c;HTML以其灵活性和互动性成为网页内容的标准格式。然而&#xff0c;有时我们需要将网页内容保存为PDF格式&#xff0c;以确保信息的稳定性和易读性。为了满足这一需求&#xff0c;我们推出了一款强大的HTML转PDF批量高效转换工具&#xff0c;让…