ChatGPT中 top_p 和 temperature 的作用机制

news2024/11/23 9:52:54

1. temperature 的作用机制

GPT 中的 temperature 参数调整模型输出的随机性。随机性大可以理解为多次询问的回答多样性、回答更有创意、回答更有可能没有事实依据。随机性小可以理解为多次询问更有可能遇到重复的回答、回答更接近事实(更接近训练数据)。

Temperature 参数通常用于调整 softmax 函数的输出,用于增加或减少模型对不同类别的置信度。具体来说,softmax 函数将模型对每个类别的预测转换为概率分布。Temperature 参数可以看作是一个缩放因子,它可以增加或减少 softmax 函数输出中每个类别的置信度。

下面从模型的计算逻辑上来看 temperature 的作用机制。

当模型在根据上文计算下一个 token 时,他会先得到一组候选 token 及每一个 token 的概率 (原始概率,原始概率取决于训练方法、训练采用的数据和 prompt)。然后使用数学方法 softmax调整候选项的概率分布。这时 temperature 就会起作用。

忽略 softmax 的内部算法,直接看影响。

假设我们有这几个单词和他们出现在下一个位置的概率:
the: 0.5
a: 0.25
an: 0.15
some: 0.08
this: 0.02

当应用 temperature 时,他们的概率会被改变。下图表示在不同 temperature 下 softmax 对概率的影响
在这里插入图片描述
可以看到,当 temperature 更大时,模型的选择更加随机(每个 token 的概率更加接近), 给予原本低概率的 token 更大的选择机会,从而产生更多样化和创意的输出。大的更大,小的更小

相反, temperature 更小使模型的选择更加确定,给予原本高概率的 token 更大的选择机 会,从而产生更集中和一致的输出。大的更小,小的更大。

当 temperature = 0 =0 =0 时,模型在每次选择 token时只选择概率最大的那一个,于是我们每次询 问 (同样的prompt) 都会得到完全相同的回答。

2. top_p 的作用机制

Top P 参数是指在生成文本等任务中,选择可能性最高的前 P 个词的概率累加和。这个参数被称为 Top P,也称为 Nucleus Sampling。

top_ p 对回答的影响时机,是在 temperature 调整完 token 概率之后。但是官方建议不要同 时使用这两个参数。

top_p 弃数接受的是一个累积概率, top_p 的大小影响到候选 token 的数量

我们还是假设有这几个单词可供选择
the: 0.5
a: 0.25
an: 0.15
some: 0.08
this: 0.02

假设我们设定 top_p = 0.7 =0.7 =0.7 ,模型使用以下逻辑选择部分单词加入备选集合

1、对所有单词按照概率从大到小进行排序

2、将富选集合中的概率逐个相加,当超过 0.7 时停止处理后面的单词

考虑 the,将它加入备选集合。他的概率(前面的概率之和是 0 ) 小于 0.7 ,于是继续考虑下一 个羊词。

考虑 a$,他的概率是 0.25 ,加上前面的所有概率得到 0.75 。这时已经超过了 0.7 的阈值。a 会被加入家选集合,但是不再处理后面的单词。

现在集合中有 the 和 a 两个单词,模型会根据概率进行选择(the 还是更容易选中)

为什么不建议同时使用

这一部分暂时还没想明白,也欢迎知道细节的小伙伴一起讨论。
从资料上看,如果同时使用top_p 和 temperature 会导致模型的输出更不可控,可能导致意 外的输出。

如何选择

使用 temperature 比 top_p 更容易控制创造性的回答。当需要获得更有创意、更多样性 的回答时,可以把 temperature 设置为2。当需要多次询问且获得一致性的回答时,可以 把 temperature 设置为 0 。

top_p 比 temperature 更容易控制输出的质量。top_p 可以把较低概率的单词滤掉,避免得到低质量的回答, 也避免得到不常见的单词。

