huggingface / huggingface/diffusers
MiniMax H3 unnecessarily swapped w1 in VAE
- Lingua principale
- Python
- Stelle
- 34.5k
- Fork
- 7.3k
- Merge medio
- 3g 3h
- PR unite (30g)
- 91
Descrizione
The MiniMax H3 model is very popular, congratulations to the MiniMax team.
However, there's currently an issue caused by the Diffusers' team once again modifying the layout of the model for seemingly no reason.
The video VAE's weights are reorganised from `[gate, up]` to `[up, gate]`.
why? why does this keep happening? what is the actual reason for the swap?
It's caused an enormous amount of time waste to try and make the two weight setups both loadable and function correctly during training and inference.
This isn't the first time it's happened, but it's the first time it's been done in a way that is **extremely difficult to track down the issue**. Usually, the unnecessary change arises from qkv projections being split when the upstream model release had them fused (and oftentimes their paper eg. Flux.1 and others have mentioned qkv fusion as ultimately required to achieve high levels of hardware utilisation)
Look at the result:
https://github.com/user-attachments/assets/766ea4b9-49dc-40f0-bdf4-af43b4cd9265
It's probably too late to fix it now, just like every other time the Diffusers pipeline has been released without enough time to absorb community feedback. Now we're stuck with two, incompatible sets of weights being distributed for H3 probably forever.
I understand that the tone of this post is going to upset people, but I'm not really worried about it. The time wasted through debugging this issue is worse. It's going to keep affecting people until either the weights are recalled and replaced or another model comes along to replace H3.
Can you simply stop making these changes, especially ones that don't cause obvious errors?
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
The report names no Diffusers file, test, or entry point. Begin by reproducing the MiniMax H3 VAE weight-layout mismatch and tracing where `[gate, up]` becomes `[up, gate]`; done would require an agreed compatibility or correction path that preserves training and inference behavior.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python, pytorch
- Ambito
- machine-learning
- Tipo di issue
- Bug
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Tranquilla
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 25/100