HuggingFace镜像/MiniCPM5-1B-Claude-Opus-Fable5-V2-Thinking-OptiQ-4bit
模型介绍
文件和版本
分析

mlx-community/MiniCPM5-1B-Claude-Opus-Fable5-V2-Thinking-OptiQ-4bit

基于 mlx-optiq 构建,这是一个面向 Apple Silicon 的 MLX 原生工具包,可在本地对 LLM 进行量化、微调和部署,无需 PyTorch,也不依赖云端。试用 Lab · 全部 OptiQ 量化模型 · 文档

这是 GnLOLot/MiniCPM5-1B-Claude-Opus-Fable5-V2-Thinking 的一个 4 位混合精度 MLX 量化版本;该模型是 MiniCPM5-1B 的推理微调版本。敏感层保留为 8 位,稳健层则保持 4 位。

原本 2.0 GB 的 bf16 权重被压缩为 874 MB,体量小到可以在任意 Apple Silicon Mac 上流畅运行。

量化详情

属性值
主要精度4 位
8 位层(敏感)67
4 位层(稳健)102
量化层总数169
实际每权重比特数5.805
分组大小64
磁盘占用874 MB,源自 2.0 GB 的 bf16 基座

我们沿用 llama.cpp 在 Q4_K_M 等类似混合精度量化中采用的命名约定:“4 位”标签指主要精度,而不是加权平均位宽。在 1B 参数规模下,可牺牲的冗余更少,因此优化器会让更多层保留在 8 位,其加权平均位宽也会高于更大规模的模型。

各层位宽是如何确定的

逐层位宽分配迁移自 mlx-community/MiniCPM5-1B-OptiQ-4bit。在该模型中,这一分配是通过以 bf16 参考为基准,在六域校准混合数据上进行 KL 散度敏感度扫描推导得出的。

本模型是对 openbmb/MiniCPM5-1B 进行微调得到的,架构未作改动,因此全部 169 个可量化层都能完全一一对应;若针对本模型自身张量重新计算,该分配仍得到相同的 5.805 每权重比特数。

这些是实测得到的位宽,而不是固定的经验配方。但它们是在基座模型上测量得到的,而不是在本微调模型上。微调会改变权重分布,因此本模型自身的逐层敏感度可能与基座模型略有不同。哪些层较为脆弱,主要由架构特性决定,所以这种迁移是可靠的;但它毕竟是一次迁移,你应当清楚这一点。

使用方法

pip install mlx-lm
from mlx_lm import load, generate

model, tokenizer = load("mlx-community/MiniCPM5-1B-Claude-Opus-Fable5-V2-Thinking-OptiQ-4bit")
prompt = tokenizer.apply_chat_template(
    [{"role": "user", "content": "What is 17 + 25?"}],
    add_generation_prompt=True, tokenize=False)
print(generate(model, tokenizer, prompt=prompt, max_tokens=512))

before answering, so give it enoughmax_tokens` to finish.

For an OpenAI-compatible server, mixed-precision KV-cache serving, and sensitivity-aware LoRA fine-tuning, install mlx-optiq:

注意标签内容末尾有一个空格和冒号?实际: This is a reasoning model: it thinks inside ... before answering, so give it enough max_tokens to finish.

For an OpenAI-compatible server, mixed-precision KV-cache serving, and sensitivity-aware LoRA fine-tuning, install mlx-optiq:

必须保持 Markdown 格式。代码 span ... 不能翻译?变量、标签或专业名词不要翻译。max_tokens、mlx-optiq、链接、OpenAI? OpenAI 是品牌名词,可能不翻译。KV-cache? 专业术语,也许保留 KV-cache。LoRA 保留。sensitivity-aware LoRA fine-tuning 可译为“敏感性感知 LoRA 微调”或“感知敏感性的 LoRA 微调”。mixed-precision KV-cache serving 译为“混合精度 KV-cache 服务”或“混合精度 KV 缓存推理服务”。OpenAI-compatible server 译为“兼容 OpenAI 的服务器”或“OpenAI 兼容服务器”。需要优雅。

句子:这是一个推理模型:在回答前,它会先在 ... 中进行思考,因此请设置足够的 max_tokens 以完成回答。

为使用兼容 OpenAI 的服务器、混合精度 KV-cache 服务以及敏感性感知 LoRA 微调,请安装 mlx-optiq:

检查是否保持格式:两个段落,末尾冒号。中文冒号全角?原始英文是英文冒号后空格? Markdown 中最后 install ... : 英文冒号无空格? 可以翻译为中文冒号。 保持 code spans 原样。不要删减。

可能“reasoning model”译为“推理模型”。“thinks inside ... before answering”可以“在回答前通过 ... 进行思考”。足够 max_tokens 以完成(思考并)回答。 “give it enough max_tokens to finish” 给足 max_tokens 以让其完成。 通俗:请提供足够的 max_tokens,让它能够完成作答。

For an OpenAI-compatible server, mixed-precision KV-cache serving, and sensitivity-aware LoRA fine-tuning, install ...: 这里 For 可能表示“若要使用...”。译为“如需使用 OpenAI 兼容服务器、混合精度 KV-cache 服务以及敏感性感知 LoRA 微调,请安装 ...:”。 专业名词:OpenAI 不翻译。 KV-cache 不翻译?用户说变量、标签或专业名词不要翻译。KV-cache 是专业名词,可以保留。LoRA 保留。mlx-optiq 保留。max_tokens 保留。链接保留。

最终只输出翻译,不能解释。

注意用户说 <需要翻译的内容>标签内的内容不能进行任何删减和省略。我们翻译不能少。原文有尾随空格在标签内? 应该忽略。 需要保留 Markdown,段落。 可能最后没有换行。 OK.

这是一个推理模型:在回答之前,它会先在 ... 中进行思考,因此请提供足够的 max_tokens,让它能够完成作答。

如需使用兼容 OpenAI 的服务器、混合精度 KV-cache 服务以及敏感性感知 LoRA 微调,请安装 mlx-optiq:

pip install mlx-optiq
optiq serve --model mlx-community/MiniCPM5-1B-Claude-Opus-Fable5-V2-Thinking-OptiQ-4bit

验证

发布前,已对成品模型的生成能力进行了验证:原始补全、对话模板推理(对 17 + 25 能正确推理出 42),以及自由文本。

量化也进行了数值校验:将成品模型中的各个层反量化,并与 bf16 checkpoint 对比,8 位层的平均相对误差为 0.7%,4 位层为 9.8%,这也符合各比特宽度应有的误差代价。

此量化模型未运行任何任务基准;如需查看基础架构的实测质量指标,请参阅 MiniCPM5-1B OptiQ 模型卡。

量化不会改变基础模型的行为或对齐方式。请按照 原始版本 的相同条款使用。