深入理解大语言模型中的超参数:Temperature、Top-p 与更多

随着大语言模型(LLM)如 GPT、Claude、Gemini 的广泛应用,调优生成文本的质量与风格成为开发者和研究人员的重要课题。其中,超参数(Hyperparameters)如 temperaturetop_p 扮演了核心角色,影响着生成文本的创造性、确定性与一致性。

1. Temperature — 随机性的调控器

temperature 是控制模型输出概率分布的温度系数,直接作用于 softmax 函数的 logits:

  • 低 temperature(如 0.2) → 分布更尖锐,模型更"自信",更倾向选择最高概率的词,生成更确定、重复性强的文本。

  • 高 temperature(如 1.2) → 分布更平坦,模型更"犹豫",更愿意尝试低概率词,生成更发散、多样性更强的内容。

例子:不同 temperature 下模型行为对比

假设模型在某位置预测三个词的原始 logits:

logits = [2.0, 1.0, 0.5]  # 对应词:"the", "a", "cat"

我们分别用不同 temperature 调整这些 logits:

import numpy as npdef softmax(x):e_x = np.exp(x - np.max(x))return e_x / e_x.sum()def apply_temperature(logits, temperature):adjusted = np.array(logits) / temperaturereturn softmax(adjusted)print("T=0.5", apply_temperature(logits, 0.5))
print("T=1.0", apply_temperature(logits, 1.0))
print("T=2.0", apply_temperature(logits, 2.0))

输出结果:

T=0.5 [0.82, 0.15, 0.03]
T=1.0 [0.59, 0.32, 0.09]
T=2.0 [0.44, 0.33, 0.23]

温度越低,最大概率的词越可能被选中;温度越高,其他词被选中的机会增大。

2. Top-p (Nucleus Sampling) — 概率质量控制器

top_p 又称 nucleus sampling,它不是看词的个数,而是选择累计概率大于等于 p 的最小集合,再从中随机采样。与 top_k(固定保留前 k 个词)相比,top_p 更动态、更智能。

示例说明:

假设 softmax 后的词概率排序如下:

TokenProb
the0.40
a0.25
dog0.15
cat0.10
fish0.05
moon0.03
blue0.02

top_p = 0.9,模型会选择:["the", "a", "dog", "cat"],因为它们的累计概率已達到 0.9。

随后,模型将在这 4 个词中,按照归一化后的概率随机采样。

3. 其它重要超参数

参数名功能
top_k保留前 k 个概率最高的词
max_tokens控制输出最大 token 数量
repetition_penalty惩罚重复出现的词,避免机械重复
presence_penalty惩罚已经出现过的词,促进新意
frequency_penalty基于词频惩罚高频词,鼓励用词丰富
stop指定停止生成的标记

实战建议:如何调参?

  • 创造性写作

    • temperature=0.9, top_p=0.95 或更高,鼓励模型发散

  • 摘要 / 回答问题

    • temperature=0.3-0.7, top_p=0.8,结果更确定

  • 代码生成

    • temperature=0.1-0.3, 关闭 top_p 或设低值,避免胡言乱语

可视化采样过程(可选代码)

你可以运行如下代码来观察不同 temperature 下的采样频率:

import matplotlib.pyplot as plt
import seaborn as snsdef sample_with_temperature(logits, temperature, num_samples=1000):probs = softmax(np.array(logits) / temperature)samples = np.random.choice(["the", "a", "cat"], size=num_samples, p=probs)return {word: (samples == word).sum() for word in set(samples)}for T in [0.5, 1.0, 2.0]:counts = sample_with_temperature([2.0, 1.0, 0.5], T)sns.barplot(x=list(counts.keys()), y=list(counts.values()))plt.title(f"Temperature = {T}")plt.show()

总结

大语言模型中的采样超参数为我们提供了调控输出风格的强大杠杆。

  • temperature 控制整体的“随机性”与分布形状;

  • top_p 控制输出候选词的“概率覆盖范围”;

  • 合理使用其他参数如 repetition_penalty, stop, max_tokens 等可以进一步提升生成质量。

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

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

相关文章

译码器Multisim电路仿真汇总——硬件工程师笔记

目录 74LS实现二线三线译码器 1 74LS139D和74LS138D基础知识 1.1 74LS139D 二线四线译码器 1.1.1 功能特点 1.1.2 引脚功能 1.1.3 工作原理 1.1.4 应用场景 1.1.5 使用方法 1.1.6 注意事项 1.6.7 逻辑真值表 1.2 74LS138D 3线8线译码器 1.2.1 功能特点 1.2.2 引脚…

国产 OFD 标准公文软件数科 OFD 阅读器:OFD/PDF 双格式支持,公务办公必备

各位办公软件小达人们,今天咱来聊聊数科OFD阅读器! 软件下载地址安装包 这软件啊,是基于咱国家自主OFD标准的版式阅读软件,主要用来阅读和处理OFD/PDF电子文件,还能用于公务应用扩展。它支持打开和浏览OFD/PDF格式的文…

vue中的toRef

在 Vue 中, toRef 函数用于将响应式对象的属性转换为一个独立的 ref 对象,同时保持与原始属性的关联。其参数格式及用法如下: toRef 的参数说明 1. 参数 1:源对象(必须) - 类型: Object &…

暖通锅炉的智能管控:物联网实现节能又舒适​

暖通锅炉系统在建筑供暖、工业供热等领域扮演着重要角色,其运行效率和能源消耗直接关系到用户的使用体验和成本支出。传统的暖通锅炉管理方式往往依赖人工操作和经验判断,存在能耗高、调节不灵活、舒适性差等问题。随着物联网技术的发展,暖通…

PHP:从入门到进阶的全面指南

