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

news2024/9/28 19:27:45
Top-k抽样模型从最可能的"k"个选项中随机选择一个如果k=10,模型将从最可能的10个单词中选择一个
Top-p抽样模型从累计概率大于或等于“p”的最小集合中随机选择一个如果p=0.9,选择的单词集将是概率累计到0.9的那部分
Temperature控制生成文本随机性的参数。较高的温度值会产生更随机的输出,而较低的温度值则会使模型更倾向于选择最可能的单词较高的温度值,如1.0,会产生更随机的输出,而较低的温度值,如0.1,会使模型更倾向于选择最可能的单词

 

前言

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

  • temperature
  • top_p
  • top_k

关于LLM

上一篇也有介绍过,这次看到一个不错的图

A recent breakthrough in artificial intelligence (AI) is the introduction of language processing technologies that enable us to build more intelligent systems with a richer understanding of language than ever before. Large pre-trained Transformer language models, or simply large language models, vastly extend the capabilities of what systems are able to do with text.

LLM看似很神奇,但本质还是一个概率问题,神经网络根据输入的文本,从预训练的模型里面生成一堆候选词,选择概率高的作为输出,上面这三个参数,都是跟采样有关(也就是要如何从候选词里选择输出)。

temperature

用于控制模型输出的结果的随机性,这个值越大随机性越大。一般我们多次输入相同的prompt之后,模型的每次输出都不一样

  • 设置为 0,对每个prompt都生成固定的输出
  • 较低的值,输出更集中,更有确定性
  • 较高的值,输出更随机(更有创意😃)

一般来说,prompt 越长,描述得越清楚,模型生成的输出质量就越好,置信度越高,这时可以适当调高 temperature 的值;反过来,如果 prompt 很短,很含糊,这时再设置一个比较高的 temperature 值,模型的输出就很不稳定了。

遇事不决就调参,调一下,万一就生成了不错的回答呢?

PS:ChatGLM提供的例子把范围限定在0-1之间。

top_k & top_p

这俩也是采样参数,跟 temperature 不一样的采样方式。

前面有介绍到,模型在输出之前,会生成一堆 token,这些 token 根据质量高低排名

比如下面这个图片,输入 The name of that country is the 这句话,模型生成了一堆 token,然后根据不同的 decoding strategy 从 tokens 中选择输出。

这里的 decoding strategy 可以选择

  • greedy decoding: 总是选择最高分的 token,有用但是有些弊端,详见下文
  • top-k: 从 tokens 里选择 k 个作为候选,然后根据它们的 likelihood scores 来采样
  • top-p: 候选词列表是动态的,从 tokens 里按百分比选择候选词
  • Top-k抽样模型从最可能的"k"个选项中随机选择一个如果k=10,模型将从最可能的10个单词中选择一个
    Top-p抽样模型从累计概率大于或等于“p”的最小集合中随机选择一个如果p=0.9,选择的单词集将是概率累计到0.9的那部分
    Temperature控制生成文本随机性的参数。较高的温度值会产生更随机的输出,而较低的温度值则会使模型更倾向于选择最可能的单词较高的温度值,如1.0,会产生更随机的输出,而较低的温度值,如0.1,会使模型更倾向于选择最可能的单词

top-k 与 top-p 为选择 token 引入了随机性,让其他高分的 token 有被选择的机会,不像 greedy decoding 一样总是选最高分的。

greedy decoding

好处是简单,坏处是容易生成循环、重复的内容

Greedy decoding is a reasonable strategy but has some drawbacks such as outputs with repetitive loops of text. Think of the suggestions in your smartphone's auto-suggest. When you continually pick the highest suggested word, it may devolve into repeated sentences.

top-k

设置越大,生成的内容可能性越大

设置越小,生成的内容越固定;

设置为1时,和 greedy decoding 效果一样。

Changing the top-k parameter sets the size of the shortlist the model samples from as it outputs each token. Setting top-k to 1 gives us greedy decoding.

top-p

top-p 又名 Nucleus Sampling(核采样)

与 top-k 固定选取前 k 个 tokens 不同,top-p 选取的 tokens 数量不是固定的,这个方法是设定一个概率阈值。

继续上面的例子,将 top-p 设定为 0.15,即选择前 15% 概率的 tokens 作为候选。如下图所示,United 和 Netherlands 的概率加起来为 15% ,所以候选词就是这俩,最后再从这些候选词里,根据概率分数,选择 united 这个词。

Top-p is usually set to a high value (like 0.75) with the purpose of limiting the long tail of low-probability tokens that may be sampled. We can use both top-k and top-p together. If both k and p are enabled, p acts after k.

