vector-quantize-pytorch

一行替换量化层,轻松训练离散潜变量模型

开源 free 模型训练
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 4014
维护状态 较活跃
是否开源 是
定价模式 free

项目预览

项目数据

分类模型训练
开发团队lucidrains
所属国家
官网地址
定价模式free
价格说明开源免费,MIT许可证
访问状态
是否开源是
开源协议MIT
主要语言Python
技术栈/模型artificial-intelligence,deep-learning,pytorch,scalar-quantization,vector-quantization
GitHub 星标★ 4014
30天Star增速
HF 下载量
上线时间2020-06-09 00:00:00
代码更新—
仓库体积—
本站数据更新—
维护状态较活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-10-17
浏览次数0

项目介绍

vector-quantize-pytorch 是一个在 PyTorch 中实现向量量化(VQ)与标量量化的开源库,主要服务于生成模型与表示学习。它解决的核心问题是:在神经网络中把连续特征映射到离散码本,从而支持 VQ-VAE、VQ-GAN、音频/图像 tokenizer、自回归生成等需要离散潜变量的场景。库内提供多种量化器,如标准 VQ、EMA 更新、残差 VQ、乘积量化、有限标量量化(FSQ)、LFQ 等,并处理了直通估计器、码本坍缩、commitment loss 等常见训练难点。接口以 nn.Module 形式提供,可直接替换网络中的量化层,兼容 PyTorch 生态,适合研究人员快速实验不同量化策略,也适合工程上构建离散 token 的编解码流程。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

正在加载星标数据…

技术标签

使用教程

—

难度:入门 约 5 分钟 部署方式:库/依赖 5 步

环境要求

  • 可用的 Python 环境(README 未指定具体版本)
  • 已安装 PyTorch(示例代码依赖 torch)
  • pip 包管理工具
  • 能访问 PyPI 的网络

安装与启动步骤

  1. 1准备运行环境

    确认本机 Python 可正常运行,并已安装 PyTorch。建议在虚拟环境中操作,避免与已有依赖冲突。

  2. 2安装量化库

    README 只提供这一条安装命令,直接从 PyPI 安装即可,无需克隆源码或编译。

    pip install vector-quantize-pytorch
  3. 3运行最小 VQ 示例

    构造 VectorQuantize 实例并传入随机张量,打印量化后张量、索引与 commitment loss 的形状。

    python -c "import torch; from vector_quantize_pytorch import VectorQuantize; vq = VectorQuantize(dim=256, codebook_size=512, decay=0.8, commitment_weight=1.); x = torch.randn(1, 1024, 256); quantized, indices, commit_loss = vq(x); print(quantized.shape, indices.shape, commit_loss.shape)"
  4. 4试用残差 VQ

    ResidualVQ 用多个量化器递归量化残差,需额外指定 num_quantizers(示例为 8)。

    python -c "import torch; from vector_quantize_pytorch import ResidualVQ; residual_vq = ResidualVQ(dim=256, num_quantizers=8, codebook_size=1024); x = torch.randn(1, 1024, 256); quantized, indices, commit_loss = residual_vq(x); print(quantized.shape, indices.shape, commit_loss.shape)"
  5. 5接入自有网络

    把量化器当作 nn.Module 直接替换网络中的量化层,训练时把 commit_loss 加权后加入总损失。

关键配置

配置项必填说明示例
dim是输入特征的维度,需与网络输出的通道/特征维一致256
codebook_size是码本大小,即离散编码的数量512
decay否指数移动平均衰减系数,越小字典更新越快0.8
commitment_weight否commitment loss 的权重系数1.
num_quantizers否ResidualVQ 中量化器的层数8

如何确认成功

运行示例不报错,且打印形状为 (1, 1024, 256)、(1, 1024)、(1),即说明安装与调用成功。

常见问题

Q:pip 安装成功后 import 报找不到模块怎么办?

A:确认安装与运行使用的是同一个 Python 环境。安装包名是 vector-quantize-pytorch,但导入名是 vector_quantize_pytorch。

Q:decay 参数代表什么?

A:README 说明它是指数移动平均的衰减系数,数值越低字典变化越快,示例中取 0.8。

Q:commitment_weight 有什么作用?

A:它是 commitment loss 的权重,示例取 1.0,可按训练情况自行调整。

Q:码本条目“死掉”了怎么处理?

A:README 提到仓库包含多种对抗 dead codebook 的技术,可参考 Increasing codebook usage 一节尝试。

Q:需要 GPU 吗?

A:README 未给出相关要求,示例使用 CPU 上即可运行的随机张量,可按需迁移到 GPU。

注意事项

  • README 未给出 Python 与 PyTorch 的版本要求,请自行确认环境兼容性。
  • README 只提供 pip 安装方式,未提供源码克隆或编译安装说明。
  • 示例返回的第三个值是 commitment loss,训练时需加权后计入总损失。
  • 项目无官网,文档以 GitHub 仓库 README 为准。

核心亮点

  • 内置 VQ、EMA-VQ、残差 VQ、乘积量化、FSQ、LFQ 等多种量化器,覆盖主流离散化方案
  • 直接以 nn.Module 提供,替换现有网络层即可使用,与 PyTorch 训练流程无缝集成
  • 处理了直通估计、码本坍缩、commitment loss 等训练细节,降低复现门槛

不足之处

  • 文档以 README 和示例为主,缺少系统化 API 文档与调参指南
  • 高级量化器(如残差 VQ、乘积量化)的配置参数较多,新手需要读源码理解

适用场景

  • 训练 VQ-VAE / VQ-GAN 等离散潜变量生成模型
  • 为音频、图像构建离散 tokenizer,供自回归或扩散模型使用
  • 研究不同量化策略(FSQ、LFQ、残差 VQ)对表示学习效果的影响

替代项目

fairseq、taming-transformers

上一篇:ao

下一篇:brevitas

同类项目推荐

Long-RL 开源

让强化学习轻松驾驭超长序列,训练更稳更快

Long-RL: Scaling RL to Long Sequences (NeurIPS 2025)

★ 729 2026-08-09
TPA 开源

把注意力复杂度从平方降到线性,长序列不再卡顿

[NeurIPS 2025 Spotlight] TPA: Tensor ProducT ATTenTion Transformer (https://arxiv.or···

★ 464 2026-08-09
minimind 开源

两小时造出你的小模型,练手入门不求人

Train a 64M-parameter LLM from scratch in just 2h!

★ 63828 2026-08-09
pruna 开源

一键优化 AI 模型,推理提速又省资源。

Pruna is a model optimization framework built for developers, enabling you to delive···

★ 1317 2026-08-13