Join the conversation

Join the community of Machine Learners and AI enthusiasts.

Sign Up
SeaWolf-AIΒ 
posted an update 1 day ago
Post
3,693
We pretrained a 325M language model from zero on an inference-only NPU

The accepted view is that inference-only NPUs cannot train, let alone pretrain a language model from scratch. We put that view to a direct test on the Rebellions ATOM-Max, a commercially available Korean NPU released in 2025 and designed for inference. We built our own training loop that runs backpropagation on the chip itself. Starting from random initialization, we pretrained VKORE-325M-NPU-Base, a 325.6M parameter model, on 5 billion byte tokens of FineWeb-Edu. The run took 76,292 steps over about four days and finished without a single divergence. No pretrained weights were used.

To make the comparison fair, we trained the same model on a B200 GPU with identical initialization, data and learning-rate schedule. On 1,024 windows of text that neither model ever saw, the NPU reached a loss of 0.7993 and the GPU 0.7994. The window-by-window difference is -0.0001, well inside the noise. The two models are indistinguishable.

This is seven times larger than our first NPU model, VKORE-46M, and the first time this hardware has carried a real pretraining run to GPU quality. Please note that the hardware alone does not make this possible: the NPU and its standard software are built for inference, and training on it depends on our own training stack and stability technique, which are developed in house and under patent application. Buying the chip does not by itself enable training. Both sets of weights and the evaluation script are public, so anyone can verify the result in minutes.

πŸ“„ Technical report: https://huggingface.co/blog/FINAL-Bench/pretraining-a-325m-language-model-from-zero-on-an
πŸ€— Models: FINAL-Bench/VKORE-325M-NPU-Base

#NPU #Rebellions #Pretraining #VKORE

Terrific scaling milestone, congratulations on taking this from 46M to 325M! Having both the NPU checkpoint and the exact B200 GPU reference weights (b200_reference/) hosted together with evaluate_unseen.py makes this an exemplary systems study.

The paired window loss delta on unseen FineWeb-Edu text (-0.0001 with SE 0.0007 across 1,024 windows, winning on 50.1% of windows) is compelling evidence that numerical error did not accumulate or drift over 76k steps of backpropagation.

Did your custom training stack require any special handling for master weight precision or gradient accumulation/reduction across the 32 NPU chips compared to standard BF16/FP32 mixed precision on the B200? Looking forward to the technical paper!

Β·

Thank you, and thanks for reading the numbers closely. You are right that the question we cared about was whether error would build up over a long run, and the paired result on unseen text is our answer to that. The details of how the training stack handles precision and synchronization across chips are part of our patent application, so we will cover them in the technical paper rather than here. Both weight sets and evaluate_unseen.py are public, so the outcome can be checked independently in the meantime.

@SeaWolf-AI That's impressive! Is the codebase open?

Β·

Thank you! The training code is not open at this time, as the core technique is under patent application. What is public is everything needed to verify the result: the NPU weights, the B200 reference weights (b200_reference/), and evaluate_unseen.py.