AileyTempest-14B (r3, October 2026)

AileyTempest-14B is a fine-tune of Mistral AI's Ministral 3 14B Reasoning (2512), built to run locally on Apple Silicon via MLX. It powers A!ley Tempest, the deep-thinking mode of A!ley, the on-device persona created by OpenM!nded / Simon van de Loo. Tempest is allowed to think long and visibly. If you want short answers, use AileyCore-12B.

  • Developed by: OpenM!nded (Simon van de Loo)
  • Model type: Text-only, decoder-only (the Pixtral vision tower was removed; images go to AileyCore)
  • Base model: mistralai/Ministral-3-14B-Reasoning-2512
  • License: Apache License 2.0
  • Languages: German, English (answers in the user's language; see limitations)
  • Quantization: 5-bit, group size 32 (embeddings and lm_head 8-bit, group size 64); adapter merged without loss

The previous release (v3: DoRA on a 5-bit community conversion, <think> text tags) stays available on the branch v3.


What changed in r3

r3 starts fresh from Mistral's reasoning checkpoint and keeps all of Mistral's native formats:

  • Native reasoning: [THINK] โ€ฆ [/THINK] as the special tokens of the base model. v3 used <think> text and had to block the native tokens at runtime.
  • Mistral's own reasoning instruction in the system turn, exactly as the chat template inserts it, appended to A!ley's prompt (as Mistral's model card recommends for custom system prompts).
  • Native tool use: [AVAILABLE_TOOLS], [TOOL_CALLS], [TOOL_RESULTS], matching the runtime (web search, RAG over her own songs, books and projects, image generation, recipes, calculator).
  • Identity without a prompt: 45 % of the rows carry only Mistral's reasoning instruction and no persona prompt at all. The user's name sits in the user turn (Name: message).
  • Deep reasoning on purpose: a greeting may still get a paragraph of thought. Failure modes are loops, unclosed reasoning and shallow reasoning, not length.

QAT adapters: why the merge is lossless

The adapters were trained through the 5-bit quantization (fake-quant in the forward pass), so the merged and re-quantized weights are the ones the training saw. The base was quantized by us from Mistral's bf16 release (q5, group size 32), not taken from a community conversion.

Measured (isolated, before going live)

Same isolated test battery for every checkpoint, runtime prompt (r3), sampling at T 0.7:

update 330 (shipped) update 300 update 200 update 330 at T 0.4 untrained base (T 0.7)
Logic puzzles 5/5 5/5 4/5 3/5 3/5
Reasoning block never closed 0/8 0/8 0/8 3/8 2/8
Reasoning length (median, chars) 1 277 1 420 643 283 3 920
Persona questions 4/7 3/7 3/7 โ€” 1/7
Answers in the user's language (es/en/fr/tr/ja) 1/5 0/5 2/5 โ€” 4/5
Output formats (scene, code, JSON, English haiku) 4/4 4/4 3/4 โ€” 3/4
Identity without any prompt (checker) 7/12, foreign identity 0 6/12, 0 7/12, 0 โ€” 0/12, foreign identity 5/12

The untrained base keeps the user's language better; everything else improved. A follow-up on the language gap (10 tries each): a sharper instruction or a hint in the target language did not help (5โ€“7/10, English 0/2); seeding the reasoning in the target language ([THINK]The user writes in English, so I'll answer in English.) got English 2/2 and every closed answer right (7/7) โ€” its only misses were reasoning blocks left open. Update 300 named itself "Simon" and called OpenM!nded a digital-rights organisation when asked without a prompt; 200 stuttered on its creator's name. 330 had the lowest validation loss and the cleanest answers.

Greedy decoding (T 0.0) makes this model loop in long reasoning. The same prompts close cleanly at T 0.7 (number puzzle: 174/221 repeated sentences at T 0.0 โ†’ 1/29 at T 0.7). Do not run it greedy.

How to use (MLX)

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

model, tok = load("OpenMinded-Labs/AileyTempest-14B")
msgs = [{"role": "user", "content": "Simon: Drei Freunde sitzen in einer Reihe โ€ฆ wer sitzt in der Mitte?"}]
# Without a system message the chat template inserts Mistral's reasoning instruction by itself.
prompt = tok.apply_chat_template(msgs, add_generation_prompt=True)
print(generate(model, tok, prompt=prompt, max_tokens=4000, sampler=make_sampler(temp=0.7)))

Output: [THINK]โ€ฆreasoningโ€ฆ[/THINK]answer. With your own system prompt, append Mistral's instruction (from chat_template.jinja) to it, as the model was trained that way.

Training details (round 3)

Setting Value
Starting point Ministral-3-14B-Reasoning-2512 (bf16 โ†’ q5 g32, vision removed); fresh, not on top of v3
Method DoRA (q_proj, k_proj, v_proj, o_proj) + LoRA (MLP), QAT
Rank 32 (280 modules, 122 M trainable parameters)
Data 2 498 conversations (144 with native tool calls), 150 validation
System turns 44.5 % Mistral's instruction only ยท 17.6 % runtime prompt + instruction ยท 17.9 % context header + instruction ยท 18.9 % context header only ยท 1.1 % other
Content conversation, reasoning with depth levels, tool use and when not to call a tool, identity, introspection, creative writing and prose, narrative, interactive elements; a small native replay of base-model behaviour
Schedule grad accumulation 8, lr 2e-5 cosine over 2 epochs (626 updates), warmup 62, chunked attention (1 024-token chunks with full prefix), rows up to 8 448 tokens
Validation loss (all 150 rows) 1.529 (update 50) โ†’ 1.431 โ†’ 1.386 โ†’ 1.369 โ†’ 1.346 โ†’ 1.340 (300) โ†’ 1.338 (330)
Shipped checkpoint update 330 (lowest validation loss; best in the isolated comparison against 200 and 300)
Hardware Apple M4, 24 GB unified memory (โ‰ˆ17 min per update)
Framework MLX (mlx_lm), QAT layers from the A!ley training code

Intended use

  • Local, privacy-respecting reasoning assistant on Apple Silicon Macs
  • Puzzles, planning, ethics and other questions that benefit from visible, thorough thinking
  • Tool-using assistance in DE/EN

Out of scope

  • Any use prohibited by applicable law
  • Safety-critical, medical, legal, or financial decision-making without human oversight

Limitations & biases

Inherited from Ministral 3 plus the fine-tune: it can produce inaccurate, outdated or biased content; it is a persona, not a knowledge base, so let it search when facts matter. It often answers in German even when asked in another language (see table). It thinks long, also on trivial turns. Keep a human in the loop for consequential use.

License & attribution

This model is a Derivative Work of Mistral AI Ministral 3 14B Reasoning (2512), released under the Apache License 2.0. AileyTempest-14B is distributed under Apache 2.0.

In accordance with Apache 2.0 ยง4: the base weights were re-quantized, the vision tower removed and the weights modified via DoRA/LoRA adaptation (QAT adapters, merged). A copy of the license is included (LICENSE); attribution notices are in NOTICE.

Mistral and Ministral are trademarks of Mistral AI. This project is independent and not endorsed by or affiliated with Mistral AI.

Copyright 2026 OpenM!nded / Simon van de Loo
Portions ยฉ Mistral AI (Ministral 3), Apache License 2.0
Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

Citation

@misc{aileytempest14b_2026,
  title  = {AileyTempest-14B: A Ministral 3 reasoning fine-tune for the A!ley assistant},
  author = {van de Loo, Simon and OpenM!nded},
  year   = {2026},
  note   = {Round 3: fresh QAT fine-tune in Mistral's native reasoning and tool formats}
}
Downloads last month
140
Safetensors
Model size
14B params
Tensor type
U32
ยท
BF16
ยท
MLX
Hardware compatibility
Log In to add your hardware

5-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for OpenMinded-Labs/AileyTempest-14B