SGLang源码解析封面
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 ...
143a5a50a47c0b7d448749907319f4bcc0d8dad15a6dabde8c53c22ae26fc3e82f7aa239b9d442eadeedcf2bb516f7f30e0c9f26619f0c86b5ab908be5cf35b133b72455a9fdac29e0f9010e2a5ba1fd2f431cd9cc06fef021ffb6b3f5a4279e2d13385da883494434e34c068d5041bf605701fbaf2c1c45c590c59a1ff7a3af64bdd36d51eb5eed32f25ac88e50bc1d2fb3c87d0beb44bf51bb2955873c4ef978026cf2992e27c1071aa911998544c30e01334d361ddac802d3deb84738d03cb794f5e49080c102b60504f1995c3be102b0f08c6687507e42d4211bbeb3f630f052aaccc1997fc74ea7b39a67db9de26db60478757833f02 ...
进程结构
tp=1的情况 总共三个进程
启动命令:python3 -m sglang.launch_server --model-path /tmp-data/models/llama-2-7b --port 30000 --mem-fraction-static 0.8 --tp 1
查看进程树:ps -aux —-forest
123luban 3049112 21.6 0.0 7700748 758940 pts/6 Sl+ 11:48 0:09 | \_ python3 -m sglang.launch_server --model-path /tmp-data/models/llama-2-7b --port 30000 --mem-fraction-static 0.8 --tp 1
luban 3052085 32.5 0.0 56482984 769368 pts/6 Sl+ 11:48 0:06 | \_ python3 -m sglang.launch_server --model-path /tm ...
143a5a50a47c0b7d448749907319f4bcc0d8dad15a6dabde8c53c22ae26fc3e82f7aa239b9d442eadeedcf2bb516f7f30e0c9f26619f0c86b5ab908be5cf35b133b72455a9fdac29e0f9010e2a5ba1fd2f431cd9cc06fef021ffb6b3f5a4279e2d13385da883494434e34c068d5041bf478c884b435a86f72fdb24419b179b408e1d02fa3170817d7860c1200770095d7b3c2687e6fcaf8e70b7da5295036f7e5a6f7ed83ddd38f329a4a5d540cb8799091f283a4a8a2517971a829c216ed17828a56eb97c764e41860b4d169b7ff5b71a03fcda093cce8df00da8fbc43325d17b4c4022573db7871f8e75f8a7d7ad34cb510090e67bdc0ae ...
有一个讲的很好:https://zhuanlan.zhihu.com/p/1971883340031328850
qwen3-next结构
模型共计 48 层,被划分为 12 组(每组 4 层)。
前 3 层 采用 Gated DeltaNet Linear
Attention,能够显著提升计算效率并降低显存占用。
第 4 层 为传统的 Full Self Softmax
Attention,在输出阶段额外加入了一道门控。
Gated DeltaNet 分析
关于Gated DeltaNet计算可以看这张图详细一点:
计算顺序:
五个linear矩阵乘
计算一维卷积
计算SiLU激活函数
计算Gated Delta Rule
Gated Delta Rule输入进行Zero-Centered RMSNrom
RMSNorm输出和的结果进行点乘
下面的代码主要来自transformers库,做了部分删减
1. 计算linear矩阵乘
1234567891011121314151 ...
传统Attention
Soft注意力计算复杂度(以双向注意力也就是忽略mask来着)
先来看注意力计算机制:
双向注意力的计算:
单向注意力的计算:
其中是点乘, 表示mask
为了方便展示,我们先忽略 softmax 符号和 ( 可吸收到矩阵中去):
1、先计算
2、先计算
先计算 时,复杂度为
先计算 时,复杂度为
在长序列场景下, ,所以先计算 的复杂度是要远远低于先计算 的
但是,由于softmax的限制,没办法进行交换运算,导致长序列场景下计算复杂度很高。
那么,能不能不使用softmax计算注意力呢?
对于双向注意力来说,由于没有
矩阵,可以直接交换矩阵相乘的顺序来达到降低复杂度的目的,但是对于单向注意力来说,由于
的存在,不满足矩阵交换相乘,不能直接进行交换。
把写成分量的形式:
其中, 为当前 的分量, 和 为历史 和 的分量 转换成如下形式:
令
则
可见,如上形式可以看成是一个以 为State的线性RNN。
是历史 和
的外积之和,存储了所有的历史信息,我们只需要维护一个固定大小的状态矩阵
而无需燰 ...
sgl-router的smart router策略
为什么要有sgl-router
flowchart LR
subgraph Client["💻 Clients"]
C1["Client 3"]
C2["Client 1"]
C3["Client 2"]
end
C1 --> RT
C2 --> RT
C3 --> RT
subgraph Router["sglang-router"]
RT["🔀 Router"]
end
subgraph PCluster["Prefill Workers (P-nodes)"]
P1["P1"]
P2["P2"]
P3["P3"]
end
subgraph DCluster["Decode Workers (D-nodes)"]
D1["D1"]
D2["D2"]
D3 ...
Git Commit 合并操作指南
场景描述
当需要将当前staged的代码合并到历史中的某个特定commit(而不是最新的commit)时,标准的git commit --amend无法满足需求,因为它只能修改最新的commit。
操作步骤详解
1. 查看当前状态
12345# 查看当前staged的文件
git status
# 查看commit历史,确定目标commit
git log --oneline -5
输出示例:
1234534e0fcd add click link to avatar # 最新commit
f42ce7a change author description
af1ae21 add head href link # 目标commit
bdc4b45 fix hexo-blog-encrypt show giscus comments
fbb3532 add comment giscus
2. 回退到目标commit
首先需要回到包含目标commit的状态:
12# 回退到目标commit
gi ...
平滑滚动功能测试
这个页面用来测试平滑滚动和高亮功能。
普通锚点测试
点击下面的链接测试普通的锚点跳转:
跳转到第一节
跳转到第二节
跳转到第三节
第一节
这是第一节的内容。Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Sed do eiusmod tempor incididunt ut labore et dolore magna
aliqua.
子标题 1.1
更多内容…
子标题 1.2
更多内容…
第二节
这是第二节的内容。Ut enim ad minim veniam, quis nostrud exercitation
ullamco laboris nisi ut aliquip ex ea commodo consequat.
第三节
这是第三节的内容。Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur.
MathJax公式测试
测试Ma ...
基础的mbr启动
首先安装编译器nasm:sudo apt install nasm
写一个基础的启动demo:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859;主引导程序
;------------------------------------------------------------
SECTION MBR vstart=0x7c00
mov ax,cs
mov ds,ax
mov es,ax
mov ss,ax
mov fs,ax
mov sp,0x7c00
; 清屏 利用0x06号功能,上卷全部行,则可清屏。
; -----------------------------------------------------------
;INT 0x10 功能号:0x06 功能描述:上卷窗口
;----------------------- ...





