首页 > 其他分享 >大模型--采样技术 TopK TopP 惩罚系数--37

大模型--采样技术 TopK TopP 惩罚系数--37

时间:2024-12-21 14:19:54浏览次数:5  
标签:采样 惩罚 -- Top 37 TopP token 概率 生成

目录

1. 参考

https://mp.weixin.qq.com/s/mBZA6PaMotJw7WeVdA359g

2. 概述

大型语言模型(LLMs)通过“根据上下文预测下一个 token 的概率分布”来生成文本。最简单的采样方法是贪心采样(Greedy Sampling),它在每一步选择概率最高的 token。
这种确定性(deterministic)的方法往往会导致生成重复且缺乏创意的句子。为了解决这一问题,现在有多种采样方法,例如 Top-K、Top-P 或 重复惩罚(Repetition Penalty)。

大多数 LLM 服务框架(例如 vLLM 和 TensorRT-LLM)支持这些采样技术,允许用户在创意和连贯性之间进行调整。不过这些方法会增加计算成本,从而影响服务性能:

贪心采样

贪心采样在每次迭代中简单地选择概率最高的 token

top-K 采样

为了提高输出多样性,引入了基于采样的方法,例如 Top-K 采样。
Top-K 采样允许概率较高但非最高的 token 也有机会被选择。

核心做法:
LLM 根据 token 的概率进行排名,仅保留概率最高的 K 个 token。然后对这些 K 个 token 的概率进行归一化,以确保总和为 1,并根据归一化后的概率随机选择下一个 token。

这种方法引入了受控的随机性,有助于生成更具多样性的输出,同时仍能避免选择概率极低的 token。

Top-P(核采样)

核心做法:
Top-P 采样,又称核采样,与 Top-K 采样类似,但在候选 token 集的选择方式上有所不同。Top-P 采样不是限制为固定数量的 token(K),而是动态选择概率累积值超过预设阈值 P(例如 0.9)的 token 集。

这种动态方法提供了更大的灵活性,
候选 token 的数量可以根据生成的上下文而变化。通过调整阈值 P,模型可以控制每一步中被考虑的 token 数量,从而在生成输出的多样性和连贯性之间取得平衡。

同时使用

注意,Top-K 和 Top-P 采样可以结合使用,如以下示例所示。当结合使用时,token 集首先被限制为 K 个候选,然后进一步缩小到满足概率累积阈值 P 的 token。

举例:
使用 Top-K(K=50)和 Top-P(P=0.9)生成的输出:
“It’s time to get up.\nI’m sure you’re still sleeping. You’ve been sleeping for 30 years. You’ve been dreaming of a better life”

Top-K 和 Top-P 采样都高度依赖于 token 的概率分布,而 温度(Temperature, T) 是另一个有用的参数,可以让用户控制概率分布。

降低温度会使概率分布更加集中,从而使模型更有可能选择最高概率的 token。这减少了输出的随机性,生成更连贯、可预测的句子

相反,提高温度会使概率分布更平滑,从而使模型更有可能选择概率较低的 token。这可以生成更具创意和多样化的文本,但也增加了生成不连贯结果的风险

重复惩罚(Repetition Penalty)

重复惩罚是另一种重要的技术,用于减少模型生成重复性输出的概率。这种方法对在之前步骤中已经被选择的 token 进行惩罚,从而降低它们的概率,减少它们再次被选中的可能性。

输入: “Hey, are you conscious?”

使用贪心采样生成的输出:

“I mean, are you really conscious? I mean, are you really conscious of your consciousness? I mean, are you really conscious of your consciousness of your consciousness”

使用重复惩罚(1.1)生成的输出:

“I mean really conscious?\nI’m not talking about being aware of your surroundings or the people around you. I’m talking about being aware of yourself and what’s”

结合 Top-K(K=50)、Top-P(P=0.9)和重复惩罚(1.1)生成的输出:

“I’m just asking. You know what I mean: Are you really awake and aware of your life?\nI have a friend who is always saying she’s “”

通过调整重复惩罚参数,用户可以减少退化现象,同时保持句子的连贯性。然而,较高的惩罚可能导致输出的连贯性下降,因为它可能过度惩罚那些对句子结构至关重要的 token

例如:谓语 不让他在句子中出现 就很难描述一个东西。

实现方法:
频率惩罚(Frequency Penalty) 和 存在性惩罚(Presence Penalty)。两者通过从 logits 中减去一定数值来施加惩罚,
重复惩罚则通过缩放 logits 实现

惩罚方法可以与 Top-P 和/或 Top-K 采样并行使用。结合采样方法后,LLM 能够生成更具多样性和创意的句子。

