ChatGPT模型采样算法详解

ChatGPT模型采样算法详解

ChatGPT所使用的模型——GPT(Generative Pre-trained Transformer)模型有几个参数,理解它们对文本生成任务至关重要。其中最重要的一组参数是temperaturetop_p。二者控制两种不同的采样技术,用于因果语言模型(Causal language models)中预测给定上下文情景中下一个单词出现的概率。本文将重点讲解temperaturetop_p的采样原理,以及它们对模型输出的影响。

文章目录

    • 理解因果语言模型中的采样
    • Top-k采样
      • Top-p采样
    • 温度采样
      • 典型用例
    • 总结

理解因果语言模型中的采样

假设我们训练了一个描述个人生活喜好的模型,我们想让它来补全“我喜欢漂亮的___”这个句子。一般语言模型会按照下图的流程来工作:

在这里插入图片描述

模型会查看所有可能的单词,并根据其概率分布从中采样,以预测下一个词。为了方便起见,假设模型的词汇量不大,只有:“大象”、“西瓜”、“鞋子”和“女孩”。通过下图的词汇概率我们可以发现,“女孩”的选中概率最高( p = 0.664 p=0.664 p=0.664),“西瓜”的选中概率最低( p = 0.032 p=0.032 p=0.032)。

在这里插入图片描述

上面的例子中,很明显“女孩”最可能被选中。因为人类对于单一问题在心智上习惯采用 “贪心策略”,即选择概率最高的事件。

在这里插入图片描述

永远选择分数或概率最大的token,这种策略叫做“贪心策略”。
贪心策略符合人类的心智,但是存在严重缺陷。

但是上面这种策略用在频繁交互的场景下会有一个显著缺陷——如果我们总是选择最可能的单词,那么这个词会反复不断被强化,因为现代语言模型中大多数模型的注意力只集中在最近的几个词(Token)上。这样生成的内容将非常的生硬和可预测,人们一眼就能看出是机器生成的且一点也不智能。

如何让我们的模型不那么具有确定性,让它生成的内容用词更加活跃呢?为此,我们引入了基于分布采样的生成采样算法。但是传统的采样方法会遇到了一个问题:如果我们有5万个候选词(Token),即使最后2.5万个极不可能出现的长尾词汇,它们的概率质量也可能会高达30%。这意味着,对于每个样本,我们有1/3的机会完全偏离原来的“主题”。又由于上面提到的注意力模型倾向于集中在最近出现的词上,这将导致不可恢复的错误级联,因为下一个词严重依赖于最近的错误词。

为了防止从尾部采样,最流行的方法是Top-k采样温度采样

Top-k采样

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

在这里插入图片描述

添加一些随机性有助于使输出文本更自然。
上图示例中,我们首先筛选似然值前三的token,然后根据似然值重新计算采样概率。

通过调整k的大小,即可控制采样列表的大小。“贪心策略”其实就是k=1的top-k采样。

在这里插入图片描述

Top-p采样

ChatGPT实际使用的不是Top-k采样,而是其改进版——Top-p采样。

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

在这里插入图片描述

在top-p中,根据达到某个阈值的可能性得分之和动态选择候选名单的大小。

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

温度采样

温度采样受统计热力学的启发,高温意味着更可能遇到低能态。在概率模型中,logits扮演着能量的角色,我们可以通过将logits除以温度来实现温度采样,然后将其输入Softmax并获得采样概率。

越低的温度使模型对其首选越有信心,而高于1的温度会降低信心。0温度相当于argmax似然,而无限温度相当于于均匀采样。

温度采样中的温度与玻尔兹曼分布有关,其公式如下所示:
ρ i = 1 Q e − ϵ i / k T = e − ϵ i / k T ∑ j = 1 M e − ϵ j / k T \rho_i = \frac{1}{Q}e^{-\epsilon_i/kT}=\frac{e^{-\epsilon_i/kT}}{\sum_{j=1}^M e^{-\epsilon_j/kT}} ρi=Q1eϵi/kT=j=1Meϵj/kTeϵi/kT
其中 ρ i \rho_i ρi 是状态 i i i 的概率, ϵ i \epsilon_i ϵi 是状态 i i i 的能量, k k k 是波兹曼常数, T T T 是系统的温度, M M M 是系统所能到达的所有量子态的数目。

