S1mpleWind's blog

简约风的博客

DSA (Deepseek sparse attention)

最近在看 DSA 的内容,看看能不能优化一下写个算子啥的(虽然目前CUDA只会最简单的语法,先看算法)

由于涉及到的内容比较多,所以系统的梳理一下相关的笔记,主要包括:

修改于26/5/8:重新读了一些博客并理了一下思路,对于MLA的部分有了新的想法

Read more »

WEB Dev Basic

记录一下学习互联网应用开发的一些笔记,这里主要是一些比较大的概念

Read more »

本篇blog本来只是一篇技术学习,但是在记录的时候迸发了一些灵感遂走向了不同的方向,由于直接记录了当时的思考历程而不是一个整体的写作,前后出现了一些观点的改变,涉及的技术细节也被简化,所以类别也被从llm-algorithm划分到了杂谈

思考的历程以题外话章节为主

原标题 dLLM:AR or Diffusion ?

Read more »

有关PD/DT分离的一些想法

最近实验室让看了有关这方面的论文,包括但不限kimi的[mooncake](zhenghuawei923/Mooncake-kimi-ai: Mooncake is the serving platform for Kimi, a leading LLM service provided by Moonshot AI. kimiAI大模型),以及tri-dao最新的[SSD](Speculative Speculative Decoding | OpenReview)

Mooncake

PD 分离的工程实现

SSD

在一个“节点”内部实现的一种简单的DT分离

一些想法

如果要从现有的 PD 分离的方法中借鉴,那就要弄清现在两种方法的相似和不同

PD DT
生命周期 prefill的生命周期短,且在一轮独立的处理中,只会出现一次;
decode的生命周期就更长,会一直generate直到满足条件
Draft阶段的推测是非常轻量的,所以它的生命周期更短
而 Target 的验证虽然一次性并行,但是本身是大的,所以周期长
计算特性 prefill阶段是密集型计算,规模随输入长度的增长而呈square/linear增长
decode阶段则是访存密集型,需要频繁的读写kvcache
Verify 阶段同样是密集型计算,但是其增长取决于生成的 draft token 的长度以及可能生成的 draft 树
Draft阶段取决于生成的策略,从最naive的串行到 EAGLE 之类的树状结构,再到PEARL生成的串行的异步,以及SSD的网状的结果,计算特性会有所不同,并发的程度也不一样
交互特性 在一轮独立的处理,两者只会交互一次,传输KVCache 在不依赖异步策略的一轮处理中,两者会多次交互,但是逻辑上的先后特性被完整转化成了时间上的先后顺序
而在实施了异步策略的一轮处理里,这个交互的逻辑就会变得更加复杂

PEARL 论文阅读

之前读 EAGLE 的时候就看到这位老哥在底下附上这篇 paper,最近要看 PD 分离有关的文字,正好看看这篇,记录一下

Read more »

LLM-training / Algorithm Basics

最近做了一点训练,发现对 LLM 最基本的一些东西已经有点遗忘了

​ --修改补充于26/5/6

Read more »

Ray 集群架构

要想在多卡环境下进行训练,进行不同卡之间的通信和协同是必不可少的

这里将简单记录一下对Ray集群架构的学习

TODO:有空来补上

看来这个坑要很久之后才能填上了

桥牌

学一下桥牌,挺有意思

Read more »

E³-PRUNER 论文阅读

华为的一个剪枝方法

简单来说,逻辑上有两个关键点:

  1. 剪枝
  2. 微调模型

在训练的循环过程中,在开始的循环中先联合了剪枝和微调,之后只进行微调

Read more »
0%