标签:采样,惩罚,--,Top,37,TopP,token,概率,生成
From: https://www.cnblogs.com/cavalier-chen/p/18620726

相关文章

  • 老生常谈——分布式限流:部分Sentinal源码解读
    基础知识HTTPCODE=429“请求过多”A.限流的类型服务端客户端限流的标的IP用户...基本要求准确限制过量的请求。低延时。限流器不能拖慢HTTP响应时间。尽量占用较少的内存。这是一个分布式限流器,可以在多个服务器或者进程之间共享。......
  • 平替兼容MFRC523|国产13.56MHz智能门锁NFC读卡芯片KYN523
    NFC是一种非接触式识别和互联技术,可以在移动设备、消费类电子产品等设备间进行近距离无线通信。通过NFC可实现数据传输、移动支付等功能。KYN523是一款高度集成的工作在13.56MHZ下的非接触读写器芯片,支持符合ISO/IEC14443TypeA、ISO/IEC14443TypeB协议的非接触读写器模......
  • OAuth2.0中刷新令牌(Refresh Token)的作用
    来着ChatGPT:1.为什么需要刷新令牌?访问令牌的短有效期:访问令牌(AccessToken)通常设置短有效期(例如几分钟到几小时),以减少令牌被盗用后产生的安全风险。令牌过期后,客户端需要一种方式重新获取新的访问令牌,以继续访问受保护资源。避免频繁授权:如果每次访问令牌过期后都需要......
  • 【SI152笔记】part1:方程与优化
    SI152:NumericalOptimizationLec1.OptimizationThreeelementsofanoptimizationproblem:Objective(目标),Variables(变量),Constraints(约束条件).\[\textbf{Objective}:\min_{x\in\mathbb{R}^n}f(x)\\\textbf{Variables}:x\\\textbf{Constraints}......
  • MediaWIKI 1.42 2024 教程系列 — 安装MediaWIKI
    背景对于新手来说,网上多数教程并不完善,也没有针对新版本更新教程。在安装过程中遇到很多类似的问题,也翻阅很多资料才得以解决。为了总结经验,给更多人提供帮助,同时避免走弯路,于是决定编写一篇Mediawiki系列文章。前言1.选型:开源免费的WIKI,主要有MediaWiki,Xwiki,JsWIKI等。如......
  • 2024-12-21:从魔法师身上吸取的最大能量。用go语言,在一个神秘的地牢里,有 n 名魔法师排
    2024-12-21:从魔法师身上吸取的最大能量。用go语言,在一个神秘的地牢里,有n名魔法师排成一列。每位魔法师都有一个能量属性,有的提供正能量,而有的则会消耗你的能量。你被施加了一种诅咒,吸收来自第i位魔法师的能量后,你会立即被传送到第(i+k)位魔法师。在这个过程中,你会不断进......
  • 莫比乌斯反演学习笔记
    前置知识一、整除分块即按照\(\lfloor\frac{n}{i}\rfloor\)的值域进行分块,块数$\leq\lfloor2\sqrtn\rfloor$。分$i\leq\lfloor\sqrtn\rfloor$,$i>\lfloor\sqrtn\rfloor$讨论。\(i\)所在块的右端点为$\lfloor\frac{n}{\lfloor\frac{n}{i}\rfl......
  • 关于分布式锁的的思考
    关于分布式锁的的思考结论先行:对于分布式锁我们在考虑不同方案的时候需要先思考需要的效果是什么?为了效率(efficiency),协调各个客户端避免做重复的工作。即使锁偶尔失效了,只是可能把某些操作多做一遍而已,不会产生其它的不良后果。比如重复发送了一封同样的email(当然这取决于......
  • 【恶意软件检测-CCFA文章】SDAC:使用基于语义距离的 API 集群进行 Android 恶意软件检
    ​SDAC:使用基于语义距离的API集群进行Android恶意软件检测的慢老化解决方案摘要提出了一种名为SDAC的新型缓慢老化解决方案,用于解决Android恶意软件检测中的模型老化问题,该问题是由于在恶意软件检测过程中未能适应Android规范的变化所致。与现有解决方案中的检测模......
  • 深度学习——模型过拟合和欠拟合的原因及解决方法
    一、定义1.过拟合(Overfitting)过拟合是指模型在训练数据上表现非常好,但在测试数据或新的数据上表现很差的现象。模型过度地学习了训练数据中的细节和噪声,以至于它无法很好地泛化到未见过的数据。例如,在一个图像分类任务中,过拟合的模型可能对训练集中的每一张图像的特定细......