unicode编码
在python可以使用ord函数查询某个字符的unicode编码,可以chr函数反查
特殊的,chr(0) 就是空字符(NUL)
print打印这个字符是看不到的
repr可以更精细,看到的是’’
123456ord('牛') #29275
chr(29275) #'牛'
chr(0) #'\x00'
print(chr(0)) #
"this is a test" + chr(0) + "string" #'this is a test\x00string'
print("this is a test" + chr(0) + "string")#this is a teststring
NOTE
Q:为什么用UTF-8编码进行tokenizer而不是UTF-16/UTF-32
UTF-32:每个Unicode字符固定4 字节,不管是 a、中、🙂,全部 4
字节,例如 'a' -> 00 00 00 61
'中' -> 00 ...
取出指定字段
例如对于
1234{
"abc": "123",
"def": [{ "111": "..." }, { "222": "..." }]
}
可以通过 jq '.def[0]' test.json 取出数组第一个元素:
1# 输出: {"111":"..."}
常用取值方式:
1234567891011# 取出单个字段
jq '.abc' test.json # "123"
# 取出嵌套字段
jq '.def[0]."111"' test.json # "..."
# 取出数组所有元素
jq '.def[]' test.json
# -c 参数压缩输出(单行)
jq -c '.def[0]' test.json > output.json
把当前内容放到一个结构体里构成一个新的json
假如我们已经有了一个:
1234[
{ "role": "system", "content": "有用的助手" },
{ "role": "user", "content": "用户: halo" }
]
希望把上面的内容包装 ...
Qwen3-Next
Piecewise CUDA Graph 支持实现技术文档
文档信息
项目
说明
目标
详细分析 commit
d64bf6c 如何为 Qwen3-Next 模型添加 Piecewise CUDA Graph 支持
Commit
d64bf6c6ce703389cbeaaa44fe5ee3c699397d0d
PR
#13081
日期
2025-11-25
1. 概述
1.1 Commit 目标
为 Qwen3-Next 模型添加 Piecewise CUDA Graph 支持,使其能够在使用
Piecewise CUDA Graph 时获得性能提升。
1.2 修改文件清单
文件
修改内容
行数变化
python/sglang/srt/compilation/backend.py
添加 gdn_with_output 到 SPLIT_OPS
+1
python/sglang/srt/layers/attention/fla/chunk_o.py
修复 uninitialized ...
SGLang Piecewise
CUDA Graph 实现机制技术文档
文档信息
项目
说明
目标
系统性分析 SGLang 当前的 piecewise
实现机制,形成面向工程实践的技术文档
版本
SGLang 0.5.7
代码路径
python/sglang/srt/compilation/,
python/sglang/srt/model_executor/
1. 设计背景与动机
1.1 解决的问题
CUDA Graph 在动态 shape 场景下的限制
传统 CUDA Graph capture 要求:
输入 tensor 的 shape 必须在编译时确定
Memory layout 必须固定
不支持动态控制流
在 LLM 推理场景中:
输入序列长度(token 数)变化范围大
Batch size 动态变化
不同请求的序列长度差异显著
1.2 使用场景
变长序列推理的核心需求
123请求1: [token1, token2, ..., token16] → 需要 size=16 的 graph
请求2: [t ...
NOTE
当前调度版本基于sglang tag 0.5.7
SGLang
请求优先级调度机制技术文档
文档概述
本文档系统性地分析了 SGLang (v0.5.7)
中请求优先级调度的实现机制,包括整体架构、配置参数、核心代码实现、以及当前机制的局限性。
一、整体概览
1.1 支持情况
SGLang
支持请求优先级调度,提供了灵活的调度策略和配置选项。
1.2 设计目标
延迟优化: 通过
FCFS、优先级调度等策略降低请求延迟
吞吐优化: 通过
LPM、批处理、缓存感知策略提升系统吞吐量
QoS 支持:
支持显式优先级调度,可抢占低优先级请求
公平性: 在优先级相同的情况下采用 FCFS
保证公平性
内存效率: 基于 RadixAttention
的前缀缓存,最大化内存利用率
1.3 调度层级
12345678910111213141516┌──────────────────────────────────────────────── ...
EAGLE Speculative
Decoding 参数与原理
本文对 EAGLE Speculative Decoding
的核心参数、指标与整体流程进行结构化说明,并结合关键代码位置解释其实现细节。
NOTE
EAGLE原始文档:https://docs.sglang.io/advanced_features/speculative_decoding.html#EAGLE-Decoding
To enable EAGLE speculative decoding the following parameters are
relevant:
speculative_draft_model_path: Specifies draft model.
This parameter is required.
speculative_num_steps: Depth of autoregressive
drafting. Increases speculation range ...
缓存长度必须是 64 的整数倍。如果分叉位置是 300,则缓存位置会回退到
。
如果 当前路径上从未发生分叉 → prefix = 最后一个 64 对齐点
如果 中途发生过分叉 → prefix = 分叉点的最后一个 64 对齐点
CONTENT = “1” * 256 + “2” * 256 # prefix 0
CONTENT = “1” * 256 + “3” * 256 # prefix 0
CONTENT = “1” * 256 + “4” * 256 # prefix 256
CONTENT = “1” * 256 + “2” * 256 + “5” * 256 # prefix 512
CONTENT = “1” * 256 + “4” * 256 + “5” * 256 # prefix 512
CONTENT = “1” * 256 + “3” * 256 + “5” * 256 # prefix 256
CONTENT = “1” * 256 + “3” * 256 # prefix 256
CONTENT = “1” * 256 + “3” ...
初始化
123456789101112self.req_index_to_mamba_index_mapping: torch.Tensor = torch.zeros(
size, dtype=torch.int32, device=self.device
)
if enable_mamba_extra_buffer
self.req_index_to_mamba_ping_pong_track_buffer_mapping: torch.Tensor = (
torch.zeros(
(size, self.mamba_ping_pong_track_buffer_size), # size是max running request self.mamba_ping_pong_track_buffer_size默认是256
dtype=torch.int32,
device=self.device,
)
)
Qwen3Next Prefill C ...
Qwen3Next Linear
Attention Cache 粒度问题详解
问题现象
用户使用默认参数时,发现 cache 的粒度似乎不是固定的 64 tokens,而是以
chunk prefill size 为边界。
根本原因
1. 默认策略是 “no_buffer”
查看 server_args.py:767-770:
12345# Mamba scheduler strategy
if self.mamba_scheduler_strategy == "auto":
# TODO: when extra_buffer is more verified, we can set the default path based on
# [overlap, non-overlap]
self.mamba_scheduler_strategy = "no_buffer"
默认配置:
12mamba_scheduler_strategy: str = "auto" # 默认值
# 实际运行时会被设置为: "no_buffer"
2. 两 ...
Qwen3Next
Linear Attention Prefix Cache 实现深度分析
目录
核心概念
为什么Linear
Attention不能做到Token粒度缓存
Chunk粒度缓存机制
Radix
Cache的Tombstone机制
Prefix匹配流程
状态追踪(Tracking)机制
Copy-on-Write实现
缓存保存流程
完整示例
关键数据结构
1. 核心概念
1.1 Linear Attention的递归性质
Linear Attention (Gated Delta Net) 与标准 Attention
的根本区别在于其递归计算特性:
123456标准 Attention (Token级别并行):
Output[t] = f(Q[t], K[0:t], V[0:t]) # 每个token独立计算
Linear Attention (递归依赖):
H[t] = f(H[t-1], Q[t], K[t], V[t]) # 状态递归传递
Output[t] = g(H[t], Z[t]) # 基于状态 ...