有些研究中表明,top_p 越高,输出的内容会越长。但是这种现象在 ChatGPT 中并不明 显, 可能是因为 ChatGPT 的训练数据集已经有比较高的质量,避免了低概率单词的输出。

在之前 Hugging Face 上的 prompt 比赛中,为了保证所有选手的 prompt 能够有统一 的评价标准,也为了保证每次询问 prompt 都得到完全一样的回答,评判系统会同时设置 temperature =0, top_ p=0 。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pycharm快捷键

目录 1、代码编辑快捷键 2、搜索/替换快捷键 3、代码运行快捷键 4、代码调试快捷键 5、应用搜索快捷键 6、代码重构快捷键 7、动态模块快捷键 8、导航快捷键 9、通用快捷键 🎁更多干货 完整版文档下载方式: 1、代码编辑快捷键 CTRL ALT SP…

Vue-Element-Admin项目学习笔记(9)表单组件封装,父子组件双向通信

前情回顾: vue-element-admin项目学习笔记(1)安装、配置、启动项目 vue-element-admin项目学习笔记(2)main.js 文件分析 vue-element-admin项目学习笔记(3)路由分析一:静态路由 vue-element-adm…

TOWARDS A UNIFIED VIEW OF PARAMETER-EFFICIENT TRANSFER LEARNING

本文也是属于LLM系列的文章,针对《TOWARDS A UNIFIED VIEW OF PARAMETER-EFFICIENT TRANSFER LEARNING》的翻译。 关于参数有效迁移学习的统一观点 摘要1 引言2 前言2.1 Transformer结构综述2.2 之前的参数高效调优方法综述 3 弥合差距-统一的视角3.1 仔细观察Pref…

火山引擎A/B测试推出智能流量调优实验,助力汽车行业破局营销困境

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 2023年是汽车行业挑战加剧的一年,在这样一个变革时期,多家车企都在进行创新技术和战略调整,实现灵活的科学决策,在发…

03 Web全栈 浏览器内置对象/事件/ajax

浏览器是一个JS的运行时环境,它基于JS解析器的同时,增加了许多环境相关的内容,用一张图表示各个运行环境和JS解析器的关系如下: 我们把常见的,能够用JS这门语言控制的内容称为一个JS的运行环境,常见的运行环…

PDF怎么在线编辑?PDF编辑软件推荐!​

PDF怎么在线编辑?PDF是一种常见的文档格式,用于存储和共享各种类型的文档,如电子书、报告、表格、合同和演示文稿等。然而,PDF文档通常是只读的,无法直接进行编辑。在过去,要编辑PDF文档通常需要购买专业的…

JVM 常量池、即时编译与解析器、逃逸分析

一、常量池 1.1、常量池使用 的数据结构 常量池底层使用HashTable key 是字符串和长度生成的hashValue,然后再hash生成index, 改index就是key;Value是一个HashTableEntry; 1、key hashValue hash string(name, len) i…

高级DBA手把手教你解决clickhouse数据库宕机生产事故实战全网唯一

高级DBA手把手教你解决clickhouse数据库宕机生产事故实战演练 一、事故描述 生产环境clickhouse宕机,重启之后,反复重启,重启几秒钟又死了。甲方客户叫天,大老板火冒三丈,天下大乱。老板电话打过来,要求半…

webrtc源码阅读之examples/peerconnection

阅读webrtc源码,从examples中的peerconnection开始。版本m98。 一、 基本流程 server端只是做了一个http server,来转发client端的消息。也就是起到了信令服务器的作用,本篇文章不在研究,感兴趣的可以学习一下用cpp搭建http serv…

Mysql架构篇--Mysql(M-M) 主从同步

文章目录 前言一、M-M 介绍:二、M-M 搭建:1.Master1:1.1 my.cnf 参数配置:1.2 创建主从同步用户:1.3 开启复制: 2.Master2:2.1 my.cnf 参数配置:2.2 创建主从同步用户:2.…

