OneCompression
一行命令将大模型量化压缩,支持 AutoBit 自动位宽分配 + QEP 误差传播纠错,兼容 vLLM 推理
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
一行命令将大模型量化压缩,支持 AutoBit 自动位宽分配 + QEP 误差传播纠错,兼容 vLLM 推理
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你千辛万微调了一个 70B 参数的大模型,效果拔群,但想把它部署到服务器上时,发现显存不够、内存爆掉、加载一次要等三分钟——这是每一位 LLM 应用开发者都曾面对的痛。
Fujitsu One Compression(以下简称 OneComp) 正是为解决这一困境而生。它是日本富士通研究院开源的 Python 量化压缩库,GitHub 累计获得 393 颗星,用一行命令就能把庞大的 FP16 模型压缩成 INT4 甚至更低比特的紧凑形态,同时最大限度保留模型精度。
图1:OneComp 工作流程——从模型加载到量化压缩,一气呵成
大语言模型的参数规模从亿级增长到千亿级,推理成本随之飙升。量化(Quantization)作为模型压缩的核心手段,通过将 FP32/FP16 权重映射到低位整数(如 INT4、INT3),实现模型体积减半甚至更多,同时显著加速推理。
传统的量化方法存在一个根本矛盾:量化误差会逐层累积、向前传播,最终导致模型精度大幅下降。学术界为此提出了多种优化路线,OneComp 的核心贡献在于将两条前沿路线——**QEP(量化误差传播)**和 LPCD(层投影坐标下降)——产品化落地,同时兼容 GPTQ、DBF、RTN 等主流量化算法,形成了一套完整的工具链。
背后的学术支撑相当硬核:QEP 方法由 Arai & Ichikawa 提出,发表于 NeurIPS 2025;LPCD 由 Ichikawa 等人提出,论文收录于 arXiv (2512.01546)。一个开源库同时承载两篇顶会级研究成果,这在学术界并不常见。
OneComp 的设计哲学是**"一行命令,全自动"**——用户无需理解底层量化原理,只需提供模型名称,工具自动完成检测硬件、选择位宽、量化、评估、保存的全流程。
onecomp 一键量化(AutoBit + QEP)这是 OneComp 最具吸引力的特性。只需一条命令:
onecomp meta-llama/Llama-2-7b-hf
背后的逻辑是:
从 Python 调用同样简洁:
from onecomp import Runner
Runner.auto_run(model_id="meta-llama/Llama-2-7b-hf")
OneComp 并不绑定单一算法,而是将多种量化方法统一封装为 Quantizer 接口:
| 量化器 | 位宽 | 说明 |
|---|---|---|
| GPTQ | 2-4 bit | Hessian 矩阵最优舍入,精度高,速度慢 |
| DBF | ~1.5 bit | 双二进制分解,超低位宽 |
| RTN | 任意 | 最近舍入,基准方法 |
| AutoBit | 混合 | ILP 动态分配,显存自适应 |
| JointQ | 任意 | 权重与缩放因子联合优化 |
| QBB/QuIP/ARB/CQ | 任意 | 学术界前沿方法 |
这种设计让用户可以在同一套代码框架下对比不同算法的效果,降低了算法选型的实验成本。
Layer-Projected Coordinate Descent(LPCD)突破了传统 layer-wise 量化的局限,将相关的线性层组(如 Q/K、V/O、MLP up/down)联合建模,通过投影坐标下降迭代优化,比独立量化每层精度更高。
from onecomp import GPTQ, LPCDConfig, Runner
runner = Runner(
model_config=model_config,
quantizer=GPTQ(wbits=3, groupsize=128),
qep=True,
lpcd=True,
lpcd_config=LPCDConfig(),
)
runner.run()
量化后的模型如何高效推理?OneComp 提供了 vLLM 插件生态:GPTQ/JointQ/RTN 模型使用 vLLM 内置 GPTQ 插件,DBF 和 Mixed-GPTQ 则通过 OneComp 自研插件接入。结合 Open WebUI,用户可以在本地搭建类 ChatGPT 的对话界面。
OneComp 还附带了一个可选的 Web Dashboard,基于 FastAPI(后端)+ React + TypeScript(前端)构建。用户可以在浏览器中提交量化任务、查看进度、管理结果。Dashboard 使用 Celery 异步任务队列处理长时间运行的量化任务。
图2:OneComp Web Dashboard,支持量化任务可视化提交与进度追踪
图3:OneComp 官方品牌标识
OneComp 的代码结构清晰分层,体现了工程化思维:
onecomp/
├── runner.py # 核心调度器,管理量化全流程
├── quantizer/ # 多种量化器实现(GPTQ/DBF/RTN/AutoBit/JointQ/...)
│ ├── gptq/ # GPTQ 量化器
│ ├── dbf/ # 双二进制分解
│ ├── autobit/ # AutoBit(ILP 位宽分配)
│ └── jointq/ # JointQ 联合优化
├── qep/ # 量化误差传播实现
├── lpcd/ # LPCD 层投影坐标下降
├── calibration/ # 校准数据集加载(C4/Wikitext/自定义)
├── pre_process/ # 旋转矩阵预处理(Hadamard 变换)
├── post_process/ # 量化后处理(Block-wise PTQ、Lora SFT)
└── eval/ # 评估框架(MT-Bench、吞吐量测试)
vllm_plugins/ # vLLM 推理插件
├── dbf/ # DBF 插件
└── gptq/ # Mixed-GPTQ 插件
dashboard/ # 可选 Web UI
├── backend/ # FastAPI + Celery
└── frontend/ # React + TypeScript
核心抽象是 Runner 类和 Quantizer 抽象基类。Runner 负责加载模型、管理量化流程、调度多 GPU;Quantizer 定义了统一接口(quantize()、save()),每种算法独立实现。这种设计使得添加新量化算法只需实现 Quantizer 子类,无需修改核心逻辑。
测试覆盖相当全面:tests/ 目录下有大量单元测试和集成测试,涵盖量化正确性、回归测试、多 GPU 场景、分布式训练等。
对于普通用户,CLI 是最友好的入口——一条命令全自动完成,适合快速验证量化效果。
对于研究者/开发者,OneComp 提供了精细的控制粒度:可以单独配置量化器参数(wbits、groupsize)、校准数据集、QEP/LPCD 开关、多 GPU 策略等。Python API 比 CLI 更灵活,支持分步执行(预处理 → 量化 → 后处理),方便在流水线中集成。
硬件门槛是主要限制:量化过程本身需要大量显存(通常 8GB+),macOS 需 Apple Silicon(MPS 后端支持但功能受限)。
OneComp 的出现体现了当前 LLM 部署领域的一个大趋势:量化工具链的专业化和产品化。从早期的简单 RTN 量化,到如今 GPTQ+AutoBit+QEP 的组合拳,量化技术正在从学术研究走向可工程化的实用工具。
随着 MMLU、MMLU-Pro 等基准测试成为 LLM 评测标准,量化工具对精度保持的能力越来越受到重视。OneComp 同时支持学术前沿(QEP、LPCD)和工业实用(vLLM 插件、AutoBit)的设计思路,使其在同类型工具中具备差异化竞争力。
从增长角度看,LLM 的部署需求只会持续增加,量化作为性价比最高的压缩手段,OneComp 这类工具的生态价值值得关注。
总结:OneComp 是当前最完整的开源 LLM 量化工具之一,核心优势在于 AutoBit 自动化位宽分配 + QEP 误差传播纠错 + vLLM 无缝推理,适合有 GPU 资源且需要在本地部署大模型的开发者和研究人员。
数据来源:GitHub (FujitsuResearch/OneCompression)、项目文档及源码分析 | 分析时间:2026-06-26