Prefill and decode do not have to run the same weights. This repo holds prefillers: NVFP4 transformer blocks that are streamed off the SSD one layer at a time, paired to complement low-bit GGUF for decode.

The point is that the two phases want different things. Decode is memory-bound, has to be on device for fast generation and is accelerated by being small. Prefill is compute-bound, so there's little point in compressing it below NVFP4 (compute-native on Blackwell) as long as it doesn't occupy much memory, which we achieve via offloading.

Accuracy and time-to-first-token against device weight size

Auxiliary prefillers recover ~50% of the accuracy that aggressive quantization gives up, at close to no extra memory cost. Moreover, past a few thousand tokens, the offloading streaming disappears under compute, so it is not paid for in latency either

you are viewing a single comment's thread
view the rest of the comments
[–] 1 point 1 month ago (1 child)

I'm on amdgpu personally and found beellama to be a nice step in this direction FWIW

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 1 month ago*

    Be careful with beellama, as it’s largely vibecoded from what I understand.

    That’s not bad per se, but you have to watch out for implementation quirks (eg a model might not inference quite correctly) or questionable features (like TurboQuant, which is sorta obsolete with newer models, and seems to benchmark questionably on older ones).

    There are some interesting AMD forks out there though. I wish I could speak to some, but I haven’t tested any, and it’s hard to keep up.

  • source
  • parent