VoxCPM2, int4 LMs, prebuilt for myDubber
VoxCPM2 as the myDubber local backend and server workers hold it in memory: built once here so the app downloads and loads it, transforming nothing (no quantization at start, no weight-norm folding, no torchao at runtime).
Built from openbmb/VoxCPM2 at commit 32279effe8c19989596f05d353d1447f51d9e915 by
model_builds/voxcpm2.py
(dubber). This is a modified copy of VoxCPM2's weights (Apache-2.0 搂4(b)):
- the base and residual language models' linears (252 modules) are int4 weight-only, groups of
128 (torchao 0.18.0,
Int4WeightOnlyConfig(group_size=128, int4_packing_format="tile_packed_to_4d"), the tinygemm algorithm), stored as plain tensors:<module>.qdata(int32, the layout oftorch.ops.aten._convert_weight_to_int4packon CUDA, inner_k_tiles 8, torch 2.11.0+cu128) and<module>.scale_and_zero(bf16,[in/128, out, 2]). They compute withtorch.ops.aten._weight_int4pack_mmon an NVIDIA GPU of compute capability 8.0 or newer; the layout is torch's own, so other torch versions may pack differently (ROCm does); - the codec's (
audio_vae.*) weight norm is folded into plainweights (torch.nn.utils.remove_weight_norm), float32 as upstream runs it; - everything else is the original's tensors in bf16; the text embedding table, the feature encoder and the DiT are unchanged.
config.json is upstream's plus a prebuilt section listing the int4 modules and the versions; the tokenizer
files are upstream's. The audio codec that was audiovae.pth is inside model.safetensors. Loaded by
dub_pipeline.fast_voxcpm2.load_prebuilt; the takes are byte-identical to quantizing at load (dubber's S12
harness).
model.safetensors: 2.29 GB, sha256 6bc480d70d58007fdc4b24406ca18b16a552a99fd7fc4daa34be9526c86f705a
Licence
Apache-2.0, as the original (copy in LICENSE). Copyright of the weights: the VoxCPM2 authors (OpenBMB). The
modifications above are the only changes; no training or fine-tuning.
- Downloads last month
- -
Model tree for mydubber-org/voxcpm2-int4
Base model
openbmb/VoxCPM2