经常遇到的默认 top-p 值就是 0.7/0.8 这样,还是那个说法,设置太低模型的输出太固定,设置太高,模型彻底放飞自我也不好。

2.从top tokens中挑选:top-k

另一种常用的策略是从前 3 个tokens的候选名单中抽样。这种方法允许其他高分tokens有机会被选中。这种采样引入的随机性有助于在很多情况下生成的质量。

Adding some randomness helps make output text more natural. In top-3 decoding, we first shortlist three tokens then sample one of them considering their likelihood scores.

更广泛地说,选择前三个tokens意味着将 top-k 参数设置为 3。更改 top-k 参数设置模型在输出每个token时从中抽样的候选列表的大小。将 top-k 设置为 1 可以进行贪心解码

Adjusting to the top-k setting.

3.从概率加起来为15%的top tokens中挑选:top-p

选择最佳 top-k 值的困难为流行的解码策略打开了大门,该策略动态设置tokens候选列表的大小。这种称为Nucleus Sampling 的方法将可能性之和不超过特定值的top tokens列入候选名单。top-p 值为 0.15 的示例可能如下所示:

In top-p, the size of the shortlist is dynamically selected based on the sum of likelihood scores reaching some threshold.

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

参考资料

  • docs.cohere.com/docs/contro…
  • docs.cohere.com/docs/temper…
  • mp.weixin.qq.com/s/IswrgDEn9…

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

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

相关文章

对比之前的组件优化说明React.memo的作用

我们之前写的react PureComponent讲述了 PureComponent 组件优化特性的强大功能 还有就是 shouldComponentUpdate 生命周期的一个解决方案 那么呢 今天我们要说另一个 也是类似于组件性能优化的新特性 打开我们的react项目 在src下的components创建一个组件 例如 我这里叫 dom…

【C++】-8.2- string〔string类模拟实现〕

文章目录 //模拟实现string类,并完成测试• string类的基本结构• Destructor• Construct〔构造函数〕‹ 无参构造 ›‹ 单参数构造 ›‹ 全缺省参数构造 › 〔拷贝构造〕 • operator 赋值重载• Element access(operator[])补充&#xff1…

Android强大的原生调试工具adb的常用命令

