Interesting. Here's the section of the EU Act that mandates this:
> Providers of AI systems, including general-purpose AI systems, generating synthetic audio, image, video or text content, shall ensure that the outputs of the AI system are marked in a machine-readable format and detectable as artificially generated or manipulated. Providers shall ensure their technical solutions are effective, interoperable, robust and reliable as far as this is technically feasible, taking into account the specificities and limitations of various types of content, the costs of implementation and the generally acknowledged state of the art, as may be reflected in relevant technical standards. This obligation shall not apply to the extent the AI systems perform an assistive function for standard editing or do not substantially alter the input data provided by the deployer or the semantics thereof, or where authorised by law to detect, prevent, investigate or prosecute criminal offences.
The way they explain it implies they're using this at the sampler level and not trained into the weights themselves. So unless you're using an inference library that does this, the open models will not have this kind of a watermark.
> When watermarking is used, choices are still made at random, but the source of the randomness is different. Instead of using an arbitrary random number generator to pick the next word, watermaking uses the key and a few words that come before to settle what word the model should pick.
> the watermark only changes the source of the randomness used to pick among words.
How I use claude in my grant writing.
I write a rough paragraph. I invoke /concise-mode skill (a supposed instruction that Claude used for their previous concise writing style), and ask it to revise for clarity. I re-read to ensure it says what I wanted, ask for another revision with a specific request, or manually edit.
This is a productivity enhancement for me. I am not writing art. I am delivering information for my research plan. While I would not mind a flag that indicated AI assisted for clarity, I do not want to be accused of using AI-wholesale. I put a lot of work into it, and I do not want to be maligned.
> Google DeepMind tested this impact by serving a model that used watermarking to a portion of their Gemini traffic and comparing thumbs-up and thumbs-down ratings. They found no statistically significant differences from the unwatermarked model. And in a controlled study, human raters comparing watermarked and unwatermarked answers side-by-side saw no difference in quality.
For some reason I had assumed testing this would be more sophisticated than just checking the thumbs up/down stats and user "vibes"
It's not just checking user thumbs up/down. As your quote says, they also did a controlled study with people rating the results. What else would you want them to do? The whole point is that it needs to introduce a detectable statistical difference, but humans should not be able to perceive it as a quality difference.
Retest on benchmarks whether it accomplishes tasks with the same success rates. Prose is only one thing.
Messing with the randomness may make the problem solving capabilities weaker. Probably it doesn't but this is the answer to what else I would want them to do.
> human raters comparing watermarked and unwatermarked answers side-by-side saw no difference in quality
Yes - maybe saying "vibes" was minimizing the effort but what I am trying to say is that even the controlled testing is just asking users whether quality is impacted or not. Which is subjective and thats what I meant by when I said "vibes"
Don't get me wrong - I have no idea how one would go about testing this with other methods; I was just stating my assumption.
Since they rolled this out to all users I had assumed there would be other testing involved.
I'm not a mathematician but to me it doesn't seem so far-fetched to think that there might exist some mathematical proof that ensures the indistinguishability
It's fairly well established that the sequence from a good pseudorandom generator is basically indistinguishable from real randomness (unless of course you know the algorithm and key/state). It would be miraculous (and news-worthy) if using it in picking the next token from the probability distribution as given by the model would somehow easily reveal its deterministic nature.
The vast majority of users are not sophisticated enough to try to erase the traces, so this will be effective for the vast majority of AI generated text that regular people are upset about. Eg. lazy student essays.
I’d like to better understand the minimum text length to get a confident result, i would presume it would need to be quite long, perhaps > 1000 words to get an accurate result.
a lot of side-channel information can be hidden in text, see https://arxiv.org/html/2510.20075v6 where they hide as much text as the source text itself
Seems pretty easy to defeat by running text output through a random reworder process that would effectively repeat the same routine on low-stakes words, replacing them with similar ones. We learned this in high school, jumping through your paper and hitting random words with the thesaurus to 'sound smarter'
That will likely make the text output worse and you'll have to fix it yourself. Regardless even if you don't fix it, at that point you're not really using Claude to generate the final output anymore.
> We will soon be offering a watermark detection API. We’re in the process of working out the details of its implementation.
Dumb question - doesn't this defeat the purpose of a watermark? i.e., anyone who wants to avoid detection can simply run `while (has_watermark(text)) text = slightly_rewrite_with_non_anthropic_llm(text)` until it's gone? I feel I am missing the intent of the watermark if it is so easily defeated.
> anyone who wants to avoid detection can simply run `while (has_watermark(text)) text = slightly_rewrite_with_non_anthropic_llm(text)` until it's gone?
What do you think the pricing per call of "has_watermark(...)" will be?
It's completely pointless without an API, unless you're thinking the API should be private or restricted. The public needs some way of identifying the watermark.
> anybody who wants to avoid detection can just
They can just use a different LLM. By far easier and more reliable than what you're suggesting. This whole watermarking requirement is better then nothing because meant people are profoundly lazy, but yes it is not hard to work around with any effort.
I think this way is better. As I said it doesn't really have a downside (IMHO), and if I'm wrong Anthropic could implement a defense against what you're describing pretty easily.
Not sure either why they are providing an API to detect either and what you say make sense.
However, if my understanding is correct, the reason for the watermark / detections is that its not directly aimed at end-users, but to be able from them to detect if text was produced by one of their models so they don't use it as input in training data. So, yeah, in that context, not sure why they are announcing this with an ability for anyone to detect if it was produced by one of their models. Also, they are happy to ingest text produced by models they don't own? Maybe someone with more information can elaborate?
I understand what you are trying to say but I am not sure any watermark detection API would definitively return a true/false answer, I would have expected something more like a numeric confidence value. I am also not sure if the API would be deterministic.
I thought the same thing. Maybe they can restrict it so that you can’t run the same text through multiple times with only one word differences. At least from an IP perspective that would start to get really expensive to rotate through IPs to get around a block like that.
>But if we could see the sequence of all the moves after the game (and we knew the value of pi), we could work out whether this was a game that likely used pi to determine its moves. The game that used pi is, in a sense, “watermarked”.
Wouldn't pi contain any such sequence of numbers? Therefore you'd have to allow only certain regions of pi, and therefore, its not random anymore and we could just shortcut the whole game?
The method of identifying authorship isn’t new. I guess the main new thing here is to ensure Claude has a specified word distribution so you can identify its writing.
2 years ago i created nonfungibledocs.com based on the best of multi variated testing, statistics and nlp. The broad idea was that even a simple page can subtly be written in N ways for N recipients, such that a leak can be traced back to the version.
Do i understand correctly - to check watermark you need full model weights, of all org models. So running the check is basically the same as running every model once? That's really expensive
I don't know the details of their implementation, but in general, if the text is not watermarked, you will probably fail the test after a few tokens. If it is, you will have to run the entire text, or, you can just run it until you have some degree of confidence.
From what I understand when you re-tokenize the output you can simply look at how often certain tokens show up and the position of them, enough of these matches would result it watermarked text.
Let's say we are at token 431 and there is 49% to generate token 1 and 51% to generate token 2, we apply bias to our token 1 which would make it win causing a repeating pattern invisible to the human eye.
Now you apply this to multiple tokens and a reversible source of random you have a pretty strong watermarking system... That is rather annoying to defeat as you essentially have to rewrite most of the text. The alternative is to use a diffusion model and spray some gaps across non-literal information such as ids, links, etc.
anthropic speed running its way into irrelevance. wtf would i use AI for writing that screams AI generated especially when I'm not in the EU and open models are so good now
> How do I check if a piece of text was written by Claude?
> We will soon be offering a watermark detection API. We’re in the process of working out the details of its implementation.
Determining whether it's written by Claude will be possible in the future. But unless you know the LLM being used and the company behind that LLM offers a similar API, there's no easy way to tell if it's AI generated in general.
I may be wrong but in my opinion this is not technically possible. They can say a text is not AI written with more confidence, but it should be absolutely impossible to say a text is 100% AI written. There is nothing that stops a human to write something AI also wrote. It could be less probable, it could be not common, but there is no way to be 100% sure a human did not write something.
Unless they can provide logs and attach an output to a user/session, they are just saying "This is something that could have been a Claude output", but that's all. Even in their confidence it could be wrong.
It reminds me of signature authenticators. They are just saying "Yeah this is something this author/celeb could have signed", or "This is something the celeb def did not sign", but they can't be never 100% sure.
> Providers of AI systems, including general-purpose AI systems, generating synthetic audio, image, video or text content, shall ensure that the outputs of the AI system are marked in a machine-readable format and detectable as artificially generated or manipulated. Providers shall ensure their technical solutions are effective, interoperable, robust and reliable as far as this is technically feasible, taking into account the specificities and limitations of various types of content, the costs of implementation and the generally acknowledged state of the art, as may be reflected in relevant technical standards. This obligation shall not apply to the extent the AI systems perform an assistive function for standard editing or do not substantially alter the input data provided by the deployer or the semantics thereof, or where authorised by law to detect, prevent, investigate or prosecute criminal offences.
https://eur-lex.europa.eu/eli/reg/2024/1689/2026-07-27/eng
It definitely makes Pangram's job a bit easier.