S1-mini-MLX-4bit的4bit仿射量化是如何炼成的?mlx-lm转换BF16权重全流程复盘
【免费下载链接】S1-mini-MLX-4bit项目地址https://ai.gitcode.com/hf_mirrors/mlx-community/S1-mini-MLX-4bit点击查看免费下载S1-mini-MLX-4bit 是 Superwhisper 的 S1-mini 语音文本规整模型的MLX 4bit 仿射量化版本由mlx-lm从原始 BF16 权重直接转换而来。本文带你完整复盘这次 4bit 量化转换为什么要用仿射量化、mlx-lm 每一步做了什么、转换产物里藏着哪些线索以及如何在本地快速跑起来验证效果。一、先认识主角S1-mini 是个什么模型S1-mini 不是一个聊天模型而是一个只做一件事的 0.6B 小模型把 ASR语音识别吐出来的原始听写稿改写成干净的文字。口癖um、uh删掉、自我纠正取最终值、标点和大写补齐、口语数字转成书面格式forty two→42。项目说明基座模型Qwen3-0.6B微调而来参数量596M其中 embedding 155.6M词嵌入与输出层共享层数 / 注意力头28 层Q 头 16、KV 头 8GQA词表大小151,936原始精度BF16语言仅英文许可证Apache 2.0 保留名称条款见 LICENSE在上游保留的 7,519 条英文测试集上它的 token 准确率约为94.8%。正因为只有 0.6B量化后单文件约462 MiB在笔记本 CPU 上也能跑得动。二、什么是「仿射 4-bit」量化量化就是把每个权重从 BF1616 bit压缩到 4 bit。而「仿射」affine描述的是压缩时保留的辅助信息权重按group size 64分组每 64 个权重共享一对参数一个scale缩放因子和一个bias零点偏置反量化公式w ≈ (q - bias) × scale对称量化相当于强制bias 0仿射量化则让每组自己学习偏置对分布不对称的权重块精度更友好S1-mini-MLX-4bit 4bit 仿射量化结构示意每 64 个权重共享一组 scale 与 bias实际存储开销大约是4.06 bit/参数每 64 个 4-bit 权重外加 2 个 BF16 的 scale/bias比原始 BF16 缩小约4 倍596M 参数从约 1.2 GB 压到 462 MiB。三、mlx-lm 转换全流程复盘整个转换只有一条主线安装 mlx-lm → 喂入 BF16 原始权重 → 输出 MLX 量化仓库。第 1 步安装转换工具uv tool install mlx-lm本仓库使用mlx-lm0.31.3 完成转换。第 2 步量化转换核心一步mlx-lm 读取上游 BF16 权重对每个线性层q/k/v/o_proj、gate/up/down_proj乃至词嵌入embed_tokens做分组仿射量化把 4-bit 打包权重连同每组的scales、biases一起写入新的model.safetensors。第 3 步原样保留配套资产除了权重转换还完整保留了原始的 tokenizer、chat template、生成配置、模型文档和许可证——仓库里的 chat_template.jinja、tokenizer.json、generation_config.json 都来自上游保证行为一致。四、逐份阅读转换产物关键证据都在这文件你能看到什么config.json新增的quantization字段{group_size: 64, bits: 4, mode: affine}model.safetensors打包后的 4-bit 权重 每组 scale/bias约 462 MiBmodel.safetensors.index.json权重清单total_parameters: 596049920generation_config.jsondo_sample: false贪心解码README.md上游完整文档、评测数据与用法三个值得新手注意的细节三件套命名法。打开 model.safetensors.index.json 的weight_map会发现每个量化层都是.weight/.scales/.biases一组例如model.layers.0.self_attn.q_proj.weight与...q_proj.scales、...q_proj.biases并存——这正是仿射量化的标志。embedding 也被量化了。model.embed_tokens同样带.scales和.biases说明 mlx-lm 没有把词嵌入留在 BF16。torch_dtype仍是bfloat16。config.json 里保留了这个原始元数据它描述的是上游模型不代表本仓库权重还是 16-bit别被误导。五、转换质量怎么验证的转换后作者做了一组确定性 sanity check6 个固定输入跑贪心解码与上游 BF16 参考输出比对——✅ 3 条与参考字符串完全一致⚠️ 其余差异都很小如保留了句首 So,、序数词标点差异、某条自我纠正用例漏了 tomorrow官方明确提醒这只是小功能检查不是上游 7,519 条用例的完整评测4-bit 版本建议在自己的听写场景上自行评估。六、本地跑起来最小步骤uv tool install mlx-lmfrom mlx_lm import generate, load model, tokenizer load(mlx-community/S1-mini-MLX-4bit) # 必须保留 system prompt 控制行并设置 enable_thinkingFalse输入格式是「控制行 换行 原始听写稿」例如[Styling: semi-formal] [Structure: prose] [Context: general] so um send the report by uh friday模型只输出清洗后的文本无任何前言解释。七、新手避坑清单必须enable_thinkingFalseS1-mini 基于 Qwen3 训练时关闭了思考模式漏掉这个参数最常见的结果就是拿到一个空的think块输出全空白。system prompt 和控制行一个字符都不能少它们是模型唯一的「方向盘」。保持贪心解码generation_config.json 已设do_sample: false文本规整是确定性变换采样只会引入噪声。长文本分段单次输入控制在约 1,000 token 以内按句子边界切分。可能输出空字符串输入全是口癖时空输出是正确结果不是报错。总结S1-mini-MLX-4bit 展示了 mlx-lm 量化转换的典型产物形态一条命令把 BF16 权重压成 affine 4-bitgroup 64文件缩到约 1/4同时完整继承 tokenizer、chat template 与生成配置。读懂config.json里的quantization字段和 index 文件里的.scales/.biases三件套你就能分辨任何 MLX 量化模型是怎么炼成的。赞分享【免费下载链接】S1-mini-MLX-4bit项目地址https://ai.gitcode.com/hf_mirrors/mlx-community/S1-mini-MLX-4bit点击查看免费下载相关推荐亲手转换你的7B模型到MLX格式以Mistral-7B-Instruct-v0.3-mlx-4Bit为例的mlx-lm量化转换教程亲手转换你的7B模型到MLX格式以Mistral 7B Instruct v0.3 mlx 4Bit为例的mlx lm量化转换教程 想在 Apple Sili4Bit量化原理深度剖析Phi-4-mini-instruct-mlx-4Bit的affine量化与group_size64机制4Bit量化原理深度剖析Phi 4 mini instruct mlx 4Bit的affine量化与group_size64机制 本文带你读懂 Phi 4Phi-4-mini-instruct-mlx-4Bit Python API实战5行代码加载4Bit量化模型并生成对话Phi 4 mini instruct mlx 4Bit Python API实战5行代码加载4Bit量化模型并生成对话 Phi 4 mini instruc上一篇仓颉 ArkUI ohos.arkui.shape 形状 API 详解BaseShape 基类与 clipShape/maskShape 裁剪遮罩实战下一篇终极指南快速获取B站视频播放链接的完整解决方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

