logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Nano-vLLM 源码解读 - 10. Context 元数据

本文分析了nano-vllm框架中元数据传递的设计选择。文章指出大模型推理需要两类输入:内容型(如input_ids)和形状型(如cu_seqlens_q)。形状型元数据仅在调用栈末端被使用,但需要穿透多层传递。nano-vllm采用全局Context对象而非参数传递,避免了中间层冗余参数,但引入了全局状态管理问题。文章详细说明了Context的8个字段用途、调用时序设计,并解释了为何在单进程模型

文章图片
#人工智能#深度学习
Nano-vLLM 源码解读 - 9. 抢占机制

本文深入解析了nano-vllm中decode阶段KV缓存管理的核心机制。重点分析了三个关键问题:1)通过can_append函数判断何时需要新块,其巧妙利用布尔表达式仅在块边界(每256个token)时检查空闲块;2)当缓存不足时,系统采用"抢队尾"或"抢自己"的抢占策略,通过while-else控制流确保被抢占序列不进入本轮调度;3)被抢占序列会被放入waiting队列前端,利用L05的pre

文章图片
#人工智能#nlp
Nano-vLLM 源码解读 - 9. 抢占机制

本文深入解析了nano-vllm中decode阶段KV缓存管理的核心机制。重点分析了三个关键问题:1)通过can_append函数判断何时需要新块,其巧妙利用布尔表达式仅在块边界(每256个token)时检查空闲块;2)当缓存不足时,系统采用"抢队尾"或"抢自己"的抢占策略,通过while-else控制流确保被抢占序列不进入本轮调度;3)被抢占序列会被放入waiting队列前端,利用L05的pre

文章图片
#人工智能#nlp
Nano-vLLM 源码解读 - 8. Chunked Prefill

本文解析了nano-vllm调度器中处理长prompt的关键逻辑。当单步计算预算(max_num_batched_tokens)不足时,系统采用"队首独享分片权"策略:仅允许等待队列首位的序列进行切片处理,其余超预算序列则推迟到下一步。这一设计通过if remaining < num_tokens and scheduled_seqs: break代码实现,其中两个条件分别判断"当前序列是否超预算

文章图片
#深度学习#人工智能
Nano-vLLM 源码解读 - 6. KV Cache 容量计算

这篇文章深入解析了nano-vllm如何动态计算KV缓存块数(num_kvcache_blocks)的关键技术。主要内容包括: 动态计算原理:KV缓存块数不能预先静态估算,必须通过运行时测量GPU显存使用情况来确定。核心公式通过GPU总显存、当前使用量、峰值使用量等参数动态计算可用显存。 计算时机:必须在模型加载和预热(warmup)之后进行,因为: 需要先加载模型权重以确定基础占用 需要通过实际

文章图片
#人工智能#深度学习
Nano-vLLM 源码解读 - 7. Continuous Batching

nano-vllm 通过调度层分离prefill和decode阶段,实现高效推理。其核心设计是:每个step只执行单一类型任务(prefill或decode),避免混合批处理带来的内核复杂性。调度器优先处理prefill请求,仅当无新请求时才执行decode。这种互斥规则简化了attention内核实现,只需处理两种纯净输入形态。相比vLLM的混合调度和SGLang的chunked prefill

文章图片
#深度学习#自然语言处理
Nano-vLLM 源码解读 - 8. Chunked Prefill

本文解析了nano-vllm调度器中处理长prompt的关键逻辑。当单步计算预算(max_num_batched_tokens)不足时,系统采用"队首独享分片权"策略:仅允许等待队列首位的序列进行切片处理,其余超预算序列则推迟到下一步。这一设计通过if remaining < num_tokens and scheduled_seqs: break代码实现,其中两个条件分别判断"当前序列是否超预算

文章图片
#深度学习#人工智能
Nano-vLLM 源码解读 - 7. Continuous Batching

nano-vllm 通过调度层分离prefill和decode阶段,实现高效推理。其核心设计是:每个step只执行单一类型任务(prefill或decode),避免混合批处理带来的内核复杂性。调度器优先处理prefill请求,仅当无新请求时才执行decode。这种互斥规则简化了attention内核实现,只需处理两种纯净输入形态。相比vLLM的混合调度和SGLang的chunked prefill

#深度学习#自然语言处理
Nano-vLLM 源码解读 - 6. KV Cache 容量计算

这篇文章深入解析了nano-vllm如何动态计算KV缓存块数(num_kvcache_blocks)的关键技术。主要内容包括: 动态计算原理:KV缓存块数不能预先静态估算,必须通过运行时测量GPU显存使用情况来确定。核心公式通过GPU总显存、当前使用量、峰值使用量等参数动态计算可用显存。 计算时机:必须在模型加载和预热(warmup)之后进行,因为: 需要先加载模型权重以确定基础占用 需要通过实际

文章图片
#人工智能#深度学习
Nano-vLLM 源码解读 - 5. Prefix Cache

本文深入解析了vLLM推理系统中的BlockManager核心机制,重点探讨了prefix cache的实现原理。通过链式哈希函数compute_hash的设计,系统确保了只有前缀完全相同的请求才能共享KV缓存块。文章详细分析了三个关键问题:哈希计算方式、缓存分配流程和LRU机制,并通过具体示例展示了状态变迁过程。核心结论是:链式哈希将前驱块指纹作为种子,有效避免了不同前缀导致的错误共享;系统利用

文章图片
#哈希算法#redis
    共 15 条
  • 1
  • 2
  • 请选择