简单理解机器学习中top_k、top_p、temperature三个参数的作用

devtools/2025/3/29 0:06:27/

AI系列文章:
AWS AI认证考试中经常提及几个重要的工具介绍

简单理解机器学习中top_k、top_p、temperature三个参数的作用

用Deepseek + Kimi 快速生成高质量的ppt

机器学习中,top_k、top_p 和 temperature 是用于控制生成模型(如语言模型)输出质量的参数,尤其在文本生成任务中常见。然而,网上文章很多很全,但大多晦涩难懂,今天我们来用最简单的语言谈谈它们的具体作用:

1. 点菜式筛选法:top_k参数

英文全称:top-k

中文名称:前k个

具体意义:

top_k参数就像是你在餐厅点菜时,服务员只给你推荐菜单上前k名的招牌菜。在AI文本生成中,top_k参数用于限制模型在每个词生成时考虑的候选词数量。当设置top_k=n时,模型会从预测概率最高的n个词中随机挑选一个作为下一个生成的词。

举例说明:

假设我们要让AI续写“举头望明月”,如果设置top_k=3,AI可能会从以下候选词中选择一个:

低头思故乡(概率58%)

对影成三人(概率27%)

疑似地上霜(概率10%)

这时,AI生成的句子很可能是“举头望明月,低头思故乡”,既符合语境又经典。但如果设置top_k=50,就可能出现一些意想不到的组合,比如“举头望明月,外卖还没到”,这样的句子虽然有趣,但可能并不符合我们的预期。

2. 智能购物车模式:top_p参数

英文全称:top-p(有时也被称为Nucleus Sampling,即核采样)

中文名称:前p%

具体意义:

top_p参数则更像是你在超市购物时,设定了一个预算上限。当购物车里的商品总价达到这个上限时,你就停止购物。在AI文本生成中,top_p参数用于限制模型考虑的候选词的累积概率。当设置top_p=p时,模型会选取累积概率达到p%的候选词作为可选范围,然后从中随机挑选一个。

举例说明:

假设我们要让AI续写“人工智能将”,如果设置top_p=0.9,AI可能会从以下候选词中选择:

改变世界(45%)

引领未来(30%)

替代人类(15%)

帮我写作业(10%)

做蛋炒饭(5%)

这时,AI会考虑累积概率达到90%的候选词,即前四个词,并自动过滤掉“做蛋炒饭”这种低概率且不太相关的词。最终生成的句子可能是“人工智能将改变世界,引领未来”,既专业又合理。

3. 创意温度计:temperature参数

具体意义:

temperature参数就像是你调节火锅火力的开关。低温时,火锅清汤寡水,味道保守;高温时,火锅麻辣鲜香,味道多变。在AI文本生成中,temperature参数用于控制模型生成文本的随机性。低温值使模型生成更保守、更确定的文本;高温值则使模型生成更随机、更多样化的文本。

举例说明:

低温(0.2):生成如“床前明月光,疑是地上霜”这种稳妥诗句,适合写公文或正式文件。

中温(0.7):可能产出如“月光洒键盘,代码写成诗”的跨界组合,适合写广告文案或创意写作。

高温(1.2):会创造如“明月照冰箱,剩菜在发光”的神奇脑洞,适合写玄幻小说或进行脑暴创意。

参数组合实战案例

生成情人节文案:

保守方案:top_p=0.8 + temperature=0.3 → 生成如“你是我心中的日月星辰,永远照亮我前行的路”这样稳妥而深情的文案。

创意方案:top_k=20 + temperature=0.9 → 生成如“我们的爱情,就像WiFi满格,无论走到哪里都不断线”这样富有创意的比喻。

脑洞方案:top_p=0.95 + temperature=1.5 → 生成如“在平行宇宙的咖啡厅,我点了杯加糖的量子纠缠,只为与你共享这份跨越时空的甜蜜”这样充满奇幻色彩的文案。

综合使用:找到生成文本的完美平衡

在实际应用中,我们通常会结合使用这三个参数,以找到生成文本的完美平衡。比如:

对于学术论文或技术文档的生成,可以设置较低的top_k(如5)、top_p(如0.8)和temperature(如0.2),以确保生成内容严谨、逻辑性强。

对于创意写作或诗歌生成,则可以设置较高的top_k(如50)、top_p(如0.9)和temperature(如1.2),以生成内容丰富多彩、富有诗意的文本。

总结

top_k: 限制候选词数量,提升文本质量。

top_p: 动态调整候选词集,平衡质量与多样性,想创意高点,top_p就大点。

temperature: 控制生成文本的随机性,影响文本的确定性与多样性。温度高就多样性高,确定性低。


http://www.ppmy.cn/devtools/171283.html

相关文章

腾讯云智面试1.0

以下是针对腾讯云智系统测试岗位校招面试问题的详细解答,结合测试开发所需的技术理解与实践经验: 1. Selenium底层原理 回答要点: 架构模式:基于Client-Server模型,通过WebDriver协议(JSON Wire Protocol…

Java学习总结-Map集合的实现类

HashMap集合的底层原理 实际上:原来学的Set系列集合的底层就是基于Map实现的,只是Set集合中的元素只要键数据,不要值数据。 哈希表: JDK8之前,哈希表 数组 链表; JDK8开始,哈希表 数组 …

第30周Java分布式入门 ThreadLocal

ThreadLocal 课程笔记 一、章节结构概述 本章主要学习重要的工具类 ThreadLocal。章节分为六大模块: ThreadLocal 的两大使用场景ThreadLocal 所带来的好处ThreadLocal 的主要方法及使用顺序ThreadLocal 原理源码分析使用 ThreadLocal 的注意点和使用规范 从下一…

Linux学习笔记(应用篇二)

基于I.MX6ULL.MINI开发板 开发板与电脑相互通信电脑与开发板互传文件 开发板与电脑相互通信 用网线将电脑与开发板连接 本人使用的是Ubuntu系统,不是虚拟机 一般来说刚开始电脑和开发板是ping不通的 首先查看电脑的 IP WinR,cmd调出终端 我使用的是…

centos 7 部署FTP 服务用shell 搭建脚本,使用时稍微修改自己所需需求

#!/bin/bash # 检查是否为 root 用户 if [ "$(id -u)" ! "0" ]; then echo "此脚本需要以 root 用户身份运行。" exit 1 fi # 安装 vsftpd yum install vsftpd -y # 备份原始配置文件 cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd…

ngx_http_core_location

定义在 src\http\ngx_http_core_module.c static char * ngx_http_core_location(ngx_conf_t *cf, ngx_command_t *cmd, void *dummy) {char *rv;u_char *mod;size_t len;ngx_str_t *value, *n…

DeepSeek 协程API 调用与 vllm推理,llamafactory本地vllm部署

文章目录 简介代码实战调用官方API协程异步调用异步协程 方法二 vllm_infer 简介 使用协程调用DeepSeek的API,发现效果并不明显,没有加速的效果。 但如是本地部署DeepSeek,本地部署需要支持异步调用,我使用 llamafactory 部署&am…

leetcode 之(移除元素)

给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不等于 val 的元素数量为 k,要通过此题,您需要执行以下操作: 更改…