aleada's picture
reasoning-parser advisor
48879bc verified
|
Raw History Blame Contribute Delete
1.94 kB
metadata
title: Does this model need a reasoning parser?
emoji: 🧩
colorFrom: indigo
colorTo: gray
sdk: static
app_file: index.html
pinned: false
license: apache-2.0
short_description: Decide --reasoning-parser from a model's own chat template

Reasoning-parser advisor

A model that thinks needs vLLM's --reasoning-parser to split that thinking out of the answer, and the two ways of getting it wrong are not symmetric.

A missing parser is visible: the user sees the model's reasoning in the reply. A wrong one is not — it claims the entire output, the request finishes with stop, and content comes back empty. Nothing errors, and nothing in the logs says so.

The family name cannot decide it. Qwen3.6-35B-A3B emits <think> and needs the qwen3 parser; Qwen3-VL-30B emits nothing of the sort and is broken by it. A quantized pack inherits its source's template, so the same split runs through every repack.

Everything runs in the visitor's browser. There is no backend and nothing is uploaded: the page fetches the repo's chat template — a few kilobytes — and asks whether the assistant's turn carries a marker some parser closes on.

How the rules are kept honest

Markers are read out of vLLM's own vllm/reasoning/ modules rather than from documentation, because a parser matches what its code matches. Only markers that discriminate a reasoning section are listed: an earlier version of the table included <|end|>, gpt-oss's turn terminator, and recommended a parser for a model that does no thinking at all.

The rules exist twice — once in Python for development, once in JavaScript for this page — and a parity gate runs the same fixtures through both and refuses to deploy on any disagreement.

Built from the tooling behind the aleada W4A16 packs. See also the pack integrity checker.