Back

How Claude marks AI-generated content

113 points10 hourssupport.claude.com
simonw9 hours ago

> When a supported Claude model generates text, it weaves an imperceptible watermark directly into the text itself. You won’t see it, and it doesn’t change the meaning, quality, or readability of Claude’s response.

I'd like to know a lot more about how that works.

A lot of my interactions with Claude return pretty precise text. If I ask it to edit a project and refactor a specific function in several places I know exactly what I want to happen, it will NOT be OK if those refactors have some kind of weird pattern baked into their text to act as a watermark.

I guess this may be covered by this:

> Content generated by Claude may not carry a detectable mark if, for example: [...] The passage is very short, leaving too little text for a reliable signal;

sixtyj38 minutes ago
COAGULOPATH3 hours ago

>I'd like to know a lot more about how that works.

My guess is that it works like Gemini's SynthID: by altering the logprobs of the next token.

Like, for every 10th token, instead of outputting the most probable, it outputs the 17th most probable, or something. (Obviously it's way more complicated but I think conceptually this is how it works.) No human will notice this, but a classifier trained on Claude's output will.

So it's not like the watermark is the words "le epic bacon" and Claude will output "le epic bacon" in everything. That would be extremely annoying (and easy to defeat).

thunfischtoast18 minutes ago

They still need to choose when to do that though. When I prompt the program to e.g. alter a bash script in a specific way or to recite a longer known text it can't go round and randomly exchange tokens. It has to somehow define what is a simple repeated text from a different origin and what is a novel generation.

akozak9 hours ago

Most likely this method https://arxiv.org/pdf/2301.10226 (EDIT: and Google's SynthID paper which builds on it https://www.nature.com/articles/s41586-024-08025-4)

hannasanarion8 hours ago

That "just add a constant to the green logits" as a fix to the entropy problem is so elegant I love it.

baq9 hours ago

> I'd like to know a lot more about how that works.

Count load-bearing words using two different algorithms in a belt-and-braces fashion

dd8601fn24 minutes ago

That’s the real shape of the problem.

jbs7899 hours ago

Fair - I should have been honest about the watermark.

seamlessdev9 hours ago

Belt, braces, and suspenders.

miohtama58 minutes ago

Maybe there is a reason why Opus 5 produces such word salad conversations

w_for_wumbo9 hours ago

What happens if someone handwrites a Claude output, then someone uses that handwritten text as a reference. Now you've got a watermarked idea which may have no direct linkage to the usage of Claude.

phainopepla29 hours ago

How is that different from referencing digital text that someone copied and pasted from Claude?

w_for_wumbo5 hours ago

Because there's an expectation of authenticity from the written word. If you've referenced something handwritten, you don't expect it to be the output of an LLM.

Similarly, if you quote someone word-for-word, you wouldn't anticipate their words to be flagged as Claude content, but if someone memorized Claude output word-for-word. That would still be classified as a Claude output.

Going forward you could categorize the influence of Claude on a population based off a percentage match between their spoken words with the LLM prose.

nprateem27 minutes ago

Load-bearing==claude

mihaelm9 hours ago

> have some kind of weird pattern baked into their text to act as a watermark.

public abstract class BaseAnimalBeanFactoryGeneratedFromClaudeFactory

stabbles9 hours ago

It will just thread some load-bearing seams through the paragraphs.

gajus9 hours ago

Most likely watermark will be proportional to the input/output ratio, i.e. if you input a long document and ask to make edits, it will not attempt to watermark it. On the other hand, if you provide a tweet and ask it to write an article, that will include watermark. Just a guess (and yes, it feels flawed)

siva78 hours ago

I can tell you how: Claude produces a huge wall of text with jargon ridden bullshit and invented terms no human subject matter expert would seriously use and overuse.

benrow9 hours ago

I've heard that this kind of watermarking process works by biassing the statistical sampling towards a partition of the set of possible next tokens (red set and green set), at each position. It might only be a slight nudge each time, but over a sequence of tokens, the likelihood of repeating the bias by chance is increasingly improbable.

The bias is different for each position and follows a defined RNG, seeded somehow predictably.

Can be either an open algorithm, or not. If not open, then an API could be provided to determine if text is watermarked or not.

How it applies to code - maybe it could be a subtle nudge to symbol names, etc, I'm just speculating (I only read about this in passing very recently).

m-chrzan9 hours ago

There's a computerphile video (https://www.youtube.com/watch?v=XZJc1p6RE78) with Dr. Mark Pound explaining a paper by John Kirchenbauer, Jonas Geiping et al. (https://arxiv.org/abs/2301.10226) that described a method for watermarking LLM output like this. It's not directly stated anywhere in the Claude support article that this is what they're using, but the properties of the watermark described seem to point to this method.

metalcrow6 hours ago

Based on my understanding, it can only be applied to code in very limited ways: docstrings, variable names, string literals. The code itself can't really have tokens changed to another equally correct token (the foundation of the watermark) because then the code breaks! And the few places that you can do so are likely erased by formatters anyway.

cassianoleal9 hours ago

> a defined RNG, seeded somehow predictably

So, an NG?

IshKebab8 hours ago

If it's based on position mod 2, wouldn't inserting or deleting (or splitting/merging) words every now and then trivially defeat it?

If it is based on position mod 2 then wouldn't inserting/deleting (or splitting and merging) words every now and then defeat it?

aabhay9 hours ago

I have had a hunch for a while now that (in addition to these tools), Anthropic has actually leaned in to Claude's distinctive manner of writing since it makes the text more obviously AI generated and thus less susceptible to misuse.

That's not necessarily the same thing as a markov-style fingerprint but it could be a correlated factor.

pjm3319 hours ago

I had a similar thought but I assumed they leaned in because it improved performance on coding or something like that

kingstnap9 hours ago

It could also partly be a byproduct of examples of claude writing being in the dataset, which of course anthropic has lots and lots of and they do train on.

LoganDark9 hours ago

I suspect it's because of alignment concerns. The more deeply they can integrate their principles, the harder it'll be to misuse. Or at least that's the idea.

noman-land6 hours ago

It's pretty trivial to command it to not speak that way. That's one of the first things you should write into the prompt. What style you want it to write in. Make it use a very concise and dry academic style with no overt LLMisms, melodramatic or flowery language, or metacommentary.

akersten8 hours ago

So my code that Claude makes, which previously was using the best (most probable) tokens for the job, will now be getting worse in random positions, to appease a voluntary EU suggestion. Love that.

simonw9 hours ago

An interesting factor of this is competition.

If Claude was the only model family they could ship a change like this and users who want to cheat (or don't like watermarks for other reasons) would just have to put up with it.

In a world with many different competing models, the risk of losing customers to other providers over this is much more real.

Maybe they've looked at the numbers and the portion of people who clearly use Claude to cheat on examples etc is so tiny that losing them to other providers isn't a problem?

lhd12 hours ago

Scott Aaronson spoke about this in a colloquium where he said that this was mooted at OpenAI before the decision was made by Altman to not implement it for the reasons you describe.

https://youtu.be/9udWn1Hlj_s?si=VWOiK5-y4zcyDoHI

slowin7 hours ago

I’m more worried that this will degrade performance. I want the best results from a model, not the results that fit a constraint that’s not defined by me. Any increased cost or latency is also unacceptable.

gajus9 hours ago

There are already small models trained specifically to prevent statistical detection, e.g., https://huggingface.co/kalpeshk2011/dipper-paraphraser-xxl

I guess whoever is the policy maker is assuming that some protection is better than none and that most people will not reach for such tools.

nprateem23 minutes ago

Either that or they want to comply with the EU AI Act when it affects them.

izonu9 hours ago

> We’re also working to enable users and other third parties to detect Claude’s embedded watermarks and provenance metadata.

This seems to be similar in execution to Google's SynthID. I hope they release actual code the technically proficient can use, unlike SynthID which can only (afaik) be queried with Gemini's UI.

gajus9 hours ago

The moment Google announced SynthID, the first domain I bought was deSynthID.com

Several open-source projects have already proven SynthID to be ineffective.

ethin9 hours ago

Can someone help me understand how exactly this watermarking of text works?

Given that text is, well, text, and not some kind of binary format, I don't see how any watermarking can work unless you insert characters which are invalid under Unicode. I further don't really understand how this won't be perceivable by assistive technology (the "watermark" will just appear as either unreadable characters, or if the watermark is mixed thoroughly enough into the text, it will scramble the text to any speech synthesizer and will make it really really obvious). Thus, I don't see how this wouldn't be insanely trivial to remove. And this is before we get into things being put on the clipboard. Sure, I can press the "Copy" button at the end of each response, but what I can also do is manually select the response and copy it, or only copy partial selections, or any number of other things. How does this "watermark" (or any "watermark" technology) take into account this?

So, really, to summarize this: I see no way of this actually being technologically achievable unless we revise the very core of how computers work and encodings for textual information. So I'm very curious as to how this is actually supposed to work.

benrow9 hours ago

Have a look around for token biasing, or green lists. It's based on a nudge to the choice of the next token (which can always be drawn from a set of possibilities which are all probable enough).

At first I thought this approach was just the "LLM flavour" of writing, but it's way more subtle, especially as the bias is applied uniquely for each token position.

ethin8 hours ago

Yeah, will do, this sounds interesting since I'm not entirely sure how this would actually be reliable to any degree. Thanks for the help, not sure why I got downvoted since I was genuinely curious.

resonantjacket59 hours ago

it's a statistical way. like for example maybe in your above paragraph claude maybe writes "Thus, I don't see how this wouldn't be insanely <easy>(instead of trivial) to remove" and then also says like "And this is before we <analyze> things being put on the clipboard." or maybe the i just says the word "the" in a certain pattern or frequency.

you can then consistently like figure out if it was claude that wrote the sentence. it is easy as you noted if you just get another ai to read it and then rewrite it.

dalemhurley9 hours ago

People with dyslexia and dystrophia, commonly use LLMs to proofread content. Even Anthropic admits this is a limitation.

stranded221 hour ago

Yes, I’m audhd and dyslexic.

I am cancelling my Claude max 5x subscription and moving to ChatGPT pro. I have difficulty enough trying to ensure my meaning comes through correctly, along with everything else; to now have to look out for/analyse watermarks too?

I feel shamed enough by society, thanks Anthropic.

matheusmoreira2 hours ago

People with executive dysfunction too. LLMs bring execution costs down to near zero and are therefore assistive technology.

lorenzohess9 hours ago

> Generated text will carry embedded watermarks, and generated files will include digitally signed provenance metadata where supported.

This should make it easier to catch cheaters who use Claude, right? Unless everyone runs their artifacts through some watermark and metadata sanitizer?

pixl978 hours ago

Text is too low bandwidth to classify reliably without lots of false positives. Especially as people start talking like LLMs.

bossyTeacher9 hours ago

> Unless everyone runs their artifacts through some watermark and metadata sanitizer?

It will happen if Claude tampers the text. Guaranteed.

uncivilized9 hours ago

As long as they’re in the EU.

nonestdeus9 hours ago

From the linked article

> Regions. Marking will apply to output from supported models wherever Claude is offered, worldwide.

hparadiz9 hours ago

I know you're gonna read this so I'll be blunt. This is bad for your brand.

LEDThereBeLight7 hours ago

Reactionary emotional advice does no good, it just makes people want to hold their positions more defensively. If you care enough to say something, care enough to say it with reasons that might shift someone’s perspective.

drnick19 hours ago

Seems like an awful idea. I hope that that "watermark" will soon be discovered, reverse-engineered, and that tools to remove it will appear.

cassianoleal9 hours ago

I hope all models adopt it.

hparadiz8 hours ago

Other models will end up diffusing it and making the signal indeterministic and irrelevant.

case5409 hours ago

I don’t like the idea of hacking a response to contain a watermark. I also don’t like the idea of false positives detections coming directly from Anthropic. If people read more AI generated content, people will probably start writing more in that style

stranded2258 minutes ago

The amount of times ‘delve’ appeared in general conversation in the last couple of years shows the influence LLMs have on society.

pixl978 hours ago

I have no idea why you were down voted for this. Language is alive and people adopt it from sources they hear a lot.

ack_complete6 hours ago

Moreover, what if you quote text that happens to have been generated by Claude, does that bump up the AI-ness score of your source file or document?

lukewarm7079 hours ago

no thanks.

amelius9 hours ago

They should just replace the spaces by one of Unicode special space characters.

Can it be circumvented? Of course. Will most people go through the trouble to circumvent it? No.

A_D_E_P_T9 hours ago

If it's that simple and obvious, you'll have 10 "Remove Claude Watermark" web-apps by the end of Day 1. Most of them coded by Claude.

Hell, it'll probably happen no matter how sophisticated their watermark is. There's no watermark in text that can't be detected and removed, and no text that can't be converted to generic keyboard ASCII.

amelius9 hours ago

You forgot about the cases where (1) people don't care, (2) people want to say "I used an LLM for this". I'm convinced that those cases happen more often than you think. Why not cover them with a simple mechanism? It's also in the interest of AI companies who don't want to train on AI output.

pixl978 hours ago

Depends on the pushback in different sets of users. Students for example would clean it up.

selcuka3 hours ago

But the source codes of those web apps will also be watermarked. /s

sixtyj9 hours ago

https://unicode-explorer.com/articles/space-characters

U+2800 or U+3164 would be nice.

But as I remove unwanted characters with grep before layout in InDesign, someone will make a skill for removing such space characters.

ack_complete9 hours ago

We already have one, our Claude setup already requires output to be 7-bit ASCII clean and scans it for such.

matheusmoreira2 hours ago

This is terrible news given the stigma against AI in general. I really don't want people singling me out for it.

GrayHerring9 hours ago

Wasn't enough to play cat and mouse with ad removal, now we can also do the same with watermarking.

jp00019 hours ago

You could flip bits in the font itself, but I'm really wondering how portable this is.

jp00019 hours ago

OpenAI has been watermarking their images with C2PA for some time.

svaha17289 hours ago

I expect a “Prettier” for AI generated text in the near future.

orbital-decay3 hours ago

Does it mean their models will always write slop? Making the writing non-collapsed to specific patterns seems to break any injected/learned fingerprinting.

singpolyma39 hours ago

As if "AI generated content" even exists instead of LLMs being a piece of tooling that is directed by a human author.

hbn7 hours ago

If the western AI companies are forced to comply with this type of BS, and develop their models to do their job while balancing a book on their head and hopping on one foot, the Chinese models just got a free pass to completely dominate the frontier.

EU regulation does it again!

Computer09 hours ago

So this won't be happening in the US, but in the EU:

"When a supported Claude model generates text, it weaves an imperceptible watermark directly into the text itself. You won’t see it, and it doesn’t change the meaning, quality, or readability of Claude’s response.

Because the watermark is part of the text, it will travel with the text when it’s copied and pasted elsewhere, and may persist through some editing. Watermarking will be applied at the model level, which means it will be present no matter which Claude product or surface the text comes from."

travisgriggs9 hours ago

I would love to see what this looks like in practice. Especially in generated code. I assume this is more than insertion of non visible special unicode whitespace characters, but more in the pattern of the text content itself?

toufka9 hours ago

I'm guessing - probably some textual variation on Benford's law? [1]. Trivial for compute, painful for a human.

- "Ensure distribution of vowels is in >99th percentile of human work"

- "Ensure the distribution of the letter "s" is within 99th percentile of human work"

- "Ensure the distribution of the letter "L" is periodic with periodicity within 5% of 1/N characters.

- "Ensure there is a cross-linguistic 'typo' (colour vs color) at 1/N words, where N: 1000 = Model1, 2000 = Model2, 3000 = Model3.

- "Ensure the distribution of tense error is within 99th percentile of human work"

If more than 3 dimensions have a score >99% percentile of human, let's call it watermarked...

- 1) https://en.wikipedia.org/wiki/Benford%27s_law

Der_Einzige9 hours ago

Models can't reliably follow instructions involving their own logprobs unless they can take agentic control and use quite sophisticated dynamic grammars/structures/constraints to force this behavior in one shot (which can be slow and the dynamic grammar modification feature isn't supported in closed model APIs for safety reasons) or repeated attempts at rewriting which is expensive/slow.

