Models Jul 18, 2026 3 min read

    The Small Model Behind a Better Chat List: Introducing mist-tg-0.3b

    OO
    Olumide Ola
    Olaverse Lab
    The Small Model Behind a Better Chat List: Introducing mist-tg-0.3b

    A 300M-parameter open-source model that turns a user’s first message into a clean chat title, instantly, on almost any hardware.


    Open any chat app you’ve built and look at the sidebar. If it’s full of entries like “New chat”, “Untitled”, or the raw first 40 characters of whatever the user typed, you already know the problem mist-tg-0.3b solves.

    Today we’re releasing mist-tg-0.3b, a tiny title-generation model, open-sourced on Hugging Face under Apache 2.0. Give it a user’s first message and it returns a short, readable title, the kind you’d actually want in a conversation list.

    "My laptop keeps freezing every time I open more than
    five browser tabs, any idea why?"
            ↓
    "Laptop Freezing Impact"
    

    Why a dedicated model for something so small?

    Because the obvious alternatives are all worse in practice. Truncating the first message gives ugly, uninformative titles. Calling a large LLM for every new conversation adds cost and latency to the single most frequent event in a chat product. A purpose-built small model hits the sweet spot: at ~300M parameters, mist-tg-0.3b runs comfortably on CPU, adds negligible cost per conversation, and does exactly one job well.

    This is the same philosophy behind the rest of the Mist family: not every problem needs a frontier model. Some need a fast, cheap, reliable specialist.

    How it works

    mist-tg-0.3b is fine-tuned from google/byt5-small, a byte-level seq2seq T5. It was trained for one epoch on SupraLabs/chat-titles-filtered-115K, a filtered dataset of 115K real chat messages paired with titles.

    The byte-level base turns out to matter. Because ByT5 operates on raw bytes rather than a fixed subword vocabulary, there’s no tokenizer to fight and no prompt template to remember, you pass the raw message string in, and a title comes out:

    from transformers import AutoTokenizer, T5ForConditionalGeneration
    
    tok = AutoTokenizer.from_pretrained("olaverse/mist-tg-0.3b")
    model = T5ForConditionalGeneration.from_pretrained("olaverse/mist-tg-0.3b")
    
    message = "How do I get my sourdough starter to rise faster in a cold kitchen?"
    inputs = tok(message, return_tensors="pt", truncation=True, max_length=256)
    output_ids = model.generate(**inputs, max_new_tokens=32)
    print(tok.decode(output_ids[0], skip_special_tokens=True))
    

    Inputs are capped at 256 bytes and outputs at 64, which fits the task: a first message and a sidebar-length title.

    An unexpected bonus: Latin-script transfer

    The model was trained end-to-end on English, and English is where it’s production-ready. But byte-level modeling produced a genuinely interesting side effect: because Latin-script languages share bytes with English, same-language title extraction often just works for them, despite the model never being trained on non-English targets.

    In an informal cross-language check across 25 languages (hand-written chat-style messages, qualitative judgment rather than a scored benchmark), roughly 17–19 of 25 languages produced usable same-language titles, almost all of them Latin-script: French, German, Dutch, Vietnamese, Indonesian, Yoruba, Igbo, Hausa, Swahili, Zulu, Xhosa, Shona, Somali, Afrikaans, and more.

    Where it doesn’t work, and why we’re telling you

    We believe model cards should say what a model can’t do as plainly as what it can. mist-tg-0.3b is not reliable for non-Latin scripts. All four non-Latin-script languages we tested, Japanese, Korean, Hindi, and Amharic, failed to produce same-language output, generating unrelated English text instead. The byte-level transfer trick depends on shared script; where the bytes diverge, so does the behavior. Fixing this properly would require training on non-English targets, which is a natural direction for a future version.

    If your user base writes in CJK, Hangul, Devanagari, or Ethiopic scripts, this model isn’t the right tool yet. If your users write in English or Latin-script languages, including many African languages that rarely get this kind of support, it very likely is.

    Getting started

    • Model: https://huggingface.co/olaverse/mist-tg-0.3b
    • Training data: https://huggingface.co/datasets/SupraLabs/chat-titles-filtered-115K
    • The full Mist Generators collection: https://huggingface.co/collections/olaverse/mist-generators

    It’s Apache 2.0, free for commercial use, no strings. If you drop it into a chat product, we’d love to hear how it holds up on your real traffic. Open a discussion on the model page and tell us.


    Olaverse Lab builds open-source AI with first-class support for underserved languages. Explore all our models at huggingface.co/olaverse, or read about mist-qg-1.5b, our multilingual question generator.

    Enjoyed this? Every model we write about is open weight and free to download.

    🤗 Follow on Hugging Face

    More from the Blog

    One Passage In, Real Questions Out: Introducing mist-qg-1.5b
    Models

    One Passage In, Real Questions Out: Introducing mist-qg-1.5b

    Know What Language It Is: Introducing the Olaverse LID Collection
    Models

    Know What Language It Is: Introducing the Olaverse LID Collection

    Introducing diacnet-1.0: One Model, Ten Languages, and an Honest Look at What It Can (and Can't) Do Yet
    Models

    Introducing diacnet-1.0: One Model, Ten Languages, and an Honest Look at What It Can (and Can't) Do Yet