EP07-MoE+闲谈学术品味
[FIXME] [EP07] 聊聊MoE+闲谈学术品味直播回看链接:https://www.youtube.com/watch?v=mHUBwzlsWjg
特别鸣谢:组织者@月球大叔, 主讲人@Du Kuntai, @Cheng Yihua
飞行嘉宾是Google Deepmind高级研究科学家、OpenMoE的作者Xue Fuzhao
主要方向:Gemini Pretraining、Model Architecture和Multi-Modal LLM
主要工作:OpenMoE, Token-Crisis, AdaTape, Sequence Parallelism和LongVILA.
💥 开场Fuzhao: 我的PhD七个收获
工程能力是研究的基础。
与有才华的人合作对提升研究品味非常有帮助。
目标是一个简洁且有洞察力的45分钟演讲,而不是整个PhD期间的长篇论文列表。
专注于少量关键论文并深入理解,而不是快速浏览大量论文。
当接触一个新主题时,沿着时间线阅读论文,以研究趋势的演变。
“监督式练习”:基于当前论文,我接下来会做什么?
换位思考是提升写作和演讲的高效方法。 ...
EP06-vLLM源码讲解直播笔记-vLLM v1 仙人指路
[FIXME][EP06] vLLM 源码讲解直播笔记EP06: vLLM v1 仙人指路直播回看链接:https://www.youtube.com/watch?v=6AcgEPmpHIc
特别鸣谢:组织者@月球大叔, 主讲人@Du Kuntai, 飞行嘉宾@YM
vLLM官方博客:https://blog.vllm.ai/2025/01/27/v1-alpha-release.html
💥 1. Why v1 ? (Motivation)
vLLM v0 运行起来有点慢 (CPU overhead)
vLLM v0 的代码可读性和可二次开发的能力较差
比如v0的Scheduler代码有2k行,改进后的v1代码只有800行
代码改动牵一发而动全身
如何推进代码重构?
YM: 在稳定之后完成切换
开发完成后切换的问题:不切实际,新功能 & 新模型的不断涌现
vLLM 最重要的特性: 对新模型的支持!!!
易用
性能
day0 support(在新模型刚发布就适配) –> tech debt(技术债, 由于着急为新功能提供支持而导致工程上的不优雅,可能会影响后 ...
EP05-vLLM源码讲解直播笔记-Prefix Caching
[FIXME][EP05] vLLM 源码讲解直播笔记EP05: Prefix Caching直播回看链接:https://www.youtube.com/watch?v=mWvqA_BNtsU
特别鸣谢:月球大叔, Cheng Yihua, Kaz 大佬带来的精彩讲解
📌 1. LLM使用KVCache进行推理的基本实现输入: tokens, 已有的kvcache
输出: tokens, 更新后的kvcache
llm.interence( input_tokens: list[int], # N tokens previous_kv_cache: list[Tensor], # N tokens' kv cache M < N) -> output_tokens, new_kv_cacheoutput_tokens: # N' new tokennew_kv_cache: # kv cache of N + N' tokens
抛开vllm还是sglang等主流框架的具体实现细节不谈,大家可以思考下,KVCache的管理 ...
EP04-vLLM源码讲解直播笔记-Speculative Decoding
[FIXME][EP04] vLLM 源码讲解直播笔记EP04: Speculative Decoding直播回看链接:https://www.youtube.com/watch?v=WF5xaQqtKUE
特别鸣谢:月球大叔,Du Kuntai, Cheng Yihua 大佬带来的精彩讲解
📌 1. 为什么需要 Speculative decoding(推测解码)
LLM的decode过程是GPU-Memory-Bound (GPU内存受限) 的
寻找一种方法能够增加计算次数,但不显著增加对GPU内存的访问次数
解决方法:在decode生成token的时候 –> 用小模型猜多几个token并验证
在 token 生成的每1次迭代中
猜3个token,接受率为2/3
2个token是猜测正确的,LLM推理每次还会生成1个新的token –> 3 tokens
一次的迭代所需要的时间
计算量:(1 + 3)x
内存量
没有 Speculative decoding 时:模型参数(8x2 GB)+ KVCache(n * 100 KB)
有 Specul ...
EP03-vLLM源码讲解直播笔记-PD分离
[FIXME][EP03] vLLM 源码讲解直播笔记EP03: PD分离直播回看链接:https://www.youtube.com/watch?v=ih6fcJnhoJI
特别鸣谢:月球大叔,Cheng Yihua 大佬带来的精彩讲解
📌 1. 上周回顾(分布式通信与并行策略)
TP,all_gather
Linear M x N x K -> M x K
M * N’, N’ * K -> M * K 在MHA中,每个头被均匀地分在不同的worker上,在进入之后的线性层前要做一次all_gather(这里不理解的可以看看-lm张量并行的方法)
“vllm\model_executor\models\llama.py” # llama前向传播的代码def forward( self, positions: torch.Tensor, hidden_states: torch.Tensor,) -> torch.Tensor: qkv, _ = self.qkv_proj(hidden_states) q, k, v = qkv ...
CacheBlend-高效提高KVCache复用性的方法
CacheBlend,一种用于加速 LLM 服务的高效KV缓存融合方案,特别针对检索增强生成(RAG)等需要多文本块上下文的场景,能有效提高 KVCache 的复用性。
论文:(EuroSys 2025)Fast Large Language Model Serving for RAG with Cached Knowledge Fusion
代码:https://github.com/YaoJiayi/CacheBlend
问题背景为了确保模型高质量的一致性的响应,RAG技术常被应用于LLM服务中,在这种情况下,多个从数据库检索来的文本片段会前置于用户的查询,形成LLM输入,这些长上下文片段显著地提高了LLM的TTFT时间。
为了提高prefill的时间,现有的优化通常重复使用存储的 KVCache,以避免重复的计算。目前有以下两类 KVCache重用的方法,但它们都存在局限性。
前缀缓存仅能重用输入前缀的KV缓存,无法处理多文本块场景。
全量KV重用当重用的文本不在输入前缀中时,仍然通过调整其位置嵌入来重用 KV 缓存(这里用到了 Rotary Position Embedding ...
EP02-vLLM源码讲解直播笔记-分布式通信与并行策略
[FIXME][EP02] vLLM 源码讲解直播笔记EP02: 分布式通信与并行策略直播回看链接:https://www.youtube.com/watch?v=W83Zgbg8SkE&t=4s
特别鸣谢:月球大叔,Du Kuntai,Cheng Yihua 大佬带来的精彩讲解
📌 1. GroupCoordinator 类解析‘vllm/distributed/parallel_state.py’
# 可以把GroupCoordinator想象成一个群聊class GroupCoordinator: """ # PyTorch ProcessGroup 的封装,管理进程组间的通信 PyTorch ProcessGroup wrapper for a group of processes. PyTorch ProcessGroup is bound to one specific communication backend, e.g. NCCL, Gloo, MPI, etc. G ...
Sarathi-Serve-PD融合的LLM服务调度器
Sarathi-Serve 是一个高效大型语言模型(LLM)推理调度器,旨在解决LLM推理中吞吐量和延迟之间的权衡问题。通过引入“分块预填充(chunked-prefills)”和“无停顿调度(stall-free scheduling)”技术,Sarathi-Serve能够在保持低延迟的同时显著提高推理吞吐量。
论文:(OSDI 2024)Taming Throughput-Latency Tradeoff in LLM Inference with Sarathi-Serve
代码:microsoft/sarathi-serve: A low-latency & high-throughput serving engine for LLMs
该文章参考自:https://zhuanlan.zhihu.com/p/12679786211
背景LLM服务特性LLM推理分为两个阶段:
Prefill(预填充):处理输入提示并生成首个输出令牌,计算密集但延迟高。
Decode(解码):逐个生成后续令牌,延迟低但计算利用率低。
当前的LLM推理调度器大致可以分为两类,即 ...
Llumnix-多实例LLM服务的请求动态调度
Llumnix揭示了LLM服务与传统DNN推理的根本差异,提出动态调度必要性,设计了首个支持跨实例实时迁移的LLM服务系统,旨在解决大规模语言模型(LLM)推理服务中的请求高效调度问题。通过动态请求迁移和细粒度调度策略,Llumnix在降低延迟、提高优先级支持和降低成本方面表现出色。
论文:(OSDI 2024)Llumnix: Dynamic Scheduling for Large Language Model Serving
代码:https://github.com/AlibabaPAI/llumnix
该文章参考自:
https://www.usenix.org/system/files/osdi24_slides-sun-biao.pdf
https://19shuidiph.github.io/2024/12/30/paperreading-llumnix/#wechat
背景LLM服务特性
异构性:不同应用场景(如聊天、摘要、代码生成)导致请求的输入/输出长度、延迟需求(GPT Plus)差异显著。
不可预测性:生成token数量未知,GPU内存占用 ...
Sia-考虑集群异构性和作业弹性的DL训练系统
Sia 调度器结合Gavel和Pollux这两篇文章的优势,提出了一种为异构深度学习集群的弹性资源自适应作业提供高效资源分配的方法,解决了现有调度器在异构性和资源适应性上的不足。Sia 使用Bootstrapping + 在线优化的方法,低开销、快速评估作业在不同配置下的性能,接着使用ILP算法进行资源分配,能够在大规模集群中高效扩展,并根据集群负载和作业需求动态调整。Sia 是首个支持混合并行作业弹性扩展的集群调度器。广泛的实验表明,Sia 在多个工作负载环境中显著提高了作业完成效率和资源利用率,并且具有良好的扩展性和公平性,能够支持高达 2000 GPU 的集群。
论文:(SOSP 2023)Sia: Heterogeneity-aware, goodput-optimized ML-cluster scheduling
代码:https://github.com/siasosp23/artifacts
研究背景及内容深度学习模型的训练和推理,对计算资源的要求极为庞大,对于普通企业和用户而言部署的成本巨大,基于此背景,各大企业的深度学习云计算平台应运而生。
用户会将深度学习模型部 ...