avatar
Articles
107
Tags
25
Categories
5

Home
Archives
Tags
Categories
About
Yuchen You
Search
Home
Archives
Tags
Categories
About

Yuchen You

Untitled
Updated2026-03-23|excalidraw
==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: ‘Decompress current Excalidraw file’. For more info check in plugin settings under ‘Saving’ Excalidraw Data Text Elements h0 W1 b1 ^DYJ23dqV h1 W2 b2 ^DamcN4mr sigma(z1) ^hpkOh2Rl z1 = f(h1, W1, b1) ^rMl4wxn9 z2 = f(h2, W2, b2) ^dRRoun00 sigma(z2) ^5lTV8bfR L := loss(Sample; sigma(z2)) ^fsu3mHqG h0 ^ckeaeLm5 %% Drawing 1234567891011121314151617181920212223242526 ...
Taming Throughput-Latency Tradeoff in LLM Inference with Sarathi-Serve
Updated2026-03-22|mlsys
Prefill vs. Decode Prefill 阶段做了什么 prefill = 对整个 prompt 做一次完整的 transformer forward。 包括了: 对所有输入 token 一起做 embedding 过每一层的 attention 过每一层的 FFN 同时把每层对应的 K/V 写入 KV cache 最后根据最后位置的 hidden state 过 lm head,得到 next-token logits 采样 / greedy / top-k / top-p,选出第一个输出 token 这个过程由于是有了所有的输入参数的计算,所以其可以在输入启动阶段就做所有启动处理,结果是 compute-bound. Decode 阶段做了什么 对每一个新的 token (这里来看类似于一个单词的 向量表示), 来计算他们预测的下一个单词输出,这里应该会经过多个阶段,分别是 linear 阶段,也就是从 token X 处理得到 Q, K, V attention 阶段,也就是通过 QKV, softmax 等计算得到 attention 得分 FFN 阶段,也就 ...
GPipe - efficient training of giant neural networks using pipeline parallelism
Updated2026-03-23|mlsys•ml_training
神经网络基础 ![[nano-MLP]] 如图是一个基础的神经网络结构, 我们这里首先要明确几个函数: 每一层内部的计算是 hi:=σ(zi)h_i := \sigma(z_i)hi​:=σ(zi​), zi:=Wihi−1+biz_i := W_i h_{i-1} + b_izi​:=Wi​hi−1​+bi​ 我们最终的输出函数是 L:=L :=L:=loss(sample; forward) forward: 指的是从输入样本数据 h0h_0h0​ 到 最终输出 σ(z2)\sigma(z_2)σ(z2​) 的所有计算过程 backward: 从 LLL 开始不断计算每一层中的 ∂L∂Wi\frac{\partial L}{\partial W_i}∂Wi​∂L​ 和 ∂L∂bi\frac{\partial L}{\partial b_i}∂bi​∂L​ 的方向梯度, 然后用这个来不断更新 Wi, biW_i,\ b_iWi​, bi​ 现在来拆解一下反向传播的过程: 基本根据的是莱布尼茨链式法则 (chain-rule) ∂L∂W2=∂L∂z2∂z2∂W2=∂L∂z2h1T ...
1. Distributed Data Parallel
Updated2026-03-22|mlsys•cuda•gpu
1. DDP 是什么 DDP(Distributed Data Parallel)是 PyTorch 官方提供的分布式数据并行训练机制; 它的核心思想是: 让多个训练进程各自持有同一个模型的副本, 分别处理不同的数据子集, 并在反向传播阶段自动同步梯度, 从而保持所有模型副本的一致更新; 一句话概括: 多进程 + 多副本 + 数据切分 + 梯度同步 2. DDP 要解决什么问题 深度学习训练通常面临两个核心限制: 单张 GPU 的计算吞吐有限 单张 GPU 每一步能处理的数据量有限 如果只用单卡训练, 随着模型和数据规模变大, 训练速度会越来越慢; DDP 的目标是: 利用多张 GPU 并行处理更多数据 在提高吞吐的同时, 仍然保持"训练的是同一个模型" 让多卡训练的优化语义尽量接近单卡上的大 batch 训练 因此, DDP 本质上是在解决: 如何让多个 GPU 高效, 稳定地共同训练同一个模型; 3. DDP 的设计理念 DDP 的设计建立在一个基本前提上: 如果单张 GPU 能放下完整模型, 那么最自然的数据并行方式不是切模型, 而是 ...
0. 基本 GPU 架构
Updated2026-01-15|mlsys|mlsys•cuda•gpu
Data-Level Parallelism (DLP) 在前面的工作中我们主要学习的 并行架构 就是 pipelining 简单的做法就是并行使用多个 核 core 或者使用多个硬件结构实现并行, 但是这里要讨论的是 数据层面的并行 在固有的处理器中, 我们计算如下公式 12for(i = 0; i < 100; i++) z[i] = A * x[i] + y[i]; 很显然这一步可以用矩阵和向量等式进行优化 即表达式 z⃗=A⋅x⃗+y⃗\vec z = A\cdot \vec x + \vec yz=A⋅x+y​ 那么接下来的问题就是如何用硬件快速计算向量 SIMD 方法论 基础方法称为 single insturction single data 处理, 即每个指令获取一个对应的 data 部分, 但是事实上我们可以从一个指令调用多个 变量(来自一个 vector 的多个相关变量) 这就是 simd (可以在单核处理器上面有出色表现) 当然也可以 多个指令调用多个变量, 这个取决于多核同时工作 对比 cpu 和 gpu, 我们会发现当我们要处理大量相同类型的数据的时候 ...
10. Tradeoffs btw
Updated2025-12-16|distributed_sys•Consensus
平衡的背景 利用冗余(replicas)来降低尾延迟(tail latency), 以及它和 Paxos 共识, load / sharding 之间的关系; 核心是: 复制本来是为了容错/可用性, 但你也可以把它当成"多条独立路径/多台机器"的并行机会, 用来对抗偶发慢请求; 一个 key 有多个副本(N replicas); - 正常读: 只读一个副本 - 好处: 负载低, 便宜 - 风险: 这一次刚好遇到这个副本慢(GC, 排队, 抖动), 尾延迟就被拖垮 First idea: read from all in parallel(最直接: 全部并行读, 取最快) 做法: 同时向所有副本发 GET, 拿到第一个返回就用(其他请求丢掉/忽略); 优点: 尾延迟会显著下降(你拿的是 min(response times)) 问题(slide 点出的): 系统负载和成本暴涨 每次读都变成 N 倍 RPC 平均延迟可能更好, 但整体排队更严重, 反而把系统推到更拥塞, 导致更差的 tail 所以"全并行"通常太贵, 只能在极少数场景用; Sec ...
8. Sharding, Facebook and Implementation
Updated2025-12-15|distributed_sys
分片 (Sharding) 分片是分布式系统设计中的一个关键概念, 它与复制(Replication)一起, 构成了构建大规模系统的基础; 分片的本质与目标 分片的本质在于解决单一机器的限制和不可靠性问题,; 复制(Replication): 通过复制数据来使机器可靠(reliable), 提高容错性; 分片(Sharding): 通过分割数据来提高机器的容量限制 (raise the machine’s limits); 分片适用于任何存储系统, 通常是通过将 键空间(key space) 分割到多个复制对(例如主/备份对)来实现; Facebook 架构中的分片应用 复制存储: 数据库在所有数据中心之间进行复制(replicated), 可以想象每个数据中心都包含一份完整的数据拷贝,; 数据库分割: 数据库被分割成多个分片(shards), 每个数据元素都属于一个特定的分片,;     - 领导者/跟随者: 每个分片都有一个数据中心作为其领导者(leader), 其余的中心是跟随者(followers);     - 数量: 分片的数量通常远多于(many more)数 ...
7. Eventual Consistency
Updated2025-12-14|distributed_sys•Consensus
简单介绍 最终一致性位于一致性谱系的末端, 比线性一致性(Linearizability), 顺序一致性和因果一致性都要弱; 如果对某一数据项不再有新的更新写入, 那么在经过一段时间后, 所有未来的读取操作都将反映最新的写入结果 没有时间限制: 系统对收敛到一致状态所需的时间没有界限,;这个时间长短取决于通信模式的可用性(例如, 如果节点长期不通信, 收敛时间就会很长); 保证最终顺序: EC 仍然要求更新最终以相同的顺序应用到所有副本上,;这通常是通过逻辑时钟等机制来实现的, 允许更新先作为临时更新本地应用, 然后在同步时根据逻辑时间戳进行回滚和重放,; Bayou 模型 (SOSP 1995) 没有中心化存储: 所有的节点都被视为客户端,; 始终接受更新: 客户端总是接受用户发出的更新操作, 这保证了高可用性和活性; 日志记录: 所有更新都会被记录在本地日志中; 点对点同步: 客户端之间会定期进行 成对(pair-wise) 的更新交换; 临时更新: 更新通常是暂时的(tentative), 可以解决它们之间的冲突; 举例说明最终一致性 假设有一个房间日程安排应用程序(Ro ...
6. 从 FLP 不可能到 CAP 和 PACELC
Updated2025-12-14|distributed_sys•Consensus
分布式系统的不稳定性 综合我们前几个章节的内容, 我们可以总结出分布式系统中的不稳定性主要源于以下几个方面: 故障模型 (Failure Model) 在这个模型中, 对节点和网络特性的定义如下: 节点(Nodes): 它们可以无限期地失败; 它们在恢复时不会丢失持久状态; 对任何特定的计算, 它们都没有时间限制; 网络(Network): 网络可以丢弃 drop 或延迟 latency 消息; 消息可能被无限期地延迟; 网络也可能对消息进行重新排序; 异步模型 (Asynchronous Model) 上述的故障模型被称为异步模型; 在该模型下, 核心挑战在于: 无法区分 Failure 与 Slow: 在一个异步模型中, 你通常无法区分失败(例如, 请求被丢弃或远程节点死亡)和极度缓慢(例如, 网络或节点速度很慢, 响应只是尚未到达); No response 的含义: 缺少响应可能意味着请求被丢弃, 远程节点已死, 或响应被丢弃;但这也可能仅仅意味着网络或节点非常慢, 并且响应仍在路上; 也就是这些都 Not Distinguishable (无法区分); F ...
9. 分布式事务系统与 Spanner
Updated2025-12-15|distributed_sys
分布式事务系统 Distributed Transaction 根据分布式数据库系统的类似要求, 我们设计的分布式系统要支持 ACID 准则: Atomicity (原子性): 事务要么全部完成, 要么全部不做; Consistency (一致性): 事务执行前后, 数据库必须处于一致状态; Isolation (隔离性): 并发执行的事务彼此隔离, 互不干扰; Durability (持久性): 一旦事务提交, 其结果是永久性的, 即使系统崩溃也不会丢失; 如何区分 Linearizability 和 Serializability? Linearizability (线性一致性): 每个操作看起来像是瞬间发生的, 并且所有的 read 都会反映已经发生的所有 write 的结果 Serializability (可串行化): 并发执行的事务的结果与某个串行执行的顺序相同 Strict Serializability: 结合了线性一致性和可串行化的概念 也就是外界看到的顺序和实际执行的顺序是一致的 Isolation 问题与二相锁 (2PL) 一个常见的 i ...
12…11
avatar
Yuchen You (Wesley)
Articles
107
Tags
25
Categories
5
Follow Me
Announcement
This is my Blog
Recent Post
Untitled2026-03-23
Taming Throughput-Latency Tradeoff in LLM Inference with Sarathi-Serve2026-03-20
GPipe - efficient training of giant neural networks using pipeline parallelism2026-03-19
1. Distributed Data Parallel2026-03-19
0. 基本 GPU 架构2026-01-14
Categories
  • cs_basic25
  • cybersecurity12
  • eecs2817
  • math9
  • mlsys1
Tags
p_np schedule gpu chaos_system system_failure sql structure network algorithm ml_training computability cuda computer_composition virtual_machine mlsys cyber_security container database distributed_sys memory unix kernel Consensus operating_system excalidraw
Archives
  • March 20264
  • January 20261
  • December 20254
  • November 20253
  • October 20255
  • September 202521
  • August 20253
  • June 20251
Info
Article :
107
UV :
PV :
Last Update :
©2020 - 2026 By Yuchen You (Wesley)
Framework Hexo|Theme Butterfly
welcome to my blog!
Search
Loading the Database