CoolFace
Modelpublic

rhymeas/Mavery-Geselle-2B-MLX-4bit

sourceHugging Faceapache-2.0updated 10d agoView on Hugging Face
2likes146downloads
Model Card

Mavery App · Geselle 2B

Mavery App's stronger bilingual on-device model for turning spoken drafts into finished text.

Built for Mavery App — the Mac app that turns spoken thoughts into text wherever you are writing.

Geselle reads raw German, English and mixed-language ASR transcripts and returns cleaner text: fewer fillers and false starts, resolved self-corrections, stronger sentence structure, better punctuation, and useful formatting without translating away the speaker's language.

This is the model for the difficult part after speech recognition. The ASR hears the words; Geselle tries to understand which version the speaker actually meant and how the result should read.

text
audio → ASR such as Parakeet or Whisper → Mavery Geselle → protected final text

Why Geselle exists

Generic instruct models can polish text, but dictation cleanup is a narrower job. The model must edit boldly enough to remove a discarded phrase while staying conservative around names, numbers, negations, quotations and intentional repetition.

Geselle was trained for that tradeoff. It is Mavery's higher-capacity local tier for:

  • —German and English dictation cleanup
  • —Denglisch and other natural language switching without forced translation
  • —explicit self-corrections and abandoned starts
  • —repetitions, stutters and filler removal
  • —punctuation, capitalization, sentence boundaries and list-friendly structure
  • —local processing on Apple silicon

It outputs cleaned text only. It is not a chat assistant and not an audio model.

What the job looks like

These examples describe the intended cleanup behavior. Exact output still depends on the prompt and transcript produced by your ASR.

LanguageRough ASR transcriptIntended cleaned text
GermanDer Termin ist Donnerstag um zehn. Ich meine um elf.Der Termin ist Donnerstag um elf.
EnglishThe launch is on Monday, no wait, Tuesday morning.The launch is on Tuesday morning.
MixedBitte send the final build an Mavery App und dann update Cloud Pro.Bitte send the final build an Mavery App und dann update Cloud Pro.
FormattingDrei Punkte: neuer Absatz, erster Punkt Mavery App, neuer Punkt Cloud Pro.A readable heading or introduction followed by two list items.
PreserveThe report says verbatim: the shortcut is enabled, no, disabled.Keep the quotation literal unless your product explicitly allows quoted text to be edited.

Development result

On Mavery's frozen 50-case bilingual development panel, Geselle with its short prompt produced 44/50 accepted raw outputs and 46/50 after an experimental content guard. The same warm model run measured 1,043 ms median and 1,828 ms p95 for generation on the development Mac, excluding model loading, audio, ASR and insertion.

That is a strong development result, not a claim of 92% universal dictation accuracy. The cases are known development material, and the guard was research code rather than this model alone. We publish both the result and its boundary because cleanup quality only matters when the complete pipeline preserves what the speaker meant.

Choose your Mavery model

ModelRoleWeightsBest fit
**Lehrling · 0.8B**compact local finisher424 MBlower memory and faster local cleanup
Geselle · 2Bstronger local finisher1.72 GBharder repairs and more formatting capacity

Quickstart with MLX

bash
pip install mlx-lm
python
from mlx_lm import load, generate
from mlx_lm.sample_utils import make_sampler

MODEL = "rhymeas/Mavery-Geselle-2B-MLX-4bit"
SYSTEM = (
    "Clean up dictation. Apply clear spoken self-corrections; keep quotations "
    "and examples literal. Otherwise preserve wording and language. Output text only."
)
RAW = "The meeting is Thursday at ten no wait make that eleven and Mavery stays Mavery"

model, tokenizer = load(MODEL)
messages = [
    {"role": "system", "content": SYSTEM},
    {"role": "user", "content": f"[TEXT TO PROCESS]\n{RAW}\n[END TEXT]"},
]
prompt = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True,
    enable_thinking=False,
)
print(generate(
    model,
    tokenizer,
    prompt=prompt,
    sampler=make_sampler(temp=0.0),
    max_tokens=192,
    verbose=False,
))

Use greedy decoding and disable thinking. Preserve the raw transcript and put a content check after the model when names, numbers or exact quotations matter.

Training data

The internal LIRA data package contains 26,669 reviewed rows split into 18,683 training, 3,993 development, and 3,993 locked evaluation rows. It covers German, English, mixed-language dictation, self-corrections, repetitions, fillers, punctuation, preservation cases, names, numbers, negations, and quoted text. Geselle also received targeted refinement on repair and preservation cases.

The dataset itself is not included in this repository. Private dictations were not uploaded. We publish the split sizes and evaluation boundary so the model's training scale is visible without presenting internal material as an open benchmark.

Built for Mavery App

Geselle is based on Qwen3.5-2B, fine-tuned for Mavery App's post-ASR cleanup task and exported for MLX. It is a hybrid artifact: a 4-bit affine base with selected adapted projections kept unquantized to preserve the trained behavior.

This repository contains the real trained Geselle artifact used by Mavery App. It is not a renamed vanilla Qwen model.

Limits

Geselle can still make destructive edits. Quotations, negations, names, numbers and ambiguous restarts deserve independent protection. It may also be slower than a deterministic cleanup path, especially during first load. Test the complete ASR → cleanup → guard → insertion route on your own language mix before deployment.

Training data and private dictations are not included in this repository.

Learn more and download the Mac app at mavery.app.

Artifact

  • —Base: Qwen/Qwen3.5-2B
  • —Format: MLX safetensors
  • —Precision: hybrid 4-bit affine base, group size 64, with selected adapted projections unquantized
  • —Weight SHA-256: 196cdac8dc6ad4ff134ac55ba8bec4e76c7090fb5d99ba3a490841e68f9852e6
  • —Languages trained for this use: German and English

License

Apache 2.0. See LICENSE and NOTICE. Mavery App fine-tuned and exported the model from Qwen3.5; retain the applicable notices when redistributing it.