模型介绍
中文整理AutoTrust-JEV-27B-v1.1-W8A8
AutoTrust-JEV-27B-v1.1 决策模型的 W8A8 动态量化版(Ascend 910B4 / vLLM-Ascend)。**
与 bf16 原版相比:**决策结果逐条一致(53/53 用例 argmax 100% 相同),权重显存 54GB → 29GB,单卡即可部署,延迟更低**。
项 bf16 原版 本量化版
- -- --- ---
权重显存 54 GB(2 卡 TP2) **29 GB(1 卡即可)**
单请求延迟 p50 301 ms **240 ms**
64 并发吞吐 — **27.8 req/s(1 卡)/ 45~49 req/s(2 卡 DP2)**
23k token 长 prompt 5.5 s **5.2 s**
决策一致率(53 条 A/B) 基线 **53/53,平均概率漂移 0.0062**
本模型是**决策/分类模型**,不是聊天模型:一次请求 = 一道题 + 一组选项 → 每个选项一个概率。自由文本生成不在设计范围内( lm head 只有 255 行有效权重,词表其余行严格为 0)。基座模型介绍与完整评测见 AutoTrust-JEV-27B-v1.1。
- *输入支持多模态**:文本决策走 /v1/completions ;**带图像的决策走 /v1/chat/completions **(视觉塔完整保留、未量化,调用方式见第 5.3 节)。此前的说明文档误写为「服务端已禁用图像输入」,已更正。
- 模型概览
项 值
- -- ---
架构 Qwen3 5ForConditionalGeneration (dense 27B,混合注意力:48 层 linear attention + 16 层 full attention)
隐藏层 / 层数 5120 / 64
词表 248320
原始精度 bfloat16(54 GB)
量化后精度 W8A8 动态(int8 权重 + int8 激活),**29 GB**(视觉塔保持 bf16)
视觉塔 ViT 27 层 / hidden 1152( Qwen3VLProcessor + Qwen2VLImageProcessorFast ),**未量化,可正常读图**
输入模态 纯文本决策;文本 + 图像(单图或多图)决策
量化框架 msModelSlim 26.1.0(MindStudio)
推理框架 vLLM-Ascend 0.27.1( quantization=ascend ,自动识别)
目标硬件 Ascend 910B4(CANN 8.3.RC1,torch npu 2.10)
输出方式 255 路答案码( A … Z 、 AA … JT )上的概率分布
文件清单:
- 量化方案
W8A8 DYNAMIC**:权重 int8 per-channel 对称量化(minmax),激活 int8 per-token 动态量化。动态激活量化**不需要校准数据集**,离线只计算权重的 scale/offset。
- 1 量化范围
模块 处理 说明
- -- --- ---
self attn.{q,k,v,o} proj **W8A8** 16 个 full attention 层
mlp.{gate,up,down} proj **W8A8** 全部 64 层
linear attn.{in proj qkv, in proj z} **W8A8** 48 个 linear attention 层
lm head **保持 bf16** 255 路决策 readout,量化会直接破坏决策概率
embed tokens 、全部 LayerNorm **保持 bf16** 低秩敏感,业界惯例不量化
linear attn.{out proj, conv1d, A log, dt bias, in proj a, in proj b} **保持 bf16** 线性注意力的状态递推/门控项,对量化噪声敏感
视觉塔( model.visual.* ) **保持 bf16** 多模态读图能力完整保留(ViT 27 层);视觉塔占比小、量化收益低,且 int8 会影响图文决策精度,故排除
量化后共 **1057 个张量 W8A8 DYNAMIC,832 个 FLOAT**(含 scale/offset 派生项)。
- 2 为什么 lm head 必须保 bf16
本模型的 lm head 不是普通投影:248320 行中**只有 255 行非零**(对应 255 个答案码),其余行严格为 0,决策概率就是这 255 行 logit 的 softmax。量化这 255 行等于直接改写决策函数,因此:
- 配方中显式排除;
- 量化完成后对 lm head.weight 做了**逐位比对**(见第 4 节)。
- 量化过程
- 1 环境
镜像: quay.io/ascend/vllm-ascend:v0.27.1rc1-openeuler (CANN 8.3.RC1,torch npu 2.10.0.post4)
工具: msmodelslim==26.1.0 (PyPI,纯 Python 包)
硬件:1 × Ascend 910B4(64 GB)
- 2 命令
配方( multimodal vlm modelslim v1 ,基于官方 qwen3 6 27B w8a8 最佳实践修改):
- 3 耗时与资源
- *总耗时 7.5 分钟**(64 层 × ~6 秒/层),逐层 load → quantize → save,峰值显存远低于整模型加载
输出 30 GB(8 分片)
- 质量验证
- 1 权重级校验
检查项 结果
- -- ---
lm head.weight 与基座逐位一致 **bit-exact = True**
lm head 非零行数 **255**(其余 248065 行严格为 0),与 vllm readout.json 的 readout token ids 完全对应
embed tokens / out proj / q norm / final norm 全部 bit-exact
量化层张量 int8 + per-channel fp32 scale/offset,形状正确
- 2 行为级 A/B(53 条决策用例)
用例覆盖:工单路由、意图分类、工具选择(function calling)、是/否判断、风险分级、超范围拒答、结构化 JSON state、2~8 个选项。
指标 结果
- -- ---
argmax 一致率 **53/53 = 100%**
概率平均漂移 mean\ Δp\ **0.0062**
p95 / max \ Δp\ 0.031 / 0.159(max 样本 argmax 未变)
- 3 性能(Ascend 910B4,短 prompt ~100 token)
配置 单请求 p50 16 并发 64 并发 128 并发
- -- --- --- --- ---
W8A8 TP1(1 卡) 242 ms 20.9 req/s 27.8 req/s —
W8A8 DP2(2 卡) 239 ms 29.0 req/s 45~49 req/s 55~61 req/s
bf16 TP2(2 卡,原版) 301 ms 21.3 req/s — —
23k token 长 prompt:5.2 s(bf16 为 5.5 s;冷启动首请求约 13 s,之后稳定)
单卡 KV 容量 279k tokens(32768 上下文下充裕)
注意:decode 只有 1 个 token,**TP2 反而更慢**(292 ms,all-reduce 开销 > 收益);扩展请用 DP
- 4 多模态(图像输入)验证
对量化版实机(DP2, --limit-mm-per-prompt {"image":1} )做的抽样测试,用例为「这张图是不是企业/品牌 logo」二选一:
用例 视觉 token P(是 logo) 结果
- -- --- --- ---
RICOH 标志(1465×512) 869 0.867 ✓ 判为 logo
某平台白色 logo(透明底,缩到 1400px + 深灰底) 749 0.808 ✓ 判为 logo
某平台白色 logo(原图透明底未合成底色) 10747 0.119 ✗ 漏判(白底上看不见,见第 6 节第 5 条)
人物证件照 2485 0.223 ✓ 判为非 logo
手机屏摄照片 12421 0.095 ✓ 判为非 logo
其他实测:
- *多图一次输入**:5 张图同请求可用(约 2.6 万 prompt tokens),5 选 1 单选能选出真 logo(p=0.680)
- *图文路由**:「用户上传 5 张图,帮我找出是 logo 的那张」→ 场景「识图内容」p=0.982
- *单图时延**(1400px,约 750~1600 视觉 token):**0.45~0.67 s**;与原图尺寸强相关,1 万 token 以上的超大图会到 4.6~7.4 s
- *批量吞吐**:32 并发、1400px 预缩图,稳定 **12.8 张/秒**(实际跑过约 40 万张知识库图片)
- 推理部署
- 1 启动
vLLM-Ascend 通过 quant model description.json 自动识别 W8A8 量化,无需 --quantization 参数:
- -limit-mm-per-prompt 决定每请求可带几张图:需要看图时至少设为 {"image":1,"video":0} ;该参数缺省时 vLLM 默认为 1 张,**不要设为 0**,否则视觉输入会被丢弃(早期部署脚本曾漏配此项,导致误以为「不支持图像」)。
纯文本决策场景设为 {"image":0} 可省掉视觉预处理开销。
启动日志应出现 Using the vLLM Ascend modelslim Quantization now! 与 quantization=ascend 。
高并发场景用 --data-parallel-size 2 (两张卡各一个完整副本,零通信,吞吐 ~2×,延迟不变)。
- 2 文本决策调用协议(与基座一致)
对返回的 top logprobs 做 softmax 即得各选项概率。最小客户端(零第三方依赖):
Prompt 模板、选项渲染规则( jev format.py )与基座一致,详见基座模型卡与 jev format.py 源码。
- 3 图像输入(多模态调用)
图像只能走 /v1/chat/completions **( /v1/completions 只接受纯字符串 prompt,无法携带图像)。输出仍受 255 路答案码约束, max tokens=1 取一次分布。
与文本接口的 3 个差异(实测 vLLM-Ascend 0.27.1):**
项 /completions /chat/completions
- -- --- ---
logprobs 整数(候选数) **布尔**;候选数用 top logprobs
allowed token ids 生效 **不生效**(返回全词表 top-N),需按 readout token ids 自行映射
返回位置 choices[0].logprobs.top logprobs[0] choices[0].logprobs.content[0].top logprobs ( token 形如 "token id:33" )
因此图像路径取概率时要自己映射并归一化(未进入 top-N 的答案码按概率 0 处理):
建议的图像预处理**(直接影响准确率和时延):
- 长边缩到 **1400px**(约 750~1600 视觉 token,单图 0.45~0.7 s;不缩的话 1 万 token 以上要 5~10 s)
- **带 alpha 通道的 PNG 先合成到深灰底**( (35,37,40) )——白 logo 叠在白底上模型看不见(实测同一张图:透明底 p=0.12 → 深灰底 p=0.81)
- 高度/宽度 1 万视觉 token)时延会涨到 5~10 s。
- **扩展方式**:加卡请用 DP( --data-parallel-size ),不要用 TP(decode 单 token,TP 通信开销为负收益)。
- **硬件绑定**:W8A8 量化产物面向 Ascend NPU(vLLM-Ascend 加载),不能用于 CUDA 后端。
- **冷启动**:长 prompt 首请求约 13 s(JIT/编译),之后稳定 5.2 s;压测前先 warmup。
- 复现
完整配方、A/B 脚本与基准脚本随本仓库 jev format.py 、 jev vllm engine.py 及基座模型卡提供。
License
Apache-2.0(与基座一致)。本量化版由 msModelSlim 26.1.0 在 Ascend 910B4 上生成,推理框架为 vLLM-Ascend 0.27.1。
优先采用原作者提供的中文模型卡片;仅有英文说明时由闲社AI翻译整理。重要参数、许可证和商用范围请以原文为准。
你将获得什么
完整仓库方式包含该固定版本中的权重、配置、分词器及说明文件;指定版本方式只下载所选文件或整组分片。多模态模型的投影文件、配置等依赖,请按作者说明配齐。
完整仓库可能包含多个权重格式,因此需要的磁盘空间可能大于单一格式的模型大小。下载文件不等于完成模型部署。
使用前须知
运行模型需要的设备、工具与依赖,以原作者说明为准。
是否允许商用、修改和分发,请查看模型许可证。
闲社提供资料与镜像下载方法,不代表已运行模型或完成安全审计。下载的代码应先检查,再执行。
资料或下载有问题?
登录后可提交反馈。
