DualPath:用双路径 KV-Cache 加载打破 Agentic 推理的存储瓶颈
围绕 Agentic 推理中的 KV-Cache 加载瓶颈,介绍 DualPath 如何利用 Prefill 与 Decode 两侧的存储带宽,结合分层流水线、RDMA 流量隔离和自适应调度,梳理论文实验结果与部署限制。
上下文并行在多模态模型中为什么会失效
前置阅读:序列并行(SP)与上下文并行(CP)
1. 背景:为什么需要 CP
对于纯文本 LLM,开启上下文并行(Context Parallelism,CP)可以将长序列的激活显存分摊到多张卡上:
CP 组内每张卡只持有序列的 $L/P$ 段;
KV-Cache 也按序列维切分,显存随 CP 度线性减少;
Ring Attention 或 Ulysses 负责跨卡的 attention 计算。
Megatron-LM 的 get_batch_on_this_cp_rank 函数负责做这个切分,并且有一个负载均衡的细节:
1.1 Causal Mask 下的负载均衡
对于因果(causal)LLM,序列靠后的 token 需要 attend 到更多的 ...
混合精度训练(AMP):从 FP32 到 BF16
关联阅读:FP8 训练
Float16Module
1. 为什么要降低精度
全精度(FP32)训练的问题:
显存:一个 1B 参数模型,FP32 参数占 4GB,再加上同等量级的梯度和优化器状态,显存开销达 16GB+;
带宽:FP32 比 BF16 多占 2× 带宽,矩阵乘法的吞吐受限于内存带宽时损失明显;
硬件利用率:A100/H100 的 Tensor Core 在 BF16/FP16 下的峰值算力是 FP32 的 2-4×。
2. 数值格式基础
格式
符号
指数
尾数
数值范围
特点
...
TP 并行的通讯计算
张量并行(Tensor Parallelism, TP)就是为了处理“大权重”。
然而,TP 并非免费的午餐。它的核心矛盾在于:通过切分矩阵降低了显存消耗,却引入了极高频率的计算内通信。
1. 权重的切分(通信算子的引入)
本文涉及的 AllReduce / AllGather / ReduceScatter 通信原语基础:NCCL 通信原语
张量并行的核心是将线性层 $Y = XW$ 进行切分。根据切分方向的不同,引入了不同的通信算子。
1.1 列并行 (Column Parallelism)
列并行将线性层的输出维度切开:把权重 $W$ 按列切分为
\(W = [W_1, W_2]\)
于是每块 GPU 只负责产出一段输出特征:
\(Y = XW = [XW_1,...
NCCL 通信原语 (Primitives)
NCCL(NVIDIA Collective Communication Library)提供 GPU 间的集合通信 API,所有操作均与 CUDA Stream 绑定,支持 PCIe、NVLink、InfiniBand 等多种互联。
1 Broadcast
从 root rank 广播数据到所有设备。
ncclResult_t ncclBroadcast(const void* sendbuff, void* recvbuff,
size_t count, ncclDataType_t datatype,
int root, ncclComm_t comm, cu...
LLM 数据的过滤、去重
本讲:深入 mechanics
过滤(filtering)的算法工具:如何从海量原始数据里找“像目标数据”的子集
过滤的应用:语言识别、质量过滤、毒性过滤
去重(deduplication):从精确重复到近似重复(Bloom filter、MinHash、LSH)
1. 过滤(Filtering)总览:Target vs Raw
基本问题(算法模块)
给定小但高质量的“目标数据” T 与海量“原始数据” R
目标:在 R 中找到一个子集 T',使其“更像” T(但不要求与 T 完全相同)
对过滤算法的要求(Desiderata)
能从 T 泛化:希望 T 与筛出的 T' 不同,但风格/分布相近
极快:必须在巨大 R 上跑,吞吐量是第一约束
...
预训练数据集巡礼
本文是《LLM 数据的生产》的下篇,对主流预训练数据集做纵览。上篇讲训练阶段框架、法律与后训练数据,见 llm-data-produce。
4. 预训练数据巡礼(Pretraining)
目标:对主流模型的”数据配方”做一次纵览;观察到一个共性:大量工作集中在转换(HTML→文本)、过滤、去重、质量/毒性/PII控制。
4.1 BERT(2019):BooksCorpus + Wikipedia
论文:https://arxiv.org/pdf/1810.04805
BERT 训练数据由两部分组成:
BooksCorpus(书籍)
Wikipedia
一个容易忽略但很重要的点:BERT 训练时的序列单位是文...
共计 214 篇文章,27 页。