大模型本地离线推理实战:从模型选型到桌面端部署踩坑指南

大模型本地离线推理实战:从模型选型到桌面端部署踩坑指南

第一次被问到“能不能把大模型放到本地跑”的时候,我第一反应是劝退。那会儿办公软件里的智能功能,十有八九都走云端接口,本地跑意味着显卡算力、内存占用、模型体积、首启耗时,桩桩件件都要自己兜着;随便哪一环翻车&a…

2026/10/18 16:11:25 阅读更多 →
Ubuntu 20.04 稳定部署 NVIDIA 驱动 460.32.03 + CUDA 11.2 实践指南

Ubuntu 20.04 稳定部署 NVIDIA 驱动 460.32.03 + CUDA 11.2 实践指南

1. 项目概述:为什么在 Ubuntu 20.04 上锁定 nvidia-460 cuda-11.2 这个组合?如果你正坐在一台刚装好 Ubuntu 20.04 的工作站前,手边是块 RTX 3090 或 A100,准备跑 PyTorch 训练、TensorFlow 推理,或者调试一个依赖 CU…

2026/10/18 16:10:25 阅读更多 →
Q-learning强化学习算法入门:理解Q表、更新公式与最小实现

Q-learning强化学习算法入门:理解Q表、更新公式与最小实现

上个月朋友递给我一个半成品的小游戏Demo,角色在不到一百格的地图里乱转,规则很简单,但就是走不到终点。我试过写死规则,换一张地图就崩;试过用搜索算法,环境稍微改一下就跑不动。最后把角色换成强化学习算…

2026/10/18 16:10:25 阅读更多 →

最新新闻

ROS2小车网页遥控:WebSocket桥接实现低延迟物理控制

ROS2小车网页遥控:WebSocket桥接实现低延迟物理控制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 17:03:56 阅读更多 →
STSPIN32G4高集成方案:FOC电机控制从选型到调试全实践

STSPIN32G4高集成方案:FOC电机控制从选型到调试全实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 17:03:56 阅读更多 →
树莓派自动温控风扇:DS18B20与PWM调速实战

树莓派自动温控风扇:DS18B20与PWM调速实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 17:03:56 阅读更多 →
传感器数据跳变排查指南:从硬件到软件的实战解决方案

传感器数据跳变排查指南:从硬件到软件的实战解决方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 17:03:56 阅读更多 →
STM32F407的Modbus RTU主机代码详解:CRC16校验与RS485收发切换

STM32F407的Modbus RTU主机代码详解:CRC16校验与RS485收发切换

简介:基于STM32F407的Modbus RTU主机通信工程,实现RS485总线上完整的主站收发流程,适合嵌入式开发者及工业自动化技术人员在设备数据采集、从站轮询控制等场景中直接参考。工程基于STM32标准外设库编写,核心代码涵盖USART串口参数…

2026/10/18 17:03:56 阅读更多 →
帆软FR中JS实现分类汇总:完整思路、性能优化与避坑指南

帆软FR中JS实现分类汇总:完整思路、性能优化与避坑指南

做报表开发久了,你会发现一个奇怪的现象:SQL里一个GROUP BY就能搞定的分类汇总,到了帆软FR(FineReport)里,偏偏要用JS去实现。最开始我也觉得这是脱裤子放屁,直到遇到一个真实业务:某…

2026/10/18 17:02:55 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →