- Key idea
- Feed bytes instead of tokens; to keep sequences short, group bytes into patches (fixed, by entropy, or learned) so the big model runs once per patch, not once per byte
- Real world
- Reading aloud. You glide through a predictable phrase like “once upon a time” in one breath, and slow down at a strange name where you can’t guess what comes next.
- In an LLM
- In “George R.R. Martin”, a small byte model is unsure at the “G”, the “R” and the “M”, and sure about the letters that follow. The Byte Latent Transformer starts a new patch at each uncertain byte, so the big model spends one step per chunk of predictable text.
Why get rid of the tokenizer?
The tokenizer is the one part of a language model that is not learned end to end. It is built once, before training, by a separate algorithm, and then frozen. The quirks page showed what that costs: digits split irregularly, letters hidden inside tokens, rare tokens left untrained, and some languages paying several times more per sentence. A model that read raw bytes would have none of these problems: 256 possible inputs, every text representable, every letter visible.
The obstacle is length. English averages about 4.5 bytes per token in modern tokenizers, so a byte-level model has 4.5 times as many steps, and attention, which compares every position with every other, costs about 20 times as much. The history of tokenizer-free models is a series of ways around that.
Every byte: ByT5
ByT5 (Xue et al., 2021) took Google’s T5 and fed it UTF-8 bytes directly. It was more robust to typos and noise and better at spelling-sensitive tasks, and it was competitive with the token version at small and medium sizes. But it was slower to train and run, and it moved most of its parameters into a deep encoder to cope with long inputs. It showed that bytes work, not that they are cheap.
Fixed patches: MEGABYTE
MEGABYTE (Yu et al., 2023) cut the byte stream into fixed patches, for example 4 or 8 bytes. A large global model runs once per patch; a small local model predicts the bytes inside each patch. The big model now does a quarter or an eighth of the steps. The weakness is that fixed patches ignore the text: a word is cut wherever the count falls, and a predictable run of spaces gets as much compute as a hard-to-guess name.
Patches by surprise: the Byte Latent Transformer
The Byte Latent Transformer (BLT, Pagnoni et al., 2024) makes the patches depend on the text. A small byte-level language model reads the input and, at every byte, measures its uncertainty about the next byte: the entropy of its prediction, in bits. Where the entropy is high, a new patch starts. This is called .
The pattern is the same in every sentence: entropy spikes at the first letter of a word, at names, digits and codes, and falls within words, where the rest of the letters follow. So patches tend to start at word boundaries and stretch over predictable text, much like tokens, but they are decided per text rather than looked up in a fixed list, and the threshold is a dial for how much compute to spend.
BLT has three parts:
- A small local encoder turns the bytes of each patch into one vector.
- A large global transformer, the bulk of the parameters, runs once per patch.
- A small local decoder turns each patch vector back into bytes, predicting them one at a time.
In a compute-controlled comparison, BLT matched Llama 3’s tokenizer-based training at up to 8 billion parameters and 4 trillion bytes, while being more robust to noisy input and better at character-level tasks. Its key argument is about scaling: because average patch size is adjustable, at a fixed inference budget you can make patches longer and spend the saved steps on a larger global model.
Learning the chunks: H-Net and since
BLT still uses a hand-chosen rule (an entropy threshold) to place boundaries. H-Net (Hwang, Wang and Gu, 2025) learns them. A routing module inside the network decides, from the content, where one chunk ends and the next begins, and the whole model, chunking included, is trained end to end on bytes. The authors report that a byte-level H-Net beat a BPE-tokenized transformer of the same compute, that a two-stage version matched a tokenized transformer twice its size, and that the gains were largest where tokenizers are weakest: Chinese, code and DNA.
Other recent work, all 2025:
- AU-Net (Videau et al., NeurIPS 2025) builds a U-Net over bytes: bytes are pooled into word-level and then multi-word vectors and expanded back, and deeper stages predict further ahead. It matched BPE baselines at equal compute.
- SuperBPE (Liu et al., COLM 2025) goes the other way: keep the tokenizer, but let BPE learn tokens that cross spaces, like “by the way”. With a 200k vocabulary it used up to 33% fewer tokens than plain BPE, and an 8B model trained with it averaged 4 points better on 30 tasks with 27% less inference compute.
- Bolmo (Minixhofer et al., Ai2, December 2025) “byteifies” an existing tokenized model: it keeps the trained transformer as the global model, adds a byte-level encoder, decoder and boundary predictor, and retrains briefly. Its 7B version, built from Olmo 3, beat BLT’s 7B model, by a wide margin on science and maths questions, and the conversion cost under 1% of a normal pretraining run.
A fast reader doesn’t look at every letter. Their eyes jump in chunks across common phrases and slow down on unfamiliar names, numbers or technical words. A child sounding out letters reads every byte; a speed reader with a fixed rhythm is MEGABYTE; a good reader who slows down only where the text surprises them is BLT.
A tokenized model sees “ strawberry” as one ID and has to remember its spelling. A byte-level model sees s, t, r, a, w, b, e, r, r, y: ten bytes, each visible to its local encoder. That is why byte-level models consistently do better on spelling, character counting and typo-heavy text, and why BLT, H-Net and Bolmo all report big gains on character-level benchmarks.
What is mainstream
Be careful not to over-read the research. As of late 2026, every widely used frontier and open model, from GPT-5 and Claude to Llama 4, Qwen3.5, DeepSeek-V3 and Gemma 4, still uses a subword tokenizer, typically byte-level BPE with 128k to 262k tokens. Byte-level and learned-chunking models have matched tokenized ones in controlled experiments up to around 8B parameters, and they are clearly better at spelling, noisy text and some languages. But they have not yet been shown to be better at the largest scales, and inference tools, caching and decoding are all built around tokens. The likeliest path is the one Bolmo took: converting strong tokenized models rather than replacing them.
Entropy patching precisely
Let a small byte model give . Its entropy at byte is
BLT tried two rules for starting a new patch at byte :
- Global threshold: .
- Approximate monotonic constraint: , a jump in entropy.
The widget’s byte model is a 6-layer, 11M-parameter transformer we trained on eight public-domain novels (5.6 MB); it reaches about 1.65 bits per byte on held-out text. BLT’s entropy model was a 100M-parameter transformer trained on its pretraining data, so its curves are sharper, but they have the same shape.
In papers
- ByT5: Xue et al., 2021.
- MEGABYTE: Yu et al., 2023.
- Byte Latent Transformer: Pagnoni et al., 2024.
- H-Net, dynamic chunking: Hwang, Wang and Gu, 2025.
- AU-Net: Videau et al., 2025.
- SuperBPE: Liu et al., 2025.
- Bolmo: Minixhofer et al., 2025.