【免费下载链接】CLM-v0.1-8B-MLX-4bit
CLM-v0.1-8B-MLX-4bit是 Contrastive Language Model(CLM,对比语言模型)的 Apple Silicon / MLX 4bit 社区移植版:一个冻结的Qwen3-8B 编码器加两个轻量投影头,能在 Mac 上本地完成"判断、打分、排序",不生成任何文本。它的编码器还是标准 MLX 格式权重,因此可直接用于MLXUI与mlx-workflow等通用 MLX 工具做本地推理。
📌 一句话定位:这不是聊天模型,而是一个"System One 快速决策器"——把一段状态(state)和若干候选动作(action)喂给它,用概率分布直接告诉你谁最优。
先搞懂:CLM-v0.1-8B-MLX-4bit 是什么
普通 LLM 靠"逐字生成"回答,而 CLM 走的是对比学习路线:
- 冻结编码器:用 Qwen3-8B 把文本编码成向量(
lm_head已移除,所以它不能生成文本) - 两个投影头:分别处理"状态向量"和"动作向量",压缩到 512 维
- 打分机制:两者余弦相似度 × 温度缩放,再经 softmax 得到概率分布
它支持三种带类型的问题(与上游 API 完全一致):
| 类型 | 含义 | 输出 |
|---|---|---|
noul | 是/否判断 | true 的概率 |
choice | 多选一 | 各选项概率 + 最优项 |
score | 分级打分 | 期望分值 + 各级概率 |
入口是Engine类的answer()与rank()两个方法,源码见 clm_mlx/engine.py;问题类型的组装逻辑在未改动的上游 vendored 文件 clm_mlx/schema.py 中。
CLM 与 MLX 生态的关系:标准编码器 + 专属投影头
这是理解本仓库与 MLX 工具链关系的关键。它由两部分组成,两者与 MLX 生态的兼容程度完全不同:
① 编码器(encoder/)—— 通用,生态级兼容
编码器就是一个标准的 MLX 格式 Qwen3-8B 检查点(4bit affine、group_size=32、lm_head已删除,约 4.7 GB)。配置可见 encoder/config.json。因为是标准格式,它可以像任何 Qwen3 模型一样被通用 MLX 工具加载,例如:
- mlx-workflow:命令行工作流工具,可把该编码器接入本地推理流水线
- MLXUI:Mac 上的本地 LLM 浏览器 App,可加载该编码器做 on-device 推理
② 投影头 +clm_mlx代码 —— 移植专属,不在 MLX 内置协议里
CLM 特有的"答题/排序"能力来自 heads/CLM_v0.1-8B.safetensors 与 clm_mlx/ 包,不是MLXUI 的内置模型协议。在 MLXUI 里若要复现 CLM 行为,需要在裸编码器之上做自定义集成。
💡 实践建议:只想做嵌入/特征提取 → 直接用 MLXUI 或 mlx-workflow 加载
encoder/;需要"判断/打分/排序"能力 → 运行本仓库自带的clm_mlx引擎。
在 MLXUI / mlx-workflow 中加载编码器
- 指向
encoder/目录即可,它是完整的标准 MLX 模型(含分词器 encoder/tokenizer.json、模板 encoder/chat_template.jinja) - 它只输出隐藏层向量(last-token、最终 RMSNorm 之后、L2 归一化,实现见 clm_mlx/encoder.py),不会产出对话文本
快速上手:三步跑通 CLM 本地推理
🖥️ 环境要求:Apple Silicon Mac(16 GB 内存推荐,运行时峰值约 5.53 GB)、Python 3.10+、约 5 GB 磁盘。
第 1 步:安装依赖
pip install mlx mlx-lm transformers huggingface_hub hf download mlx-community/CLM-v0.1-8B-MLX-4bit --local-dir clm-mlx第 2 步:在下载的目录中启动 Python(clm_mlx包就打包在里面)
第 3 步:调用引擎
from clm_mlx.engine import Engine eng = Engine("encoder", "heads") out = eng.answer( "Customer: my invoice was charged twice!", {"urgency": {"type": "noul", "instructions": "Is this urgent?"}}, ) print(out["answers"]["urgency"]) # rank():对候选项排序 eng.rank("", ["The Moon's gravity.", "Photosynthesis."], "What causes tides on Earth?")小细节:动作向量有缓存(默认 5 万条),对同一批候选反复提问时,只需为"状态"付费——这正是 Agent 场景的典型用法(状态在变、动作集基本固定)。
仓库结构速览:clm_mlx 包与权重目录
| 路径 | 说明 |
|---|---|
| clm_mlx/engine.py | Engine类:answer()/rank()、向量缓存 |
| clm_mlx/encoder.py | 基于 mlx-lm 的 Qwen3 编码器封装、批量嵌入 |
| clm_mlx/heads.py | state/action 投影头(与上游数学一致) |
| clm_mlx/schema.py | 上游原样 vendored 的问答格式定义 |
| encoder/ | 标准 MLX 格式 Qwen3-8B 4bit 编码器权重 |
| heads/ | float32 投影头(已针对 4bit 量化蒸馏重训),配置见 heads/config.json |
| clm_mlx.json | 导出元信息:源仓库 commit、4bit/g32、截断策略 |
| parity.json | 与上游参考服务完整对拍报告 |
| README.md | 官方说明文档 |
| NOTICE | 非官方社区移植声明 |
精度与性能:4bit 量化版的真实水平
⚡ 实测环境:Apple M3 Pro(18 GB)——编码器吞吐346.5 tokens/s,峰值内存5.53 GB。
这是面向低内存 Mac 的approximate(近似)档位,官方坦诚地给出了与上游(RTX 4090 上 vLLM 参考实现)的对拍结果,778 个问题、882 段文本:
| 指标 | 本移植 vs 上游 | 上游 vs 它自己(噪声基线) |
|---|---|---|
| 最优选项一致率 | 91.4% | 98.6% |
| 上游 ≥70% 置信时的最优一致率(577 题) | 99.3% | — |
| 答案概率差 p95 | 0.328 | 0.060 |
结论:分歧几乎都发生在"势均力敌"的判断题上——只要上游自己比较确信(≥70%),本版本 99.3% 的情况下会给出相同答案。记忆比极限决策更重要,就选 4bit;需要与上游严格一致,则选上游 8-bit 构建。完整数据见 parity.json。
使用 CLM-v0.1-8B-MLX-4bit 的注意事项
- ⚠️只进不出:
lm_head已被移除,检查点无法生成文本,这是设计而非缺陷 - ⚠️2048 token 截断:默认保留前 2048 tokens(与上游服务器一致,
truncation="head");上游训练头部时用的是长文本的末尾tokens,可用Engine(..., truncation="tail")切换 - ⚠️量化噪声:4bit 量化带来明显噪声,上游低置信度的答案请谨慎对待
- 投影头已针对本量化蒸馏重训(float32 保持),以找回量化损失的精度,训练记录见 heads/config.json
- 本项目为非官方社区移植,未经 CLM 作者发布或审核,详见 NOTICE
常见问题 FAQ
Q:我能在 MLXUI 里直接用它"答题"吗?A:MLXUI / mlx-workflow 能加载的是encoder/这个标准 Qwen3-8B 编码器(做嵌入、特征提取、本地推理)。CLM 的答题/排序行为依赖本仓库的投影头与clm_mlx代码,不在 MLXUI 内置协议中,需要自行集成。
Q:为什么下载后约 4.7 GB 而不是完整 Qwen3-8B?A:4bit affine 量化(g32)+ 删除了用不到的lm_head(省约 0.6–1.2 GB),换来更低内存占用。
Q:8 GB 内存的 Mac 能跑吗?A:官方未测试。实测峰值 5.53 GB,官方推荐 16 GB 机型。
Q:如何引用这个项目?A:方法、投影头与参考实现来自 Kwok 等人的Contrastive Language Models: A System One Model for Fast and Generalizable Decision-Making(2026),编码器为 Qwen3-8B(Apache-2.0),本移植(MLX 转换、clm_mlx代码、对拍工具)同为 Apache-2.0。
小结:CLM-v0.1-8B-MLX-4bit 让"对比式快速决策"首次跑进了 Apple Silicon 生态——编码器无缝融入 MLXUI 与 mlx-workflow 等通用工具,clm_mlx引擎则提供开箱即用的判断/打分/排序能力。5.5 GB 内存、346 tokens/s,这就是 4bit 版给出的本地决策模型性价比。
【免费下载链接】CLM-v0.1-8B-MLX-4bit
相关推荐
CLM-v0.1-8B-MLX-5bit进阶技巧:把冻结的Qwen3-8B编码器复用进MLXUI与mlx-workflow做本地推理
CLM v0.1 8B MLX 5bit进阶技巧:把冻结的Qwen3 8B编码器复用进MLXUI与mlx workflow做本地推理 CLM v0.1 8B M
CLM-v0.1-8B-MLX-4bit架构深度解析:冻结Qwen3-8B编码器+双投影头如何给状态与动作打分
CLM v0.1 8B MLX 4bit架构深度解析:冻结Qwen3 8B编码器+双投影头如何给状态与动作打分 本文拆解 CLM v0.1 8B MLX 4bi
CLM-v0.1-8B-MLX-4bit快速入门教程:5分钟在Mac上跑通Qwen3-8B对比评分推理
CLM v0.1 8B MLX 4bit快速入门教程:5分钟在Mac上跑通Qwen3 8B对比评分推理 CLM v0.1 8B MLX 4bit 是一个面向 M
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考