大语言模型推理全流程解析:从用户输入到答案生成完整过程
当用户发送一个问题到部署好的 vLLM 服务(如 Qwen3.5-27B)时,模型内部经历了一个从输入到输出的完整推理流程。该流程主要包含六个关键阶段:
1. API 接收与预处理:
服务端接收到用户的 HTTP 请求后,首先进行请求格式验证,然后提取对话历史,并应用 chat_template 将消息格式化为模型可理解的结构。
2. Tokenization(分词):
分词器将原始文本(如“什么是人工智能?”)通过子词分割算法(BPE)分解为一个个 token,并将每个 token 映射为词汇表中的唯一 ID。同时,系统会自动添加角色标记(如 <|im_start|>user)和结束符等特殊 token,为模型输入做准备。
3. 模型推理(核心过程):
这是最复杂的计算阶段。首先,token ID 通过嵌入层转换为密集向量表示,并添加旋转位置编码(RoPE)以保留位置信息。随后,这些向量依次通过数十层(例如 64 层)Transformer Decoder 模块。每一层都包含自注意力机制(利用因果掩码确保不会看到未来信息,同时借助 KV Cache 缓存历史状态以避免重复计算)和前馈网络(采用 SwiGLU 激活函数)。经过所有层的变换后,最后一层的隐藏状态通过输出投影层映射到词汇表大小的 logits 向量。
4. Decoding(解码策略):
模型从代表下一个 token 概率分布的 logits 中采样,以决定实际生成的 token。解码过程会综合运用温度采样(控制随机性)、Top-K 采样(只保留概率最高的 K 个候选)和 Top-P 采样(保留累积概率达到 P 的核心候选集)等策略,最终根据计算出的概率分布随机选择(或在贪婪模式下选择概率最高的)下一个 token。
5. 迭代生成:
模型将新生成的上一个 token 追加到输入序列中,并重复执行“Tokenization → 模型推理 → Decoding”的循环,直至生成的 token 数量达到 max_tokens 限制,或模型生成了一个特殊的结束符(EOS token),表示回答已完成。在此过程中,vLLM 的关键优化技术(如 PagedAttention 分页管理显存和 Continuous Batching 连续批处理)保证了高效的内存利用和高吞吐量。
6. Detokenization(去分词):
当迭代生成结束后,系统将最终得到的 token ID 序列通过 tokenizer 的 decode 方法转换回人类可读的自然语言文本,并移除所有特殊标记(如 <|im_start|>、<|im_end|> 等),从而得到纯净的模型回答,最后将答案封装在 HTTP 响应中返回给用户。
整个流程在毫秒级内完成,涉及数十亿参数的实时计算,最终将用户输入的问题转化为流畅、连贯的答案。
更多推荐


所有评论(0)