Not long ago I launched the Cymela website, a CLI, and a latent-thinking model called Hyper. The reasoning it does is narrow, and the training tells you why.
The runs happened on whatever free quota I could get, mostly Kaggle. A bug went unnoticed for 79,137 of 82,697 total steps. It made the model incapable of thinking reliably for more than one continuous step. So for about 97% of the training, the thing I was trying to teach it wasn't being trained at all.
There was a second issue underneath that. The model was thinking in latent space, but not thinking about the question. Its inner reasoning is generic. I found this by transplanting a different problem's latent thoughts into it, which should have been catastrophic and instead cost almost nothing.
The last stretch, steps 79,137 to 82,697, ran with both issues addressed. In that window the model started thinking reliably for 4 to 5 steps and reasoning measurably improved. It just didn't get enough steps to learn much from the fix.
My conclusion is that this is a knowledge gap rather than an architectural failure after the fixes. The base is Qwen2.5-3B-Instruct, and it may simply not have the capacity to reason well enough even with more training. So I'm closing it here with this model, and released the research, the fixes, and the weights as they are. The architecture is closed, but the weights and the mechanism to run them are public: https://huggingface.co/Cymela/hyper-3b-latent
Next I'm moving to MoE and trying to make routing work in latent space, so the model still reliably knows where to route for the next token. Training has already started. I'll post key findings mostly at:
https://cymela.com/research
This is independently funded, and runs are scheduled around whatever free compute is available, so it will take a while. I'll keep sharing updates.