学习让我快乐

争于世, 不争于势;简洁, 高效, 赏心悦目

Reinforcement-Learning 学习笔记

是的, 这是一本学习笔记, 对 Sutton Reinforcement Learning: An Introduction 的学习笔记, 正如我之前那些学习笔记一样, 这种笔记内容上并不连贯, 阅读性不佳. 更多的是作为我时不时的参考使用, 所以不要尝试读下去. 1 Introduction 1.3 强化学习的要素 1.4 Limitations and Scope 1.5 A...

对 PPO-clip/penalty 一种理解

之前读大猿老师的人人都能看懂的RL-PPO理论知识时,虽然受益匪浅,但对 PPO-clip/penalty 究竟如何起效,心里还是有点“雾里看花”。最近做了一番详细调研后,我决定换个角度,从梯度的变化出发,彻底搞懂 clip 和 penalty 的作用机理。P.S. 大猿老师的文章真是越读越舒服,每篇都能把原理讲得清清楚楚! 首先来看下为什么需要 clip/penalty; 在朴素的 RL...

数字电路设计原理与实践学习笔记

是的, 这是一本学习笔记, 正如我之前那些学习笔记一样, 这种笔记内容上并不连贯, 阅读性不佳. 更多的是作为我时不时的参考使用, 所以不要尝试读下去. 1 引言 Q: 晶体管与门电路的关系是什么? ChatGPT: 晶体管与门电路之间是“器件”与“功能单元”的关系。简单说: 晶体管是构成门电路的最基本元件 门电路(如与门 AND)本质上是用晶体管组成的开关网络。 门电路的...

大家好, 我是练习AI一年半的

时光荏苒,蓦然回首,自写下 从数据库到 AI 一文正式踏入 AI 领域,至今恰好一年。最近在整理述职 ppt 时,系统梳理了这段时间的学习与实践,索性也在这里做个简要总结,权当记录这段与 AI 共舞的成长旅程。 PD 分离: 为什么 HybridConnector 我刚来到 AI 时, 分布式推理正成为业界主流趋势, 大家都在探索如何通过PD分离以提升吞吐与降低成本; 而且非常幸运, 老...

vllm 中 async scheduling

当前 vLLM 的异步调度(async scheduling)实现仍较为复杂. 在深入剖析其具体代码之前, 本文将以一条具体的查询请求为例, 手动模拟调度器 scheduler 与 worker 的执行流程, 并标注其中的关键状态变化. 通过这种方式纲举目张, 为后续深入理解代码细节提供一个清晰的参照框架. S0.schedule S0 对应着发生在 R 上的第 0 次 step;...

转折中的 PD 分离

就在昨天晚上, 我们线上 PD 分离部署规模又上了一个新的台阶. 这次没有想往常几次爬坡出现新的问题, 一时间心有所感, 就是想写点什么记录下我们整个 PD 分离的开发历程. kvt 1.0 看过我历史几篇关于 PD 分离的文章, 比如 PD 分离中的 GDR 等的同学都有了解, 我们 PD 分离在早期设计上就期望做到旁路, 不需要对 step 主流程做大的改动. ZeroOverh...

vllm 中的 GDN

随着 Qwen3-Next PD 分离机制的陆续上线, 借此机会系统梳理一下 Gated Delta Rule 的计算流程以及 vllm 中的实现. recurrent 如 GDN 论文 “Gated Delta Networks: Improving Mamba2 with Delta Rule” 所示, Gated Delta Rule 有 recurrent 与 chunk 两种形...

PyTorch Autograd Engine: 1

在正式剖析 Autograd Engine 之前, 有必要先花一点时间把多元微积分里 “导数” 与 “偏导数” 这两个概念重新捋一遍, 毕竟我发现自己又在这块儿犯迷糊了. 严格而系统的论述请参考 陶 Analysis II 6: 多元微分学, 下文仅为个人的非严谨提醒, 旨在把最关键的直觉再钉牢一点. 对于函数 $f: \mathrm{R}^n \to \mathrm{R}^m$, $f$...

PaperReading: Nanoflow(2)

在去年 9 月份做了 PaperReading: Nanoflow 分享之后, 随着 Deepseek TBO 的流行, 我也陆续收到不少关于 Nanoflow 算子如何重叠执行的追问, 一直想找时间详细绘制下 nanoflow 具体地执行流, 现在时间来啦! 我本来想着将上面草图转换为 graphviz 形式, 但感觉好麻烦啊= 关键是上面草图信息已经够直观了, 应该没必要了= Q...

PD 分离中的 kvcache 传输优化

随着我们 PD 分离系统在线上的推广, 我们观测到了 kvcache 传输逐步成为影响用户 ttft 体验的因素之一. 你可以阅读过往文章了解我们 PD 分离的大致架构, 抛开这些过往背景不言, 现在摆在我们面前的问题比较纯粹: 优化 PD 分离中的 kvcache 传输优化. 在目前线上部署中, 我们 P 节点的 attention tp 是大于 D 节点 attention tp 的: ...

啊?你怎么知道我从104kg健到了70kg!

计划启动! 当体脂秤上的数字兜兜转转最终停留在70.7KG的时候,也预示着我这持续了三年的健肥计划是时候到了一个里程碑时的时刻了。忽然忘了当初为啥一时兴起要健肥的来着?可能真的只是小小的简陋神经网络中的一次随机扰动吧。相比这三年发生的另外一件事情从数据库到AI来说,健肥对我来说好像确实不值得一提。但还是想说点什么,就当对过去三年的一次总结,一次与自己肉体的和解吧。 计划执行! 多动...

SpS, Eagle3: 礼貌一点会影响推理性能么?

前言 如 无中生有的 nan 所示, 在我们很早之前为 vllm v1 引入 PD 分离之后, 紧接着要考虑的问题就是 PD 分离与引擎各个功能的适配问题, 比如与 SPS, 与 EP 等. 当然在我们早期设计 PD 分离时, 或者在为 vllm 引擎新增功能时, 就有原则: 目前我们的 PD 分离以及请求迁移都是在 EngineCore 上加了一些新接口(供我们内部组件调用), ...

无中生有的 Nan

前言 很久之前, 我们基于 vllm v1 connector 实现了一套异步的 kvcache load/save 组件, 主要是觉得社区 vllm v1 kv connector 设计中: 把 kvcache 未完成 load/save 的请求, 也放入 waiting 队列中, 依赖于一些 “空” 的 step 来更新 kvcache 的状态, 混淆了 kvcach...