ChatGPT模型采样算法详解

article/2024/9/19 10:03:27

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://chatgpt.dhexx.cn/article/eqTafQBR.shtml

相关文章

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炸天的存…

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进行全局代理,不要使用各大云平…

突破ChatGPT4.0文件无法上传的局限,提升学习效率

大家好!作为一名大学生,我最近在学习过程中遇到了一个非常棘手的问题,但是我终于找到了一个非常有效的解决方法,我想和大家分享一下。如果你也在使用ChatGPT时遇到了无法读取PDF和图片文件的困扰,那么这篇文章将会对你…

这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结合Google文档完成自动化写作流程--1

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

每日一个 ChatGPT 使用小技巧系列之1 - 给出提纲,让 ChatGPT 帮你写作

我以前写过一篇文章,介绍了我日常工作和学习中使用 ChatGPT 的一些技巧: 与其整天担心 AI 会取代程序员,不如先让 AI 帮助自己变得更强大 为代码生成对应的单元测试代码 利用 ChatGPT 帮助自己研读经典框架的源代码 代码重构和性能优化 阅读…

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

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

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

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

ChatGPT写程序如何?

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

ChatGPT初学者写作教程

ChatGPT初学者写作教程 ChatGPT Quickstart for the ChatGPT Curious 和 Beginners – 了解这个 OpenAI 聊天机器人革命,即 ChatGPT! 课程英文名:ChatGPT for Beginners - Get Up & Running with ChatGPT Now 此视频教程共8.0小时&#x…

想用ChatGPT写作?或许没你想的那么神奇...

ChatGPT让AI进化到了新高度,它不但懂你还能够回答问题。这与传统中的网络检索、语义识别不太一样。核心是基于自然语言处理(NLP)的聊天机器人技术。 说简单点,就是可以直接打字和机器人聊天,并且得到你想要的答案。 网…

ChatGPT如何写作-chatGpt自动写文章

ChatGPT如何写作 使用 ChatGPT 进行写作一般可以遵循以下步骤: 定义写作主题和目的。确定写作主题和目的,包括要解决的问题、目标读者群体以及需要涵盖的主要内容。 收集文献和资料。收集与主题相关的文献和资料,可以从互联网、书籍、报刊杂…