Liuyi Wen's Blog
搜索

Liuyi Wen's Blog

Transformer系列:2. Attention机制,MHA,MQA和GQA
发表于2025-05-19|Transformer
Scaled Dot-Product Attention 只使用一个注意力头计算权重。 假设有输入序列\(X=(x_1, x_2,..., x_n)\),对于每个词\(x_i\),计算其与所有其他词的相关性,并赋予不同的权重,最后对这些信息加权求和,得到新的表示。 \[ Attention(Q, K, V)=softmax(\frac{QK^{T}}{\sqrt{d_k}})V \] 分为以下几个步骤: 计算Query, Key, Value矩阵:每个输入token被映射为三个不同的向量: Q:当前需要关注的内容,例如在机器翻译中,查询可能是目标语言句子中的一个token; K:与查询进行匹配的内容,例如源语言句子中的token; V:最终要提取的信息,通常与键对应。 转换矩阵: \[ Q=XW_Q, K=XW_K, V=XW_V \] 其中,\(W_Q,...
Transformer系列:1. 从RNN到Transformer
发表于2025-05-13|Transformer
场景: 图像信息:任务为理解图像内容,采用卷积神经网络; 序列信息:任务为理解语音/文字/视频,采用循环神经网络。 对于序列信息,由于按时序输入的数据之间非独立,前后数据之间具备相关性,因此网络需要存储信息的能力。 RNN 网络结构 RNN通过使用带自反馈的神经元,能够处理任意长度的序列 时序sequence:RNN能建模序列数据,序列指的是前、后输入数据\((x^{(t)}, x^{(t+1)})\)不独立,相互影响; 循环recurrent:对每个输入的操作都是一样的,循环往复地重复这些相同操作,每时刻有相同参数W和U(参数共享); 记忆memory: 隐藏层\(h_{(t)}\)中捕捉了所有时刻t之前的信息,理论上\(h_{(t)}\)记忆的内容可以无限长,然而实际上记忆还是有限的; 正向计算 反向传播BPTT 梯度消失 /...
Transformer的KV Cache
发表于2025-05-06|Transformer
Problems 对于LLMs,每次矩阵乘法都由若干个浮点运算组成,因此其性能受限于GPU的FLOPS;随着输入的token长度增加,Transformer的自注意力机制与输入序列长度呈平方关系增长,产生最大的延迟开销。 为了解决推理延迟和吞吐量问题,当前的大模型服务系统通常采用KV Cache:通过缓存已计算的Key和Value矩阵,以避免在解码阶段重复计算键和值的投影(空间换时间)。然而在以下场景中KV Cache占用内存较大,影响推理性能: 处理长序列或多轮对话; 对于多个客户端请求,每个请求分别保留各自的KV Cache。 KV Cache的核心问题在于:占用大量内存和访存带宽;在生成阶段引入大量重复计算。本篇博客探讨KV Cache压缩技术。 Backgrounds 推理加速的衡量指标如下: 吞吐量:每生成一个token,服务商需要支付的算力成本。可以通过tokens per second(tps)衡量,即推理服务器单位时间内能处理针对所有用户和请求生成的输出token数。 延迟:包括两个指标: TTFT(Time To...
verl框架:2. 对比OpenRLHF+colocate思路解析
发表于2025-05-06|Parallelismverl
SPMD->MPMD SPMD设计范式:单程序多数据,所有进程/线程执行同一个程序的拷贝,通过环境变量差异自主确定行为模式,无需中心调度节点。主流并行框架(DDP/DeepSpeed/Megatron)均基于SPMD范式。 优点:SPMD由于没有controller,完全由worker自驱,在运行时更为高效; 缺点:由于各个worker上需要运行相同程序,灵活性不如single-controller模式;需要考虑各个rank之间的通信,增加编程复杂度。 经典代码如下: 123456import torchimport osprint(os.environ['RANK'], os.environ['WORLD_SIZE'], os.environ['MASTER_ADDR'],...
verl框架:1. Ray集群介绍+verl中基于Ray的执行流程解析
发表于2025-05-03|Parallelismverl
现代计算机体系结构 现代计算机体系结构如下: 多核:一台计算机上有多颗CPU,每个 CPU 有多个计算核心。CPU内部有缓存结构,外部有主存。 集群:多台计算机通过高速网络互联,每台计算机上配有至少一块高速网卡。使得不同节点之间互相访问数据就像在单个节点一样。 异构计算:CPU 和主存通常被称为主机(Host),各类专用的加速器被称为设备(Device)。当前基于 GPU 的异构计算是主流,GPU 有区别于 CPU 的芯片微架构和编译软件栈。 软件层面:GPU 提供了 CUDA编程接口; 硬件层面:GPU 有很多个专用计算核心,和 GPU...
FSDP设计解读
发表于2025-04-21|Parallelism
Meta官方文档 FSDP(Fully Sharded Data Parallelism)将AI模型的参数分片至多个数据并行的workers上,可选择性地将训练中的计算移至CPU上。每个worker上microbatch的数据是不同的。 分片(Shard):官方文档:Scaling services with Shard Manager 通常数据并行训练要求在每个GPU上,保存模型副本(引入冗余);模型并行训练在workers(GPUs)之间增添了额外的通信负担,用于同步激活值。 激活值(activations): 神经网络中每一层的输入输出都是一个线性求和的过程,下一层的输出只是承接了上一层输入函数的线性变换,所以如果没有激活函数,那么无论构造的神经网络多么复杂,有多少层,最后的输出都是输入的线性组合,纯粹的线性组合并不能够解决更为复杂的问题。常见的激活函数都是非线性的,因此向神经元引入非线性元素,使得神经网络可以逼近其他的任何非线性函数,这样可以使得神经网络应用到更多非线性模型中。 常见激活函数:参见Activation Functions —...
基于图像处理的智能纤维截面分析系统:系统展示
发表于2025-04-14
系统演示 (function(){var player = new DPlayer({"container":document.getElementById("dplayer4"),"theme":"#FADFA3","loop":true,"video":{"url":"/posts/27b7154a/1.mp4","pic":"1.png"}});window.dplayers||(window.dplayers=[]);window.dplayers.push(player);})()
大模型推理框架vLLM:paper + code 解析
发表于2025-04-10|Parallelism
论文解读:Efficient Memory Management for Large Language Model Serving with PagedAttention 论文原文 Abstract 为了提供LLM的高吞吐量服务,每次需要批量处理足够多的请求。然而现有系统面临KV缓存内存不足的挑战:每个请求的KV缓存内存占用巨大,且动态增减。当内存管理效率低下时,碎片化和冗余复制会造成显著的内存浪费,从而限制批处理规模。为解决这一问题,我们提出PagedAttention,这是一种受经典操作系统虚拟内存与分页技术启发的注意力算法。基于此,我们构建了vLLM这一LLM服务系统,其实现了:(1) KV缓存内存接近零浪费;(2) 支持请求内及跨请求的KV缓存灵活共享,进一步降低内存占用。评估表明,在相同延迟水平下,vLLM将主流LLM的吞吐量较FasterTransformer、Orca等最先进系统提升了2-4倍。当处理更长序列、更大模型及更复杂解码算法时,性能提升尤为显著。 Introduction 当前LLM...
《算法导论》笔记
发表于2025-04-07|Algorithms
该篇为《算法导论》学习笔记,包含部分章节的理论阐释、典型问题、和代码实现。 算法 时间复杂度 1.渐近符号: θ--渐近紧确界; f(n)=θ(g(n)):g(n)是f(n)的渐进紧确界. 定义:存在c1,c2,n0,对任意n>=n0,有:0<=c1g(n)<=f(n)<=c2g(n). f(n)=θ(g(n)),当且仅当:f(n)=O(g(n))且f(n)=欧姆. O--渐近上界;[欧姆]--渐近下界 o--非紧确渐近上界;ω--非紧确渐近下界 f(n)=O(g(n))中,0<=f(n)<cg(n)对某个常量c>0成立; f(n)=o(g(n))中,0<=f(n)<cg(n)对所有常量c>0成立. 2.主定理求时间复杂度: T(n)=aT(n/b)+f(n). 比较n1和f(n):选择多项式意义上更大的。 1.f(n)=O(n(logb(a)-ε)),则:T(n)=θ(n(logb(a)). 2.f(n)=0(n(logb(a))),则:T(n)=θ(n(logb(a)lgn)....
纸翼传问平台:平台功能、CICD、降级服务、自动扩缩容展示
发表于2025-04-07
该平台为北航2024年秋暑期软件工程实践项目。 CICD部署 (function(){var player = new DPlayer({"container":document.getElementById("dplayer1"),"theme":"#FADFA3","loop":true,"video":{"url":"/posts/8b715a29/4-CICD.mp4","pic":"1.png"}});window.dplayers||(window.dplayers=[]);window.dplayers.push(player);})() 降级服务 (function(){var player = new...
123
avatar
Liuyi Wen
文章
28
标签
5
分类
13
Follow Me
公告
The Journey Is the Reward.
最新文章
Transformer系列:2. Attention机制,MHA,MQA和GQA2025-05-19
Transformer系列:1. 从RNN到Transformer2025-05-13
Transformer的KV Cache2025-05-06
verl框架:2. 对比OpenRLHF+colocate思路解析2025-05-06
verl框架:1. Ray集群介绍+verl中基于Ray的执行流程解析2025-05-03
分类
  • Algorithms1
  • C++ Primer5
    • C++ STL2
    • Class Design Techniques1
  • Database5
    • CMU 14-4454
      • C++ Primer1
  • Introduction to AI3
标签
KV Cache Web Platforms Display C OOP C++
归档
  • 五月 2025 5
  • 四月 2025 7
  • 三月 2025 16
网站信息
文章数目 :
28
本站访客数 :
本站总浏览量 :
最后更新时间 :
©2019 - 2025 By Liuyi Wen
框架 Hexo 7.3.0|主题 Butterfly 5.3.5
搜索