在前面的文章中我们已经讲过 Transformer、Self-Attention、Encoder、Decoder、Tokenizer、位置编码以及 MLM、CLM、Seq2Seq LM 等训练目标。但是在学习大语言模型时还有一些术语几乎每天都会遇到参数 Token Context Context Length Embedding Logits Softmax Temperature Top-k Top-p如果这些概念没有彻底搞清楚后面学习 GPT、BERT、LLaMA、Qwen、DeepSeek、RAG、微调、推理加速时都会比较吃力。例如我们经常听到这个模型有 7B 参数 上下文长度是 32K tokens 输入会先被 tokenizer 切成 token 模型输出的是 logits不是直接输出文字 temperature 越高生成越随机 top-p 可以控制采样范围这些话看起来很熟悉但如果追问参数到底是什么 Token 和单词有什么区别 Context 是不是等于 prompt Logits 为什么不是概率 Temperature 为什么能控制随机性很多初学者就会混乱。所以这一篇我们专门补一章基础术语把大语言模型从输入到输出的关键概念串起来。一、大语言模型的一次完整生成流程在解释术语之前我们先看一次完整的大模型生成过程。用户输入一句话请解释一下 Transformer 是什么模型不会直接理解这句话的字符串形式。它通常会经历下面几个步骤用户文本 ↓ Tokenizer 分词 ↓ Token IDs ↓ Embedding 向量 ↓ Transformer 网络计算 ↓ Logits ↓ Softmax 得到概率分布 ↓ 根据 temperature / top-k / top-p 采样 ↓ 得到下一个 token id ↓ 转换回文字 ↓ 继续生成下一个 token也就是说大语言模型生成文本的本质是一次又一次预测下一个 token。它不是一次性生成完整答案而是逐 token 生成。例如Transformer 是 一种 基于 注意力 机制 的 神经网络 结构 。模型每一步都在做给定前面的 context预测下一个 token。这就是 GPT 类模型的基本工作方式。二、参数模型真正学到的东西我们经常听到GPT-3 有 175B 参数 LLaMA 有 7B、13B、70B 参数 某个模型是 1.8B 小模型这里的 B 是 billion也就是十亿。例如7B 70 亿参数 13B 130 亿参数 70B 700 亿参数那么参数到底是什么简单来说参数就是神经网络中可以被训练更新的数值。在 Transformer 中参数主要存在于这些地方Embedding 矩阵 Q/K/V 投影矩阵 Attention 输出矩阵 Feed Forward Network 权重 LayerNorm 参数 输出词表映射矩阵例如一个线性层nn.Linear(512, 2048)它内部有一个权重矩阵[2048, 512]也就是大约2048 × 512 1,048,576个权重参数。这些参数一开始通常是随机初始化的。训练过程中模型通过大量文本不断预测 token然后根据预测错误反向传播更新这些参数。所以可以这样理解模型的知识、语言规律、模式识别能力都以参数的形式存储在神经网络权重中。当然这里要注意一点参数多不一定模型就一定强。模型能力还取决于训练数据质量 训练 token 数 模型结构 训练目标 对齐方法 推理策略这也是前面 Scaling Law 和 Chinchilla 文章中强调的问题。三、Token模型真正处理的基本单位用户输入的是自然语言文本但模型不能直接处理字符串。例如我喜欢机器学习。模型不会直接把这句话作为字符串输入神经网络而是先通过 tokenizer 切成 token。可能得到我 喜欢 机器 学习 。也可能得到我 喜欢 机器学习 。具体怎么切取决于 tokenizer。Token 可以理解为模型处理文本的基本单位。它可能是一个字 一个词 一个子词 一个标点 一个空格片段 一个特殊符号例如英文句子I love machine learning.可能被切成I love machine learning .也可能被切成I Ġlove Ġmachine Ġlearning .这里的Ġ可能表示前面有空格。在 BPE、WordPiece、SentencePiece 等 tokenizer 中token 通常不是完整单词而是子词单位。例如unbelievable可能被切成un believ able或者un ##believable这取决于具体 tokenizer。四、Token ID把 token 转成数字模型不能直接处理 token 字符串。所以 tokenizer 会把每个 token 映射成一个数字 id。例如词表中可能有pad → 0 bos → 1 eos → 2 我 → 100 喜欢 → 245 机器 → 381 学习 → 492 。 → 17那么句子我 喜欢 机器 学习 。就会被转换成[100, 245, 381, 492, 17]这就是 token ids。神经网络真正接收的不是文字而是这些数字 id。完整过程是文本 ↓ tokenizer tokens ↓ vocab 映射 token ids例如我喜欢机器学习。 ↓ [我, 喜欢, 机器, 学习, 。] ↓ [100, 245, 381, 492, 17]五、Vocabulary词表是什么词表也叫 vocabulary。它记录了token 和 id 的对应关系可以理解为一个字典{ pad: 0, bos: 1, eos: 2, 我: 100, 喜欢: 245, 机器: 381, 学习: 492 }一般来说一个大语言模型的词表大小可能是32K 50K 100K 150K不同模型的 tokenizer 不同词表也不同。例如BERT 使用 WordPiece GPT 系列常用 BPE 类 tokenizer LLaMA 使用 SentencePiece词表大小会影响模型的输入和输出层。如果词表大小是 50,000隐藏维度是 4096那么 embedding 矩阵大致是[50000, 4096]也就是说每个 token id 都对应一个 4096 维向量。六、Embedding把 token id 变成向量Token id 只是一个整数。例如100 245 381这些数字本身没有语义。所以模型需要 embedding 层把 token id 映射成连续向量。例如nn.Embedding(vocab_size, d_model)如果vocab_size 50000 d_model 4096那么 embedding 层就是一个矩阵[50000, 4096]输入 token id245就会查表得到一个 4096 维向量[0.12, -0.03, 0.87, ..., 0.21]这一步可以理解为token id ↓ embedding lookup token vector在 Transformer 中输入一般会变成[batch_size, seq_len, d_model]例如[2, 8, 4096]表示2 条样本 每条 8 个 token 每个 token 是 4096 维向量七、Context模型当前能看到的上下文Context 可以理解为模型当前参与计算的上下文内容。在 GPT 类模型中模型生成下一个 token 时会根据前面已经出现的 token 来预测。例如请解释 Transformer 是此时模型看到的 context 就是请解释 Transformer 是它会基于这个上下文预测下一个 token可能是一种然后新的 context 变成请解释 Transformer 是一种模型继续预测下一个 token。所以在生成式大语言模型中context prompt 已经生成的内容例如用户输入请解释 Transformer 模型已生成Transformer 是一种 当前 context请解释 Transformer Transformer 是一种模型会根据当前 context 继续生成。八、Context Length上下文长度Context length 指的是模型一次最多能处理多少 token。例如2048 tokens 4096 tokens 8192 tokens 32K tokens 128K tokens注意这里的长度单位是 token不是字数。例如中文中一个汉字可能是一个 token也可能多个字组成一个 token。英文中一个单词可能是一个 token也可能被拆成多个 token。所以1000 个汉字 ≠ 1000 tokens 1000 个英文单词 ≠ 1000 tokens如果模型上下文长度是 4096 tokens那么它最多只能在一次推理中看到 4096 个 token。超过这个长度就需要截断、滑动窗口、长上下文扩展、RAG 检索等方法。Context length 很重要因为它决定了模型能同时参考多少内容。例如短上下文适合普通问答 长上下文适合长文档阅读、代码仓库分析、多轮对话、论文总结但是上下文越长计算成本通常越高。标准 Self-Attention 的复杂度大致是O(n^2)其中 (n) 是序列长度。也就是说长度翻倍attention 计算量可能接近变成 4 倍。九、Prompt 和 Context 有什么区别Prompt 是用户输入给模型的提示。Context 是模型当前实际看到的完整上下文。在第一轮生成时它们可能很接近。例如用户输入请解释 Transformer 是什么此时 prompt 和 context 基本一样。但在多轮对话或长生成中context 往往更大。例如系统提示 历史对话 用户当前问题 模型已经生成的部分回答这些合起来才是当前 context。所以可以这样理解Prompt用户提供的任务提示 Context模型当前用于预测下一个 token 的全部可见内容在聊天模型中context 往往包括system message user message assistant message tool results 历史对话 当前输入所以prompt 是 context 的一部分但 context 不一定只有 prompt。十、Logits模型输出的原始分数很多初学者会误以为模型直接输出 token。其实模型最后一层输出的是 logits。Logits 可以理解为模型对词表中每个 token 给出的原始分数。假设目标词表只有 5 个 token0: pad 1: 我 2: 喜欢 3: 学习 4: 。模型在某一步输出 logits[0.1, 2.3, 0.7, 4.8, 1.2]这不是概率。它只是每个 token 的原始分数。对应关系是pad → 0.1 我 → 2.3 喜欢 → 0.7 学习 → 4.8 。 → 1.2分数最高的是学习所以如果使用贪心解码模型会选择学习但 logits 本身还不是最终 token。完整过程是logits ↓ softmax 概率分布 ↓ argmax 或采样 token id ↓ tokenizer decode 文本十一、Softmax把 logits 变成概率为了从 logits 中选择 token通常会先经过 softmax。Softmax 的公式是其中第 (i) 个 token 的 logit第 (i) 个 token 的概率所有 token 的概率加起来等于 1。例如 logits 是[1.0, 2.0, 3.0]经过 softmax 后可能变成[0.09, 0.24, 0.67]这表示第三个 token 的概率最高。所以logits 是原始分数 softmax 后才是概率在训练时CrossEntropyLoss 通常会直接接收 logits不需要我们手动 softmax。因为 PyTorch 的nn.CrossEntropyLoss内部已经包含了log_softmax negative log likelihood所以训练时一般写loss criterion(logits, target_ids)而不是loss criterion(softmax(logits), target_ids)十二、Temperature控制生成随机性Temperature 是生成阶段非常重要的参数。它用于调节 logits 的分布使模型输出更保守或更随机。通常做法是其中第 (i) 个 token 的 logitTtemperatureT 越小概率分布越尖锐T越大概率分布越平滑。1. Temperature 较低如果temperature 0.2logits 会被除以较小的数相当于放大差距。高分 token 会更突出。模型输出会更确定、更保守。适合代码生成 数学题 事实问答 结构化输出 严谨任务2. Temperature 较高如果temperature 1.2概率分布会更平滑。低概率 token 也有更多机会被采样到。模型输出会更多样、更有创造性。适合故事创作 头脑风暴 广告文案 开放式写作 多样化回答3. Temperature 等于 0 是什么严格来说temperature 不能直接等于 0。但很多系统中说temperature 0通常表示使用贪心解码总是选择概率最高的 token也就是next_token argmax(logits)这种方式最稳定但也最缺少多样性。十三、Temperature 的直观例子假设模型对下一个 token 有三个候选A: 10 分 B: 9 分 C: 3 分如果 temperature 很低A 的概率会非常高模型几乎总是选 A。如果 temperature 较高B 也有较大机会被选中甚至 C 偶尔也可能被选中。所以 temperature 控制的是模型是否只相信最高分 token 还是愿意探索其他可能 token一句话总结Temperature 越低输出越稳定temperature 越高输出越随机。十四、Top-k只从前 k 个 token 中采样Top-k 是另一种控制生成的方法。它的思想是每一步只保留概率最高的 k 个 token其他 token 全部丢弃。例如词表中有 50,000 个 token。如果top_k 50那么模型只会从概率最高的 50 个 token 中采样。这样可以避免模型采到特别离谱的低概率 token。例如模型预测下一个词我 喜欢 吃高概率 token 可能是苹果 米饭 面条 水果 火锅低概率 token 可能是量子 飞机 蓝色 如果Top-k 会把低概率 token 排除掉。所以 top-k 可以减少胡乱生成。但是如果 k 太小输出可能过于保守。如果 k 太大控制效果又不明显。十五、Top-p只保留累计概率达到 p 的 tokenTop-p 也叫 nucleus sampling中文常叫核采样。它的思想是按概率从高到低排序只保留累计概率达到 p 的最小 token 集合。例如top_p 0.9表示只从累计概率达到 90% 的候选 token 中采样。假设候选概率是A: 0.50 B: 0.20 C: 0.12 D: 0.08 E: 0.05 F: 0.03 ...从高到低累加A 0.50 AB 0.70 ABC 0.82 ABCD 0.90那么 top-p 会保留A, B, C, D后面的 token 被丢弃。Top-p 比 top-k 更灵活。因为它不是固定保留多少个 token而是根据概率分布动态决定候选集合大小。如果模型很确定候选集合会很小。如果模型不确定候选集合会变大。十六、Greedy、Sampling、Beam Search 的区别生成时常见解码方式有三类Greedy Decoding Sampling Beam Search1. Greedy Decoding每一步都选择概率最高的 token。优点稳定、简单、可复现 缺点可能缺少多样性容易陷入局部最优适合翻译测试 代码生成 结构化任务2. Sampling按概率分布随机采样。优点输出多样有创造性 缺点可能不稳定可能采到不合适 token通常配合temperature top-k top-p适合创意写作 开放式对话 头脑风暴3. Beam Search同时保留多个候选路径选择整体概率较高的序列。优点适合翻译、摘要等任务 缺点计算更贵可能生成模板化文本在传统机器翻译中beam search 很常见。在现代聊天模型中更多使用 sampling 方式生成更自然的回答。十七、这些术语如何串起来现在我们把所有术语串成一个完整流程。用户输入请解释 Transformer第一步Tokenizer 切分[请, 解释, Transformer]第二步转换成 token ids[101, 876, 23541]第三步Embedding[101, 876, 23541] ↓ [3 个 token每个 token 是 d_model 维向量]第四步加入位置信息进入 Transformer。第五步Transformer 输出最后一个位置的 hidden state。第六步通过输出层映射到整个词表logits: [vocab_size]第七步经过 temperature 调整和 softmax概率分布: [vocab_size]第八步根据 greedy / top-k / top-p 选择下一个 token id。第九步把 token id 解码成文本。第十步把新 token 加入 context继续下一轮预测。整体流程是text ↓ tokens ↓ token ids ↓ embeddings ↓ Transformer ↓ logits ↓ probabilities ↓ next token ↓ new context ↓ repeat这就是大语言模型生成文本的基本过程。十八、常见误区总结误区一Token 等于单词不一定。Token 可能是字、词、子词、标点、空格片段。例如unbelievable可能被切成多个 token。误区二参数越多一定越强不一定。参数量只是一个维度。模型能力还取决于数据质量 训练 token 数 训练方法 模型结构 对齐方式 推理策略误区三Context length 等于能记住所有内容不完全是。Context length 表示模型一次能看到多少 token。但能看到不代表一定能完美利用。长上下文还涉及位置编码 注意力机制 训练长度 检索策略 上下文压缩误区四Logits 是概率不是。Logits 是 softmax 之前的原始分数。经过 softmax 后才是概率。误区五Temperature 越高越好不是。Temperature 越高生成越随机。对于严谨任务太高会增加错误。对于创作任务适当提高可以增加多样性。十九、术语对照表术语中文理解作用Parameter参数模型训练得到的权重Token文本基本单位模型处理文本的最小单位Token IDtoken 编号把 token 转成数字Vocabulary词表记录 token 和 id 的映射Embedding向量表示把 token id 转成连续向量Context上下文模型当前可见的输入内容Context Length上下文长度模型最多能处理多少 tokenLogits原始分数模型对每个 token 的预测分数Softmax概率归一化把 logits 转成概率分布Temperature温度系数控制生成随机性Top-k前 k 采样只从概率最高的 k 个 token 中采样Top-p核采样只从累计概率达到 p 的 token 集合中采样
10 大语言模型基本术语总结:参数、Token、Context、Logits、Temperature
在前面的文章中我们已经讲过 Transformer、Self-Attention、Encoder、Decoder、Tokenizer、位置编码以及 MLM、CLM、Seq2Seq LM 等训练目标。但是在学习大语言模型时还有一些术语几乎每天都会遇到参数 Token Context Context Length Embedding Logits Softmax Temperature Top-k Top-p如果这些概念没有彻底搞清楚后面学习 GPT、BERT、LLaMA、Qwen、DeepSeek、RAG、微调、推理加速时都会比较吃力。例如我们经常听到这个模型有 7B 参数 上下文长度是 32K tokens 输入会先被 tokenizer 切成 token 模型输出的是 logits不是直接输出文字 temperature 越高生成越随机 top-p 可以控制采样范围这些话看起来很熟悉但如果追问参数到底是什么 Token 和单词有什么区别 Context 是不是等于 prompt Logits 为什么不是概率 Temperature 为什么能控制随机性很多初学者就会混乱。所以这一篇我们专门补一章基础术语把大语言模型从输入到输出的关键概念串起来。一、大语言模型的一次完整生成流程在解释术语之前我们先看一次完整的大模型生成过程。用户输入一句话请解释一下 Transformer 是什么模型不会直接理解这句话的字符串形式。它通常会经历下面几个步骤用户文本 ↓ Tokenizer 分词 ↓ Token IDs ↓ Embedding 向量 ↓ Transformer 网络计算 ↓ Logits ↓ Softmax 得到概率分布 ↓ 根据 temperature / top-k / top-p 采样 ↓ 得到下一个 token id ↓ 转换回文字 ↓ 继续生成下一个 token也就是说大语言模型生成文本的本质是一次又一次预测下一个 token。它不是一次性生成完整答案而是逐 token 生成。例如Transformer 是 一种 基于 注意力 机制 的 神经网络 结构 。模型每一步都在做给定前面的 context预测下一个 token。这就是 GPT 类模型的基本工作方式。二、参数模型真正学到的东西我们经常听到GPT-3 有 175B 参数 LLaMA 有 7B、13B、70B 参数 某个模型是 1.8B 小模型这里的 B 是 billion也就是十亿。例如7B 70 亿参数 13B 130 亿参数 70B 700 亿参数那么参数到底是什么简单来说参数就是神经网络中可以被训练更新的数值。在 Transformer 中参数主要存在于这些地方Embedding 矩阵 Q/K/V 投影矩阵 Attention 输出矩阵 Feed Forward Network 权重 LayerNorm 参数 输出词表映射矩阵例如一个线性层nn.Linear(512, 2048)它内部有一个权重矩阵[2048, 512]也就是大约2048 × 512 1,048,576个权重参数。这些参数一开始通常是随机初始化的。训练过程中模型通过大量文本不断预测 token然后根据预测错误反向传播更新这些参数。所以可以这样理解模型的知识、语言规律、模式识别能力都以参数的形式存储在神经网络权重中。当然这里要注意一点参数多不一定模型就一定强。模型能力还取决于训练数据质量 训练 token 数 模型结构 训练目标 对齐方法 推理策略这也是前面 Scaling Law 和 Chinchilla 文章中强调的问题。三、Token模型真正处理的基本单位用户输入的是自然语言文本但模型不能直接处理字符串。例如我喜欢机器学习。模型不会直接把这句话作为字符串输入神经网络而是先通过 tokenizer 切成 token。可能得到我 喜欢 机器 学习 。也可能得到我 喜欢 机器学习 。具体怎么切取决于 tokenizer。Token 可以理解为模型处理文本的基本单位。它可能是一个字 一个词 一个子词 一个标点 一个空格片段 一个特殊符号例如英文句子I love machine learning.可能被切成I love machine learning .也可能被切成I Ġlove Ġmachine Ġlearning .这里的Ġ可能表示前面有空格。在 BPE、WordPiece、SentencePiece 等 tokenizer 中token 通常不是完整单词而是子词单位。例如unbelievable可能被切成un believ able或者un ##believable这取决于具体 tokenizer。四、Token ID把 token 转成数字模型不能直接处理 token 字符串。所以 tokenizer 会把每个 token 映射成一个数字 id。例如词表中可能有pad → 0 bos → 1 eos → 2 我 → 100 喜欢 → 245 机器 → 381 学习 → 492 。 → 17那么句子我 喜欢 机器 学习 。就会被转换成[100, 245, 381, 492, 17]这就是 token ids。神经网络真正接收的不是文字而是这些数字 id。完整过程是文本 ↓ tokenizer tokens ↓ vocab 映射 token ids例如我喜欢机器学习。 ↓ [我, 喜欢, 机器, 学习, 。] ↓ [100, 245, 381, 492, 17]五、Vocabulary词表是什么词表也叫 vocabulary。它记录了token 和 id 的对应关系可以理解为一个字典{ pad: 0, bos: 1, eos: 2, 我: 100, 喜欢: 245, 机器: 381, 学习: 492 }一般来说一个大语言模型的词表大小可能是32K 50K 100K 150K不同模型的 tokenizer 不同词表也不同。例如BERT 使用 WordPiece GPT 系列常用 BPE 类 tokenizer LLaMA 使用 SentencePiece词表大小会影响模型的输入和输出层。如果词表大小是 50,000隐藏维度是 4096那么 embedding 矩阵大致是[50000, 4096]也就是说每个 token id 都对应一个 4096 维向量。六、Embedding把 token id 变成向量Token id 只是一个整数。例如100 245 381这些数字本身没有语义。所以模型需要 embedding 层把 token id 映射成连续向量。例如nn.Embedding(vocab_size, d_model)如果vocab_size 50000 d_model 4096那么 embedding 层就是一个矩阵[50000, 4096]输入 token id245就会查表得到一个 4096 维向量[0.12, -0.03, 0.87, ..., 0.21]这一步可以理解为token id ↓ embedding lookup token vector在 Transformer 中输入一般会变成[batch_size, seq_len, d_model]例如[2, 8, 4096]表示2 条样本 每条 8 个 token 每个 token 是 4096 维向量七、Context模型当前能看到的上下文Context 可以理解为模型当前参与计算的上下文内容。在 GPT 类模型中模型生成下一个 token 时会根据前面已经出现的 token 来预测。例如请解释 Transformer 是此时模型看到的 context 就是请解释 Transformer 是它会基于这个上下文预测下一个 token可能是一种然后新的 context 变成请解释 Transformer 是一种模型继续预测下一个 token。所以在生成式大语言模型中context prompt 已经生成的内容例如用户输入请解释 Transformer 模型已生成Transformer 是一种 当前 context请解释 Transformer Transformer 是一种模型会根据当前 context 继续生成。八、Context Length上下文长度Context length 指的是模型一次最多能处理多少 token。例如2048 tokens 4096 tokens 8192 tokens 32K tokens 128K tokens注意这里的长度单位是 token不是字数。例如中文中一个汉字可能是一个 token也可能多个字组成一个 token。英文中一个单词可能是一个 token也可能被拆成多个 token。所以1000 个汉字 ≠ 1000 tokens 1000 个英文单词 ≠ 1000 tokens如果模型上下文长度是 4096 tokens那么它最多只能在一次推理中看到 4096 个 token。超过这个长度就需要截断、滑动窗口、长上下文扩展、RAG 检索等方法。Context length 很重要因为它决定了模型能同时参考多少内容。例如短上下文适合普通问答 长上下文适合长文档阅读、代码仓库分析、多轮对话、论文总结但是上下文越长计算成本通常越高。标准 Self-Attention 的复杂度大致是O(n^2)其中 (n) 是序列长度。也就是说长度翻倍attention 计算量可能接近变成 4 倍。九、Prompt 和 Context 有什么区别Prompt 是用户输入给模型的提示。Context 是模型当前实际看到的完整上下文。在第一轮生成时它们可能很接近。例如用户输入请解释 Transformer 是什么此时 prompt 和 context 基本一样。但在多轮对话或长生成中context 往往更大。例如系统提示 历史对话 用户当前问题 模型已经生成的部分回答这些合起来才是当前 context。所以可以这样理解Prompt用户提供的任务提示 Context模型当前用于预测下一个 token 的全部可见内容在聊天模型中context 往往包括system message user message assistant message tool results 历史对话 当前输入所以prompt 是 context 的一部分但 context 不一定只有 prompt。十、Logits模型输出的原始分数很多初学者会误以为模型直接输出 token。其实模型最后一层输出的是 logits。Logits 可以理解为模型对词表中每个 token 给出的原始分数。假设目标词表只有 5 个 token0: pad 1: 我 2: 喜欢 3: 学习 4: 。模型在某一步输出 logits[0.1, 2.3, 0.7, 4.8, 1.2]这不是概率。它只是每个 token 的原始分数。对应关系是pad → 0.1 我 → 2.3 喜欢 → 0.7 学习 → 4.8 。 → 1.2分数最高的是学习所以如果使用贪心解码模型会选择学习但 logits 本身还不是最终 token。完整过程是logits ↓ softmax 概率分布 ↓ argmax 或采样 token id ↓ tokenizer decode 文本十一、Softmax把 logits 变成概率为了从 logits 中选择 token通常会先经过 softmax。Softmax 的公式是其中第 (i) 个 token 的 logit第 (i) 个 token 的概率所有 token 的概率加起来等于 1。例如 logits 是[1.0, 2.0, 3.0]经过 softmax 后可能变成[0.09, 0.24, 0.67]这表示第三个 token 的概率最高。所以logits 是原始分数 softmax 后才是概率在训练时CrossEntropyLoss 通常会直接接收 logits不需要我们手动 softmax。因为 PyTorch 的nn.CrossEntropyLoss内部已经包含了log_softmax negative log likelihood所以训练时一般写loss criterion(logits, target_ids)而不是loss criterion(softmax(logits), target_ids)十二、Temperature控制生成随机性Temperature 是生成阶段非常重要的参数。它用于调节 logits 的分布使模型输出更保守或更随机。通常做法是其中第 (i) 个 token 的 logitTtemperatureT 越小概率分布越尖锐T越大概率分布越平滑。1. Temperature 较低如果temperature 0.2logits 会被除以较小的数相当于放大差距。高分 token 会更突出。模型输出会更确定、更保守。适合代码生成 数学题 事实问答 结构化输出 严谨任务2. Temperature 较高如果temperature 1.2概率分布会更平滑。低概率 token 也有更多机会被采样到。模型输出会更多样、更有创造性。适合故事创作 头脑风暴 广告文案 开放式写作 多样化回答3. Temperature 等于 0 是什么严格来说temperature 不能直接等于 0。但很多系统中说temperature 0通常表示使用贪心解码总是选择概率最高的 token也就是next_token argmax(logits)这种方式最稳定但也最缺少多样性。十三、Temperature 的直观例子假设模型对下一个 token 有三个候选A: 10 分 B: 9 分 C: 3 分如果 temperature 很低A 的概率会非常高模型几乎总是选 A。如果 temperature 较高B 也有较大机会被选中甚至 C 偶尔也可能被选中。所以 temperature 控制的是模型是否只相信最高分 token 还是愿意探索其他可能 token一句话总结Temperature 越低输出越稳定temperature 越高输出越随机。十四、Top-k只从前 k 个 token 中采样Top-k 是另一种控制生成的方法。它的思想是每一步只保留概率最高的 k 个 token其他 token 全部丢弃。例如词表中有 50,000 个 token。如果top_k 50那么模型只会从概率最高的 50 个 token 中采样。这样可以避免模型采到特别离谱的低概率 token。例如模型预测下一个词我 喜欢 吃高概率 token 可能是苹果 米饭 面条 水果 火锅低概率 token 可能是量子 飞机 蓝色 如果Top-k 会把低概率 token 排除掉。所以 top-k 可以减少胡乱生成。但是如果 k 太小输出可能过于保守。如果 k 太大控制效果又不明显。十五、Top-p只保留累计概率达到 p 的 tokenTop-p 也叫 nucleus sampling中文常叫核采样。它的思想是按概率从高到低排序只保留累计概率达到 p 的最小 token 集合。例如top_p 0.9表示只从累计概率达到 90% 的候选 token 中采样。假设候选概率是A: 0.50 B: 0.20 C: 0.12 D: 0.08 E: 0.05 F: 0.03 ...从高到低累加A 0.50 AB 0.70 ABC 0.82 ABCD 0.90那么 top-p 会保留A, B, C, D后面的 token 被丢弃。Top-p 比 top-k 更灵活。因为它不是固定保留多少个 token而是根据概率分布动态决定候选集合大小。如果模型很确定候选集合会很小。如果模型不确定候选集合会变大。十六、Greedy、Sampling、Beam Search 的区别生成时常见解码方式有三类Greedy Decoding Sampling Beam Search1. Greedy Decoding每一步都选择概率最高的 token。优点稳定、简单、可复现 缺点可能缺少多样性容易陷入局部最优适合翻译测试 代码生成 结构化任务2. Sampling按概率分布随机采样。优点输出多样有创造性 缺点可能不稳定可能采到不合适 token通常配合temperature top-k top-p适合创意写作 开放式对话 头脑风暴3. Beam Search同时保留多个候选路径选择整体概率较高的序列。优点适合翻译、摘要等任务 缺点计算更贵可能生成模板化文本在传统机器翻译中beam search 很常见。在现代聊天模型中更多使用 sampling 方式生成更自然的回答。十七、这些术语如何串起来现在我们把所有术语串成一个完整流程。用户输入请解释 Transformer第一步Tokenizer 切分[请, 解释, Transformer]第二步转换成 token ids[101, 876, 23541]第三步Embedding[101, 876, 23541] ↓ [3 个 token每个 token 是 d_model 维向量]第四步加入位置信息进入 Transformer。第五步Transformer 输出最后一个位置的 hidden state。第六步通过输出层映射到整个词表logits: [vocab_size]第七步经过 temperature 调整和 softmax概率分布: [vocab_size]第八步根据 greedy / top-k / top-p 选择下一个 token id。第九步把 token id 解码成文本。第十步把新 token 加入 context继续下一轮预测。整体流程是text ↓ tokens ↓ token ids ↓ embeddings ↓ Transformer ↓ logits ↓ probabilities ↓ next token ↓ new context ↓ repeat这就是大语言模型生成文本的基本过程。十八、常见误区总结误区一Token 等于单词不一定。Token 可能是字、词、子词、标点、空格片段。例如unbelievable可能被切成多个 token。误区二参数越多一定越强不一定。参数量只是一个维度。模型能力还取决于数据质量 训练 token 数 训练方法 模型结构 对齐方式 推理策略误区三Context length 等于能记住所有内容不完全是。Context length 表示模型一次能看到多少 token。但能看到不代表一定能完美利用。长上下文还涉及位置编码 注意力机制 训练长度 检索策略 上下文压缩误区四Logits 是概率不是。Logits 是 softmax 之前的原始分数。经过 softmax 后才是概率。误区五Temperature 越高越好不是。Temperature 越高生成越随机。对于严谨任务太高会增加错误。对于创作任务适当提高可以增加多样性。十九、术语对照表术语中文理解作用Parameter参数模型训练得到的权重Token文本基本单位模型处理文本的最小单位Token IDtoken 编号把 token 转成数字Vocabulary词表记录 token 和 id 的映射Embedding向量表示把 token id 转成连续向量Context上下文模型当前可见的输入内容Context Length上下文长度模型最多能处理多少 tokenLogits原始分数模型对每个 token 的预测分数Softmax概率归一化把 logits 转成概率分布Temperature温度系数控制生成随机性Top-k前 k 采样只从概率最高的 k 个 token 中采样Top-p核采样只从累计概率达到 p 的 token 集合中采样