AI攀爬大山
基础信息
batch:数据层面,一次拿多少条训练
step:一整个训练流程,是一步
epoch:一共500条数据,batch size是50,一次step训练50条数据,所以一个epoch需要有10step
loss:预测答案和真实答案差距
梯度:backward的时候,参数变化时的变化程度,如果改变某个参数,梯度变陡峭了,说明有问题
优化器optimizer:根据梯度修改参数
Adam通过维护梯度一阶矩和二阶矩估计(历史梯度),自适应调整每个参数的学习率,因此比SGD(仅当前梯度)收敛更稳定,是当前大模型训练最常见的优化器。
Transformer
decoder-only Transformer 为例,比如 GPT、LLaMA
Tokenization,Embedding,进入 Transformer Block,Self-Attention(QKV)
Transformer Block
输入 X
↓
LayerNorm(对隐藏状态进行归一化,使不同层的数据分布更加稳定,从而加快收敛并提高训练稳定性)
↓
Self-Attention
↓
Residual Add(残差连接)
↓
LayerNorm
↓
FFN(Feed Forward Network,前馈神经网络)/MLP(Multi-Layer Perceptron多层感知机)
↓
Residual Add
↓
输出
FFN相当于MLP
KV Cache
KV Cache 用在模型推理的自回归生成阶段。模型第一次处理 prompt 时会缓存每一层历史 token 的 Key 和 Value,后续生成新 token 时只计算新 token 的 QKV,历史 K/V 直接复用,从而避免重复计算,提高解码速度。。
一次完整Transformer Forward
这是最重要的。
假设输入:
中国首都是
Tokenizer
[1032, 884, 5678]
Embedding
变成:
3 × 4096
矩阵。
例如:
Token1
4096维
Token2
4096维
Token3
4096维
进入Block1
生成:
Q
K
V
计算:
QK^T
得到:
Attention Score
Softmax
乘V
得到:
Attention Output
Residual
Attention Output + X
LayerNorm
FF
4096
↓
11008
↓
4096
Residual
输出Block1
进入Block2
一直到:
Block32
最后得到:
Hidden State
形状:
3 × 4096
再经过:
LM Head(就是把hidden state和词表对应上,输出词表logits)
本质:
Linear
输出:
3 × vocab_size
例如:
3 × 128000
这就是:
Logits
MoE
Mixture of Experts混合专家模型
普通 Transformer 每层只有一个大 MLP;MoE 把这个 MLP 换成很多个专家 MLP,然后每个 token 只选择其中几个专家计算。
可能存在问题:负载不均衡。解决办法:Load Balancing Loss。
GPT发展历程
GPT-4【MoE混合专家模型】
CUDA
CUDA Toolkit 是连接 AI 框架和 GPU 驱动之间的软件工具集合,包含 Runtime、编译器 nvcc、cuBLAS、cuDNN、NCCL 等,用来支持 GPU 编程、矩阵计算、深度学习算子和多卡通信。
应用层
Python / C++ / Web API
↓
AI框架
PyTorch / TensorFlow / JAX
↓
推理框架
vLLM / SGLang / TensorRT-LLM / Ollama
↓
CUDA Toolkit
cuBLAS / cuDNN / NCCL / nvcc / CUDA Runtime
↓
CUDA Driver
GPU驱动
↓
GPU硬件
模型微调
Full Fine-tuning全参数微调
LoRA
最常见的轻量微调方式。
原模型参数:
W
冻结不动。
只训练一个很小的增量:
ΔW = A × B
最终:
W' = W + ΔW
优点:
显存低
训练快
容易部署
缺点:
表达能力弱于全参微调
QLoRA
LoRA 的量化版本。
做法:
Base Model 量化成 4bit
LoRA 参数正常训练
优点:
显存更低
单卡也能微调较大模型
Prefix Tuning / Prompt Tuning
不改模型主体参数。
只训练一小段“软提示向量”。
可以理解为:
训练一段模型能理解的隐藏提示词
优点:
非常轻量
缺点:
能力有限
现在大模型工程里不如 LoRA 常见
Instruction Tuning
这个和 SFT 很接近。
用大量指令数据训练模型,类似于,预训练数据只让模型记住知识,但指令微调输入的是带有任务格式的数据,让模型熟悉指令格式的输入。
SFT 通常就是 instruction tuning 的主要形式。
Preference Tuning
偏好微调。
不是只给标准答案,而是给:
好的回答
差的回答
让模型学会人类更喜欢哪种回答。
包括:
RLHF
DPO
ORPO
KTO
IPO
RLHF首先利用人类偏好数据训练一个Reward Model,再通过PPO等强化学习算法优化语言模型,使其生成更高奖励的回答。DPO则省去了Reward Model和强化学习步骤,直接利用偏好数据中的chosen/rejected回答构造目标函数,让模型提高优选回答概率、降低劣选回答概率。两者都属于Preference Tuning,但RLHF属于强化学习路线,而DPO属于直接优化路线,工程实现更简单,训练更稳定,因此目前很多开源模型更倾向于采用DPO。
模型推理部署
vLLM
vLLM主要通过PagedAttention和Continuous Batching
提升推理吞吐率和显存利用率。
模型性能调优
模型量化
用更低精度的数据类型表示模型权重和激活值。
1、降低显存占用
2、提升推理速度:从显存读权重更快
两种量化方法:
第一类:训练后量化Post-Training Quantization
模型已经训练好了,不重新训练,直接量化。
第二类:量化感知训练Quantization-Aware Training
训练时就模拟低精度,让模型提前适应量化误差。
量化对象:权重、激活、KV Cache
GPTQ 和 AWQ 都是常见的训练后量化方法。GPTQ 更关注通过误差补偿降低量化后输出误差,AWQ 则根据激活分布识别重要权重通道,对敏感通道进行保护,从而在 INT4 等低比特量化下尽量保持模型精度。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)