对于包含确切 >= 2^31 个元素的张量,quantize_4bit 会出现"无效配置参数"错误(ops.cu:54)

作者: TomMoeras创建于 2026年9月3日更新于 2026年9月3日

** 版本: bitsandbytes 0.49.1, torch 2.11.0+cu128, CUDA 12.8, NVIDIA H200 (141 GB)。 ** 重现 (隔离, 每个大小一个进程, fp32 扁平输入, compress_statistics=True — 与 axolotl 0.18 的 `_simulate_nf4_roundtrip` 调用相同): ** n = 2^31 - 65536 -> OK n = 2^31 -> 错误: 在文件 /src/csrc/ops.cu 的第 54 行出现无效配置参数 n = 2^31 + 65536 -> 同一失败 ** `quantize_4bit` 的内核启动算术中有一个清晰的 int32 界限。 ** 现实世界触发: axolotl 0.18 的合并 CLI 可为每个 4 位配置进行 NF4 往返仿真;任何携带 >= 2^31 个元素张量的模型(例如 google/gemma-4-E4B-it's embedding)都无法合并。较小的词汇量模型(Mistral-7B, Qwen3.5-4B)通过,这隐藏了该界限。 ** 预期: 2^31 个元素以上的分块启动或 int64 索引,或者明确的大小限制错误。

内容来源: bitsandbytes-foundation/bitsandbytes