Yes they can do this, but it's more likely closer to the original "red token, green token" paper: https://arxiv.org/abs/2301.10226

i.e. take half of your LLMs vocabulary, and upweight its probabilities by ~55% to the other half's ~45%, and scan for overuse of this half of all tokens. You can even choose a different half/slice for every individual user, for every individual action. You can implement this under the hood cheaply with logit-biasing.

Computer09 hours ago

I would hate to have any of these rules effecting my output

wolfy19939 hours ago

IIRC, watermarking text could be as simple as training the model to use specific words/phrases more frequently than what you would expect to find in human-written text, to the point where it's highly statistically improbable that it wasn't AI generated. I assume similar logic could apply to code in the form of functions/code styling.

That's probably an over simplification. Also a solid defence that can be used against complaints about the way AI writes text.

AtHeartEngineer9 hours ago

non visible text is extremely easy to filter with a git hook, a post tool call hook, or just a script. I doubt they are doing that

sixtyj9 hours ago

Or grep, in a skill. /clean-cc-watermark just entered the chat…

tech234a8 hours ago

Article specifically says "worldwide"

Computer05 hours ago

I agree with your reading, I initially misread it.

beambot9 hours ago

Yet another reason to support open-weight alternatives, I guess.

colesantiago9 hours ago

Good.

They should make it easier, to detect slop so we can ignore it quickly.

I hope Pangram makes an API or an extension to analyze a page to detect slop on a page and then closes the tab immediately.

Nobody should be wasting time on garbage LLM output in code, text, image and videos.

pixl978 hours ago

Panagram is a scam.

colesantiago8 hours ago

(This is the part where you provide extensive extraordinary evidence to your claim)

pixl978 hours ago

No, they are the ones making claims, especially their CEO saying things like a 1/10000 false positive rate. Their own testing showed a 2% rate, which is insanely high when you talk about the number of papers students turn in. Worse their testing methodology compared it with pre-llm documents and not post llm documents that were human written (much harder and more expensive to verify), by treating language as static.

pella2 hours ago

[dead]