What was the intended runtime contract for the original SpinQuant + `rotate` checkpoint?

#11
by robbiemu - opened

Hi Poolside folks! trying to understand the intended serving path for the original NVFP4 checkpoint at commit b482b5d, before it was replaced by what is described as “spinquantless norot weights.”

Specifically, what was the intended numerical and runtime contract for the original SpinQuant + rotate path? By “rotation,” I mean the learned SpinQuant transformation, not RoPE.

From examining the public serving implementations, I have not found a current vLLM, SGLang, or TensorRT-LLM path that appears to execute a Laguna-specific learned rotation. They seem to consume the checkpoint as ordinary compressed-tensors NVFP4. That leaves unsettled options:

  • the SpinQuant rotation was already fully folded into the checkpoint weights;
  • a runtime was expected to perform an additional rotate operation on activations;
  • or the original checkpoint targeted an internal or not-yet-upstreamed serving implementation.

Could you clarify? ChatGPT thinks these are especially helpful:

  1. What exactly did rotate mean in this checkpoint?
  2. Which tensors or activations were supposed to be rotated, and at what points in the model—particularly around the routed MoE layers?
  3. Was an inverse rotation or fused rotation-aware NVFP4 kernel also required?
  4. Which runtime and implementation were used for Poolside’s internal qualification of the original checkpoint?
  5. Were the published NVFP4 quality results produced using that rotation-aware path, or using the generic NVFP4 paths now available in the major runtimes?
  6. Is there a specification, reference implementation, branch, or quantization recipe that runtime maintainers could use to implement the original path correctly?

The new “spinquantless norot” checkpoint appears compatible with the generic NVFP4 paths in public runtimes. But we would still like to understand the original design and what its intended rotation-aware path offered.

Thanks!

Robbie, thanks for pointing this out, I would love to know the answer to this as well, especially if there is a specialized runtime that might work with the original NVFP4

Poolside org

Hi guys!

Let me explain. Spinquant is a quantisation technique that merges a rotation matrix into the weights in order to reduce outliers (you can see the paper here: https://arxiv.org/pdf/2405.16406).

The Spinquant we used was the "R1" variant, which is purely offline (i.e. we merged the rotation matrix into the weights). Thus, it doesn't require any special runtime support as far as I know. There are other spinquant matrices (say, R4) that do require runtime support, but for those reasons we never used it.

Lastly, the only reason why we replaced it was because it was actually causing degradations.

joerowell changed discussion status to closed

Sign up or log in to comment