Tessera-27B-B-CJK-RL: more new math solved, most of the agent-turn saving kept
We are releasing Tessera-27B-B-CJK-RL, an RL update of Tessera-27B-B-CJK. On AIME and HMMT 2026 it answered 108 of 126 attempts correctly against 97. On new states from 16 held-out coding-agent tasks it thinks 1.11x as much as Tessera-27B-B-CJK on a typical turn (90% CI 0.98-1.26) and 0.67x as much as the base model. It is the eighth update of the RL run from our ablation post. We picked it because the fifteenth thought too long per agent turn.
- Tessera-27B-B-CJK-RL (Hugging Face) (opens in a new tab)
- Tessera-27B-B-CJK paper (opens in a new tab)
- RL ablation post (opens in a new tab)
- Published
- Authors
- Zellige
- Reading time
- 7 min
- #reinforcement-learning
- #efficient-reasoning
- #agentic
- #pre-registration
- #open-weights
Contents7
We are releasing Tessera-27B-B-CJK-RL, a coding-agent model that gets more new competition math right than Tessera-27B-B-CJK and keeps most of its agent-turn saving. On AIME and HMMT 2026 it got 108 of 126 attempts right against 97. On new states from 16 coding-agent tasks held out from training, it thinks 0.67x as much as the base model, Qwen3.8-27B, on a typical turn. The weights are open under Apache-2.0, as a merged model, a LoRA, GGUF quants and an NVFP4 checkpoint.
Where this model comes from
Tessera-27B-B-CJK thinks in compressed CJK, a shorthand that mixes English, Chinese words and symbols, and it thinks less per agent turn than its base model. In our RL ablation post we trained it further with reinforcement learning on math and code. Weighting each rollout by its advantage, not by its length, avoided a drift in log-probability and entropy that our first RL run had shown. Section 8 of that post continued the run to 15 updates. The 15-update checkpoint got 99.5 of 118 hard math and code problems right against Tessera-27B-B-CJK's 89, as a mean of two attempts, but on a typical agent turn it thought 1.48x as much. Our limit was 1.25x, so we did not release it.
The reward in that run comes only from math and code problems. Nothing in it measures agent turns, so their length can change at any update without the training noticing. Updates 5 and 10 had longer turns too, 1.22x and 1.42x, but we had not measured updates 6-9. Before training a repair run, we measured them.
How we picked update 8
(open full-size image in a new tab)On the 11 tasks from the Tessera paper, the ratio did not grow steadily with training. It went from 1.22x at update 5 to 1.42x at update 7, back down to 1.20x at update 8, and up to 1.48x at update 15. Update 8 had the shortest turns of updates 6-9.
Picking the lowest of four noisy measurements flatters the one you pick, so we did not release on that number. Before sampling, we wrote down two more checks and their pass lines. The first was a re-check on 44 new states from the same 11 tasks. The second was a single run on 64 new states from 16 tasks that no step of this RL run had used, with a limit of 1.25x and a target of 1.15x. The re-check came in at 1.15x (90% CI 1.01-1.32). The held-out run passed, and Table 1 gives its numbers.
Results
We wrote down every test below before sampling it. The exceptions are Tessera-27B-B-CJK's ratio to the base model and the split by turn length, which we computed afterwards from the same samples. All results come from the LoRA sampled on Tinker in bf16 at temperature 1.0, top-p 0.95 and top-k 20, at xhigh unless a row says otherwise. Both models were sampled on the same day with the same seeds. The merged weights match the LoRA, as the release checks below show. Intervals are 90% bootstrap intervals over tasks or problems.
Table 1. New problems and new agent states, each used once for this model.
| Test | Tessera-27B-B-CJK-RL | Tessera-27B-B-CJK |
|---|---|---|
| AIME 2026 and HMMT February 2026, 63 problems, 2 attempts each, 64K-token window | 108 of 126 (AIME 54 of 60, HMMT 54 of 66) | 97 (AIME 51, HMMT 46) |
| Same problems: attempts cut off at the window; median thinking tokens | 11; 13,027 | 23; 21,945 |
| Thinking per agent turn, 64 new states from 16 held-out coding-agent tasks, 4 samples each | 1.11x on a typical turn (CI 0.98-1.26); 0.76x summed (CI 0.61-1.01) | 1x |
| Same states against the base model, each model's first 2 samples | 0.67x on a typical turn (CI 0.53-0.85) | 0.60x (CI 0.50-0.73) |
| Valid tool calls; turns cut off, periodic or looping | 256 of 256; 1 | 256 of 256; 0 |
| Median CJK share in thinks of 300+ tokens | 0.21 | 0.21 |
On the competition problems the paired difference is +5.5 problems (CI +1.5 to +9.5), counting each problem as the mean of its two attempts. Tessera-27B-B-CJK-RL was better on 16 problems and worse on 6. About half as many of its attempts ran out of room, so part of the gain is that shorter thinking finishes inside the window.
On agent turns, 1.11x is under both the 1.25x limit and the 1.15x target. Summed over all 256 turns, Tessera-27B-B-CJK-RL used fewer thinking tokens than Tessera-27B-B-CJK, 0.76x, even though its typical turn ran slightly longer. A few long turns explain the difference. In 23 of the 256 paired turns one of the models thought for 1,000 tokens or more, and on those Tessera-27B-B-CJK-RL used 60,301 tokens against 86,443. On the other 233 the two were about even, 19,357 against 18,964. Against the base model, Tessera-27B-B-CJK thought 0.60x as much on a typical turn and 0.63x summed, against 0.50x and 0.64x on the tasks in its paper. The RL model sits at 0.67x on a typical turn.
Table 2. Sets we had used before.
| Test | Tessera-27B-B-CJK-RL | Tessera-27B-B-CJK |
|---|---|---|
| 118 hard math and code problems, mean of 2 attempts | 100 correct | 89 |
| Same problems: strong repetition loops, mean of 2 attempts | 1.5 | 12.5 |
| 36 easier math and code problems at all three efforts, 216 attempts | 204 correct (69 of 72 on code) | 187 (61 of 72) |
| Long context, 6 agent states with 101K-131K-token prompts | 6 of 6 valid tool calls, no loops |
We used the 118 hard problems many times while building both models, so their +11 supports the new-problem result rather than standing on its own. In its paper Tessera-27B-B-CJK was weaker than the base model on hard math and code, and the base model scored 98 of 118 on this set with one attempt in an earlier run. By that rough comparison across runs, the RL model is about level with the base model on this set, not ahead of it.
Release checks
We merged the LoRA into the base model's bf16 weights and compared the merged model on vLLM 0.31 with the LoRA on Tinker over two held-out sequences. The mean absolute logprob difference was about the same as the base model's own difference between the two engines and far below the fine-tune's effect, so both sequences passed. The model card gives the numbers.
Eight text-model artifacts, the merged weights, the BF16 GGUF, five GGUF quants and the NVFP4 checkpoint, then got one sample on each of three prompts: a hard math problem, a coding-agent turn and a short email. All eight made a valid tool call, kept Chinese out of the visible answer and showed no loops. On the math problem, three of them, the merged weights among them, were still thinking at the check's 32,768-token limit. This check only looks for broken files and does not measure quality.
A fix to Tessera-27B-B-CJK-NVFP4
Building the NVFP4 checkpoint turned up a bug in our first release. vLLM renames the model's modules when it loads them, and the quantization targets in Tessera-27B-B-CJK-NVFP4's config.json used the original names, so vLLM 0.31 could not load it. We replaced that file with targets in Unsloth's style, confirmed that the model loads and generates, and noted the change on its card. If you downloaded Tessera-27B-B-CJK-NVFP4 on or before 5 November 2026, download config.json again. The weights did not change.
Limits
- The agent-turn result is one run on 16 tasks. Its CI reaches 1.26x, so agent turns up to a quarter longer than Tessera-27B-B-CJK's are not ruled out. Our 1.25x limit applied to the point estimate.
- The 16 held-out tasks are new to this RL run, not to the Tessera line. While building Tessera-27B-B-CJK we measured other states from 15 of them.
- Our agent evidence is per turn: thinking length and tool-call validity on frozen states. We did not measure whether the model finishes coding tasks more or less often.
- AIME and HMMT 2026 may appear in Qwen3.8's pretraining data, and we did not run the base model on them.
Weights
| Repo | Contents |
|---|---|
| Tessera-27B-B-CJK-RL | Merged bf16 weights, 55.6 GB |
| Tessera-27B-B-CJK-RL-LoRA | PEFT adapter, 1.09 GB |
| Tessera-27B-B-CJK-RL-GGUF | BF16 GGUF and five quants that copy Unsloth's layouts, not evaluated |
| Tessera-27B-B-CJK-RL-NVFP4 | NVFP4 and FP8 checkpoint, 23.4 GB, not evaluated |
Use it like Tessera-27B-B-CJK: reasoning_effort="xhigh" in agent loops, past thinks dropped from the history, temperature 1.0, top-p 0.95 and top-k 20. A research grant from Tinker paid for this work.