What LLM Support for Amharic Actually Looks Like Today
9 min read · updated August 11, 2026
Amharic is the working language of the Ethiopian federal government and has tens of millions of speakers, and it is still a language where a model will hand you fluent-looking output stitched together with English words it did not have Amharic for. The reasons are specific and they start with the script.
Where Amharic actually sits
Ethnologue puts Amharic somewhere above thirty million first-language speakers with a substantially larger total once second-language speakers are counted — it functions as a lingua franca across a country of well over a hundred million people. It is a Semitic language, related to Tigrinya and more distantly to Arabic and Hebrew, with the root-and-pattern morphology that family is known for.
On the supply side, the position is the familiar one: no lab publishes a per-language corpus share, and the public proxies — Common Crawl’s language statistics and the size of the Amharic Wikipedia on the list of Wikipedias — put it well below European languages with a tenth of its speakers. Amharic is included in FLORES-200 as amh_Ethi, so translation quality is at least measurable (NLLB, Meta AI, 2022).
The Ge’ez script, and what it costs
Amharic is written in the Ethiopic script, an abugida descended from Ge’ez, in which each character encodes a consonant plus a vowel rather than a single sound. A consonant appears in seven vowel “orders”, so the working character inventory runs into the hundreds. Unicode allocates it the Ethiopic block at U+1200 plus several supplement and extended blocks (Unicode Ethiopic chart).
Two consequences follow. First, every Ethiopic character sits in the three-byte range of UTF-8, and byte-pair tokenizers trained predominantly on Latin text tend to have learned few Ethiopic merges, so Amharic text fragments into far more tokens per unit of meaning than English does. That is a direct, billable cost on every request — see the token cost of Amharic for the arithmetic. Second, the same fragmentation means less effective context: a 100,000-token window holds proportionally less Amharic document than English document, which quietly changes what a retrieval-augmented design can fit.
Characters that sound the same
This is the part that has no Latin-script analogue and that breaks naive deduplication and search. The Ethiopic script carries historical distinctions that Amharic pronunciation has lost. Several sets of characters are now homophonous in Amharic while remaining distinct codepoints: the ሀ / ሃ / ሐ / ኀ series, the ሰ / ሠ pair, the ጸ / ፀ pair, and the አ / ዐ pair.
Because they sound identical, writers use them interchangeably, and the same word appears in a corpus in several spellings that are not Unicode-equivalent. NFC and NFKC normalisation do not merge them — they are distinct letters, not composition variants — so the standard normalisation step you would apply for any other script leaves the problem entirely intact. The practical results are that exact-match search misses documents, deduplication fails to collapse duplicates, and the training corpus splits its statistical mass for one word across several surface forms, which is precisely the wrong thing to do to a language that has little mass to spare.
Amharic also does not write gemination (consonant doubling), which is contrastive, nor does it consistently write the distinction between the sixth-order vowel and a bare consonant. So, as with Hausa, written Amharic is more ambiguous than spoken Amharic and the model must resolve it from context it does not have much of.
The English-loanword crutch
The visible symptom of thin coverage in Amharic generation is code-mixing that the reader did not ask for. Ask for a paragraph of Amharic on a technical or administrative subject and models will commonly produce Amharic syntax with English content words dropped in — sometimes transliterated into Ethiopic characters, sometimes left in Latin script mid-sentence.
The mechanism is worth being precise about, because it is not laziness and it is not a bug. Some of that mixing is real: educated urban Amharic does borrow, and a model reproducing that register is being accurate. But the distribution the model learned came disproportionately from web text written by exactly the population that code-mixes most, and it is thinnest in precisely the domains where Amharic has coined native terminology that lives in print rather than online. So the model borrows in places a careful Amharic writer would not, and it does so fluently, which makes the problem hard to spot without a speaker.
You can surface it deliberately. Give the model a short list of the Amharic terms you want used, ask for the same paragraph twice — once unconstrained, once with the glossary — and diff them. The words that appear in English in the first version and in Amharic in the second are the exact set your product will need a glossary for. That is a labelled result you produced yourself, which is worth more than a claim about the model in the abstract.
What to do about it
- Normalise the homophone sets before indexing, to a chosen canonical form, and store the original alongside. Do this before embedding as well as before search; otherwise your retrieval recall depends on which spelling the author happened to use.
- Budget tokens as a first-class concern. Ethiopic fragmentation makes context and cost estimates built on English character counts wrong by a large factor.
- Carry a glossary in the system prompt for any terminology your domain cares about, rather than hoping the model picks the native term.
- Do not assume OCR gives you clean text. Scanned Ethiopic is its own problem, covered in OCR for Ge’ez-script documents, and a corpus built from bad OCR will teach your retrieval layer spellings that do not exist.
One further trap sits at the text-handling layer rather than the model layer. Amharic has its own punctuation — the word separator ፡ and the sentence-final ። among others — so a pipeline that splits on ASCII whitespace and full stops finds no sentence boundaries in Amharic at all. That has a direct effect on retrieval: a chunker keyed to . plus a space emits one enormous chunk per document, which then retrieves for nothing specific. Split on the Ethiopic punctuation or on a character budget, and check the resulting boundaries by eye before concluding the model is bad at Amharic.