文章目录 ADB简介常用命令列出链接的设备进入设备的shell环境设备日志安装应用程序卸载应用程序将本地文件复制到调试设备上将设备上的文件拉取到本地启动程序强制停止程序运行截图屏幕录制列出调试设备所有的应用的报名 结语 ADB简介 ADB(Android Debug Bridge&am…

BioXFinder生物数据库

BioXFinder是目前国内第一个也是国内唯一一个生物信息数据库,由享融智云公司精心研发,主要针对生物科研工作者的综合性生物数据检索及分析平台,汇集了核酸、蛋白、蛋白结构、代谢通路和信号通路信息,解决海外数据访问难、访问慢的…

Adobe Creative Cloud 摄影计划 - 当图像与想象力相遇。 PS+LRc套餐 国际版 1年订阅/398

这里重点介绍国际版摄影计划套餐详情: 国际版包括:Photoshop、Lightroom Classic、Photoshop Express、Lightroom Mobile、Lightroom、云服务。中国版包括:Photoshop、Lightroom Classic、Photoshop Express、Lightroom Mobile 桌面应用程序…

SpringBoot集成Kafka的简单实现案列

1&#xff0c;首先搭建一个Springboot项目准备一个测试服务器 2&#xff0c;引入pom <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId></dependency>他其中包括一些其他的包如果有冲突可…

有哪些值得注意的隔断小技巧可以让酒店更美观实用

以下是一些可以使酒店隔断更美观实用的小技巧&#xff1a; 1. 选择透明或半透明材料&#xff1a;使用透明或半透明的材料&#xff0c;如玻璃、亚克力或薄钢板&#xff0c;可以增加空间的亮度和通透感。 2. 考虑隔断的尺寸和布局&#xff1a;确保隔断的尺寸和布局适应空间大小和…

AI血洗时尚圈!就连这些线上店家都开始用AI生成爆款商品了

量子位 | 公众号 QbitAI 家人们谁懂啊&#xff0c;刷屏的《哈利波特》AI时装秀&#xff0c;看几次都不够&#xff01; 这些时装造型火遍全网&#xff0c;视频播放量破千万&#xff0c;还只是技术给时尚圈带来的一点小小震撼。 现在&#xff0c;用AI辅助设计服装、食品包装、装…

Elasticsearch初探

ElasticSearch Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。 Elasticsearch结合Kibana、Logstash、Beats&#xff0c;也就是elastic stack(ELK)。被广泛应用在日志分析、实时监控&#xff08;CPU、Memory、Program&#xff09;等领域。 elasticsearch是…

【​区块链】相关专业名词术语

区块链 区块链是一个共享数据库&#xff0c;存储于其中的数据或信息&#xff0c;具有不可伪造、全程留痕、可以追溯、公开透明和集体维护等特征。可以把区块链理解为一个共享的、不可更改的电子账本&#xff0c;能够在网络中记录交易和跟踪资产。这里的资产可以是有形的&#…

mount.nfs: access denied by server while mounting

问题及截图&#xff1f; 客户端挂载nfs共享目录的时候提示如下&#xff1a; mount.nfs: access denied by server while mounting 192.168.44.10:/xxx 问题原因有两方面&#xff1a; 一&#xff1a;权限问题 服务器端的共享目录没有给足相应的权限导致&#xff0c;导致挂载失…

如何做mysql调优?绝命7招,让慢SQL调优100倍

前言&#xff1a; 在40岁老架构师尼恩的读者社区&#xff08;50&#xff09;中&#xff0c;很多小伙伴拿不到offer&#xff0c;或者拿不到好的offer。 尼恩经常给大家 优化项目&#xff0c;优化简历&#xff0c;挖掘技术亮点。在指导简历的过程中&#xff0c; Java 调优是一项…

HiveSQL在使用聚合类函数的时候性能分析和优化详解

文章目录 概述1.仅在Reduce阶段聚合的SQL执行逻辑2.在map和reduce阶段聚合的SQL逻辑 概述 前文我们写过简单SQL的性能分析和解读&#xff0c;简单SQL被归类为select-from-where型SQL语句&#xff0c;其主要特点是只有map阶段的数据处理&#xff0c;相当于直接从hive中取数出来…

C++模板和模板的特化,模板的扩展和智能指针------(14)

模板 概念 模板的作用是实现类型通用&#xff0c;降低代码的冗余度 模板可以为一种算法定义不同类型的版本 实现机制&#xff1a; 复制代码使用类型参数突破类型的限制&#xff0c;丧失一定的类型安全 模板需要实例化才能使用&#xff0c;实例化由编译器完成 模板的分类 …

对比学习初认识

这篇文章我们通过SimCLR模型来对对比学习技术有一个认知。 1.什么是对比学习系统 根据上面这个图&#xff0c;来介绍下怎么做一个抽象的对比学习系统。以一个图像为例子&#xff0c;通过自动构造正例或负例&#xff0c;形成图片的两个view&#xff0c;通过encoder把它们编码&a…

第十届中医药健康文化节:御医传人龚洪海强调心血管疾病中医治疗"治未病"的重要性

在第十届中医药健康文化节上&#xff0c;备受瞩目的中医世家龚洪海医生强调了中医对心血管疾病的有效治疗&#xff0c;并提出了更为重要的概念——"治未病"。这一观念的传达不仅对预防常见病和多发病有益&#xff0c;同时在重大疑难疾病的防治中发挥着关键作用&#…

Java - OkHttp

使用方法&#xff1a; 在postman中请求接口通过&#xff0c;可复制右侧代码使用&#xff0c;可用于webservice等接口

MySQL数据库事务和存储引擎

MySQL数据库事务和存储引擎 一、mysql事务1、事务的概念2、事务的ACID特点2.1 原子性2.2 一致性2.3 隔离性2.4 持久性 3、两个事务之间的影响3.1 脏读&#xff08;读取未提交数据&#xff09;3.2 不可重复度&#xff08;前后多次读取&#xff0c;数据内容不一致&#xff09;3.3…

【Vue+Django】Training Management Platform分页功能 - 20230621

需求描述 分页显示数据&#xff0c;避免造成服务器宕机。 Django&#xff1a;根据pageNum返回数据切片 Views.py写入业务逻辑 # 数据接口&#xff1a;暴露trs_training_and_test_record数据 def api_trs_training_and_test_record(request,myDateS,myDateE,mySystem,catego…

SpringCloud Alibaba入门4之nacos注册中心管理

我们在上一章的基础上进行学习。https://blog.csdn.net/qinxun2008081/article/details/131330451 什么是注册中心?它记录了服务和服务地址的映射关系。在分布式架构中&#xff0c;服务会注册到这里&#xff0c;当服务需要调用其它服务时&#xff0c;就到这里找到服务的地址&…