当前位置: 首页 > news >正文

Huggingface的GenerationConfig 中的top_k与top_p详细解读

Huggingface的GenerationConfig 中的top_k与top_p详细解读

  • Top_k
  • Top_p
  • 联合共用

Top_k

top-k是指只保留概率最高的前k个单词,然后基于剩余单词的概率进行归一化,从中随机抽取一个单词作为最终输出。这种方法可以限制输出序列的长度,并仍然保持样本的一定多样性。

举个例子,在使用语言模型生成「这个周末天气很」的句子时,top-k保留概率最高的三个单词为「好」「热」「冷」,此时将剩余单词进行概率归一化,把它们的概率设定为0,之后在三个保留的单词中随机选择一个,比如选择了「好」后,这个句子就变成了「这个周末天气很好」。这个过程可以反复进行,直到生成的句子已经满足需要。

通过使用top-k,我们可以限制输出序列的长度,并尽可能地保持语句的一定多样性,同时控制结果的生成质量。需要注意的是,取值过小会导致结果过于随机,而过大可能会限制生成的单词种类和多样性,这个超参的设定需要根据任务需求和经验进行调整。

Top_p

top-p是一种用于在文本生成中控制输出的策略。top-p算法保留累计概率之和达到一个给定阈值p的概率分布中的词汇,然后在这个分布中进行随机采样,从而生成一个单词。

举一个例子,假设我们选择的p值为0.8,然后通过语言模型预测下一个单词。假设根据模型,我们得到了10个可选单词,它们分别具有不同的概率分布。下面是假设的10个单词和它们的概率:

  • 单词1: 0.25
  • 单词2: 0.20
  • 单词3: 0.15
  • 单词4: 0.1
  • 单词5: 0.07
  • 单词6: 0.06
  • 单词7: 0.05
  • 单词8: 0.04
  • 单词9: 0.03
  • 单词10: 0.01

根据top-p算法,我们会按照概率从大到小的顺序,逐个累加单词的概率,直到累计概率达到0.8。上面10个单词累计概率为:

  • 单词1: 0.25
  • 单词1+单词2: 0.45
  • 单词1+单词2+单词3: 0.60
  • 单词1+单词2+单词3+单词4: 0.70
  • 单词1+单词2+单词3+单词4+单词5: 0.77
  • 单词1+单词2+单词3+单词4+单词5+单词6: 0.83

累加到单词6时,累计概率已经达到了0.83,因此我们会从这6个单词中进行随机抽样,以选择最终的输出。

top-p算法可以控制输出单词的多样性,因为它可以保留给定阈值下的累计概率的单词。如果阈值设置的比较小,如0.3,则选择的单词就更少,结果可能不够多样化;如果阈值设置的比较大,如0.9,则选择的单词就更多,结果可能会过于随机。因此,选择一个合适的阈值需要结合任务需求和实际情况进行测试和调整。

联合共用

假设我们要生成一个关于水果的简短文本,我们的模型输出了以下10个单词和它们的概率分别是:

  • 苹果:0.2
  • 橙子:0.2
  • 香蕉:0.1
  • 葡萄:0.1
  • 草莓:0.1
  • 芒果:0.1
  • 桃子:0.05
  • 菠萝:0.05
  • 柚子:0.04
  • 火龙果:0.03

我们想要生成多样性的语句,那么可以在top-k和top-p的约束下进行采样,下面来具体说明。

首先,我们可以设置top-k为5,表示保留概率最高的5个单词。这样就会保留苹果、橙子、香蕉、葡萄和草莓这5个单词,并去掉其他单词,也就是

  • 苹果:0.2
  • 橙子:0.2
  • 香蕉:0.1
  • 葡萄:0.1
  • 草莓:0.1

接下来,我们可以使用top-p的方法,保留概率的累计和达到0.9的单词,也就是选取橙子、苹果、草莓三种水果。我们对这三种水果重新进行归一化,概率分别为:

  • 苹果:0.4
  • 橙子:0.4
  • 草莓:0.2

接着,我们可以从上述分布中进行随机采样,选取一个单词作为最终的生成结果。最终生成的水果可能是苹果或橙子或草莓,并且橙子和苹果的概率要比草莓的概率高一些,因为它们的概率更大。

从这个例子可以看出,top-k和top-p可以结合使用,确保我们生成的语句既具有多样性,又具有合理性,同时可以吸引读者的注意力。在不同的任务和需求中,我们可以根据实际情况来调节参数,从而得到更好的输出结果。

相关文章:

Huggingface的GenerationConfig 中的top_k与top_p详细解读

Huggingface的GenerationConfig 中的top_k与top_p详细解读 Top_kTop_p联合共用 Top_k top-k是指只保留概率最高的前k个单词,然后基于剩余单词的概率进行归一化,从中随机抽取一个单词作为最终输出。这种方法可以限制输出序列的长度,并仍然保持…...

学生信息管理系统简易版(文件读写操作)

功能模块 具体功能如下: 添加学生信息修改学生信息(按学号)排序(分别按总分升序、降序、以及按姓名升序)查找学生(按学号)删除学生查看所有学生信息 数据结构体设计 本表设计一个学生信息的结…...

