LLM | 训练与推理过程

文章目录

大语言模型训练与推理流程

一、整体架构基础:Transformer

现代 LLM(如 GPT、LLaMA、Claude)均基于 Transformer 架构,核心是自注意力机制(Self-Attention)

复制代码
输入 Token → Embedding → N × (Attention + FFN) → 输出概率分布

关键概念:

  • Token:文本的最小单元,一个汉字 ≈ 1-2 tokens
  • Embedding:将 token 映射为高维向量(如 4096 维)
  • Attention:每个 token 与其他所有 token 计算相关性权重
  • FFN(前馈网络):对每个位置独立做非线性变换

二、训练流程(三阶段)

阶段 1:预训练(Pre-training)

目标:让模型学习语言的统计规律和世界知识

项目 说明
数据 互联网文本、书籍、代码,数TB级
任务 自回归语言建模:预测下一个 token
损失函数 交叉熵:`Loss = -log P(token_t
规模 GPT-3:175B 参数,300B tokens;LLaMA-3:数十T tokens
耗时 数千张 GPU 跑数月,成本百万到千万美元级别
复制代码
输入: "大语言模型的核心是"
预测: "Transformer"  ← 计算损失,反向传播更新参数

优化器:AdamW + 学习率 Warmup + Cosine 衰减


阶段 2:监督微调(SFT, Supervised Fine-Tuning)

目标:让模型学会"对话"和"遵循指令"

  • 数据:人工标注的高质量问答对(指令-回答格式)

  • 模型在预训练权重基础上继续训练

  • 数据量小(万到十万级),但质量要求极高

    指令: "帮我写一个冒泡排序"
    回答: "以下是冒泡排序的实现..." ← 模型学习这种格式


阶段 3:RLHF(基于人类反馈的强化学习)

目标:让模型输出更符合人类偏好(有用、无害、诚实)

三步流程:

复制代码
① 人类对同一问题的多个回答进行排序
         ↓
② 训练奖励模型(Reward Model)学习人类偏好
         ↓
③ 用 PPO 算法优化 LLM,最大化奖励模型打分

现代替代方案:DPO(Direct Preference Optimization) --- 无需单独训练奖励模型,更简洁稳定


三、推理流程(Inference)

自回归生成

LLM 推理是逐 token 串行生成的过程:

复制代码
输入: [你好] → 输出词表上的概率分布 → 采样得到 [,]
输入: [你好,] → 输出概率分布 → 采样得到 [我]
输入: [你好,我] → ... 直到生成 <EOS>

每步都要过一遍整个模型,计算量大、延迟高


KV Cache(推理核心优化)

问题:每次生成新 token,历史 token 的 K/V 矩阵都要重新计算,浪费严重

方案:将历史 token 的 Key、Value 矩阵缓存起来,新 token 只计算自己的 KV 并追加

复制代码
无 Cache:第 N 步计算量 = O(N²)
有 Cache:第 N 步计算量 = O(N)    ← 每步只增量计算

代价:显存占用大,长上下文时 KV Cache 可占用数 GB 显存


采样策略

模型输出的是词表上的概率分布,如何选 token?

策略 说明 效果
Greedy 每步取概率最大的 确定但死板
Temperature 调整概率分布的"平坦度" 控制创意度
Top-k 只从概率最高的 k 个中采样 避免低概率噪声
Top-p (nucleus) 从累积概率 ≥ p 的最小集合中采样 更自然,常用

四、工程优化(面试加分项)

训练侧

  • 混合精度训练(FP16/BF16):减少显存,加快计算
  • 梯度检查点(Gradient Checkpointing):用时间换显存,重算前向代替存储中间激活
  • 分布式训练
    • 数据并行(DDP):每卡一份模型,数据切片
    • 流水线并行:模型按层切分到不同卡
    • 张量并行:单层矩阵切分到多卡(Megatron-LM)

推理侧

  • 量化(Quantization):FP16 → INT8/INT4,显存减半,速度提升
  • FlashAttention:重写 Attention 的 CUDA kernel,减少 HBM 读写,提速 2-4x
  • 连续批处理(Continuous Batching):动态合并请求,提高 GPU 利用率(vLLM 的核心)
  • PagedAttention(vLLM):像操作系统管理内存一样管理 KV Cache,解决显存碎片问题

五、面试常见问题速答

Q:LLM 为什么不能修改已生成的内容?

自回归生成,每个 token 只依赖之前的,无法回头修改

Q:上下文窗口变长为什么难?

Attention 计算复杂度是 O(N²),长度翻倍,计算量翻 4 倍;KV Cache 显存线性增长

Q:训练和推理对硬件要求有何不同?

训练需要存储梯度和优化器状态(参数量 × ~16 字节),显存需求是推理的 3-4 倍;推理侧重低延迟、高吞吐

Q:为什么 LLM 会幻觉(Hallucination)?

模型本质是预测概率最高的 token,没有真正的"知识库"查询机制,当训练数据不足或问题超出分布时,就会生成听起来合理但错误的内容

Q:RAG 是什么,解决什么问题?

检索增强生成:推理时先从外部知识库检索相关文档,拼入上下文,弥补模型知识截止日期和幻觉问题


六、一句话总结

LLM 训练 = 海量文本自监督预训练 + 指令微调 + 人类偏好对齐;推理 = 自回归逐 token 生成 + KV Cache 加速;核心挑战是算力、显存和延迟的工程权衡。

相关推荐
70asunflower3 小时前
LLM几种主要的开源方式及优劣
人工智能·llm
fids3 小时前
大模型面试题
人工智能·llm
猫头_7 小时前
RAG 全链路深度拆解:“大白”学习RAG的极简指南
人工智能·langchain·llm
Tzarevich8 小时前
别再信它“一本正经地胡说”了!用 RAG终结大模型“幻觉”
后端·langchain·llm
前端付豪8 小时前
练习单导出
前端·python·llm
CoderJia程序员甲10 小时前
GitHub 热榜项目 - 日榜(2026-03-13)
ai·大模型·llm·github·ai教程
亚里随笔12 小时前
OpenClaw-RL:让AI Agent在对话中自主学习进化
人工智能·学习·llm·rl·agentic
做cv的小昊15 小时前
大语言模型系统:【CMU 11-868】课程学习笔记02——GPU编程基础1(GPU Programming Basics 1)
人工智能·笔记·学习·语言模型·llm·transformer·agent
码路飞1 天前
Cursor $20/月太贵了,BYOK 能省多少?测了一周,结论打了自己脸
llm·ai编程·cursor