界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
效率与协作 · SKILL.md

scalar-quantizers

scalar-quantizers

【效率与协作】Operate FSQ, FSP, ResidualFSQ, and GroupedResidualFSQ scalar quantizers in vector-quantize-pytorch.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: scalar-quantizers description: "Operate FSQ, FSP, ResidualFSQ, and GroupedResidualFSQ scalar quantizers in vector-quantize-pytorch." disable-model-invocation: true metadata: disco-role: operating license: MIT

Scalar Quantizers

Use this sub-skill when a task needs scalar discretization in vector-quantize-pytorch: finite scalar quantization, finite scalar perturbation, residual scalar quantizers, grouped residual scalar quantizers, index roundtrips, tensor-layout decisions, or scalar-quantizer troubleshooting.

Route here for

  • FSQ setup with levels, dim, num_codebooks, return_indices, channel_first, preserve_symmetry, bound_hard_clamp, orthogonal_rotation, projections, and index conversion.
  • FSP setup with levels, dim, channel_first, act_name, quantize_rate, need_inv_act, vector_norm, four-value return tuples, stochastic training perturbation, and eval-time roundtrips.
  • ResidualFSQ and GroupedResidualFSQ for residual stacks, grouped feature splits, num_quantizers, residual reconstruction from indices, return_all_codes, and quantize-dropout caveats.
  • Debugging shape, dtype, projection, activation, norm, and exact-vs-allclose reconstruction issues in scalar quantizers.

Route elsewhere

  • Use the top-level skill to choose package installation and overall routing.
  • Use ../vector-quantization/ for learned codebook VectorQuantize, RandomProjectionQuantizer, codebook EMA, masks, and top-k/manual EMA updates.
  • Use ../residual-quantizers/ for ResidualVQ and GroupedResidualVQ learned-codebook residual workflows.
  • Use ../lookup-free-and-latent/ for LFQ, ResidualLFQ, GroupedResidualLFQ, LatentQuantize, binary entropy losses, and lookup-free/latent quantization.
  • Use ../sim-and-hierarchical/ for SimVQ, ResidualSimVQ, and HierarchicalVQ.

Required references

Read these bundled references before implementing or debugging a scalar workflow:

  1. references/api-reference.md for constructor signatures, return tuples, shape contracts, index helpers, projections, and dtype behavior.
  2. references/workflows.md for safe FSQ/FSP/residual recipes and code patterns.
  3. references/troubleshooting.md for common errors, unsupported settings, roundtrip caveats, and precision/layout fixes.

Safe smoke helper

Run the bundled helper when you need a quick CPU sanity check of the installed package and the scalar APIs:

python scripts/smoke_scalar_quantizers.py --help
python scripts/smoke_scalar_quantizers.py

The helper uses small random tensors only. It does not download datasets, train MNIST models, or depend on any source tree.

Operating cautions

  • FSQ returns exactly two values: (quantized, indices). If return_indices=False, the second value is None and index roundtrip helpers are unavailable for that instance.
  • FSP returns exactly four values: (quantized, indices, norm_loss, other_info).
  • Prefer eval mode and torch.allclose for reconstruction checks that involve FSP, projections, autocast, or low precision. Exact equality is reliable only for the narrow deterministic cases called out in the API reference.
  • For image-like tensors, confirm whether the class expects channel-first handling. FSQ treats 4D+ inputs as channel-first feature maps; FSP requires channel_first=True for NCHW-style inputs.
我的收藏