- 人工智能
- 大模型
- 本地部署
- 模型量化
- 模型推理服务
【免费下载链接】Jev-Style-0.8B-Decision-v3-mlx-8bit
Jev-Style-0.8B-Decision-v3-mlx-8bit 是一款面向 Apple Silicon 的 8-bit MLX 量化决策模型(0.8B 参数,约 990MB 显存占用),用于 LLM 路由、意图判断与 guardrails 等"System-1"快速决策场景。本文揭秘它的 G5 Parity 验证体系,以及为什么 8-bit 权重与 PyTorch float32 参考实现相比,top-1 判定能保持 100% 一致。🔍
一、这是什么:为 Apple Silicon 打造的 8-bit 决策小模型 ⚡
Jev-Style-0.8B-Decision-v3-mlx-8bit 由 chaoliangUNSW/Jev-Style-0.8B-Decision-v3 转换而来,底层是 Qwen3.5-0.8B 文本模型(24 层:18 层 Gated DeltaNet 线性注意力 + 6 层全注意力,752M 参数),采用 MLX 框架的affine 8-bit 量化(group 64,平均每权重 8.25 bit)。量化配置见 config.json 中的quantization字段,转换过程记录在 conversion_metadata.json(mlx-lm 0.31.3,仅耗时 4.76 秒)。
它不是通用聊天模型,而是一个"判决式"(verdict)决策器:给定一段上下文(state)和一组选项,模型只回答"每个选项是否成立",并输出校准后的概率分布。实测性能(Apple M1 / 8GB)见 benchmark_results.json:
| 指标 | 8-bit 实测值 |
|---|---|
| 生成速度 | 52.23 tokens/s |
| 首 token 延迟(TTFT) | 19.15 ms |
| 峰值内存 | 919.3 MB |
💡 8GB 统一内存的 M1 就能流畅运行,这是它最大的卖点之一。
二、G5 Parity 验证:top-1 100% 一致是怎么测出来的 📊
量化后模型"行为是否漂移",是转换类仓库最让人担心的问题。本项目的回答是G5 Parity 测试(定义于 release_config.json 的g5_parity字段):
- 参考基准:PyTorch float32(相同权重、相同渲染输入)
- 测试集:240 条非封存训练分布样本,覆盖 22 个类别(英文 215 条 / 中文 25 条)
- 四项门槛:top-1 一致率 ≥ 0.99(16-bit)/ ≥ 0.98(8-bit)、|ΔNLL| ≤ 0.02、无 NaN、参考行全部完成打分
- 4-bit 仅为报告项(report-only),不作发布门槛
七个格式全部通过,核心结果如下:
| 格式 | top-1 一致率 | ΔNLL | 门槛 | 结论 |
|---|---|---|---|---|
| gguf-f16 | 100% | +0.000024 | top1≥0.99 | ✅ 通过 |
| gguf-q8_0 | 100% | −0.000031 | top1≥0.98 | ✅ 通过 |
| gguf-q4_k_m | 100% | +0.006188 | 仅报告 | ✅(仅记录) |
| mlx-bf16 | 100% | +0.000310 | top1≥0.99 | ✅ 通过 |
| mlx-bf16-f32act | 100% | +0.000157 | top1≥0.99 | ✅ 通过 |
| mlx-8bit(本仓库) | 100% | +0.000232 | top1≥0.98 | ✅ 通过 |
| mlx-4bit | 98.75% | +0.010326 | 仅报告 | 未发布 |
240/240 行全部与 float32 参考实现判定一致,NaN 行为 0——这就是标题中"top-1 100% 一致"的出处。
三、为什么 8-bit 能做到 top-1 100% 一致:四个关键原因
1️⃣ 判决读出(verdict readout)天然抗扰动
模型不生成自由文本,而是在每个选项末尾的" ->"槽位上计算:
score = logit(" yes") − logit(" no")
这一步用最终层 hidden state 与共享词表嵌入行(tied embeddings)做点积,并强制以 float32 计算(见 jev_style_decision_mlx.py 的_scores方法)。8-bit 量化引入的微小噪声(相对 float32 最大分数差约 0.083)远小于选项间的真实分差,因此 argmax 几乎不可能翻转。
2️⃣ 8-bit affine 量化本身足够温和
group 64 的 affine 量化保留 per-group 缩放因子,平均 8.25 bit/权重,ΔNLL 仅 0.000232,比 4-bit 的 0.0103 小了整整一个数量级。这也解释了为什么 4-bit 版本(top-1 98.75%)只做报告、未发布。
3️⃣ 校准温度随模型一起交付
概率通过softmax(scores / T)得到,温度 T 由 readout_config.json 提供:不传 category 时用全局温度 0.880;传--category则按"家族 × 题型 × 选项数桶"匹配 20 个拟合好的分组温度。这套温度在 15,655 行校准池上拟合,把期望校准误差(ECE)从 0.0329 降到0.0114(见 release_config.json 的calibration.fit_quality)。参考实现与 MLX 运行时使用同一份温度文件,从源头排除概率口径不一致。
4️⃣ 输入渲染逐 token 对齐
三个运行时(PyTorch / llama.cpp / MLX)共享完全相同的核心代码(渲染、读出、校准),输入模板macjev-render-v1保证所有后端对同一问题产生逐 token 相同的序列。runtime_parity协议在 244 行(含 4 行对抗性特殊 token / Unicode 样本)上验证渲染 token 与参考渲染器 244/244 完全一致,8-bit 运行时与同后端参考的概率最大差异为0.0、top-1 变化为 0。
四、快速上手:在 Apple Silicon 上跑一次决策
安装 MLX 工具链后,直接使用仓库自带的自包含运行时 jev_style_decision_mlx.py:
pip install mlx-lm tokenizers python3 jev_style_decision_mlx.py \ --state "Refund still missing after 3 weeks" \ --question "Which team should handle this ticket?" \ --options '{"billing": "payments, refunds", "tech": "bugs, crashes"}' \ --category theme_routing输出为 JSON,包含answer、probabilities、scores、temperature等字段,可直接接入下游路由逻辑。两个硬性预算值得注意:整段输入 ≤ 25,600 tokens、问题+选项+读出区 ≤ 2,048 tokens,超限直接报错、绝不静默截断(抛出InputBudgetError),这对决策场景的正确性至关重要。
该模型同时支持
mlx_lm.chat/mlx_lm.generate以通用方式加载,详见 README.md 的 Quick Start 章节。
五、关键文件资料索引 📁
| 文件 | 作用 |
|---|---|
| release_config.json | 发布清单:G5 Parity 结果、运行时对齐记录、温度校准质量 |
| readout_config.json | 判决读出配置:槽位 token ID、校准温度分组 |
| jev_style_decision_mlx.py | MLX 运行时(bf16 / 8-bit,含渲染、读出、CLI) |
| jev_style_decision.py | PyTorch 参考运行时(G5 的比对基准) |
| config.json | 模型架构与 8-bit 量化参数(affine, group 64) |
| model.safetensors.index.json | 权重分片索引(约 800MB,752M 参数) |
| benchmark_results.json | M1 8GB 实测:52.23 tokens/s、919.3MB 峰值内存 |
| conversion_metadata.json | 转换命令、mlx-lm 版本与耗时 |
六、小结:把"质量"变成可复算的证据 ✅
Jev-Style-0.8B-Decision-v3-mlx-8bit 给转换类模型仓库提供了一个很好的质量范式:
- 量化不靠感觉:8-bit affine group-64,ΔNLL 仅 0.000232;
- Parity 门槛写在配置里:top-1 ≥ 0.98、|ΔNLL| ≤ 0.02、无 NaN,240 行全部通过,top-1 一致率 100%;
- 运行时二次验证:干净子进程中 24 行固定夹具 + 两条 25K 长文,与参考打分器逐位比对,概率差异 0.0;
- 预算不截断:超限即报错,决策永不建立在残缺输入上。
对于需要在 Mac 本地做意图路由、主题分派或 guardrails 的团队,这是一个"质量可审计、占用近 1GB、首 token 仅 19ms"的务实选择。🚀
- 人工智能
- 大模型
- 本地部署
- 模型量化
- 模型推理服务
【免费下载链接】Jev-Style-0.8B-Decision-v3-mlx-8bit
相关推荐
Jev-Style-0.8B-Decision-v3-mlx-8bit Python API教程:JevStyleDecisionMLX类与decide/decide_many完整代码示例
Jev Style 0.8B Decision v3 mlx 8bit Python API教程:JevStyleDecisionMLX类与decide/dec
人工智能大模型本地部署模型量化模型推理服务如何本地构建LLM路由与Guardrails?Jev-Style-0.8B-Decision-v3-mlx-8bit终极应用场景
如何本地构建LLM路由与Guardrails?Jev Style 0.8B Decision v3 mlx 8bit终极应用场景 想在自己的 Mac 上跑一个轻
人工智能大模型本地部署模型量化模型推理服务置信度为什么会骗人?揭秘Jev-Style-0.8B-Decision-v3-mlx-16bit分组温度校准:ECE从3.3%降到1.1%的秘密
置信度为什么会骗人?揭秘Jev Style 0.8B Decision v3 mlx 16bit分组温度校准:ECE从3.3%降到1.1%的秘密 Jev Sty
人工智能本地部署大模型NLP模型安全
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考