Generate natural, search-style questions from any passage across 25 languages — for quizzes, reading comprehension, help-centre FAQs, and assessment banks.
Question writing is the bottleneck in every learning product. A textbook chapter needs comprehension questions, a help-centre article needs the questions it answers, an assessment bank needs hundreds of variants — and each one gets written by hand by someone who knows the subject.
Frontier APIs can do it, but you are then metering every passage in your catalogue through a per-token bill, sending your content to a third party, and hoping the model handles Yorùbá as well as it handles English. It usually does not.
mist-qg-1.5b takes a passage, a question count, and the language the passage is written in, and returns strict JSON: {"questions": [...]}. This is same-language generation — it does not translate across languages.
mist-qg-1.5bCoverage includes Yorùbá, Igbo, Hausa, Swahili, Amharic, Zulu, Xhosa, Shona, Somali, and Afrikaans — the languages that make African-market edtech possible and that general tools handle worst. Pass an ISO 639-3 code, an ISO 639-1 code, or the English name.
mist-qg-1.5bThe model was trained on questions that survived round-trip retrieval: a question was only kept if it retrieved its own source passage out of a pool of distractors. Run the same check at inference to filter anything that drifted from the source.
The Olaverse SDK wraps the models with sane defaults. If you would rather not add a dependency, the second tab is the same pipeline in plain transformers.
from olaverse import MISTQuestionGenerator
qg = MISTQuestionGenerator() # mist-qg-1.5b
qg.load()
passage = "Tides are caused by the gravitational pull of the moon and, to a lesser extent, the sun."
qg.generate(passage, n=3)
# → ['What causes tides according to the passage?',
# 'Is the gravitational pull of the sun more significant than that of the moon in causing tides?',
# "How do tides differ between the moon's influence and the sun's influence?"]
# Same-language generation across the 25 supported languages
qg.generate(yoruba_passage, n=3, language="yor") # or "yo", or "Yoruba"
# A whole chapter in one pass
qg.generate_batch(passages, n=3, language="English")Every language the models in this pipeline were trained on, with the codes you pass and the codes you get back.
Pass an ISO 639-3 code, an ISO 639-1 code, or the English name — language= accepts all three. This is same-language generation: questions come back in the language the passage is written in, it does not translate.
Every figure on this page comes from the published model cards, and every limitation is one the cards state themselves. Download the weights and check us.
Generate verified (query, passage) pairs from your own corpus, in 25 languages, and fine-tune retrievers and rerankers on data that matches your domain.
/ Product UXGenerate a short, human title from a chat message or document in ~300M parameters — small enough to run on the same box as your app.
The weights are open, so you can build it yourself this afternoon. If you would rather we tuned it to your domain, evaluated it properly, and handed it over, tell us what you are working on.