If I got it correct (appending B from https://stolen-thoughts.com/paper.pdf is essential) they are the authors of the well-known exploit to recover readable CoT from OpenAI and Anthropic models. They use that to find hints of distillation, by running a benchmark with a SotA model, recovering the CoT, then taking the first 1% of the CoT and running the open-source model as if that was the start of its own CoT. In the paper they found that Kimi-K3 gets a lot closer to Claude 4.8 answers when prefilled with the start of Claude 4.8 reasoning, suggesting that Claude 4.8 was used in its post-training. This blog post is the follow-up with results that suggest that Qwen3.8 was post-trained with the help of GPT-5.5 Pro (or some similarly responding GPT model, it's unclear how many models they tested)
> No.
> This is major.
> Given time, maybe best to respond explaining can't due to time? but instructions expect actual work. However complexity huge; but as coding agent, need to attempt
> Maybe we can cheat ... But user may test and see still single CPU.
The smarter AI will be, the better it will be at avoiding doing actual work.
Also, can similar responses be explained with that both models were trained on a same dataset of answers to the benchmark problems?
The dishonesty worries me but the laziness doesn't.
But for the question studied here it probably doesn't matter - overlaps in the publicly available output may be indicative of distillation (or not), regardless of what it is. I would just find it surprising that the Chinese labs would use it so trustingly. The publicly released reasoning trace is the first place where I would suspect some distillation poisoning to be injected.
Few weeks ago there was a new paper out where researchers took the encrypted reasoning tokens and injected it into a new session with a week or model in the same family that they could reliably jailbreak. They would then ask the model to repeat its reasoning and the results were pretty consistent.
They used the LLM as a decryption oracle of sorts.
Qwen 3.8 0902 was trained after the release of the paper on August 10, so it should have seen those specific thoughts.
I "independently" "invented" it for the first Anthropic reasoning models because the API required you have thoughts for each assistant message. My app lets you switch AIs within a chat, and their API used to require thinking for all messages if thinking was enabled, so I needed to get a valid thinking stub to insert.
Time has flew by for me the last 3 years, but, I'd guess it's been at least 18 months. And IMHO it wasn't very complicated to work through how to do once you were dead set on making it happen. I expect it was well-known to distillers before the paper.
My point is that any model trained after August 10 will know of those specific thoughts.
Unfortunately those are the only thought examples you can use to perform this experiment, as no other are availible.
But as the model should have seen those specific examples, it's not a good signal that Qwen was exfiltrating thinking traces.
I see some details about recovering information via whatever technique. It's interesting, but appears not generalized.
So for a specific question, yes, but this is not about techniques like adding a good embedding that just generally tends to improve open model performance on certain tasks.
Attach. Use hub debugger. Ensure source binary perhaps same. start. todo init. parallel no. two tool calls in same turn sequential is okay. immediately. exactly. Need not mention apologies yet final. [...] Let's do. [...] Do tools. Use commentary. Let's initiate. rambling no. use tool. searching now. okay. Really must call. Let's send. done. why stuck? generate. Sorry. go. no more. (The answer engine expects tool). [...] I think no hidden issue. Go. I'll type tool. now. Stop internal repetition. We have 8000 tokens. tool. sorry. I'll produce call. need include i. Great. final. no. Let's send.gpt. This may be bug. I'll consciously construct tool message next.
It eventually triggered some error state and stopped.Nevertheless, this was the first time I'd seen Sol's CoT. I looked up the stolen thought's paper, aaaaand yep, that's Sol's CoT alright.
But it occurred to me, hey, Qwen3.8 27B's CoT seems ... very similar.
I compared the geometry problem in the paper, which had a reasoning block open with:
We need solve. Need reason geometry Weber point? Given pentagon sides and angles. Need find min sum distances. Likely construct rotations / Fermat point lower bound via vectors calibration, maybe triangulation.
I passed the same prompt to Qwen, which opened with: We need solve geometry optimization. We need provide final answer. Let's analyze thoroughly.
This proves nothing, but it does seem an awful lot like they did use GTP-5.5/6 reasoning traces... We need answer user's request: write complete short story scene 2000-3000 words, third-person limited with Rowan, no outline preamble analysis. Need satisfy plot elements: raccoon, Milo returns, storm power failure, elderly customer knocks, thermos somewhere. End scene feels finished. Need produce only story. Need think in English (user English). Need craft 2000-3000 words. Need no meta. Let's plan.
Now, I will add that when I use Qwen3.8 in a coding harness, the reasoning tends to NOT look like this, and instead looks more Qwen3.6-ish.But when I give short prompts to Qwen3.8 with no system prompt or previous instructions, it seems to strongly gravitate towards grug-talk.
“Write a complete short story scene of 2000-3000 words. Use a third-person limited perspective focused on a character named Rowan. The scene must include the following plot elements: a raccoon, Milo returns, a storm power failure, an elderly customer knocks, and a thermos somewhere. Make sure the scene ends feeling finished. Output only the story; do not include any outline, preamble, analysis, or meta-commentary.”
And here's Qwen's thinking trace:
> The user is asking for a short story scene of 2000–3000 words. Third-person limited POV, Rowan. Plot elements: a raccoon, Milo returns, a storm causing a power outage, an elderly customer knocks on the door, a thermos. End with a sense of closure. Output only the story.
> Let me plan carefully. I need to count words in my head—roughly 2400–2600 words would be safely in range. Let me draft.
> Setting: a small-town shop or a gas station/diner where Rowan works the night shift. Milo returns—Milo is probably Rowan's partner, brother, or ex. Let me make Milo Rowan's brother who's been away (military? a road trip? rehab?). Better: Milo is the younger brother who disappeared/went away after a fight. He comes back in the middle of a storm.
While at the very beginning it rephrases the prompt in very short sentence, it's nowhere near close to the above GPT thinking trace and it quickly moves to plain sentences.
One thing though, the actual prompt I used was pretty long (844 words), and ... generated by GPT-5.6 Sol (lol), with the intent of "benchmarking" model performance in being able to write stories where the model avoids explicitly stating every detail in the prompt.
I wonder if the GPT-produced stream could steer the generation into GPT-think territory. That's all I've got, though.
Then there's the actual geometry problem from the stolen thoughts paper:
Let ABCDE be a convex pentagon with AB=14, BC=7, CD=24, DE=13, EA=26, and ∠B=∠E=60◦. For f(X)=AX+BX+CX+DX+EX, the least value of f(X) is m+n√p (p squarefree). Find m+n+p.What? I've never seen garbled CoT like the one you posted when using Qwen3.8-27B.
Because here's the king of CoT I get:
> Hmm, but there's a subtlety: does babel-jest + preset-typescript transform the file to CJS by default? No — babel-jest doesn't transform ESM imports to CJS unless @babel/preset-env is configured with modules: commonjs. Without preset-env, import statements stay as ESM in the output, and Jest's CJS runtime would fail with "Cannot use import statement outside a module" unless the project is ESM and running with --experimental-vm-modules.
> Hmm wait, actually babel-preset-jest... does it include preset-env? Let me recall: babel-preset-jest = { plugins: [require('babel-plugin-jest-hoist')] } plus istanbul for coverage. No preset-env. So ESM imports stay as-is.
> But wait — if the user's project is ESM (which it probably is, given the .ts extension imports — Node's type stripping requires ESM-style? no, type stripping also works for CJS-style .ts files with require... actually, --experimental-strip-types supports both CJS and ESM .ts files. But explicit .ts extensions in imports only work in ESM mode (CJS require doesn't allow extensions... actually, does Node 22+ allow require of .ts with flag?
Lots of “but wait” and and full sentences, nothing caveman-like or extremely short sentences without verbs like the GPT thinking trace above.
(this is with unsloth's Qwen3.8-27B-UD-Q5_K_XL.gguf with T° = 0.8)
How does this suggest anyting of the sorts?
Score go up. Probability go up. Conclusion.
If Qwen and other Chinese labs are just copying reasoning traces, then those labs are more than a year behind the frontier.
Even if they weren't political adversaries of freedom, I would still feel 0% bad given all their training is already on data they got for free.
Information continues to want to be free. To the benefit of us all.
If I may propose instead of "steal" I think we could agree to write they "Aaron-Swartz'ed" the information from the internet, what do you think, is this too harsh on Sam Altman or Carmen Ortiz ?
(slibhb: Don't get me wrong, I agree with you 99%. But the frontier labs have zero moral authority here.)
Because we only have weights and able to self-host Chinese ones. Gemma 4 and GPT OSS are nice to have, but nowhere close to that.
I look forward to a day when open models are so dominant that we stop considering traces to be some form of intellectual property that must be hidden from / manipulated for paying users.
It's that manipulation of inputs and outputs that really rubs me the wrong way
this what is permissible for Jupiter is not permissible for a cow bullshit alone should tell people all they need to know about what kind of greasy sociopaths run "open"ai and (mis)anthropic, and how seriously you should take their purported stances on "safety" and other self-serving shit.