news 2026/11/3 19:16:57

深入解读Needle 3的.cact格式:Cactus Quants如何把权重压到2.125比特

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
深入解读Needle 3的.cact格式:Cactus Quants如何把权重压到2.125比特

深入解读Needle 3的.cact格式:Cactus Quants如何把权重压到2.125比特

Needle 3 是一款面向手机、可穿戴设备和微控制器的超小型 AI 基础模型,它的整个模型被装进一个名为.cact格式的单一文件 needle3.cact(约 35.3 MB)中。本文将带你读懂这个.cact文件:Cactus Quants 量化方案如何把 1.21 亿个权重平均压缩到2.125 比特/权重,以及各平台引擎如何直接映射这个文件完成推理。

📦 .cact 格式是什么:单文件 AI 模型容器

大多数模型生态需要一串文件:权重文件、词表、配置、运行时依赖。而 Needle 3 的部署侧非常克制:

组成文件作用
模型容器needle3.cact量化后的全部权重 + 部署元数据,35,335,380 字节
模型配置config.json架构、量化方案、部署格式声明
微调检查点checkpoints/needle3.safetensors供微调用的全精度权重(242 MB)
分词器tokenizer/tokenizer.model、tokenizer/tokenizer.vocab词表(vocab_size 仅 8192)

在 config.json 的deployment段可以看到它对自身格式的定位:

  • "format": "cact"
  • "runtime": "self-contained C++ / WebAssembly, no dependencies"

也就是说,.cact是"模型即文件"的容器:官方文档描述引擎会把这个文件map 到内存并在原地读取(in place),无需解压出一个临时模型目录。这对存储和内存都紧张的设备很关键——文件打开即加载,不产生额外拷贝。

⚡ 2.125 比特:Cactus Quants 的压缩账本

total_parameters为 121,021,910(见 config.json)。按不同位宽算一笔账:

格式比特/权重121M 权重所需空间
FP32(微调检查点)32≈ 484 MB
4-bit 量化4≈ 60.5 MB
2-bit 量化2≈ 30.3 MB
CQ2 混合精度2.125≈ 32.1 MB(纯权重数据)
.cact 实际文件≈ 2.3435.3 MB(含权重之外的部署数据)

几个要点:

  1. 相对 FP32 压缩约 13.7 倍:242 MB 的 needle3.safetensors 变成 35.3 MB 的 needle3.cact。
  2. 2.125 是加权平均值:并非所有权重都是 2-bit(下文方案详解),纯权重数据约 32.1 MB,加上字节级语法(grammar)等部署数据后,文件整体约 35.3 MB。
  3. KV Cache 与激活保持 8-bit(kv_cache_bits: 8、activation_bits: 8),压缩集中在权重上,推理中间结果不受损。

🔍 混合精度方案:config.json 里的量化细节

config.json 的quantization段完整描述了 Cactus Quants 的配置:

"quantization": { "method": "cactus-quants", "scheme": "embedding=4,mhc=4,default=2", "group_size": 128, "kv_cache_bits": 8, "activation_bits": 8 }

📌 逐项解读:

  • embedding=4,mhc=4,default=2:分层混合精度。词嵌入(embedding)和多通道超连接(MHC,mhc_lanes: 4)使用 4-bit,其余权重(default)使用 2-bit。4-bit 只占很小比例,加权后恰好落在 2.125 比特/权重——README 中称其为CQ2-bit。
  • group_size: 128:每 128 个权重共享一组缩放参数(group-wise quantization)。这是低比特量化的标准做法:分组越细,组内动态范围越小,2-bit 下精度损失越可控。
  • KV Cache / 激活 8-bit:只压权重、不压运行时状态,保证生成质量。

🚀 引擎如何加载 .cact:各平台接口一览

仓库中每个平台文件夹都带一个不到 1 MB 的引擎,启动时加载needle3.cact:

./needle --model needle3.cact --tools tools.json --prompt "dim the living room to 30"

不同接入方式读取同一份.cact字节流:

接入方式接口位置
C APIneedle_load(const unsigned char* cact, unsigned long long n)linux-x86_64/needle.h
WASI 组件load: func(model: list<u8>) -> result<_, failure>wasm-component/needle.wit
Pythonpip install cactus-needle,引擎与权重一次拉取并缓存python/ 下的各平台 wheel
浏览器WebAssembly 引擎 + JS 胶水wasm/needle.wasm、wasm/needle.js

C API 的加载接口直接接收原始字节数组(cact指针 + 长度),印证了.cact就是引擎可就地解析的二进制容器;WASI 侧的load(model: list<u8>)同样是"字节流进、模型出"。

🗂 一个模型,13 个平台目录

.cact是跨平台的中枢:同一份文件被下列每个平台的引擎加载,目录结构见 README.md 的 Deploy 一节:

  • 桌面/服务器:linux-x86_64/、linux-arm64/、linux-riscv64/、linux-mipsel/、macos-arm64/
  • 移动端:android-arm64/、android-armv7/、ios-arm64/、ios-sim-arm64/
  • 嵌入式与浏览器:wasm/、wasm-component/、watchos-arm64/、tvos-arm64/、windows-x86_64/、windows-arm64/

📎 小结与延伸阅读

  • .cact是 Needle 3 的单文件部署容器:量化权重 + 部署元数据,35.3 MB 装下 121M 参数。
  • Cactus Quants 采用2-bit 为主、embedding/MHC 用 4-bit 的混合精度,group_size: 128分组缩放,平均 2.125 比特/权重。
  • 各平台引擎 < 1 MB,直接映射.cact就地推理,运行时零依赖(C++ / WebAssembly)。

延伸阅读建议从这些文件入手:

  • 项目总览与使用示例:README.md
  • 量化与架构参数:config.json
  • C API 头文件:linux-x86_64/needle.h
  • WASI 接口定义:wasm-component/needle.wit
  • 微调检查点:checkpoints/needle3.safetensors

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/3 19:13:08

Python自动化神器Playwright:让浏览器乖乖听话的终极指南!

谁说浏览器不能自动化&#xff1f;大家好, 我是花姐。就在几天之前, 由于工作需要加班, 一直忙到了深夜时分, 整个人已经困得不成样子了, 但是在手头还剩下一个网页表单需要填写完毕之后才能够离开工作岗位去休息, 在这样的状况之下, 脑子里头突然就闪现出来一个比较奇特的想法…

作者头像 李华
网站建设 2026/11/3 19:11:30

GLiFormer Large v1文本嵌入实战:如何用1024维向量计算语义相似度

人工智能NLP大模型 【免费下载链接】gliformer-large-v1 项目地址&#xff1a; https://ai.gitcode.com/hf_mirrors/knowledgator/gliformer-large-v1 点击查看 免费下载 GLiFormer Large v1 是 Knowledgator 发布的 575.6M 参数多任务大型文本模型&#xff0c;除了命名实体识…

作者头像 李华
网站建设 2026/11/3 19:11:00

Whisky:免费在Mac运行Windows程序的完整指南

Whisky&#xff1a;免费在Mac运行Windows程序的完整指南 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky Whisky 是一个用 SwiftUI 写的 macOS 原生 Wine 封装器&#xff0c;让你不碰…

作者头像 李华