Known-issues sheets for local language models Rev 0.1.0 · reviewed every 7 days

Model datasheet · Xing4.0

Xing4.0 29B-A4B

Does not run in stock llama.cpp, Ollama or LM Studio yet: support is an open pull request (llama.cpp #29012), so you need the vendor's own llama.cpp build, and the only official GGUF is one IQ4_NL file. On paper it is strong for its size, with SWE-bench Verified 75.0 and AIME 2026 90.0 from 4B active parameters, but those are China Telecom's own thinking-mode numbers and nobody has checked them independently yet.

Vendor
China Telecom (XingChen-AGI)
Architecture
MoE · 29B total / ~4B active
Context
262,144 tokens
License
Apache-2.0
Released
2026-09-16
Vision
No

→ GGUF (llama.cpp / LM Studio / Ollama) → MLX (Apple Silicon)

Architecture, from its own config.json

40 layers · 40 full attention

32 attention heads, multi-head latent attention — it caches one 576-wide compressed vector per layer instead of per-head keys and values, which is why its cache is small for its size · mixture of experts, 4B of 29B active per token across 4 experts · vocabulary 131,072

Where the memory goes: weights by band above, plus a KV cache of 360MB at 8K · 1.4GB at 32K · 5.6GB at 128K, plus the runtime's own working memory — dominated by the output projection over that vocabulary.

Inside one layer, from its own tensors

40 × full-attention layer

input_layernormlatent attentionq_a_proj →q_a_layernorm →q_b_projkv_a_proj_with_mqa →kv_a_layernorm →kv_b_projsoftmax(q·kᵀ/√d) · vone 576-wide latent is cached, notper-head keys and valueso_projpost_attention_layernormmixture of expertsrouter picks 4 of 64 expertseach 1,024 wide: gate·up → downplus a shared expert, run for everytoken

The green line down the right of each half is the residual: it leaves the spine above the norm, skips the operation entirely and rejoins at the +. Where attention is drawn open, q, k and v are scaled to their real output widths — a model that shares key and value heads across many query heads shows one wide box beside two narrow ones.

Around the stack: an embedding of 131,072 × 3,584, a final norm, and a separate output projection. The first 2 layers use a dense feed-forward instead of the experts.

On the norm names: despite what it is called, post_attention_layernorm is drawn after the residual add here, which is where this family applies it — it normalises the input to the feed-forward, not the output of attention. Models that carry a separate pre_feedforward_layernorm use it the other way, and are drawn that way.

Also in every block and not drawn, because their tensor names do not fix where they belong: hc_fn, hc_base, hc_scale. Guessing an order is the one thing this diagram will not do.

§1 Characteristics by quantization band

Q2–Q3 — 2–3 bit

13.1GB weights · e.g. IQ3_M , IQ3_XXS + KV: 360MB at 8K · 1.4GB at 32K · 5.6GB at 128K
Coding 5/10
data checked Oct 2026
  • quant-degradation-community — editorial band derivation @ IQ3_M · aggregated · 2026-10-04

    Editorial derivation: two points down. Only community IQ3 files exist (Venastine-Research), and nobody has measured them.

Math & reasoning 6/10
data checked Oct 2026
Tool calling / agentic 4/10
data checked Oct 2026
  • quant-degradation-community — editorial band derivation @ IQ3_M · aggregated · 2026-10-04

    Editorial derivation: two points down; structured output degrades fastest at 3-bit on a 4B-active mixture.

Instruction following 5/10
data checked Oct 2026
  • quant-degradation-community — editorial band derivation @ IQ3_M · aggregated · 2026-10-04

    Editorial derivation: one point down from the mid band.

Q4–Q5 — 4–5 bit

20.1GB weights · e.g. IQ4_NL , mlx-4bit + KV: 360MB at 8K · 1.4GB at 32K · 5.6GB at 128K
Coding 6/10
data checked Oct 2026
  • quant-degradation-community — editorial band derivation @ IQ4_NL · aggregated · 2026-10-04

    Editorial derivation: one point down. IQ4_NL is the vendor's own and only official quant, at 20.1GB.

  • quant-degradation-community — HumanEval pass@1 = 84.8 @ mlx-4bit · aggregated · 2026-10-04

    Measured by mlx-community on its OptiQ build (predominantly 4-bit, 303 layers at 8-bit, 5.00 bits per weight), recorded under the nearest vocabulary entry. Mode and harness are not stated, and the card says the MLX port was checked by reading, not against bf16.

    The only third-party measurement of this model found. HumanEval is saturated and says little about agentic coding, so it supports the band without setting it.

Math & reasoning 7/10
data checked Oct 2026
  • quant-degradation-community — editorial band derivation @ IQ4_NL · aggregated · 2026-10-04

    Editorial derivation: one point down; math goes first under 4-bit on a 4B-active mixture.

Instruction following 6/10
data checked Oct 2026
  • quant-degradation-community — editorial band derivation @ IQ4_NL · aggregated · 2026-10-04

    Editorial derivation: one point down rather than carried, because the one independent measurement is weak.

  • quant-degradation-community — IFEval strict prompt = 61.2 @ mlx-4bit · aggregated · 2026-10-04

    Measured by mlx-community on its OptiQ build (predominantly 4-bit, 303 layers at 8-bit, 5.00 bits per weight), recorded under the nearest vocabulary entry. Mode and harness are not stated, and the card says the MLX port was checked by reading, not against bf16.

    Low for a model that posts IFBench 69.67 at bf16. Whether that is the quant, the mode or the harness is not known.

Tool calling / agentic 5/10
data checked Oct 2026
  • quant-degradation-community — editorial band derivation @ IQ4_NL · aggregated · 2026-10-04

    Editorial derivation: one point down. Structured calls need token-level precision that a sparse model has less of to spare.

  • quant-degradation-community — BFCL v3 (simple) = 74.5 @ mlx-4bit · aggregated · 2026-10-04

    Measured by mlx-community on its OptiQ build (predominantly 4-bit, 303 layers at 8-bit, 5.00 bits per weight), recorded under the nearest vocabulary entry. Mode and harness are not stated, and the card says the MLX port was checked by reading, not against bf16.

    Single-call subset only; says nothing about multi-turn agent loops.

Q6–Q8 — 6–8 bit

25.7GB weights · e.g. Q6_K , Q8_0 + KV: 360MB at 8K · 1.4GB at 32K · 5.6GB at 128K
Coding 7/10
data checked Oct 2026
  • quant-degradation-community — editorial band derivation @ Q6_K · aggregated · 2026-10-04

    Editorial derivation: carried from the full band. The only Q6_K is a community file (Venastine-Research), built from the unmerged llama.cpp branch.

Math & reasoning 8/10
data checked Oct 2026
  • quant-degradation-community — editorial band derivation @ Q6_K · aggregated · 2026-10-04

    Editorial derivation: carried from the full band.

Instruction following 7/10
data checked Oct 2026
  • quant-degradation-community — editorial band derivation @ Q6_K · aggregated · 2026-10-04

    Editorial derivation: carried from the full band.

Tool calling / agentic 6/10
data checked Oct 2026
  • quant-degradation-community — editorial band derivation @ Q6_K · aggregated · 2026-10-04

    Editorial derivation: carried from the full band.

FP16 — full precision (fp16/bf16)

62.4GB weights · e.g. bf16 + KV: 360MB at 8K · 1.4GB at 32K · 5.6GB at 128K
Coding 7/10
data checked Oct 2026
  • vendor-model-card — SWE-bench Verified = 75 @ bf16 · vendor-reported · 2026-10-04

    SWE-agent harness, 210K context, temperature 1.0. The same table gives Qwen3.6 35B-A3B 76.00 on this row, so the vendor itself places it level with that model rather than ahead. Mode is not stated per row; the card's quickstart turns thinking on, and the vendor says RL was "heavily weighted toward thinking-mode trajectories" (HF discussion #5), so read these as thinking-mode figures.

  • vendor-model-card — Terminal-Bench 2.1 = 57.5 @ bf16 · vendor-reported · 2026-10-04

    terminus-2, average of 3 runs. SWE-bench Multilingual 66.00 and Claw-Eval 76.55 are also on the card. Absent from the Aider polyglot leaderboard as of 2026-10-04.

Math & reasoning 8/10
data checked Oct 2026
  • vendor-model-card — AIME 2026 = 90 @ bf16 · vendor-reported · 2026-10-04

    Average of 5 runs, 131K output budget. Mode is not stated per row; the card's quickstart turns thinking on, and the vendor says RL was "heavily weighted toward thinking-mode trajectories" (HF discussion #5), so read these as thinking-mode figures.

Instruction following 7/10
data checked Oct 2026
  • vendor-model-card — IFBench = 69.67 @ bf16 · vendor-reported · 2026-10-04

    Below Gemma 4 26B-A4B (72.67) and above Qwen3.6 35B-A3B (65.50) in the vendor's own table. Mode is not stated per row; the card's quickstart turns thinking on, and the vendor says RL was "heavily weighted toward thinking-mode trajectories" (HF discussion #5), so read these as thinking-mode figures.

Tool calling / agentic 6/10
data checked Oct 2026
  • vendor-model-card — τ³-bench = 64.63 @ bf16 · vendor-reported · 2026-10-04

    Official Sierra harness, average pass^1 over 4 runs. The vendor table puts Qwen3.6 35B-A3B at 67.20 on the same row. Not the Artificial Analysis Tau3 variant. Mode is not stated per row; the card's quickstart turns thinking on, and the vendor says RL was "heavily weighted toward thinking-mode trajectories" (HF discussion #5), so read these as thinking-mode figures.

§2 Known issues & what fixes them

ISSUE-01 severe Q2–Q3 / Q4–Q5 / Q6–Q8 / FP16 · math, coding, tool-calling, long-context, factuality, instruction-following, creative-writing

Does not run in stock llama.cpp, Ollama or LM Studio yet. Support is an open pull request (llama.cpp #29012, opened 2026-09-17 and still awaiting review on 2026-10-04), and apps that bundle llama.cpp inherit the gap; the vendor says so itself. Stock mlx-lm cannot load it either ("Model type xing4_0 not supported"; its own PR is also open). vLLM and SGLang support are likewise unmerged PR branches.

Fix
Update your runtime [partial]

Use the vendor's adapted llama.cpp build: a prebuilt Windows + CUDA package, or compile the PR branch yourself (the guide is written for Windows and an RTX 3090). On a Mac, the mlx-community build loads through the third-party mlx-optiq package rather than stock mlx-lm. Once #29012 merges, an ordinary update fixes this.

No fix
No known fix — choose a different model

If you need it to work in Ollama or LM Studio today, there is no fix; pick another model until support merges.

Evidence · 4 sources · community-consensus
ISSUE-02 moderate Q2–Q3 / Q4–Q5 / Q6–Q8 / FP16 · coding, math, tool-calling

The vendor ships a single GGUF, IQ4_NL at 20.1GB. Every other size (IQ2 to Q8_0, f16) is a community conversion from the unmerged llama.cpp branch, and none of them has been measured against bf16. The vendor's advice is to use its own quant, which it says was tuned for precision loss.

Fix
Move up a quant band [partial]

Prefer the official IQ4_NL. Treat community 3-bit and 6/8-bit files as untested until someone publishes KLD numbers for them.

Evidence · 2 sources · anecdotal
ISSUE-03 moderate Q2–Q3 / Q4–Q5 / Q6–Q8 / FP16 · coding, math, instruction-following

Tuned for thinking mode. A user comparison found it on par with Qwen3.6 35B-A3B with thinking on and weaker with it off, and the vendor agreed, saying RL was "heavily weighted toward thinking-mode trajectories". The benchmark figures on this sheet should be read as thinking-mode figures.

Fix
Prompt technique [strong]

Leave thinking on (the default) for anything that matters, and budget output tokens and context for the reasoning trace.

Evidence · 1 source · anecdotal
ISSUE-04 moderate Q2–Q3 / Q4–Q5 / Q6–Q8 / FP16 · long-context

The only long-context measurement outside the vendor's is poor: mlx-community's 4-bit build scored 18% on HashHop at about 8.9K tokens, answering confidently with a well-formed but wrong hash. The quantizer attributes this to the compressed latent attention rather than the quant. It is one test, on an MLX port that was not checked against bf16, so it is a warning rather than a verdict. The vendor's long-context row is an Artificial Analysis benchmark and is not recorded here, so the cell stays unrated.

Fix
RAG (retrieval) [partial]

For exact lookups across a long document, retrieve the relevant passages instead of relying on recall from the full context.

Evidence · 1 source · anecdotal
ISSUE-05 mild Q2–Q3 / Q4–Q5 / Q6–Q8 / FP16 · coding, math, tool-calling, instruction-following

Every full-precision score here is China Telecom's own, from a table that compares against two models of its choosing. No independent leaderboard lists it as of 2026-10-04 (absent from Aider polyglot and Vectara HHEM), and users have asked for more benchmarks.

No fix
No known fix — choose a different model

Not a defect but a caveat. Revisit when independent numbers land.

Evidence · 2 sources · anecdotal
ISSUE-06 moderate Q2–Q3 · math, coding, tool-calling

Only 4B of 29B parameters are active per token, and the only 3-bit files are community conversions that nobody has measured. The band saves 7GB over the official IQ4_NL and is scored two points down on every quant-sensitive dimension.

Fix
Move up a quant band [strong]

The official IQ4_NL is 20.1GB and fits a 24GB GPU or a 32GB Mac with a working context. That is the band to run.

Fix
Code interpreter / calculator tool [partial]

Where arithmetic is what broke, hand it to a tool instead of the weights.

Evidence · 2 sources · anecdotal