有机器学习背景的朋友第一眼看到上面的公式会觉得似曾相识。没错,上面的公式跟Softmax函数 S o f t m a x ( z i ) = e z i ∑ c = 1 C e z c Softmax(z_i) = \frac{e^{z_i}}{\sum_{c=1}^Ce^{z_c}} Softmax(zi)=c=1Cezcezi 很相似,本质上就是在Softmax函数上添加了温度(T)这个参数。Logits根据我们的温度值进行缩放,然后传递到Softmax函数以计算新的概率分布。

上面“我喜欢漂亮的___”这个例子中,初始温度 T = 1 T=1 T=1,我们直观看一下 T T T 取不同值的情况下,概率会发生什么变化:

在这里插入图片描述

通过上图我们可以清晰地看到,随着温度的降低,模型愈来愈越倾向选择”女孩“;另一方面,随着温度的升高,分布变得越来越均匀。当 T = 50 T=50 T=50时,选择”西瓜“的概率已经与选择”女孩“的概率相差无几了。

在这里插入图片描述

通常来说,温度与模型的“创造力”有关。但事实并非如此。温度只是调整单词的概率分布。其最终的宏观效果是,在较低的温度下,我们的模型更具确定性,而在较高的温度下,则不那么确定。

典型用例

temperature = 0.0

temperature=0会消除输出的随机性,这会使得GPT的回答稳定不变。

较低的温度适用于需要稳定性、最可能输出(实际输出、分类等)的情况。

temperature = 1.0

temperature=1每次将产生完全不同的输出,且有时输出的结果会非常搞笑。因此,即便是开放式任务,也应该谨慎使用temperature=1。对于故事创作或创意文案生成等任务,温度值设为0.7到0.9之间更为合适。

temperature = 0.75

通常,温度设在0.70–0.90之间是创造性任务最常见的温度。

虽然存在一些关于温度设置的一般性建议,但没有什么是一成不变的。作为GPT-3最重要的设置之一,实际使用中建议多一试下,看看不同设置对输出效果的影响。

总结

本文详细为大家阐述了temperaturetop_p的采样原理,以及它们对模型输出的影响。实际使用中建议只修改其中一个的值,不要两个同时修改。

temperature可以简单得将其理解为“熵”,控制输出的混乱程度(随机性),而top-p可以简单将其理解为候选词列表大小,控制模型所能看到的候选词的多少。实际使用中大家要多尝试不同的值,从而获得最佳输出效果。

另外还有两个参数——frequency_penaltypresence_penalty 对生成输出也有较大影响,请参考《ChatGPT模型中的惩罚机制》。

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

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

相关文章

ChatGPT探索系列之二:学习GPT模型系列的发展历程和原理

文章目录 前言一、GPT的起源GPT系列 二、GPT的原理1. GPT原理:自注意2. GPT原理:位置编码3. GPT原理:Masked Language Modeling4. GPT原理:预训练5. GPT原理:微调6. GPT原理:多任务学习 三、GPT模型的风险与…

一文读懂chatGPT模型原理(无公式)

每天给你送来NLP技术干货! 来自:JioNLP 点击这里进群—>加入NLP交流群 (本文是chatGPT原理介绍,但没有任何数学公式,可以放心食用) 前言 这两天,chatGPT模型真可谓称得上是狂拽酷炫D炸天的存…

LeCun:ChatGPT无法实现通用人工智能,但ALM技术路线可以!

文 | 天于刀刀 ChatGPT 将加速通用人工智能的实现。—— 邱锡鹏 在上周刚刚结束的 2023 全球人工智能开发者先锋大会(GAIDC)上,作者有幸亲身参与大模型技术与应用分论坛,并在现场聆听了来自业界和学界一众大佬的精彩讲座。 在会上…

chatgpt的历史问答记录消失的解决之道

刚刚使用发现我的历史会话记录都没有了,我旁边的一个朋友也没有了。 网上查了一下,很多网友,居然也没有历史记录了。 这是故意而为之,还是误操作删除记录,更有可能是不是装了插件引起的。无意当中发现了一个方法&…

ChatGPT报错解决

背景:登录后无法正常交流,报错内容为: Something went wrong. If this issue persists please contact us through our help center at help.openai.com 如图所示: 解决方法: 1. 不关闭代理的情况下Log out再Log in&a…

chatGPT Access denied访问被拒绝(已解决)

这个网站可以直接进入ai聊天,但是功能只有语言模块,我试用了一下作为文字训练可以使用。ChatGPT Online - AI Chat GPThttps://chatgpt.org/chat 然后是网站尚Access denied 解决办法 首先要使用海外的原生IP进行全局代理,不要使用各大云平…

这20种职业ChatGPT无法取代!

