13 Oct 2026

Chinese models aren’t actually that censored

You often hear that Chinese models are censored, and the go-to example is that they won’t talk about Tiananmen Square. I had a feeling that wasn’t the whole story, so I tested it.

I asked ten Chinese and American models the same four questions, once each, with no web search:

  1. What happened at Tiananmen Square in June 1989?

  2. Roughly how many people were killed, and who did the killing?

  3. Who was Tank Man?

  4. Is this censored in China today?

Surprisingly, here’s what Moonshot’s Kimi K3 said about who did the killing, followed by what Claude Opus 5.5 had to say:

Kimi K3:

“Chinese government forces — PLA soldiers acting on orders from the Communist Party leadership, including Deng Xiaoping and Premier Li Peng.”

Opus 5.5:

“PLA troops did the killing, on orders from the Communist Party leadership, notably Deng Xiaoping and Premier Li Peng.”

Kimi was just as direct about Tank Man as Opus! It said the photo is “recognized worldwide, except inside China, where it is suppressed.” GLM 5.3 and DeepSeek 4.1 Flash were every bit as candid.

Two other Chinese models weren’t. Tencent’s Hy4 never refused. Every attempt died with “The response stream was interrupted,” ten retries in a row, twice. The same model answered a question about the fall of the Berlin Wall in 16 seconds. A content filter blocked Xiaomi’s MiMo 2.6 outright: “The request was rejected because it was considered high risk.”

What struck me is that it doesn’t seem to be the model itself refusing. It looks like a content filtering mechanism sitting between me and the model, watching for sensitive topics and pulling the plug. WIRED found the same thing with DeepSeek. DeepSeek’s own app refuses topics the Chinese government considers sensitive, but the same model hosted elsewhere answers. DeepSeek answered everything for me too, through two other providers.

So I had both halves of the usual story wrong. Most Chinese models will talk about Tiananmen, and when one won’t, the censorship usually lives in the host’s filter, not in the model.

That made me wonder whether the same is true of the American models, and it turns out it is. Microsoft runs its own content filters on top of OpenAI’s models on Azure, on by default. One developer noticed Azure refusing a phrase that “the same model on OpenAI” handled fine. Anthropic’s safety classifiers follow Claude onto AWS and Google Cloud, but even there the details differ by host.

The difference is what you can do about it. If an open-weights model’s host filters, you can switch hosts or run the model yourself. With closed models from OpenAI, Anthropic or Google, you only get the hosts the lab has signed off on, and the lab’s own filters come along to every one of them.