C/C++每日一练(20230426)

目录 1. 不喜欢带钱的小C 🌟🌟 2. 数组排序 ※ 3. 超级素数 ※ 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 不喜欢带钱的小C 小C不喜欢带钱&#xff0c…...

halcon灰度积分投影/垂直积分投影

简介:关于灰度投影积分可以用到的场合很多,例如分割字符,分割尺子上的刻度等,适用于有规律的变化这些内容的检测。本文复现了论文《基于深度学习和灰度纹理特征的铁路接触网绝缘子状态检测》中灰度积分投影实现了对绝缘子缺陷位置的检测。见(图1)灰度积分垂直方向投影获得…...

Unity打包的apk在安卓4.4.2盒子上碰到的问题

项目场景: Unity开发的项目需要在安卓4.4.2盒子上运行。 问题描述 1、会出"从顶部向下滑动即可退出全屏模式。"的弹框,这是android4.4的一个特性,叫做沉浸模式(Full-screen Immersive Mode),当app启用该模…...

docker的简单使用(centos7中为例)

安装: yum -y install docker 启动: service start docker 搜索镜像: docker search centos:7.9 下载镜像: docker pull docker.io/18703283952/mycentos 查看所有镜像: docker images 启动并进入镜像&#xff1a…...

Stable Diffusion人工智能图像合成

AI 图像生成大有来头。新发布的开源图像合成模型称为Stable Diffusion,它允许任何拥有 PC 和像样的 GPU 的人想象出他们能想象到的几乎任何视觉现实。它几乎可以模仿任何视觉风格,如果你给它输入一个描述性的短语,结果就会像魔术一样出现在你…...

【Java EE】-CSS详解

作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【JavaEE】 分享: 且视他人如盏盏鬼火,大胆地去走你的道路。——史铁生《病隙碎笔》 主要内容:CSS引入html的三种方式,CSS八大选择器&#xff…...

C#_语言简介

目录 1. C# 简介 2. Visual Studio 窗口界面显示 1. C# 简介 什么是程序? 程序(Program)简单来说就是: 计算机是无法听懂我们人类的语言的,也可以说我们通过我们日常交流的语言是无法控制计算机的,计算机…...

【Python_Opencv图像处理框架】直方图与傅里叶变换

