EUGEN 160M is a small language model that helps with writing code: it completes code as you type (autocomplete) and suggests the next line. It is also trained to fill in code in the middle of a file (fill-in-the-middle) and specialises in translating Python into C++. It has 164.5 million parameters and is trained from scratch on a single NVIDIA RTX PRO 6000 (96 GB) GPU. Its small size makes generation fast on an ordinary CPU as well, at up to about 270 tokens per second. You can try the model in the terminal: just click the button below.
First results
Training is at an early stage, and the results already give reason for optimism. On HumanEval, where the model writes a Python function from its description, EUGEN's best measured results are 18.9% of tasks with one attempt and 32.9% with ten. In verified Python-to-C++ translation – the compiler and tests pick a working version from several of the model's proposals – 77 of 100 programs compile and 53 pass all tests. The model's stack makes sure that only translation proposals which passed these checks reach the user. The chart sets EUGEN's results against models of up to 0.5 billion parameters.
Model architecture
EUGEN is a decoder-only transformer with 36 layers, trained with MuonH, a variant of Muon that keeps the norm of the weight matrices fixed. The model is in base training. About 0.35% of the data are our own: STaR solutions generated by EUGEN itself that passed their tests, and translation pairs between Python and C++, Java, Go and Rust, checked by compilation and tests.
Sparse FFN, Triton kernel
I also work on optimising and speeding up model training with a sparse FFN, and for this I developed my own GPU kernel, written in Triton. In a model of 306 million parameters (FFN 4,096), the optimised kernel reached 36% higher throughput than its first version. Our early tests show that with a larger model and an FFN of 8,192, the sparse kernel from the EUGEN project can deliver a speed-up of more than 40% over a dense model. Whether a model trained sparse and densified at the end matches a dense model remains open, but the early results lead me to train the next, larger model this way.
TetherGate is a mechanism that keeps learned gates from closing. A gate scaling a residual branch – an expert, an adapter or a newly added layer – tends to be pushed gradually to zero by the optimiser, after which the branch contributes nothing to the model. TetherGate combines a floor driven by the training step with a spring that pulls the gate's threshold towards a moving anchor computed from the current control signal. The signal can be any statistic. I have tested the mechanism experimentally in my own models.
I keep doing my own AI research. It concerns, among other things, signals from inside the network: the gate activations of FFN layers and the Gate Sparseness Index (GSI) built on them, which, according to preliminary results, may help – before any answer is generated – to separate questions the model knows the answer to from those where it starts to confabulate. Later analysis showed that part of the effect comes from the length of the questions – after accounting for it, the signal holds in the Llama model, and the other results need to be re-run. I have no formal education in the field, but I aim to work as professionally as possible: with publicly released data, repeatable measurements and clearly stated limitations.
How I work with AI
I don't write code by hand. I design the tasks and run teams of AI agents, and I check every result. A team works in three stages: research, execution and verification. Execution is overseen by two independent controllers: one keeps to the scope of the task, the other to its technical quality.
I run two or three such teams in parallel, so when one task needs my attention, the others keep going. When a model gets stuck, I consult the problem with a model from another company.
I delegate large chunks of work, but only up to the point where I can still check them properly, and then I set time aside for fixes. Whether something is done is decided by a test or a measurement, not by the model's claim.