get_batch:从采样到GPU传输
1 函数目的
def get_batch(data: np.array, batch_size: int, sequence_length: int, device: str) -> torch.Tensor:
该函数的核心功能是从连续序列数据 data 中随机采样若干长度为 sequence_length 的片段,组成一个batch张量并传输到指定设备(通常是GPU)。这是语言模型、RNN、Transformer等模型训练中最常见的mini-batch采样逻辑。
2 随机采样机制
2.1 生成随机起始位置
start_indices = torch.randint(len(data) - sequence_length, (batch_size,))
这个代码:
...
torch的参数处理化特殊处理
1 nn.Parameter 的作用与原理
代码:
w = nn.Parameter(torch.randn(input_dim, output_dim))
1.1 含义
nn.Parameter 是 PyTorch 的特殊张量类型,用来定义 模型的可训练参数;
当你把它放在 nn.Module 中时,model.parameters() 会自动包含它;
它在反向传播时会自动累积 .grad。
等价于一个带标志的 tensor:
param = torch.Tensor(...)
param.requires_grad_(True)
1.2 参数与输入维度的关系
input_dim = 16384
output_dim = 32
x = nn.Para...
训练中使用FP8精度
FP8 精度
如图,
NVIDIA H100 GPU 原生支持两种 FP8(8-bit floating point) 编码格式:
格式
名称含义
指数位 (E)
尾数位 (M)
数值范围
E4M3
4 位指数,3 位尾数
4
3
[-448, 448]
E5M2
5 位指数,2 位尾数
5
2
[-57,344, 57,344]
E4M3 与 E5M2 的差异
E4M3:精度更高、范围更小
...
训练中的显存优化
1 LLM 训练中的显存占用
1.1 DDP 下的显存占用
在 DDP (Distributed Data Parallel) 训练模式下:
1.1.1 主要的显存
每张 GPU 都需要保存一份完整的 模型参数(Model Parameters)、梯度(Gradients) 和 优化器状态(Optimizer States)。
因此总显存开销与 GPU 数量线性相关,难以扩展到更大模型
1.1.2 其他的显存
1.1.2.1 临时缓冲区(Temporary Buffers)
在执行如 梯度 All-Reduce 或 梯度范数计算(Gradient Norm Computation) 时,
系统通常会将所有梯度融合到一个 单一的扁平缓冲区(flattened ...
MoE 模型
1. 引言 Intro
扩展 dense 模型难度越来越大。稀疏模型(Sparse Model)可以在不显著增加训练成本的情况下扩展模型规模。推理阶段仅激活部分参数,因此相比同等参数量的稠密模型,推理速度更快
2. Transformer 中的 MoE 结构
2.1 MoE 模块替换 FFN
Transformer 中的 前馈网络(FFN) 替换为以下结构:
多个小专家(Experts):每个专家是一个独立的 FFN;
门控网络(Gating Network):根据输入 token 决定激活哪些专家
2.2 门控与专家计算公式
2.2.1 门控函数
\(G_\sigma(x) = \text{Softmax}(x \cdot W_g)\)
其中:
...
高效参数微调
1 Parameter Efficient Fine-Tuning 概述
1.1 全参数微调成本
全参数微调(Full Parameter Fine-Tuning)在大模型上代价极高。
以半精度(FP16/BF16)微调参数规模为 $N$ 的模型为例,显存占用可按如下估算:
权重(Weights):$2 \text{ bytes} \times N$
权重梯度(Gradients):$2 \text{ bytes} \times N$
优化器状态(Optimizer States):$2 \times 2 \text{ bytes} \times N = 4 \text{ bytes} \times N$
激活值(Activations):约为参数量的 $1\s...
LLM模型的量化策略
Low precision numbers in computer
1.1 LLM 的推理与训练成本
以典型大模型为例:
Llama-70B
训练成本:39.3M H100-80GB GPU hours
推理显存需求:≈140GB GPU memory
DeepSeek V3(671B 参数)
训练成本:2.8M H800 GPU hours
推理显存需求:>400GB GPU memory
大模型的训练与推理都极度依赖 GPU 计算与显存带宽,促使低精度计算成为主流优化方向。
1.2 模型量化(Model Quantizati...
共计 214 篇文章,27 页。