写在前面 本篇文章是opencv学习的第五篇文章,主要讲解了直方图与傅里叶变换的有关操作,作为初学者,我尽己所能,但仍会存在疏漏的地方,希望各位看官不吝指正🥰 写在中间 一、直方图 ( 1 &…...

Know-Evolve: Deep Temporal Reasoning for Dynamic Knowledge Graphs

Know-Evolve: Deep Temporal Reasoning for Dynamic Knowledge Graphs Rakshit Trivedi 1 Hanjun Dai 1 Yichen Wang 1 Le Song 1 知识背景 Temporal Knowledge Graph : facts occur,recur or evolve over time in these graphs,and each edge in the graphs have temporal …...

电脑高效率工作、学习工具软件推荐

本文介绍在学习、工作时,实测很好用、明显提高工作效率的几个免费电脑软件与小工具。 1 Microsoft To Do 官方网站:https://todo.microsoft.com/tasks/ Microsoft To Do是一款由Microsoft公司开发的待办事项管理应用程序。它提供了一个简单易用的界面&a…...

Java8新特性函数式编程 - Lambda、Stream流、Optional

1.Lambda表达式 1.1 概述 ​ Lambda是JDK8中一个语法糖。他可以对某些匿名内部类的写法进行简化。它是函数式编程思想的一个重要体现。让我们不用关注是什么对象。而是更关注我们对数据进行了什么操作。 1.2 核心原则 可推导可省略 1.3 基本格式 (参数列表)->{代码}例一…...

AutoGPT安装教程

最近安装AutoGPT时遇到了一些问题,写下这篇文章记录一下 1 下载AutoGPT AutoGPT链接:https://github.com/Significant-Gravitas/Auto-GPT/tree/v0.2.2 下载AutoGPT 推荐下载stable 版本 2 申请openai 的api key 获取api的key,这里就不介…...

轻量级服务器nginx:负载均衡

负载均衡就是让每个设备,以同样的概率,处理用户对于服务器的任务请求,默认采用的负载调度策略就是轮流询问,Nginx作为反向代理服务器安装在服务端,Nginx的功能就是把请求转发给后面的应用服务器. 这里写目录标题 一 负…...

陶渊明最有名的10首诗,闲适美好

他是中国第一位田园诗人,被誉为“古今隐逸诗人之宗”、“田园诗派之鼻祖”。 他是诗人、辞赋家、散文家。 他是陶渊明。 欧阳修:晋无文章,唯陶渊明《归去来兮辞》。 陶渊明不为五斗米折腰,挂冠而去,给后世留下一段…...

最好用的六款虚拟机软件,赶紧收藏

在日常工作和学习中,我们常常需要在一台电脑上运行多个操作系统,以便进行软件测试、开发、学习以及实验等任务。虚拟机软件就是一种崭新的技术,它可以在一台电脑上运行多个操作系统,为用户提供了更高效、安全、稳定和智能化的工作和学习环境。今天我为大家介绍6款优秀的虚拟…...

LSSANet:一种用于肺结节检测的长、短切片感知网络

文章目录 LSSANet: A Long Short Slice-Aware Network for Pulmonary Nodule Detection摘要方法Long Short Slice GroupingLong Short Slice-Aware Network 实验结果 LSSANet: A Long Short Slice-Aware Network for Pulmonary Nodule Detection 摘要 提出了一个长短片感知网…...

LVS负载均衡群集部署—NAT

目录 一、群集的概述1、群集的含义2、出现高并发的解决方法3、群集的三种分类3.1负载均衡群集3.2高可用群集3.3高性能运算群集 4、负载均衡的结构 三、LVS调度器用的调度方法四、LVS的工作模式及其工作过程1.NAT模式(VS-NAT)2.直接路由模式(V…...

【Access】win 10 / win 11:Access 下载、安装、使用教程(「管理信息系统」实践专用软件)

目录 一、前言 二、卸载 Office 三、下载 Office Tool Plus 四、安装 Office(内含 Access) (1)启动 Office Tool Plus (2)部署 (3)安装 Office(内含 Access&#…...

Taotoken控制台提供的API Key管理与访问控制功能详解

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken控制台提供的API Key管理与访问控制功能详解 对于团队管理者或项目负责人而言,如何安全、高效地分发和管理大模…...

RISC-V RTOS任务栈与上下文切换:寄存器保存策略与栈初始化详解

1. 项目概述与核心问题上一篇文章我们聊了RISC-V内核单片机移植RTOS时,任务切换的“开关”——中断与异常机制是如何工作的。今天,我们顺着这个思路,深入到最核心的“现场保护”环节:当一个任务被切换出去时,它的“工作…...

2026年降AI工具万方检测专项测试:五款工具万方AIGC检测通过率完整横评

2026年降AI工具万方检测专项测试:五款工具万方AIGC检测通过率完整横评 选工具之前做了一周功课,试用了三款,最后定了嘎嘎降AI(www.aigcleaner.com)。 4.8元,知网AI率从61%降到了5.3%,达标率99…...

负载型聚丙烯酰胺PAM水凝胶:构筑多功能智能材料的新范式

名称:负载型聚丙烯酰胺(PAM)水凝胶 负载型聚丙烯酰胺(PAM)水凝胶作为一种先进的功能高分子材料,正以其独特的网络结构和可调控的物理化学性质,在环境治理、生物医药及智能传感等领域展现出巨大的…...

告别手写解析!用Python Cantools 39.4.5一键生成CAN/CANFD DBC的C代码(附批处理脚本)

从DBC到C代码:Python Cantools全自动转换实战指南 在汽车电子和嵌入式开发领域,CAN总线通信是核心基础设施,而DBC文件则是定义CAN/CANFD通信协议的行业标准。传统开发流程中,工程师需要手动解析DBC文件并编写大量信号打包/解包代码…...

科研学术篇---文献引用格式

面对五花八门的引用格式,你只需要记住一个核心:不同的学科,就像不同的“方言区”,各自有一套约定俗成的引用“语法”。学会识别和使用它们,是学术写作的基本功。下面通俗地介绍最常见的几种格式,帮你一眼看…...

全息三维空间孪生,全域无感精准智位:数字孪生·视频孪生·无感定位 行业地位核心优势

在全域空间数字化、实景虚实融合与空间智能快速演进的产业周期中,镜像视界(浙江)科技有限公司持续深耕视频原生三维重构、时空AI像素解算、全域无感精准定位、跨镜轨迹智能推演底层核心领域,依托八大自主可控核心引擎构筑全栈技术…...

Java WebSocket六种集成方案详解:从JSR 356到Spring生态实战

1. 项目概述最近在折腾一个基于 Spring Cloud 的 WebSocket 集群方案时,我不得不把 Java 生态里那些五花八门的 WebSocket 集成方式都翻了个底朝天。不研究不知道,一个看似简单的 WebSocket,在 Java 世界里竟然有这么多“门派”,从…...

从‘盲猜’到‘先知’:深度解读神经RRT*如何让采样规划拥有‘大局观’

神经RRT*:当路径规划算法学会"思考"的范式革命 在自动驾驶汽车寻找最短路径、无人机规划避障航线的场景中,传统RRT算法就像一位盲人摸象的探险者——它通过随机撒点的方式探索环境,虽然最终能找到出路,却需要耗费大量时…...

为什么顶级策展人不用Google搜文化新闻?Perplexity文化垂直搜索的5层语义增强架构(含可复用prompt工程模板)

更多请点击: https://kaifayun.com 第一章:为什么顶级策展人不用Google搜文化新闻? 顶级策展人并非排斥搜索引擎,而是早已构建起一套高度结构化、语义化、可验证的信息摄取系统——它绕过关键词匹配的偶然性,直击文化…...