news 2026/1/9 4:49:19

大语言模型的词语生成机制:Logits、Softmax 与Sampling详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
大语言模型的词语生成机制:Logits、Softmax 与Sampling详解

大语言模型的词语生成机制:Logits、Softmax 与Sampling详解

大型语言模型(LLM)即使面对相同的提示,也能产生多样、富有创意且有时令人惊讶的输出。这种随机性不是bug,而是模型从概率分布中采样下一个标记的核心特性。本文将解析关键采样策略,并展示温度、top-ktop-p等参数如何影响一致性与创造力之间的平衡。

在本教程中,我们将采用实践方式来理解:

  • 对数如何变成概率
  • 温度、top-ktop-p抽样的工作原理
  • 不同采样策略如何影响模型的下一个token分布

到最后,你会理解LLM推理背后的机制,并能够调整输出的创造力或确定性。

我们开始吧。

概述

本文分为四个部分;它们是:

  • Logits如何转换为概率
  • Temperature温度
  • Top-k抽样
  • Top-p抽样

对数如何成为概率

当你向LLM提问时,它会输出一个logit向量。Logit是模型为词汇中每个可能的下一个词组分配的原始分数。

如果模型的词汇表为𝑉它会输出一个向量𝑉每个下一个词的位置。logit是一个真实的数字。它通过softmax函数转换为概率:


其中𝑥我是令牌的logit我以及𝑝我是对应的概率。Softmax将这些原始分数转换为概率分布。全部𝑝我为正数,且它们的和为1。

假设我们给模型这个提示:

今天的天气真___

模型将词汇中的每个词都视为可能的下一个词。为了简化,假设词汇中只有6个标记:

wonderful cloudy nice hot gloomy delicious

模型为每个令牌生成一个logit。以下是模型可能输出的对数示例集以及基于softmax函数的相应概率:

TokenLogitProbability
wonderful1.20.0457
cloudy2.00.1017
nice3.50.4556
hot3.00.2764
gloomy1.80.0832
delicious1.00.0374

你可以用PyTorch的softmax函数来确认:

importtorchimporttorch.nn.functionalasF vocab=["wonderful","cloudy","nice","hot","gloomy","delicious"]logits=torch.tensor([1.2,2.0,3.5,3.0,1.8,1.0])probs=F.softmax(logits,dim=-1)print(probs)# Output:# tensor([0.0457, 0.1017, 0.4556, 0.2764, 0.0832, 0.0374])

基于此结果,概率最高的代币为“好”。大型语言模型并不总是选择概率最高的令牌;相反,它们从概率分布中抽样,每次都产生不同的输出。在这种情况下,看到“漂亮”的概率是46%。

如果你想让模型给出更有创意的答案,如何改变概率分布,使得“阴云”、“高温”等答案也更频繁地出现?

温度

温度(𝑇)是一个模型推理参数。它不是一个模型参数;它是生成输出的算法中的一个参数。它在应用 softmax 前先对 logit 进行扩展:

你可以预期概率分布会更具确定性,如果𝑇 <1,因为 各值之间的差值𝑥我会被夸大。另一方面,如果𝑇 >1,作为每个值的差值𝑥我将被降低。

现在,让我们可视化温度对概率分布的影响:

importmatplotlib.pyplotaspltimporttorchimporttorch.nn.functionalasF vocab=["wonderful","cloudy","nice","hot","gloomy","delicious"]logits=torch.tensor([1.2,2.0,3.5,3.0,1.8,1.0])# (vocab_size,)scores=logits.unsqueeze(0)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/7 16:21:49

Java反射机制:原理、应用与最佳实践

在Java开发中&#xff0c;反射机制是一项核心且强大的技术&#xff0c;它允许程序在运行时获取类的信息、操作对象的属性和方法&#xff0c;甚至动态创建对象。本文将从原理、应用场景到最佳实践&#xff0c;全面解析Java反射机制&#xff0c;帮助开发者灵活运用这一技术。一、…

作者头像 李华
网站建设 2026/1/8 20:09:24

ReAct+LangGraph:构建大模型智能体的完整指南(含代码示例)

简介 本文详细介绍了如何使用LangGraph框架构建ReAct智能体&#xff0c;分为硬编码和基于大语言模型两种实现方式。ReAct框架通过"推理行动"的循环流程&#xff0c;使智能体能思考并解决问题。LangGraph允许将智能体行为定义为"图"结构&#xff0c;支持复杂…

作者头像 李华
网站建设 2026/1/8 12:51:52

从千问灵光 App 看生成式 UI 技术的发展

本文由体验技术团队OpenTiny项目负责人莫春辉老师原创。 引言 2025 年 11 月 18 日&#xff0c;蚂蚁集团全模态通用 AI 助手——灵光 App 发布&#xff0c;上线两周用户已创建 330 万个闪应用。这一现象级数据的背后&#xff0c;不仅是开发效率的提升&#xff0c;更是人机交互…

作者头像 李华
网站建设 2026/1/7 3:50:03

普通程序员必看:该不该转型AI大模型?收藏这篇少走弯路

前言&#xff1a;AI浪潮下&#xff0c;程序员的转型焦虑与机遇 在程序员的日常交流中&#xff0c;"技术迭代"和"职业转型"永远是绕不开的话题。尤其是2023年以来&#xff0c;GPT-4、文心一言等大模型相继爆发&#xff0c;AI技术从实验室走向产业落地&#…

作者头像 李华
网站建设 2026/1/7 19:12:04

医疗挂号管理系统毕业论文+PPT(附源代码+演示视频)

文章目录医疗挂号管理系统一、项目简介&#xff08;源代码在文末&#xff09;1.运行视频2.&#x1f680; 项目技术栈3.✅ 环境要求说明4.包含的文件列表&#xff08;含论文&#xff09;数据库结构与测试用例系统功能结构后台运行截图项目部署源码下载医疗挂号管理系统 如需其他…

作者头像 李华
网站建设 2025/12/20 8:50:56

实用指南:文献怎么查——高效查找文献的方法与技巧

① WisPaper&#xff08;文献聚类 术语辅助&#xff09; 官网&#xff1a;https://www.wispaper.ai 帮助快速理解陌生领域的核心概念和研究主题。 ② Elicit 自动列出最相关论文和方法&#xff0c;为跨学科快速扫文献提供便利。 ③ Explainpaper 逐段解释论文内容&#xff0c…

作者头像 李华