项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
技术标签
使用教程
—
环境要求
- 可用的 Python 环境(README 未指定具体版本)
- 已安装 PyTorch(示例代码依赖 torch)
- pip 包管理工具
- 能访问 PyPI 的网络
安装与启动步骤
-
1准备运行环境
确认本机 Python 可正常运行,并已安装 PyTorch。建议在虚拟环境中操作,避免与已有依赖冲突。
-
2安装量化库
README 只提供这一条安装命令,直接从 PyPI 安装即可,无需克隆源码或编译。
pip install vector-quantize-pytorch -
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试用残差 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接入自有网络
把量化器当作 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
同类项目推荐
Long-RL
开源
让强化学习轻松驾驭超长序列,训练更稳更快
Long-RL: Scaling RL to Long Sequences (NeurIPS 2025)
TPA
开源
把注意力复杂度从平方降到线性,长序列不再卡顿
[NeurIPS 2025 Spotlight] TPA: Tensor ProducT ATTenTion Transformer (https://arxiv.or···
minimind
开源
两小时造出你的小模型,练手入门不求人
Train a 64M-parameter LLM from scratch in just 2h!
pruna
开源
一键优化 AI 模型,推理提速又省资源。
Pruna is a model optimization framework built for developers, enabling you to delive···
