608 languages in 37 MB, on a single CPU thread.
lid-lite-608 is the fast member of the LID-608 line. It knows the same 608 languages and returns the same labels as lid-neural-608, but it is a small fastText model that runs anywhere, with no GPU and no deep-learning stack.

Language identification often has to run on everything: every page of a web crawl, every message through a gateway, every document in an archive. At that volume a GPU model is too slow and too expensive.
The existing fast detectors are either far larger or know far fewer languages, and they misfile low-resource African languages into bigger neighbours. lid-lite-608 is small enough to run everywhere and wide enough to find the languages others lose.

Higher F1 than GlotLID on 18 of 20 major African languages, averaging 0.839 against 0.757. The biggest jumps are Kinyarwanda, Xhosa, Wolof and Lingala.

At 37 MB it beats GlotLID and Meta’s fastText LID on the held-out test (0.858), 1-5 word input (0.672), Tatoeba (0.922) and UDHR-LID (0.910).
About 3× the languages of Meta’s fastText LID at 1/32 of its size, and 1/45 the size of GlotLID.
Average F1 0.839 across 20 major African languages against 0.757 for GlotLID, with big gains on Kinyarwanda, Xhosa, Wolof and Lingala.
Coverage mode for corpus building, traffic mode for user input. Swap to lid-neural-608 without changing any labels.
The noise class for numbers, URLs and code scores F1 0.961, so it doubles as a cleaning pass on raw crawls.
from olaverse import LIDLite608
lid = LIDLite608() # coverage mode (default)
lid.predict("Ẹ kú àárọ̀, ṣé dáadáa ni?") # → 'yor_Latn'
lid.predict_proba("Habari za asubuhi", top_k=3)
# → {'swh_Latn': 0.916, 'swc_Latn': 0.084, 'hau_Latn': 0.0}
# Traffic mode for user-facing input
LIDLite608(mode="traffic").predict("Bonjour mon ami") # → 'fra_Latn'Need the best accuracy on short text? lid-neural-608 shares the labels and modes, so you can send it only the hard cases.
| lid-neural-608 → | lid-lite-608THIS PAGE | |
|---|---|---|
| Size | 140M parameters | 37 MB |
| Speed | ~1,100 texts/s on an A100 | ~6,800 texts/s on one CPU thread |
| Held-out accuracy | 0.867 | 0.858 |
| 1-5 words, traffic mode | 0.906 | 0.829 |
| Everyday phrases, traffic mode | 0.943 | 0.838 |
| Best for | User input and short text | Bulk filtering, CPU and edge |
Detect the language of support tickets, chat messages, queries, and documents across 608 languages, built African-first and accurate on the short text real products see.
/ Search & retrievalRestore the marks your documents lost, then match on an accent-folded key, so a user typing "oko" finds "ọkọ" and still sees it written properly.
/ Data engineeringSort billions of web documents into 608 languages on CPUs, drop the junk, and pull out the African and low-resource text that general detectors misfile.
/ ML engineeringGenerate verified (query, passage) pairs from your own corpus in 25 languages, and fine-tune retrievers and rerankers on data that matches your domain.
typed-decisions 0.720 · African TD 0.668
PurpleMISTtyped-decisions 0.601 · 1.9B
MIST-Extract91.8% docs fully right · 4B
MIST-Extract9.7 docs/s · 2B
DiacNetDER 0.0117 · 582M
DiacNetDER 0.0141 · 300M
DiacNetDER 0.0130 · 37.9M
MIST QG0.955 keep-rate · 25 langs