$ cat identity.md
Docs
10 guides

How the Identity Check Works

Every test starts with the identity check. It names the model behind the endpoint, or says that no model in the baseline fits.

Probes

The probes are one-line requests such as "Name a random country", "从12到76之间随便选一个整数" (pick an integer from 12 to 76) or "Choose one: vorn, kelit, ashup, temba". Asked "at random", every model still has strong, stable preferences of its own: one says Kyrgyzstan where another says Uruguay, 47 where another says 67. Across 20 probes in English and Chinese, those preferences form a fingerprint. The English probes separate model families; the Chinese ones separate models within the Chinese families, such as GLM 5.3 from GLM 5.3 Flash.

The Baseline

A baseline holds each model's answers to the same probes, collected many times from its official provider over several sessions. Answers are normalized before they're counted: reasoning is stripped, markdown and quotes unwrapped, case ignored. Baselines lists what's installed.

Scoring

A test's answers are scored under every model in the baseline. Two questions must agree for a verdict:

  • Which model fits best, and by how much it leads the runner-up.
  • Do the answers fit the claimed model as well as its genuine tests do? This catches a substitute that isn't in the baseline at all: the answers fit nothing well.

A third test looks for answers that come from several models at once; see Mixed Routing.

Calibration

The decision lines are set by simulating thousands of tests from the baseline's own data, including the variation between collection sessions. In those simulations a genuine endpoint is wrongly flagged in at most about 1% of tests, and each model is mistaken for another in at most about 0.5%. Real sessions held out of the baseline are scored as a further check; Baselines gives the results.

Siblings

A few models answer almost alike: MiMo-V2.5 and MiMo-V2.6-Flash are the closest pair. When the answers fit such a sibling slightly better than the claimed model, the report says the two can't be told apart and ends Inconclusive, rather than calling a substitution.

Also in Every Test

  • Reasoning is set aside. Thinking blocks and reasoning fields are ignored when answers are compared. Reasoning that comes back encrypted, or only as a token count, is counted as hidden, not missing.
  • Prompt tokens are compared. Each model family has its own tokenizer and chat template, so the prompt-token count the endpoint reports for each probe is compared with the official route's. It's a hint only, since relays can rewrite usage figures.
  • Requests match the baseline. Every request carries the same sampling settings the baseline was collected with.
  • Speed and cost are measured. Every report includes latency, time to first token, tokens per second, reasoning, reliability and reported cost.

Credit

The method follows meow-llm-detector by chen-006 and contributors, and the paper it credits: Tomas Bruckner, One Token Is Enough: Fingerprinting and Verifying Large Language Models from Single-Token Output Distributions. llm-id is an independent implementation with its own probes and baselines.