飞桨携手登临解读软硬一体技术优势,共推AI产业应用落地

众所周知,AI应用落地面临着场景碎片化、开发成本高、算力成本高等诸多难题,这对AI框架与AI芯片都提出了非常高的要求,即既要满足端、边、云多场景的部署需求,还需要支持自动化压缩与高性能推理引擎深度联动。因此充分发挥软硬一体…

通过一个简单的例子理解 Python 中的多线程

关于进程和线程的概念可以看这篇文章: https://blog.csdn.net/ThinkWon/article/details/102021274 什么时候需要多线程编程?简单来说就是一个程序里面有比较耗时间的操作,你希望先让它单独跑着,直接开始进行下一步的操作(Python默…

centos中部署调用matlab程序

环境: Java8 MATLAB2018b centos7 在本机环境上运行成功后的代码打包部署到服务器上运行会报错,需要在服务器上安装MATLAB的运行环境。 首先下载跟本机MATLAB环境一样的mcr文件。 打开网址 http://cn.mathworks.com/products/compiler/mcr/ 下载对…

Python调用百度地图API实现路径规划提取真实距离、时间

1.注册百度地图开放平台账号 网址:百度地图开放平台 | 百度地图API SDK | 地图开发 2.打开控制台,创建应用、获取AK 如下图所示 桥重点、敲重点、瞧重点 在使用python调用API端口时,我们需要申请的为服务端应用类别,别申请错了…

JS实现简单拼图游戏

JS实现简单拼图游戏 点击“打乱”按钮开始游戏&#xff1b;按下鼠标左键拖动一块到另一块上松开鼠标左键互换。游戏资源为一张图片 我这里名称为 2.jpg&#xff0c;将其与下面的网页文件放在同一目录中即可。 网页文件源码如下&#xff1a; <!DOCTYPE html> <html&…

Chapter 1: Introduction - Why Program? | Python for Everybody 讲义_Cn

文章目录 Python for Everybody课程简介适合所有人的 Python (Why Program?)为什么要学习写程序&#xff1f;创造力和动力计算机硬件架构了解编程单词和句子与 Python 对话术语&#xff1a;解释器和编译器Writing a program什么是程序&#xff1f;The building blocks of prog…

移远通信联合中国移动研究院等伙伴发布5G RedCap和车载模组白皮书

6月28日&#xff0c;在“2023年上海世界移动通信大会(MWC)”上&#xff0c;中国移动研究院联合移远通信等产业合作伙伴&#xff0c;共同发布了《5G RedCap轻量化通用模组技术要求白皮书》以及《车载模组技术发展白皮书》。 白皮书的发布为5G RedCap和车载领域技术和产业的进一步…

pdf加水印怎么加?一分钟学会!

在办公场景中&#xff0c;我们经常需要向客户或同事发送PDF格式的文件。这时就会面临一个问题&#xff1a;如何为我们的劳动成果打上个人烙印呢?答案是通过添加水印来满足我们的需求。但是&#xff0c;如何给PDF添加水印呢?难道要手动一个个添加吗?这无疑非常费力&#xff0…

整合来自多个Aurora数据库数据,亚马逊云科技为用户提供数据分析一体化融合解决方案

亚马逊云科技近日在沙利文联合头豹研究院发布的《2023年中国数据管理解决方案市场报告》中再次获评中国数据管理解决方案的领导者位置&#xff0c;并在增长指数和创新指数上获得最高评分。亚马逊云科技凭借其独特的数据服务和数据湖组合、全面的无服务器选项、打破数据传输壁垒…

ReentrantReadWriteLock源码

介绍 用一个变量如何维护多种状态 在 ReentrantLock 中&#xff0c;使用 Sync ( 实际是 AQS )的 int 类型的 state 来表示同步状态&#xff0c;表示锁被一个线程重复获取的次数。 但是&#xff0c;读写锁 ReentrantReadWriteLock 内部维护着一对读写锁&#xff0c;如果要用一…