<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>LLM on WitMinder</title>
        <link>https://witminder.com/tags/llm/</link>
        <description>Recent content in LLM on WitMinder</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-CN</language>
        <lastBuildDate>Fri, 31 Jul 2026 12:00:00 +0800</lastBuildDate><atom:link href="https://witminder.com/tags/llm/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>LLM 推理全链路：从提问文本到输出 Token</title>
        <link>https://witminder.com/p/llm-inference-path/</link>
        <pubDate>Fri, 31 Jul 2026 12:00:00 +0800</pubDate>
        
        <guid>https://witminder.com/p/llm-inference-path/</guid>
        <description>&lt;p&gt;LLM 用户提问的完整流程：&lt;strong&gt;文本 → Embedding → 模型计算 → 输出&lt;/strong&gt;。这篇文章拆开每一步，并补充工程与硬件层面的细节。&lt;/p&gt;
&lt;h2 id=&#34;极简流程&#34;&gt;&lt;a href=&#34;#%e6%9e%81%e7%ae%80%e6%b5%81%e7%a8%8b&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;极简流程
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;用户提问文本
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;→ Tokenizer → token ids
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;→ 查表得到 FP16/BF16 高维 Token Embedding 向量 + 位置编码
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;→ CPU → GPU 显存 → 送入 SM 计算单元循环多层 Decoder
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;→ 输出隐藏特征向量 → LM Head 映射为词表概率 logits
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;→ 采样选出 token，循环自回归生成
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;→ token 序列解码 → 可读文字输出
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;一你的提问会被转换成什么向量embedding&#34;&gt;&lt;a href=&#34;#%e4%b8%80%e4%bd%a0%e7%9a%84%e6%8f%90%e9%97%ae%e4%bc%9a%e8%a2%ab%e8%bd%ac%e6%8d%a2%e6%88%90%e4%bb%80%e4%b9%88%e5%90%91%e9%87%8fembedding&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;一、你的提问会被转换成什么向量（Embedding）
&lt;/h2&gt;&lt;p&gt;这里有两套完全不同的向量，不要混淆：&lt;strong&gt;输入 Token Embedding（LLM 原生）&lt;/strong&gt;、&lt;strong&gt;检索 Embedding（RAG 配套）&lt;/strong&gt;。&lt;/p&gt;
&lt;h3 id=&#34;1-llm-原生输入向量推理必走每轮对话都有&#34;&gt;&lt;a href=&#34;#1-llm-%e5%8e%9f%e7%94%9f%e8%be%93%e5%85%a5%e5%90%91%e9%87%8f%e6%8e%a8%e7%90%86%e5%bf%85%e8%b5%b0%e6%af%8f%e8%bd%ae%e5%af%b9%e8%af%9d%e9%83%bd%e6%9c%89&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;1. LLM 原生输入向量（推理必走，每轮对话都有）
&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;1）先分词（Tokenizer）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;你的句子切为 token id（数字，如 你=123，好=456）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2）Token Embedding 层（模型第一层权重矩阵）&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;矩阵尺寸：&lt;code&gt;[词表大小 V, 隐藏维度 d_model]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;举例常见模型：
&lt;ul&gt;
&lt;li&gt;LLaMA2 / Qwen：d_model=4096 / 8192，向量是 FP16/BF16（极少 FP32）&lt;/li&gt;
&lt;li&gt;小参数量开源模型：d_model=768 / 1024 / 2048&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;每个 token id 查表取出一行，得到 d_model 维浮点数向量&lt;/li&gt;
&lt;li&gt;向量含义：语言语义；位置信息会叠加位置编码（RoPE/ALiBi）&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;重点：这不是检索向量，是 Transformer 底层特征向量，维度极高（4k+），不用于向量库检索。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;2-rag-检索用-embedding只有知识库场景才会生成&#34;&gt;&lt;a href=&#34;#2-rag-%e6%a3%80%e7%b4%a2%e7%94%a8-embedding%e5%8f%aa%e6%9c%89%e7%9f%a5%e8%af%86%e5%ba%93%e5%9c%ba%e6%99%af%e6%89%8d%e4%bc%9a%e7%94%9f%e6%88%90&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;2. RAG 检索用 Embedding（只有知识库场景才会生成）
&lt;/h3&gt;&lt;p&gt;如果带文档检索，你的提问会单独丢给专用 Embedding 模型（bge、e5、all-MiniLM）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;维度低：384 / 768 维&lt;/li&gt;
&lt;li&gt;存储格式：FP16 / INT8 / INT4 量化压缩&lt;/li&gt;
&lt;li&gt;用途：去向量库做相似度匹配召回文档，不进大 LLM 主 Transformer 计算&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;3-存储精度&#34;&gt;&lt;a href=&#34;#3-%e5%ad%98%e5%82%a8%e7%b2%be%e5%ba%a6&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;3. 存储精度
&lt;/h3&gt;&lt;p&gt;线上推理几乎全部：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Token Embedding：BF16 / FP16（显存减半，速度翻倍）&lt;/li&gt;
&lt;li&gt;只有训练、高精度微调才用 FP32&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;二向量如何进入模型计算区域gpu显存流转全过程&#34;&gt;&lt;a href=&#34;#%e4%ba%8c%e5%90%91%e9%87%8f%e5%a6%82%e4%bd%95%e8%bf%9b%e5%85%a5%e6%a8%a1%e5%9e%8b%e8%ae%a1%e7%ae%97%e5%8c%ba%e5%9f%9fgpu%e6%98%be%e5%ad%98%e6%b5%81%e8%bd%ac%e5%85%a8%e8%bf%87%e7%a8%8b&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;二、向量如何进入模型计算区域（GPU/显存流转全过程）
&lt;/h2&gt;&lt;h3 id=&#34;阶段-1cpu-预处理&#34;&gt;&lt;a href=&#34;#%e9%98%b6%e6%ae%b5-1cpu-%e9%a2%84%e5%a4%84%e7%90%86&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;阶段 1：CPU 预处理
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;用户文字 → token ids（CPU 内存）&lt;/li&gt;
&lt;li&gt;查表取出 embedding 向量、叠加位置编码（CPU 或 GPU）&lt;/li&gt;
&lt;li&gt;组装输入张量：&lt;code&gt;[batch_size, seq_len, d_model]&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;比如单条提问长度 2048 token，d_model=4096 → 张量 shape &lt;code&gt;[1, 2048, 4096]&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;阶段-2数据搬运进-gpu-计算区&#34;&gt;&lt;a href=&#34;#%e9%98%b6%e6%ae%b5-2%e6%95%b0%e6%8d%ae%e6%90%ac%e8%bf%90%e8%bf%9b-gpu-%e8%ae%a1%e7%ae%97%e5%8c%ba&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;阶段 2：数据搬运进 GPU 计算区
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;CPU 内存张量通过 PCIe 拷贝到 GPU 显存（Global Memory）&lt;/li&gt;
&lt;li&gt;推理框架（vLLM / TensorRT / Transformers）做内存优化：
&lt;ul&gt;
&lt;li&gt;连续内存排布、padding 合并、KV 缓存预分配&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;计算调度：
&lt;ul&gt;
&lt;li&gt;显存向量分批送入 SM 流多处理器（计算核心）&lt;/li&gt;
&lt;li&gt;向量数据先缓存到 L2 Cache → 片上共享内存/寄存器（高速计算区）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;核心：真正矩阵乘法（Attention、FFN）全部在 GPU 寄存器/片上缓存完成，显存只做存储交换。&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id=&#34;阶段-3transformer-多层循环计算核心区域&#34;&gt;&lt;a href=&#34;#%e9%98%b6%e6%ae%b5-3transformer-%e5%a4%9a%e5%b1%82%e5%be%aa%e7%8e%af%e8%ae%a1%e7%ae%97%e6%a0%b8%e5%bf%83%e5%8c%ba%e5%9f%9f&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;阶段 3：Transformer 多层循环计算（核心区域）
&lt;/h3&gt;&lt;p&gt;输入向量逐层穿过 N 层 Decoder：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;多头 Self-Attention&lt;/strong&gt;：输入向量 × Q/K/V 权重矩阵 → 注意力分数 → 加权融合特征向量&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FFN 前馈网络&lt;/strong&gt;：特征升维映射、激活、降维回原维度&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LayerNorm、残差连接&lt;/strong&gt;：每层输出依然是同维度 &lt;code&gt;[seq_len, d_model]&lt;/code&gt; 向量，逐层更新语义特征&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;关键缓存kv-cache生成必备&#34;&gt;&lt;a href=&#34;#%e5%85%b3%e9%94%ae%e7%bc%93%e5%ad%98kv-cache%e7%94%9f%e6%88%90%e5%bf%85%e5%a4%87&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;关键缓存：KV Cache（生成必备）
&lt;/h3&gt;&lt;p&gt;每轮提问的 key/value 向量会存入显存 KV 缓存，后续生成新 token 不用重复计算历史输入，大幅提速。&lt;/p&gt;
&lt;h2 id=&#34;三模型如何输出文字向量--可读文本&#34;&gt;&lt;a href=&#34;#%e4%b8%89%e6%a8%a1%e5%9e%8b%e5%a6%82%e4%bd%95%e8%be%93%e5%87%ba%e6%96%87%e5%ad%97%e5%90%91%e9%87%8f--%e5%8f%af%e8%af%bb%e6%96%87%e6%9c%ac&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;三、模型如何输出文字（向量 → 可读文本）
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;步骤 1：最后一层输出隐藏向量&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Decoder 最后一层输出依旧是 &lt;code&gt;[seq_len, d_model]&lt;/code&gt; 高维特征向量。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;步骤 2：LM Head 线性投影（关键输出层）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;权重矩阵 &lt;code&gt;[d_model, V 词表大小]&lt;/code&gt;，做矩阵乘法：高维语义向量 → 长度等于词表 V 的 logits 向量（几万维）。例：Qwen 词表 151936，logits 维度=151936。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;步骤 3：采样生成单个 token&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;logits 做 Softmax，转为每个 token 的概率分布&lt;/li&gt;
&lt;li&gt;根据采样策略（greedy / top-p / top-k）选出概率最高的 token id&lt;/li&gt;
&lt;li&gt;把这个 token id 追加到输入序列，重新走一轮前向计算（自回归生成）&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;步骤 4：循环直到终止&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;不断生成新 token，直到产出终止符 &lt;code&gt;&amp;lt;/s&amp;gt;&lt;/code&gt;，停止迭代。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;步骤 5：解码输出文本&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;收集所有生成的 token id，送入 Tokenizer 反向解码，转回自然语言，返回给用户。&lt;/p&gt;
&lt;h2 id=&#34;四完整九步链路含工程与硬件细节&#34;&gt;&lt;a href=&#34;#%e5%9b%9b%e5%ae%8c%e6%95%b4%e4%b9%9d%e6%ad%a5%e9%93%be%e8%b7%af%e5%90%ab%e5%b7%a5%e7%a8%8b%e4%b8%8e%e7%a1%ac%e4%bb%b6%e7%bb%86%e8%8a%82&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;四、完整九步链路（含工程与硬件细节）
&lt;/h2&gt;&lt;h3 id=&#34;1-用户提问文本输入&#34;&gt;&lt;a href=&#34;#1-%e7%94%a8%e6%88%b7%e6%8f%90%e9%97%ae%e6%96%87%e6%9c%ac%e8%be%93%e5%85%a5&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;1. 用户提问文本输入
&lt;/h3&gt;&lt;p&gt;用户原始自然语言（中文/英文混合），包含空格、标点、特殊符号。额外前置操作：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;预处理清洗&lt;/strong&gt;：剔除不可见控制字符、统一换行/空格格式、截断超长文本（不超过模型上下文窗口上限，如 8k / 32k tokens）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;拼接完整 Prompt&lt;/strong&gt;：系统提示词 + 历史对话上下文 + 当前用户 Query&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;2-tokenizer-分词编码--得到-token-ids&#34;&gt;&lt;a href=&#34;#2-tokenizer-%e5%88%86%e8%af%8d%e7%bc%96%e7%a0%81--%e5%be%97%e5%88%b0-token-ids&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;2. Tokenizer 分词编码 → 得到 Token IDs
&lt;/h3&gt;&lt;p&gt;使用模型配套 BPE / SentencePiece 分词器处理完整 Prompt：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;按训练时的词表规则切分为最小子词单元（token），中文会单字/词语混合拆分&lt;/li&gt;
&lt;li&gt;映射每个 token 为唯一整数 Token ID&lt;/li&gt;
&lt;li&gt;补充特殊标记：句首 &lt;code&gt;&amp;lt;bos&amp;gt;&lt;/code&gt;、句尾 &lt;code&gt;&amp;lt;eos&amp;gt;&lt;/code&gt;、填充 &lt;code&gt;&amp;lt;pad&amp;gt;&lt;/code&gt;，生成一维 ID 数组&lt;/li&gt;
&lt;li&gt;输出 CPU 内存上的 &lt;code&gt;[batch, seq_len]&lt;/code&gt; 整型张量（batch=1 单轮对话）&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;3-查表获取-token-embedding--叠加位置编码&#34;&gt;&lt;a href=&#34;#3-%e6%9f%a5%e8%a1%a8%e8%8e%b7%e5%8f%96-token-embedding--%e5%8f%a0%e5%8a%a0%e4%bd%8d%e7%bd%ae%e7%bc%96%e7%a0%81&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;3. 查表获取 Token Embedding + 叠加位置编码
&lt;/h3&gt;&lt;p&gt;两者均为模型内置权重矩阵，常驻 CPU，推理时拷贝至 GPU 显存：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Embedding 查表&lt;/strong&gt;：权重矩阵 shape &lt;code&gt;[词表总量, 隐藏层维度]&lt;/code&gt;（例如 152k × 4096）；根据所有 Token ID 索引矩阵对应行，取出每个 token 的 FP16/BF16 高维向量，得到张量 &lt;code&gt;[1, seq_len, hidden_dim]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;位置编码融合&lt;/strong&gt;：LLM 无法感知文字顺序，预计算正弦余弦/可学习位置向量，shape 与 Embedding 完全一致；向量逐元素相加融合，携带时序位置信息&lt;/li&gt;
&lt;li&gt;此时得到完整输入特征张量，仍存在 CPU 内存&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;4-cpu-张量拷贝至-gpu-全局显存&#34;&gt;&lt;a href=&#34;#4-cpu-%e5%bc%a0%e9%87%8f%e6%8b%b7%e8%b4%9d%e8%87%b3-gpu-%e5%85%a8%e5%b1%80%e6%98%be%e5%ad%98&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;4. CPU 张量拷贝至 GPU 全局显存
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;执行 CUDA 内存拷贝（cudaMemcpy），将融合后的 Embedding 张量从主机内存搬运至显卡全局显存&lt;/li&gt;
&lt;li&gt;配套分配显存空间：提前预分配 KV Cache 缓存区（Decoder 推理核心，存储每一层历史注意力 key/value 向量，大幅减少重复计算）&lt;/li&gt;
&lt;li&gt;同步 CPU/GPU 指令流，等待拷贝完成后才启动计算&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;5-调度张量送入-gpu-sm循环执行多层-decoder&#34;&gt;&lt;a href=&#34;#5-%e8%b0%83%e5%ba%a6%e5%bc%a0%e9%87%8f%e9%80%81%e5%85%a5-gpu-sm%e5%be%aa%e7%8e%af%e6%89%a7%e8%a1%8c%e5%a4%9a%e5%b1%82-decoder&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;5. 调度张量送入 GPU SM，循环执行多层 Decoder
&lt;/h3&gt;&lt;p&gt;一张 NVIDIA GPU 由数十个 SM 并行组成，调度器分片分发张量至所有 SM 协同计算：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;单块 SM 内部硬件：CUDA Core（通用浮点运算）、Tensor Core（AI 矩阵乘法专用加速单元，LLM 核心算力）、片上高速 Shared Memory&lt;/li&gt;
&lt;li&gt;逐层循环执行 N 层 Decoder（如 32 层、40 层），每层固定流程：
&lt;ul&gt;
&lt;li&gt;多头自注意力：读取 KV Cache，计算 Query-Key 相似度，Softmax 归一化权重，加权融合 Value 向量&lt;/li&gt;
&lt;li&gt;FFN 前馈网络：高维向量升维、激活函数、降维&lt;/li&gt;
&lt;li&gt;残差连接 + 层归一化 LN&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;中间计算数据优先存放 SM 片上 Shared Memory（读写速度远高于全局显存），仅中间结果写回显存更新 KV Cache&lt;/li&gt;
&lt;li&gt;全部层计算完成，输出序列末尾的隐藏特征向量（自回归仅取最后一个 token 特征用于预测下一词）&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;6-lm-head-线性层映射输出词表概率-logits&#34;&gt;&lt;a href=&#34;#6-lm-head-%e7%ba%bf%e6%80%a7%e5%b1%82%e6%98%a0%e5%b0%84%e8%be%93%e5%87%ba%e8%af%8d%e8%a1%a8%e6%a6%82%e7%8e%87-logits&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;6. LM Head 线性层映射，输出词表概率 Logits
&lt;/h3&gt;&lt;p&gt;LM Head 是一个线性权重矩阵，存储在 GPU 显存：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;输入：单层 Decoder 输出的末尾隐藏向量 &lt;code&gt;[1, hidden_dim]&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;矩阵乘法映射至词表维度，输出 &lt;code&gt;[1, vocab_size]&lt;/code&gt; 的原始得分 Logits&lt;/li&gt;
&lt;li&gt;可选预处理：对 Logits 做温度缩放、Top-P / Top-K 截断，屏蔽 &lt;code&gt;&amp;lt;pad&amp;gt;&lt;/code&gt; 等无效 token 得分&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;7-采样算法选出单个新-token-id自回归核心循环&#34;&gt;&lt;a href=&#34;#7-%e9%87%87%e6%a0%b7%e7%ae%97%e6%b3%95%e9%80%89%e5%87%ba%e5%8d%95%e4%b8%aa%e6%96%b0-token-id%e8%87%aa%e5%9b%9e%e5%bd%92%e6%a0%b8%e5%bf%83%e5%be%aa%e7%8e%af&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;7. 采样算法选出单个新 Token ID（自回归核心循环）
&lt;/h3&gt;&lt;p&gt;对 Logits 概率分布采样，两种主流方案：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;贪心采样&lt;/strong&gt;：直接取分数最高的 token&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;随机采样（TopP / TopK）&lt;/strong&gt;：筛选高分 token 后随机选取，回答更有创造性&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;输出单个整数 Token ID。&lt;/p&gt;
&lt;h3 id=&#34;8-循环推理关键迭代生成整段回复&#34;&gt;&lt;a href=&#34;#8-%e5%be%aa%e7%8e%af%e6%8e%a8%e7%90%86%e5%85%b3%e9%94%ae%e8%bf%ad%e4%bb%a3%e7%94%9f%e6%88%90%e6%95%b4%e6%ae%b5%e5%9b%9e%e5%a4%8d&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;8. 循环推理（关键：迭代生成整段回复）
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;将刚生成的 Token ID 追加到原始输入序列尾部&lt;/li&gt;
&lt;li&gt;仅对新增的 1 个 token 重复步骤 3~7（复用历史 KV Cache，不用重新计算整段上下文，大幅提速）&lt;/li&gt;
&lt;li&gt;循环迭代，直到采样出 &lt;code&gt;&amp;lt;eos&amp;gt;&lt;/code&gt; 终止标记，停止生成&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;9-token-id-序列解码--可读自然文字&#34;&gt;&lt;a href=&#34;#9-token-id-%e5%ba%8f%e5%88%97%e8%a7%a3%e7%a0%81--%e5%8f%af%e8%af%bb%e8%87%aa%e7%84%b6%e6%96%87%e5%ad%97&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;9. Token ID 序列解码 → 可读自然文字
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;收集全部生成的 Token ID 序列，送入 Tokenizer 反向解码逻辑&lt;/li&gt;
&lt;li&gt;根据词表映射 ID 还原子词，拼接合并为完整句子&lt;/li&gt;
&lt;li&gt;自动清理分词产生的特殊分隔符、空白冗余字符，输出人类可读回答&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;五容易被混淆的区分&#34;&gt;&lt;a href=&#34;#%e4%ba%94%e5%ae%b9%e6%98%93%e8%a2%ab%e6%b7%b7%e6%b7%86%e7%9a%84%e5%8c%ba%e5%88%86&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;五、容易被混淆的区分
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;LLM 内部 Token Embedding&lt;/strong&gt;：维度极高（4096+）、FP16/BF16，只给 Transformer 计算，不存向量库&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RAG 检索 Embedding&lt;/strong&gt;：低维（384/768），专门相似度计算，不进大模型主干&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;内存占用举例&lt;/strong&gt;（2048 上下文，d_model=4096，FP16）：单条输入向量 &lt;code&gt;1 × 2048 × 4096 × 2B = 16,777,216 B = 16MB&lt;/code&gt;，换成 FP32 直接翻倍 32MB&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;关键工程点&#34;&gt;&lt;a href=&#34;#%e5%85%b3%e9%94%ae%e5%b7%a5%e7%a8%8b%e7%82%b9&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;关键工程点
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;KV Cache&lt;/strong&gt;：Decoder 自回归推理性能的核心——没有它每一轮都要重算全部上下文，速度暴跌几十倍&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;硬件分层差异&lt;/strong&gt;：全局显存（低速，存全部权重/KV 缓存）→ SM 共享内存（高速，临时计算），向量读写存在明显的层级速度差距&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;精度细节&lt;/strong&gt;：BF16 多用于模型权重存储，FP16 多用于中间计算，两者算力、数值范围有区分&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Batch 逻辑&lt;/strong&gt;：多用户并发时会批量拼接多个 Prompt 送入 GPU，单轮对话 batch=1&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;计算与 IO 阻塞&lt;/strong&gt;：CPU-GPU 数据拷贝会占用耗时，大维度向量（如 4096 维）传输开销不可忽略&lt;/li&gt;
&lt;/ol&gt;
</description>
        </item>
        
    </channel>
</rss>