PHP(Hypertext Preprocessor)作为一种广泛使用的开源脚本语言,尤其适用于 Web 开发并可嵌入 HTML 中。自诞生以来,PHP 凭借其简单易学、功能强大以及丰富的生态系统,成为了众多网站和 Web 应用程序开发的首选语言之一。…

EXCEL 基础函数

1、绝对引用、相对引用 1.1相对引用 相对引用,这是最常见的引用方式。复制单元格公式时,公式随着引用单元格的位置变化而变化 例如在单元格内输入sum(B2:C2),然后下拉填充柄复制公式。 可以看到每个单元格的公式不会保持sum(B2:C2)&#…

升级到MySQL 8.4,MySQL启动报错:io_setup() failed with EAGAIN

在升级到MySQL 8.4后,许多用户在启动数据库时遇到了一种常见错误:“io_setup() failed with EAGAIN”。本文将深入探讨该错误的原因,并提供详细的解决方案。错误分析错误描述当你启动MySQL时,可能会在日志文件中看到以下错误信息&…

【ECharts Y 轴标签优化实战:从密集到稀疏的美观之路】

ECharts Y 轴标签优化实战:从密集到稀疏的美观之路 📋 文章背景 在开发数据可视化模块时,我们遇到了一个常见但棘手的图表显示问题:ECharts 图表的 Y 轴标签过于密集,影响了用户体验和数据的可读性。本文将详细记录整个…

【锂电池剩余寿命预测】GRU门控循环单元锂电池剩余寿命预测(Pytorch完整源码和数据)

目录 效果一览程序获取程序内容代码分享效果一览 程序获取 获取方式一:文章顶部资源处直接下载:【锂电池剩余寿命预测】GRU门控循环单元锂电池剩余寿命预测(Pytorch完整源码和数据) 获取方式二:订阅电池建模专栏获取电池系列更多文件。 程序内容 1.【锂电池剩余寿命预测…

Minstrel:多智能体协作生成结构化 LangGPT 提示词

一、项目概述 Minstrel 是一个基于 LangGPT 框架的多智能体系统,自动生成结构化、人格化的提示词。它通过多个协作代理,提升提示词的准确性、多样性和灵活性,适合非 AI 专家使用 (github.com)。 二、问题动机 当前 LLM 提示设计经验依赖强…

Golang发送定时邮件

前面尝试过用Python来发送邮件,下面测试一下Golang如何发送邮件 需要使用三方库如下 1.安装github.com/jordan-wright/email go get github.com/jordan-wright/email安装完成之后代码如下 package mainimport ("github.com/jordan-wright/email""log""…

CodeSys的软PLC忘记了用户名和密码怎么办

Codesys的win v3 x64软PLC忘记用户名和密码怎么办 概述检查文件成功 概述 我曾经多次在运行了软PLC后忘记了自己的用户名和密码。有些是回忆起来了,但有些真的想不起来了。没有办法后来是重新装的CodeSys。这次从网上看到大佬写的文章,试了一下&#xf…

【论文】微服务架构下分布式事务一致性解决方案设计与实践

摘要 2022年3月至2023年6月,我作为首席架构师主导完成了某大型电商平台订单系统的微服务化改造项目。该项目日均处理订单量达300万笔,旨在解决原有单体架构在业务高峰期出现的性能瓶颈和事务一致性问题。本文重点论述在微服务架构下,如何通过Saga事务模式、事件溯源和最终一…

Matplotlib 安装部署与版本兼容问题解决方案(pyCharm)

引言 Matplotlib 是 Python 中最常用的可视化库之一,它是一个综合性的绘图库,能够创建静态的、动画的和可交互的可视化图形图像,能够创建折线图、散点图,还是复杂的热力图、3D 绘图等 matplotlib官网地址:https://ma…

《设计模式之禅》笔记摘录 - 4.抽象工厂模式

抽象工厂模式的定义 抽象工厂模式(Abstract Factory Pattern)是一种比较常用的模式,其定义如下: Provide an interface for creating families of related or dependent objects without specifying ir concrete classes.(为创建一组相关或…

python-注释

文章目录 单行注释多行注释使用多个 # 符号使用三引号( 或 """) 特殊注释Shebang(Unix/Linux 脚本声明)编码声明(Python 2 需要)文档字符串(Docstring) 在 Python 中…

YOLO11推理模式:极速高效的目标检测新选择

一、引言 在机器学习和计算机视觉领域,模型的推理(Inference)是应用阶段的核心。Ultralytics 最新发布的 YOLO11 模型,凭借其强大的predict模式,在保证准确率的同时,极大提升了推理速度和多样数据源兼容能…

如何创建基于 TypeScript 的 React 项目

React 是一个用于构建用户界面的强大 JavaScript 库。结合 TypeScript,您可以获得类型安全和更好的开发体验。本文将详细介绍如何从头开始创建一个基于 TypeScript 的 React 项目。 1. 为什么选择 TypeScript? 在深入创建项目之前,我们先了解…

Adobe LiveCycle Designer 中脚本的层级关系

以下是Adobe LiveCycle Designer脚本体系的层级关系对比分析,结合执行时机、作用域、交互规则及典型应用场景进行系统性说明: 1. 脚本体系层级关系总览 #mermaid-svg-4ZAgQFvRk9BQdPuM {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:…

在汽车中实现时间敏感网络(TSN)

随着车内以太网应用的不断扩展,精确的时间同步与可靠的数据传输变得至关重要。IEEE 802.1AS™ 提供了亚微秒级的高精度时间同步能力,这一特性将在未来汽车通信系统中发挥关键作用。 此外,其他 IEEE 标准和 TSN 技术共同支持在整个车辆范围内实现安全、超高可靠性、低延迟有…