找回密码
 立即注册
首页 业界区 业界 万字拆解 LLM 运行机制:Token、上下文与采样参数 ...

万字拆解 LLM 运行机制:Token、上下文与采样参数

村亢 昨天 10:05
在探讨 RAG、Agent 工作流、MCP 协议等复杂架构的过程中,我发现一个非常普遍的现象:很多开发者在构建 Agent 工作流或调优 RAG 检索时,往往会在最底层的 LLM 参数上踩坑。比如,为什么明明设置了温度为 0,结构化输出还是偶尔崩溃?为什么往模型里塞了长文档后,它好像失忆了,忽略了 System Prompt 里的关键指令?
万丈高楼平地起。 如果不搞懂底层 LLM 吞吐数据的基本原理,再高级的设计模式在生产环境中也会变得脆弱不堪。
因此,有了这篇基础扫盲文章。我们将暂时放下顶层的架构设计,回到一切的起点。大模型没有魔法,底层只有纯粹的数学与工程。接下来,我们将扒开 LLM 的黑盒,把日常调用 API 时遇到的 Token、上下文窗口、Temperature 等高频词汇,还原为清晰、可控的工程概念。通过本文你将搞懂:

  • 大模型(LLM)到底在做什么?
  • ⭐ Token 是什么?为什么中文和英文的 Token 消耗不同?
  • ⭐ 上下文窗口是什么?为什么会有上限?
  • ⭐ Temperature、Top-p、Top-k 等采样参数如何影响输出?
  • 如何做 Token 预算?输入输出如何计费?
⭐️AI 应用开发和 AI Coding 相关的内容目前正在持续更新中:https://javaguide.cn/ai/ 。
1.png

大模型(LLM)到底在做什么

一句话理解大模型

当你在输入法里打“今天天气真”,它会自动建议“好”——大模型做的事情本质上一样,只不过它看的不是前面几个字,而是前面几千甚至几十万个字,且每次只“补”一个 Token(文本碎片),然后把刚补的内容也加入上下文,再预测下一个,如此循环,直到生成完整回答。
这个过程叫做自回归生成(Autoregressive Generation)
理解了这一点,后面所有概念都有了根基:


  • Token:模型每一步“补”的那个文本碎片,就是一个 Token。
  • 上下文窗口:模型在“补”之前能看到的最大文本量。
  • Temperature / Top-p:模型在多个候选碎片中“选哪个”的策略。
  • Max Tokens:你允许模型最多“补”多少步。
有了这个心智模型,我们再逐一展开。
全局概念地图

在深入每个概念之前,先看一张完整的调用流程图,帮你在 30 秒内建立全局认知:
  1. 用户输入
  2.   ↓
  3. [Tokenizer] → Token 序列
  4.   ↓
  5. 塞入上下文窗口(System Prompt + User Prompt + 历史 + RAG 片段)
  6.   ↓                                              ↑
  7. 模型推理(自注意力机制)                    [Embedding + 向量检索]
  8.   ↓                                         从知识库召回相关片段
  9. logits → [Temperature/Top-p/Top-k] → 采样出下一个 Token
  10.   ↓
  11. 重复直到 EOS 或 Max Tokens
  12.   ↓
  13. 结构化输出解析 & 校验
  14.   ↓
  15. 业务消费
复制代码
后续每个小节都能在这张图上找到对应位置。
Token:模型的“阅读单位”

你可以把 Token 理解为“模型的阅读单位”。我们人类读中文是一个字一个字地看,读英文是一个词一个词地看;但模型既不按字、也不按词——它用一套自己的“拆字规则”(叫 Tokenizer)把文本切成大小不等的碎片,每个碎片就是一个 Token。
为什么不直接按字或按词切? 因为模型需要在“词表大小”和“序列长度”之间取平衡:


  • 如果每个汉字都是一个 Token,词表小、但序列长(模型要“补”更多步);
  • 如果每个词都是一个 Token,序列短、但词表会爆炸(中文词组太多了)。
所以实际使用的是一种折中方案——子词切分算法(如 BPE、Unigram),它会把高频词保留为整体,把低频词拆成更小的片段。
<blockquote>
<strong>
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册