主页

LLM的decoding

1. 序列解码(Sequence Decoding )概览 大语言模型在生成文本时,需要从词汇表中逐个选择 token 来组成完整的序列。 核心问题是:如何选择最优的 token 序列。 1.1 四种主要策略 1.1.1 朴素方案:穷举搜索(Exhaustive Search) 思路:尝试所有可能的 token 组合,找到概率最高的序列 复杂度: \(O(V^N)\) 其中 $V$:词汇表大小(通常几万到十几万) $N$:序列长度 示例:词汇表 5 万,生成 10 个 token → (50000^{10}) 种可能 结论:完全不可行,计算成本天文数字。 1.1.2 贪心解码(Gr...

阅读更多

LLM的tokenizer

tokenizer 有多种计算token,进行转换的方式 1. Byte Pair Encoding (BPE) 1.1 BPE 算法概述 BPE 最早是为数据压缩提出的算法, 其核心思想是: 统计字节(或字符)对的频率 把频率最高的一对替换成一个新的”符号” 重复这个过程,不断合并频繁出现的对,形成越来越大的”词典” 需要注意的是,BPE 拆分的子单词不一定都具有语义意义 1.2 BPE 词表构建流程 1.2.1 初始化词表(Initialize vocabulary) 一开始,BPE 的词表只包含: 所有单个字符(例如英文字母 a-z,标点,空格等) 一个词尾标志(end-of-word symbol,通常用 </w> 或 ▁...

阅读更多

MFU估算

1. 浮点计算基础概念 1.1 FLOP(Floating Point Operation) FLOP 表示一次基本的浮点运算,例如加法 $x + y$ 或乘法 $x \times y$。 1.2 FLOPs FLOPs 表示“总共做了多少浮点运算”,即计算工作量的度量。 例如,训练 GPT-3 的总计算量约为: \[3.14 \times 10^{23} \text{ FLOPs}\] 1.3 FLOP/s 或 FLOPS FLOP/s(FLOPS) 表示“每秒能执行多少次浮点运算”,是硬件的速度指标。 例如: NVIDIA A100:约 312 TFLOP/s NVIDIA H100:约 1979 TFLOP/s(带稀疏性) ≈ 989 TFLOP/s...

阅读更多

Energon 多模态数据加载框架

1 主要功能 基于 WebDataset 的存储格式 采用 WebDataset 作为底层数据集存储方案,支持高效的顺序读取和分布式访问。 超大规模数据集处理 针对多机多卡训练场景深度优化,尤其DP并行,能够处理 PB 级别的超大规模数据集。 数据集混合 支持将多个异构数据集按权重混合或拼接,适用于多任务学习和课程学习场景。 状态管理 提供状态保存与恢复机制,确保训练可中断、可复现、可继续,保证数据迭代的完全一致性。 多模态数据支持 在同一训练流程中处理文本、图像、视频、音频等多种模态数据。 2 基础接口与基础组件 2.1 基础接口 2.2.1 单条数据加载 from megatron.energon import get_train_dataset, get_load...

阅读更多

FSDP 并行策略

1 训练过程中显存的组成 在大模型训练中,显存大致被三类数据占用: P (Parameters):模型参数 G (Gradients):反向传播时的梯度 OS (Optimizer States):优化器的状态(如 Adam 的动量和方差信息) 典型的 Adam 优化器中,这三者的比例大致为 1 : 1 : 6 之所以 Optimizer States 占比高,是因为 Adam 需要为每个参数维护一阶矩(动量)和二阶矩(方差)的额外信息 例如,在 PyTorch 中优化器的典型构造如下: optimizer = optim.Adam(model.parameters(), lr=0.001) 反向传播与参数更新的过程: loss.backward...

阅读更多

dp 与 ddp 数据并行

1 DP (DataParallel) 并行 1.1 使用方式 PyTorch 最原始的 DP 并行实现非常简单: import torch.nn as nn # 简单的DP使用 model = nn.DataParallel(model, device_ids=[0, 1, 2, 3]) 参数说明: device_ids: 指定使用的 GPU 设备,不指定时默认使用所有可见 GPU output_device: 默认是 device_ids[0](主卡),很多关键工作发生在这张卡上 1.2 原理解析 1.2.1 Parameter Server 概念 单机多卡的 DP 并行和分布式训练中的 Parameter Server 架构类似。 相关...

阅读更多

为什么相比于SFT训练,RL训练更依赖推理引擎

在大模型的训练中,常见的 RL(Reinforcement Learning)训练框架往往对推理引擎(如 vLLM、SGLang)依赖更强,甚至会将其作为安装和运行的必选组件。 核心原因很简单:SFT 在训练时只需要一次性计算 logits(Prefill),而 RL 的 rollout 阶段必须走完整的 Prefill + Decode 推理流程 1. Prefill vs Decode 在 Transformer 推理中,我们可以把计算过程分为两种模式: 阶段 输入内容 输出内容 并行性 Prefill 一次性输入整个序列(prompt + 已知目标...

阅读更多

IB 原生 RDMA 与 以太网卡 + RoCE 对比

1. IB 原生 RDMA 方案(InfiniBand 网卡) IB = InfiniBand,是一种高速、低延迟、高带宽的数据中心互连技术,原生支持 RDMA,无需额外协议封装。 典型带宽:40Gbps、100Gbps、200Gbps 及更高。 主要应用于 高性能计算(HPC)、人工智能训练集群、分布式存储 等对延迟和吞吐极度敏感的场景。 常见 IB 网卡型号: Mellanox ConnectX-6 (CX6) Mellanox ConnectX-7 (CX7) NVIDIA BlueField 系列 DPU(带 IB 接口) 优势: 原生 RDMA:直接在节点间读写内存,绕过 CPU,延迟可达微秒级。 带宽利用率极高,吞吐稳定。 在 HPC、A...

阅读更多