Personal Knowledge Publishing
Mr. Tang 的个人知识站
体系结构——权衡的艺术,性能的诗歌
-
大模型中的数学(005):泊松分布在 LLM 推理系统中的作用
泊松分布在 LLM 推理系统中的作用 在 LLM Serving 系统中,用户请求的到达往往是"不守时"的。即使一台服务器平均每秒接收 10 个请求,实际情况也可能是:这一秒来了 7 个,下一秒来了 12 个,再下一秒来了 9 个。平均到达速率只是一个长期统计的结果,而真正决定系统性能的,恰恰是围绕这个平均值的随机波动——请求可能在短时...
-
大模型中的数学(004):从位置到旋转,一步步理解 RoPE
从位置到旋转:一步步理解 RoPE 在介绍 Transformer 的时候,我们经常会说模型需要知道词语的先后顺序。但具体来说,位置应该怎样进入注意力计算?如果我们希望模型同时关注词语内容和它们之间的距离,又该如何设计?本文从这两个问题出发,结合具体数字、旋转矩阵和代码,逐步理解 RoPE(Rotary Position Embedding,旋转位置编码)...
-
大模型中的数学(003):为什么每个 Token 的 KV 会受到上下文影响?
从一层到两层:KV 为什么会带上上下文? 讨论 KV Cache 时,很容易产生一个疑问:每个 token 不都是各自计算自己的 Key 和 Value 吗?既然如此,同一个 token 出现在不同句子里,为什么它的 KV 还会不同? 先看第一层 设第 个 token 的初始表示为 。它通常由 token embedding...
-
code-review-graph 使用教程
你有没有遇到过这种情况:在 Harness 里问一句「这个认证流程是怎么跑的?」「我改这个类会影响哪里?」或者「帮我 review 一下最近的改动」,它就开始一轮又一轮地搜索、读取、拼上下文。 时间一长,你会发现一个很现实的问题:AI 对代码库的理解,很难持续积累。 本文要讲的,就是如何用 code-review-graph 给本地代码仓库建立一张知识图...
-
vLLM 部署 Qwen3.8-27B-FP8(3):VSCode 使用
安装 VSCode 的 Cline 插件,并按下图完成配置: 将 Base URL 设置为: http://202.197.4.150:8000/v1
-
vLLM 部署 Qwen3.8-27B-FP8(1):无有线连接场景下,服务器 / 本地 / WSL 三端的 Harness 使用
0. 适用情况 人在外面、只能走跳板机时:本机电脑到 202.197.4.150 没有直连路由,本地会话会连不上。解决办法是保持一条隧道(复用你现成的 remote-150 配置,自动经 ProxyJump eda): ssh -N -L 8000:127.0.0.1:8000 remote-150 这时给本地会话单独加一个供应商(如 vllm-loc...
-
Linux 开发环境配置
零、Linux 换源工具 linuxmirrors 一、Vim 配置 升级 vim 到新版,防止粘贴问题: # 升级 vim sudo apt upgrade vim 将以下内容保存到用户主目录下的 ~/.vimrc 文件中(如果文件不存在则新建)。 " ==============================================...
-
Harness 使用 (1):受欢迎的 skills 收集
Harness 使用 (0):目录 代码相关 skills 安装时,优先将官网链接发送给对应的 harness,由其直接完成安装;若无法安装,再参照下方步骤操作。 spec-kit Spec Kit 是一个开源工具套件,为 AI 编码助手 提供结构化流程、可复用模板和有据可查的成果。它具备三个功能: 构建构建功能或应用。 排查并修复异常行为...
-
vLLM 部署 Qwen3.8-27B-FP8(2):存在有线连接场景下,服务器 / 本地 / WSL 三端的 Harness 使用
0. 适用情况 你的电脑已接入有线内网(可直接访问 202.197.4.x 网段)。 1. 方案 在 《vLLM 部署 Qwen3.8-27B-FP8(一):无有线连接场景下,服务器 / 本地 / WSL 三端的 Harness 使用》 的基础上,由于内网可直接访问 vLLM 所在服务器,不需要再额外建立隧道(以下操作不再需要): ssh -N -L...
-
Harness 使用 (3):模型能力对比收集
artificial analysis 网站
-
端侧大模型芯片
1. Netron Netron 网页 神经网络模型可视化工具。 支持 ONNX、TensorFlow Lite、PyTorch 等格式。 拖入模型即可查看网络结构、算子、张量形状。 2. Coral NPU 裸机编程 — Google Coral 文档 github 项目 Coral NPU 是 32 位 RISC-V 微控制器,裸机运行...
-
远程连接和 WSL 连接配置(2):MobaXterm 免密连接+跳板机
MobaXterm 免密连接 场景:目标服务器 202.197.4.156 因特殊网络配置无法直接访问,必须通过跳板机 47.101.171.14 中转连接。MobaXterm 的免密连接配置如下:
-
ONNXim 模拟器(1):GEMM、Tile、脉动阵列与存储映射
可视化交互图:onnxim-gemm-mapping-stepwise.html 1. 从完整 GEMM 到 Tile,再到一条计算指令 1.1 先明确这几个维度在本文中的含义 理解分块只需要先知道:N 是输入和输出的行数,M 是输出列数,C 是每个输出元素要遍历的归约长度。 源码还会把 C 称为 K;本文中的 C、K 指同一个归约维度。 名称 含义...
-
远程连接和 WSL 连接配置(1):VSCode SSH 和 Pycharm SSH 免密连接
在 Windows 系统下配置 SSH 免密登录远程服务器,并且支持多用户配置。
-
脉动阵列(1):基础知识
脉动阵列(Systolic Array) 1. 介绍 本目录提供一个 二维脉动阵列 的 Python 仿真,用于计算矩阵乘法。 输入矩阵:A 的形状是 (m, k),B 的形状是 (k, n) 输出矩阵:C = A @ B,形状是 (m, n) 阵列由 m × n 个处理单元(PE)组成。每个 PE 在每个周期执行一次乘加(MAC): acc[i...
-
投机解码 (1):拒绝采样机制
0. 证明目标 目标:从任意初始历史 出发,Speculative Sampling 算法从草稿模型生成完整序列的分布,与目标模型自回归采样完全一致。 1. 问题设定与动机 自回归语言模型按 token 逐步生成。给定已经生成的历史 ,下一个 token 的条件分布由模型决定。目标模型(target model)记为 ,草稿模...
-
Qwen 3.5 架构解析 (0):目录
重点介绍三个部分: SWA (Sliding Window Attention, 滑动窗口注意力) Gated DeltaNet Mamba2
-
Qwen 3.5 架构解析 (1):Linear Attention → Delta Rule → Gated Delta Rule → Gated DeltaNet 的演化
1. 总体介绍 Qwen 1.1 先看两张图 官方 Qwen3-Next 架构图展示了三条主线:Gated DeltaNet 作为线性 token mixer、Gated Softmax Attention 作为精确的全注意力 token mixer,以及每个 block 后面的 Mixture of Experts。图中右下角的 Gated Delta...
-
解析 FlashAttention(0):目录
解析 FlashAttention(1):从标准 Attention 讲起 解析 FlashAttention(2):FlashAttention-v1 前向传播 解析 FlashAttention(3):FlashAttention-v1 反向传播 解析 FlashAttention(4):FlashAttention-v2 解析 FlashAtt...
-
【训练排障】训练不收敛的系统排查清单:学习率、数据、初始化、精度逐个排除
来源视频:训练排障:训练不收敛的系统排查清单:学习率、数据、初始化、精度四步走 1. 三种不收敛表现 Loss 完全不降:一直在初始值附近晃动。 Loss 持续震荡:降一点、升一点,没有明确趋势。 Loss 先降后升:常见方向是过拟合或学习率太大。 正常训练允许 Loss 小幅波动,但一段时间内应有整体下降趋势。 2. 排查顺序 3. 第一步...
-
Harness 使用 (0):目录
Harness 使用 (1):受欢迎的 skills 收集 Harness 使用 (2):常用提示词
-
Harness 使用 (2):常用提示词
Harness 使用 (0):目录 1. 模型架构图 对于 LLM 整体架构图,可以使用以下参考图: 2. 模型计算流程图 对于 LLM 每个模块内部的计算流程,可以使用以下参考图:
-
torch.distributed 分布式训练(04):调试
2 卡及以上不是不能使用断点,但普通 PyCharm 断点不能像单卡一样随意使用。 核心原因是:多个 rank 必须按相同顺序执行 barrier、all_reduce、all_gather 等集合通信。如果 rank 0 被断点暂停,而 rank 1 已经进入集合通信,rank 1 会等待 rank 0,最终表现为卡死或超时。 所以,推荐的调试顺序是...
-
AI Infra 学习资料
非官网资料 北京大学未名超算队x北京大学学生 Linux 俱乐部——AI Infrastructure Seminars LLM Serving 压力测试负载
-
CUDA 学习资料
CUDA 编程指南中文图解
-
Jalapeño 架构设计
附录:参考资源 第三方分析 重新设计推理芯片: 从 Nvidia GPU 的缺陷到 OpenAI Jalapeño Jalapeño 拆解:OpenAI 的第一代推理 ASIC,Prefill-Decode 分离不再必要了? 一、背景:从带宽墙到开销墙(The Overhead Wall) 现代 AI 推理的瓶颈已经发生迁移。在训练或大 batch...
-
解析 FlashAttention(4):FlashAttention-v2
论文链接: FlashAttention v1:FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness (NeurIPS 2022) —— https://arxiv.org/abs/2205.14135 FlashAttention v2:FlashAtte...
-
解析 FlashAttention(5):FlashAttention 和常用 triton 算子
1. triton 代码 triton_docs_tutorials-main.zip 附件中的代码包含以下算子的 triton 实现,以及 .ipynb 文件内的可视化交互图: 04_vector_addition:向量加法算子。 05_fused_softmax:融合 softmax 算子。 06_matmul:矩阵乘算子。 07_dropo...
-
解析 FlashAttention(1):从标准 Attention 讲起
1. 标准 Attention 的定义 在正式分析 FlashAttention 之前,要先彻底地了解标准 Attention 的做法和含义。 给定单个 Query 向量 ,以及 Key 矩阵 和 Value 矩阵...
-
解析 FlashAttention(2):FlashAttention-v1 前向传播
上一篇:解析 FlashAttention(1):从标准 Attention 讲起 参考:万字长文详解FlashAttention v1/v2 整个 FlashAttention v1 的分块运算可视化过程: flash_attention_visualization.html 1. 背景 & 动机 1.1 标准 Attention 的核心矛...
-
解析 FlashAttention(3):FlashAttention-v1 反向传播
解析 FlashAttention(3):FlashAttention-v1 反向传播 前置阅读:解析 FlashAttention(2):FlashAttention-v1 前向传播 FlashAttention-v1 反向传播可视化:flashattention_backward.html 1. 背景 & 动机 1.1 标准反向传播的内存...
-
torch.compile 加速 Pytorch (01):简介
来源:Introduction to torch.compile 作者:William Wen 适用版本:PyTorch >= 2.0 1. torch.compile 简介 torch.compile 是加速 PyTorch 代码的新方式。它通过 JIT 编译 将 PyTorch 代码编译为优化的内核(optimized kernels),同...
-
APOGEE: Adaptive Prefetching On GPUs for Energy Efficiency
论文链接:APOGEE: Adaptive Prefetching On GPUs for Energy Efficiency APOGEE 核心方法 FOA 预取器: 一个 warp 里的线程同时暴露地址规律,预取器瞬间学会"步长",下次按公式批量预取。 学习(Training) 场景: 8 线程的 warp 执行 load...
-
每日听力口语训练
001. 小镇英语老师经济独立,为何不混任何圈子 全英|小镇英语老师经济独立,为何不混任何圈子 I'm a young independent English teacher. At a young age, I've achieved financial independence and have complete control over my li...
-
大模型中的数学(002):DP 中的梯度缩放
数据并行中的梯度缩放 考虑一个大小为 的全局 batch 。全局目标损失函数采用 mean reduction: 其梯度为基准真值: 1. 单卡...
-
Pycharm 和 VSCode 调试
PyCharm 调试 PyCharm 提供两种主要的调试配置:Script 与 Module。 Script 调试 Script 调试即常规的 python3 直接运行脚本的方式,同时支持指定命令行参数。 Module 调试 Module 调试适用于非标准的启动方式,例如通过 torchrun 启动: ⚠️ 注意:分布式训练场景下通常不建议使用...
-
torch.distributed 分布式训练(02):基本用法
1. torchrun 启动参数 单节点训练 如果机器上有 8 张 GPU,并且希望每张 GPU 使用一个进程,可以执行: CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 \ torchrun --standalone --nproc_per_node=8 train.py 也可以省略 CUDA_VISIBLE_DEVICE...
-
torch.distributed 分布式训练(03):TP/PP/DP 代码实例
代码 parallel_all_in_one_test.py TP、PP、DP 并行通信笔记 示例配置为: 因此总进程数为: 测试模型的主要维度为: 其...
-
大模型中的数学(001):Gumbel-Max Trick 代替随机采样
Gumbel-Max Trick 这里不展开 Gumbel-Max 的严格数学证明,只说明它解决什么问题,以及为什么需要它。 1. 我们想解决什么问题? 假设有一个离散随机变量 ,它有三个可能取值: 其中: 我们希望按照这个概率分布采样一个...
-
torch.distributed 分布式训练(01):简介
【大模型训练笔记】分布式训练利器torch.distributed
-
GPU Benchmarks 收集
完全单独切分的 NVIDIA GPU Kernel 1. 只有 kernel,不带 makefile kernel_split_benchmark_src_code.zip 2. 有 kernel + makefile mykernel_split_benchmark.zip
-
Python 和 Pytorch 语法备忘录
Python 使用 Python 魔法方法:比如 __repr__、__init__ 等。 Python 装饰器:常用如 @property(属性化访问)、@dataclass(自动生成 __init__/__repr__)。 注释 Google Python Style Guide:在指引 AI 进行编程时,可以要求遵循该规范。 扩展:其他语言...
-
docker 环境问题
docker 出现中文乱码 进入容器后执行: # 1. 安装 locales 和中文字体 apt update apt install -y locales fonts-wqy-zenhei fonts-noto-cjk # 2. 生成 UTF-8 locale locale-gen zh_CN.UTF-8 en_US.UTF-8 # 3. 设置环境...
-
GPU 内存子系统分析(四):L2 布局
所有测试脚本和代码:l2c-test-tangyuhan.zip 演示 PPT: rtx5080_gpu_memory_subsystem_analysis_structured.pptx NVIDIA RTX 5080 L2 缓存微体系结构测量 本文以 NVIDIA GeForce RTX 5080 作为实验平台,基于一套 CUDA 微基准测试程序...
-
GPU 内存子系统分析(二):DRAM 带宽分析
DRAM 带宽分析
-
GPU 内存子系统分析(一):延迟分析
分析GPU 的 L1/Shared Memory,L2,DRAM 的访问延迟
-
Sequence Parallelism序列并行(一)
原始论文 Reducing Activation Recomputation in Large Transformer Models 序列并行 序列并行是在张量并行的基础上进行的进一步深度优化,旨在减少“中间值”带来的显存占用(“中间值”是反向传播所必需的。如果不保存这些中间值,在反向传播过程中就必须重新执行前向计算来生成它们,这会显著增加训练的时间开销...
-
Tensor Parallelism张量并行(二)
这是一篇基于 Megatron-LM Tensor Parallelism (TP) 核心逻辑的源码解析文章。 代码路径:Megatron-LM/megatron/legacy/model/transformer.py 前言 在大模型训练中,Tensor Parallelism (张量并行,TP) 是最核心的并行策略之一。它不仅仅是简单的分片训练,而是...
-
Tensor Parallelism张量并行(三)
在分布式大模型训练(如 GPT-3, Llama 3, DeepSeek)中,张量并行 (Tensor Parallelism, TP) 是处理超大规模参数的核心技术。而 Megatron-LM 的 TP 源码设计充满了系统工程的智慧。 今天我们将深入 Megatron-LM 剖析其最基础的组件——ColumnParallelLinear(列并行线性层)...
-
Tensor Parallelism张量并行(一)
论文来自 Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism。 什么是 Tensor Parallelism(张量并行) 大模型训练通常面临两个核心问题: 显存压力大:当模型参数规模达到数十亿甚至更高时,在每张 GPU 上都完整保存一...
-
Data-Parallelism数据并行(二)
Model Parallelism 之 Data Parallelism: Naive Data Parallelism, Distributed Data Parallelism (DDP), ZeRO Data Parallelism
-
Data-Parallelism数据并行(一)
Model Parallelism 之 Data Parallelism: Naive Data Parallelism, Distributed Data Parallelism (DDP), ZeRO Data Parallelism
-
Pipeline-Parallelism流水线并行(一)
Model Parallelism 之 Pipeline Parallelism: Naive Pipeline Parallelism, Gpipe, PipeDream