
24GB 卡的限压榨:用 SGLang 部署激进量化的 born2bewild-Qwen3.8-27B当张 RTX 3090 要地下 27B 模子、128K 凹凸文嘉峪关铝皮保温,还要保留 的明智力,量化到了头发丝是什么体验?这篇著作纪录了次把“省存”作念到致的部署实战——连言语模子的“门面”(embedding)和“出口”(lm_head)都不放过。而为了让这套激进量化在 SGLang 上信得过跑起来,我不得不给理框架了三个补丁,其中两个仍是以 PR 体式提交给了上游。
、为什么这是个值得较真的问题先看个烦懑的算术题:张 RTX 3090 有 24GB 存。个 Qwen3.8-27B 的原始 BF16 权紧迫占 54GB——连两张卡都塞不下。想土产货跑,量化是唯的路。 但量化本人也有个隐形的算术题:权重省下来的每 1GB,都可以酿成几十万 token 的 KV 缓存,也便是长的凹凸文。在长凹凸文智力险些成为大模子标配的今天,存便是凹凸文,凹凸文便是模子的天花板。 惯例的 W4A16 量化(权重 4bit、激活 16bit)能把手感可以的 27B 模子压到 19GB 控制,剩 5GB 给 KV 缓存和运行支出,概况能跑到 8 万 token 的凹凸文。这仍是可以了,但还不够。于是有东谈主运蜕变节想:那些“看起来”不该量化的地,是不是也能省? 二、先意志两个主角SGLang:为大模子理速率而生的框架SGLang 是斯坦福 NLP 团队(自后立为 SGLang 形状)开导的能理框架,中枢点是三个词:Radix Attention(前缀复用)、Cuda Graph(图拿获)、一语气 batching。它和 vLLM 是刻下开源社区土产货部署大模子的两大主力框架,但 SGLang 在前缀缓存和 MoE 夹杂模子的退换上作念得激进。 对 24GB 单卡玩来说,SGLang 还有个重要价值:它把存预算拆解得其透明。权重、KV 池、Mamba 缓存、运行余量各占几许,启动日记里写得清了了楚,你可以像查水电表样逐项化。也恰是这份透明,让我能把这张 3090 的每 MB 存都算到明处。
Qwen3.8-27B:刻下 27B 的强接受Qwen3.8-27B 是 Qwen 族里“能比”的款:27B 的体量、接近满 32B 的明智力,却因为 MoE 稀零结构在单卡上跑得动。我在上轮模子横向评测里对比过同期竞品(Muse-Glimmer-30B、Nemotron-3.5-Lightning),论断是 Qwen3.8-27B 在 27B 这个别莫得能撼动它的敌手——MLM U-Pro 85.63 分,比 Nemotron 的 81.94 截,而模子还小。 是以问题就聚焦成个:若何把 Qwen3.8-27B 压进 24GB,而且把凹凸文顶到大。 三、激进量化:连“门面”和“出口”都不放过传统 W4A16 量化有个心照不宣的剖释:transformer 骨干可以压到 4bit,但 embedding 层和 lm_head 层保抓 BF16。情理是这两层太明锐——embedding 是模子的“门面”,清雅把 token 酿成向量,统统语义都从这里起程;lm_head 是“出口”,清雅从向量酿成概率,后的输出质料半由它决定。量化它们被以为会伤精度。 但“省存”的眩惑太大了。embedding 层和 lm_head 加起来能占到总权重的 5~10,在这张卡上便是整整 3~4GB。省下来,等于把凹凸文从 10 万 token 顶到 12 万以上。 于是有了 born2bewild/Qwen3.8-27B-W4A16-AutoRound-fast 这个模子——技能原创来自 syvai 团队(github.com/syv-ai/qwen38-27b-rtx3090),born2bewild 是把它整合成单仓发布的包者。它的量化案是:骨干:W4A16 AutoRound 量化(业界公认损的量化算法之);lm_head:INT4,group128,GPTQ 校准;embedding:INT8;MTP(多 token 揣摸)头:INT4;delta / GDN 线留心力层:保留 BF16。 整包独一 15.81GB。比较 RedHatAI 官量化版(~19GB),净省 3.6GB——而官给出的精度数据是:perplexity 只加多 0.6,GSM8K 数学获利不变。 这是什么看法?额外于把模子的“装修”全拆了重作念,但屋子的承重墙根没动。
四、部署实战:碰壁才是常态模子下载下来,迫不足待地启动 SGLang嘉峪关铝皮保温,然后……当面撞上堵墙。SGLang 不料志被量化的 embedding 层。 启动能过,KV 池也能建起来,但理,输出全是乱码。原因是:SGLang 的 compressed-tensors 量化撑抓障翳了 transformer 里的 Linear 层,但 embedding 和 lm_head 这两个“非程序”层,根底不在它的量化处理名单里。模子成就里写着“embedding 是 INT8、lm_head 是 INT4”,框架却把权重按 BF16 去读,读到堆“压缩过的比特流”,天然输出垃圾。 这是典型的“模子智力跑在了框架智力前边”的错位。模子的量化案是正当的、损的,问题是理框架没跟上。
五、三个补丁:给框架补上缺失的齿轮处罚想路很澄清:让 SGLang 意志这两种新量化类型。为此我了三个补丁(好意思满实现已以 PR 体式提交给 SGLang 官,见文末畅达):补丁:让 lm_head 撑抓 INT4 量化。 在量化法分发函数里补上 lm_head 的分支,让它走 Marlin 内核的 W4A16 反量化旅途。其实 SGLang 的 LogitsProcessor 早已预留了“lm_head 利用量化法”的开关,仅仅创建层的代码忘了把它和量化成就接上——把断掉的那根线接上即可。补丁二:让 embedding 撑抓 INT8 量化(全新机制)。 这层有道理。embedding 的突出在于:它不是矩阵乘,而是按行取数(gather)。量化权重弗成像 Linear 那样作念批量矩阵反量化,必须“取到哪行就反量化哪行”。我参考了 vLLM 官兼并过的 N VFP4 embedding 量化前例,实现了 dequant-on-gather 机制——权重保抓压缩存储(存点不花费),forward 时只反量化被 gather 到的那几行。中间踩了个经典的坑:INT8 的位模式是符号存储的,反量化时必须“减偏移量”而不是“强转符号类型”——两种写法效果不同,管道保温施工差个符号位便是-56 和 72 的差异。我门下载了 Qwen 官的原始 embedding 权重作念黄金对照,考证反量化纰缪 MSE=0.000000、相干系数 1.000。补丁三:确立 SGLang 自身的个 bug。 排查中发现,Qwen3.5 系列模子在构建时,embedding 层创建时漏传了量化成就(lm_head 直传了,embedding 漏了)——是以即使有补丁、二,embedding 也恒久不会被量化。行 quant_config=quant_config 补上,整条链路才信得过闭合。 这里有个紧迫的技能判断:这三个补丁中,补丁三是框架的原生 bug,补丁、二是智力膨胀。 智力膨胀的代码我是严格对皆 vLLM 官兼并的 kernel 语义写的,并用立 oracle 考证了 INT8/INT4 两种 group128 布局的反量化逐字节致(max_diff=0)。 我写了两段饱和阐述问题的测试代码(个 INT8、个 INT4 的反量化立对照),连同三个补丁起,以 PR 的体式提交给了 SGLang 官仓库。如若你也算部署这个模子,平直去 GitHub 上查: PR 36137:feat(quant): support compressed-tensors quantized lm_head and embed_tokens 开后 Files changed 页签就能看到一皆更正,系数 236 行。在官兼并之前,你也可以按雷同想路土产货补丁。
六、测试数据:省下的存都酿成了凹凸文补丁完,重启容器。这是让东谈主喜跃的部分——数字一皆竣事了:凹凸文:从 10 万冲到 12.8 万。 KV 缓存池:165,318 tokens(对比 RedHatAI 量化版的 104,845);context-length 平直设到 131072(128K);存散布:权重 15.36GB + KV 缓存 + Mamba 缓存 + 运行余量,24GB 卡上井井有条。速率:莫得为省存付出代价。 中等长度输出实测 47.3 t/s,和之前 RedHatAI 量化版(~46 t/s)抓平;也便是说,3.6GB 的存是“白捡的”,速率分没少。质料:任务可见伤害。 我拿这个模子和 RedHatAI 量化版(lm_head 保抓 BF16)作念了同题对比:代码生成(快速排序):两个版块输出质料致;数学理(组合数缠绵):致;中语写稿:致。 论断很明确:lm_head 的 INT4 量化在确切任务上莫得任何可感知的退化。官给的 0.6 perplexity 加多,骨子落在职务阐扬上基本感。这也考证了 syvai 团队阿谁反直观的遐想判断:embedding 和 lm_head 天然是“门面”,但对 4bit+8bit 这档位的量化,它们远比东谈主们遐想的皮实。 终身产成就:GPU0 上跑 born2bewild(128K 凹凸文),GPU1 上保留 RedHatAI(当作对照与冗余),两张 3090 各司其职。
七、点评与荐论断这套案值不值得抄? 分场景看:热烈荐给这些东谈主: 24GB 单卡用户,且凹凸文需求 >10 万 token——这是现在唯能把 27B 模子顶到 128K 且质料损的旅途;长文档、长代码仓库、agent 多轮器具调用场景——凹凸文是硬拘谨,多 2 万 token 便是质的差异;闲适花半天补丁、跟上游的东谈主——汇报率。不淡薄的场景: 对 embedding 量化有洁癖、追求“官原教旨”的——RedHatAI 官版雷同秀,仅仅凹凸文少 2 万;纯聊天场景、凹凸文需求不——省下的存对你莫得价值,无谓折腾。技能点评,说几句掏心窝的话: 、AutoRound + 激进量化是今年度 24GB 单卡的大红利。它把“能弗成跑”和“能跑多大”这两个问题同期处罚了 二、lm_head/embedding 量化是大趋势。vLLM 官仍是兼并了 NVFP4 embedding 量化前例,阐述主流框架都在往这个向走,SGLang 此次仅仅慢了步 三、“框架跑在模子前边”会越来越常见。社区量化速率远快于框架适配速率,碰到这类问题,勇于给上游提 PR 是价比的处罚式 后补句负包袱的话:我的 PR 还在 open 景象,恭候官评审。如若你在坐褥环境用它,务必先土产货考证(好在补丁更正小、可读)。旦官兼并,这套案就能“开箱即用”——那天,亦然 24GB 玩用上 128K 凹凸文 27B 模子的“程序成就日”。
八、法论千里淀此次部署重新到尾是次“存预算链”的好意思满践诺:先算清每 MB 的去处,再找大的可压缩项,然后脱手压缩,后用数据考证没付出代价。这个法论比任何单次调都值钱:先预算,后脱手:权重、KV、缓存、余量逐项列出,找到瓶颈再化;量化到头发丝,但承重墙不动:骨干损、门面激进、明锐层保护;框架跟不上,就给框架补丁:与其绕路,不如把智力补回框架本人;统统化必须用数据竣事:省了存,还要解释速率没掉、质料没伤。 这概况是土产货大模子部署迷东谈主的地:每压榨出 1GB 存,都是在给模子买回几千字的凹凸文。 而当你把这件事作念到致时,那张 3090 上跑着的,仍是不仅仅个模子,而是整套“存经济学”。
本文统统测试数据均来自双 RTX 3090(24GB)实机部署实测。PR 畅达:github.com/sgl-project/sglang/pull/36137。模子:huggingface.co/born2bewild/Qwen3.8-27B-W4A16-AutoRound-fast。地址:大城县广安工业区相关词条:储罐保温 异型材设备 钢绞线厂家 玻璃丝棉厂家 万能胶厂家
1.本网站以及本平台支持关于《新广告法》实施的“极限词“用语属“违词”的规定,并在网站的各个栏目、产品主图、详情页等描述中规避“违禁词”。
2.本店欢迎所有用户指出有“违禁词”“广告法”出现的地方,并积极配合修改。
3.凡用户访问本网页,均表示默认详情页的描述嘉峪关铝皮保温,不支持任何以极限化“违禁词”“广告法”为借口理由投诉违反《新广告法》,以此来变相勒索商家索要赔偿的违法恶意行为。