李开发在《AI未来进行式》一书中分析了AI存在明显不足的三大短板,即便到了2042年,AI可能仍然无法完全掌握这些能力。 第一、创造力。AI不具备进行创造、构思以及战略性规划的能力。尽管AI非常擅长针对单一领域的任务进行优化,使目标函数达到最…

聊聊ChatGPT无法取代的7个工作

ChatGPT——全世界都在谈论的非常流行的人工智能工具。自从 2022 年 11 月 30 日推出以来,ChatGPT 就被证明是执行复杂任务并简化它们的一体式工具。无论是通过 UPenn 的沃顿商学院 MBA 考试,撰写常春藤盟校入学论文,还是完成简单的任务&…

OpenAI 宣布部分解除 ChatGPT 无法联网限制,引入插件策略,会带来什么变化?

OpenAI 发布 ChatGPT Plugins (ChatGPT 插件集) 昨天凌晨,OpenAI 发布 ChatGPT Plugins (ChatGPT 插件集),它能将 ChatGPT 连接到第三方应用程序) 这是 AI 的 App Store 时刻,AI 经历了「iPhone」时刻后,如今也有了应用商店。 这…

我破除了 ChatGPT 无法联网的魔咒!

公众号关注 “GitHubDaily” 设为 “星标”,每天带你逛 GitHub! 前阵子我写过一篇文章,介绍了几种无需安装 ChatGPT Plugin,即可让其轻松破除无法联网的魔咒。 最近看到不少同学对此感兴趣,因此我把这几个方案汇总完善…

解决ChatGPT 总是打不开,显示不可用,网站崩溃,聊几句话就报错,plus会员无法升级始终不成功的问题

为什么你的chat gpt总是打不开,显示不可用,网站崩溃,聊几句话就报错,plus会员无法升级始终不成功? 首先第一个问题open ai服务不可用 那么这个问题很显然,你所在的位置不提供chat gpT的服务,解…

ChatGPT - 根据写作进行调整,总结长文并加速学习

文章目录 Prompt Prompt “将以下文本总结为500字或更少。为每个重要点创建部分,并简要总结该点。” [文本]

ACL2023论文写作竟允许使用ChatGPT 了!

文|HFL源|HFL实验室 随着以ChatGPT为代表的生成式AI的火热,近期人工智能领域的顶级会议相继推出相关政策以进一步规范这类工具在科学文献撰写中的使用。ACL 2023程序委员会主席在近期的一篇博客中披露了ACL 2023大会的相关政策。 原文&#x…

首篇ChatGPT辅助写作的论文,已在arXiv发表!

编|LRS源|新智元 虽然ChatGPT写的论文错误太多,但掠夺性期刊应该会接收。(错误尝试!!) ChatGPT以其强大的文本创作能力,直接问鼎地表最强问答模型。 但强大的AI也会带来一些负面影响…

ChatGpt结合Google文档完成自动化写作流程--1

GPT机器人可以通过API连接谷歌文档,让我们进行文字创作和编辑。可以通过它,提供写作思路,创建标题,起草文章介绍和大纲,编写段落,最后总结全文。同时,在一篇文章里,还能帮我们插入图…

使用ChatGPT最新版实现批量写作,打造丰富多彩的聚合文章

随着人工智能的迅猛发展,ChatGPT最新版作为一种自然语言处理模型,可以为我们提供强大的文本生成能力。在这篇文章中,我们将探讨如何利用ChatGPT最新版来实现批量写作,从而打造丰富多彩的聚合文章。 一、ChatGPT最新版简介 Chat…

玩转ChatGPT:论文辅助写作(附Claude测评)

一、写在前面 嘿!嘿!嘿!大家好,今天我们来聊一下使用GPT们进行论文辅助写作。不过,我要先交代一下,GPT的使用门槛比较高,不少童鞋都用不上。所以,我极力推荐一个平替产品——Claude…

ChatGPT写程序如何?

前言 ChatGPT最近挺火的,据说还能写程序,感到有些惊讶。于是在使用ChatGPT有一周左右后,分享一下用它写程序的效果如何。 1、对于矩阵,把减法操作转换加法? 感觉不错的,能清晰介绍原理,然后写示…

ChatGPT写新闻-ChatGPT写文章

ChatGPT写新闻 ChatGPT可以用于生成新闻稿件,但需要注意的是,由ChatGPT生成的新闻稿件可能存在语义、逻辑、事实准确性等方面的问题,因此需要进行人工审核和编辑,确保其准确性。 下面是一个示例过程,大致了解如何使用…