Curso
Com o conteúdo gerado por IA se espalhando rápido e a tecnologia avançando, tá ficando cada vez mais difícil e importante diferenciar o que foi feito por humanos e o que foi feito por máquinas.
Marcação d'água com IA, como o SynthID, querem deixar a origem do conteúdo digital fácil de rastrear e ajudar os usuários a verificar se é autêntico. Neste artigo, vou explicar o que é o SynthID, como funciona e como você pode usá-lo para colocar marcas d'água em textos.
O que é SynthID?
SynthID é uma ferramenta que a Google DeepMind criou para colocar marcas d'água invisíveis em conteúdos gerados por IA. Essas marcas d'água foram feitas pra ajudar a identificar se uma mídia foi criada por inteligência artificial.
O objetivo da marca d'água com IA é tornar o conteúdo digital mais transparente e rastreável, especialmente à medida que a IA se torna mais avançada. Sem marcadores confiáveis, o material gerado por IA pode facilmente se misturar e se espalhar sem ser notado, causando vários problemas, como a disseminação de notícias falsas e deepfakes ou o uso não autorizado de trabalhos criativos.
O SynthID dá suporte a marcas d'água em textos, imagens, vídeos e áudio. A abordagem dele se adapta a cada tipo de mídia, o que vamos ver melhor mais tarde. A marca d'água foi feita pra aguentar edições comuns, tipo cortar, filtrar, comprimir e recortar, o que a deixa super resistente.
O SynthID já está integrado aos produtos de IA generativa do Google: Gemini para texto, Imagen para imagens, Lyria para áudio e Veo para vídeo. Isso quer dizer que esses modelos podem colocar marcas d'água imperceptíveis diretamente no que eles produzem. Junto com o portal SynthID Detector, o Google oferece uma solução completa de marca d'água que permite aos usuários verificar rapidamente o conteúdo gerado por IA em todos os formatos compatíveis.
Como funciona o SynthID?
Como o processo de marca d'água funciona em detalhes depende do formato da mídia. Vou explicar o procedimento e a resiliência deles um por um.
SynthID para imagens e vídeos
Para dados de imagens, o SynthID usa duas redes neurais. O primeiro altera sutilmente os valores individuais das cores (valores dos pixels) na imagem de forma tão mínima que o olho humano não consegue perceber qualquer diferença.
As alterações são escolhidas de forma que a marca d'água continue visível para a segunda rede neural, mesmo depois de edições comuns nas imagens, como recorte, compressão, filtragem, rotação ou até mesmo capturas de tela. Isso torna a marca d'água especialmente resistente às manipulações comuns que geralmente acontecem quando as imagens são compartilhadas ou reutilizadas.
SynthID para vídeos
Cada quadro de um vídeo recebe o mesmo tratamento que as imagens individuais: cada quadro é marcado individualmente com uma marca d'água, garantindo que a marca permaneça detectável, independentemente do quanto o vídeo seja cortado. Isso faz com que a marca d'água invisível do SynthID seja resistente a edições básicas, como corte, compressão ou pequenos recortes.
Usuários determinados ou serviços comerciais de contorno ainda podem remover ou ocultar a marca d'água, especialmente quando querem passar pelos filtros de mídia em plataformas de publicidade ou para moderação de conteúdo. Por exemplo, usar filtros pesados, tipo distorção de cor ou mudanças radicais de contraste, ou recodificar o vídeo com ajustes grandes na compressão, taxa de quadros ou perfil de cor, pode estragar a marca d'água a ponto de dificultar a detecção.
SynthID para áudio
Para áudio, o SynthID transforma a forma de onda num espectrograma, que é uma representação visual do espectro de frequências num sinal de áudio conforme ele muda com o tempo. Depois, coloca a marca d'água no espectrograma e, por fim, reconstrói o áudio a partir dele. A marca d'água não dá pra ouvir, mas é resistente ao processamento de áudio normal.
Para lidar com formatos convencionais, a marca d'água é incorporada de forma a resistir à compressão com perda de dados. Mas, manipulações extremas, tipo mudar o tom ou esticar o tempo, podem distorcer o espectrograma, diminuindo a precisão da detecção. Além disso, mesmo sendo resistente à compressão MP3, a eficácia do SynthID pode variar entre formatos de áudio exclusivos.
SynthID para texto
Quando um LLM gera texto, ele divide a linguagem em tokens — palavras, caracteres ou partes de palavras — e, em seguida, prevê o próximo token com base em pontuações de probabilidade. O SynthID usa essa característica para colocar marcas d'água durante o processo de geração, ajustando essas pontuações de probabilidade. A modificação é feita de forma controlada e pseudoaleatória, o que torna certas escolhas de palavras um pouco mais prováveis.
O padrão estatístico que aparece no texto não dá pra perceber e não afeta o significado, a qualidade ou até a criatividade do texto gerado. Quando é preciso detectar algo, o SynthID analisa o texto em busca desses padrões de probabilidade sutis, comparando-os com o que seria esperado de conteúdo com e sem marca d'água. A marca d'água geralmente sobrevive a edições leves e parafraseamentos, embora possa ser enfraquecida por reescritas ou traduções pesadas.
Limitações do SynthID
O SynthID tem umas limitações bem significativas na hora de usar na vida real. Embora sua marca d'água de texto funcione bem em todos os idiomas — ao contrário dos detectores pós-hoc, que falham em idiomas não treinados —, as taxas de detecção caem bastante quando há muita paráfrase ou tradução.
Para modalidades que não são texto (imagens, vídeo, áudio), não tem métricas de precisão publicadas, o que não deixa validar quantitativamente as afirmações de resiliência do Google.
Além disso, a incorporação de marcas d'água é menos eficaz para respostas factuais, onde as opções limitadas de geração restringem a inserção de padrões sem comprometer a precisão.
Como outras ferramentas de detecção de IA, o SynthID não explica como chega às suas decisões para evitar que as pessoas tentem burlar o sistema. Se os critérios ou algoritmos de detecção exatos fossem divulgados, seria muito mais fácil para os usuários manipularem o conteúdo especificamente para evitar a detecção.
Além disso, os modelos por trás disso são bem complexos e geralmente funcionam com padrões estatísticos ou pontuações de probabilidade, o que torna as decisões difíceis de entender, mesmo para quem é especialista.
Atualmente, a detecção mais confiável do SynthID é feita com conteúdo gerado pelos próprios modelos do Google, onde a marca d'água está bem integrada. Embora exista uma versão de código aberto do SynthID-Text que pode ser usada com modelos de linguagem compatíveis através do Hugging Face Transformers, as taxas de detecção e robustez são geralmente mais baixas em comparação com as implementações nativas do Google.
Por isso, o SynthID ainda não dá pra usar em qualquer lugar e pode não identificar direitinho o conteúdo gerado por IA de outros fornecedores, como OpenAI ou Meta, principalmente quando o conteúdo é editado por sistemas de IA diferentes.
Implementação prática: SynthID para texto
Vamos começar! Você não precisa de nenhum acesso especial à API do Google — o SynthID funciona localmente dentro da estrutura do transformers
. Tudo o que você precisa é:
- Um ambiente Python (versão 3.8 ou superior) com os pacotes
transformers
etorch
instalados - Acesse um LLM pelo Hugging Face.
Criando o ambiente
O ambiente Python pode, por exemplo, ser configurado usando Anaconda e os comandos a seguir. Lembre-se de que a versão do pacote transformers
precisa ser 4.46.0 ou mais recente para funcionar com o SynthID para texto.
conda create -n synthid-env python=3.9
conda activate synthid-env
pip install "transformers>=4.46.0" torch
Baixando o modelo
Para gerar o texto, vamos usar o modelo leve gemma-2b
, porque ele foi feito especialmente para funcionar bem em computadores comuns e ainda assim dar um ótimo desempenho em várias tarefas de linguagem. Como é um modelo fechado, é preciso entrar numa conta Hugging Face e aceitar os termos da licença do modelo no navegador.
O modelo Gemma-2b está disponível em dois formatos principais:
- A variante do
safetensors
para usar com PyTorch e Hugging Face Transformers - A variante
gguf
para motores de inferência especializados, como llama.cpp
Para este tutorial, você só precisa dos arquivos safetensors
, pois eles são necessários para carregar e executar o modelo em Python com transformers
. Mas você também precisa baixar os arquivos de configuração e tokenizador, porque eles têm informações importantes sobre a arquitetura do modelo e como o texto é processado. Sem eles, o modelo não pode ser carregado ou usado direito, não importa o formato de peso que você escolher.
huggingface-cli download google/gemma-2b model-00001-of-00002.safetensors model-00002-of-00002.safetensors config.json tokenizer.json tokenizer.model tokenizer_config.json special_tokens_map.json
Carregando o modelo
Para poder usar o Gemma-2b ou outros modelos com gate da Hugging Face, também precisamos fornecer um token de acesso da Hugging Face. O token de acesso só precisa das permissões de leitura . Quando estiver criando seu token nas configurações do Hugging Face, escolha a função “read” (ler); não precisa de permissões de gravação ou administração.
# Logging in to Hugging Face
from huggingface_hub import login
login("<your_huggingface_token>")
Precisamos importar AutoTokenizer
e AutoModelForCausalLM
do pacote transformers
e inicializar ambos com o modelo de nossa escolha.
# Loading the models
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = "google/gemma-2b"
tokenizer = AutoTokenizer.from_pretrained(generator_model_name)
model = AutoModelForCausalLM.from_pretrained(generator_model_name)
Criando a configuração do SynthID
Para colocar marcas d'água SynthID em textos gerados por IA, você precisa criar um objeto de configuração de marca d'água usando SynthIDTextWatermarkingConfig
. Esse objeto controla como as marcas d'água são colocadas durante a geração do texto.
O parâmetro “ keys
” é uma lista de números inteiros aleatórios (normalmente entre 20 e 30 valores) que servem como sua assinatura digital privada. Eles determinam como as probabilidades de escolha de palavras são sutilmente modificadas durante a geração do texto para criar um padrão detectável. Lembre-se de que esses keys
são secretos — se forem expostos, os invasores podem falsificar marcas d'água ou gerar textos de IA indetectáveis.
O parâmetro ngram_len
define o comprimento da sequência de palavras usada para a análise do padrão da marca d'água. Quanto mais baixos forem os valores, mais provável que as marcas d'água resistam a edições pesadas, mas mais difíceis serão de detectar. Por outro lado, valores mais altos melhoram a detecção, mas falham em pequenas edições. Recomenda-se um valor de 5 como o melhor compromisso para uso no mundo real.
from transformers import SynthIDTextWatermarkingConfig
# SynthID configuration
watermark_config = SynthIDTextWatermarkingConfig(
keys=[634, 300, 846, 15, 310, ...], # list of 20-30 integer numbers, keep this secret!
ngram_len=5
)
Como colocar uma marca d'água no texto
A solicitação do texto que vai receber a marca d'água precisa primeiro ser tokenizada em um tensor PyTorch, para que o modelo receba os tokens numéricos que ele entende. Esse objeto " tokenized_prompt
" é então passado para o método " generate()
" do modelo junto com o objeto de configuração. O parâmetro “ do_sample
” precisa ser definido como “ True
” para permitir a amostragem compatível com marca d'água.
tokenized_prompt = tokenizer(
["Answer in two sentences: What is AI?"],
return_tensors=”pt”
)
output_sequences = model.generate(
**tokenized_prompt,
watermarking_config=watermark_config,,
do_sample=True
)
Isso muda as chances de escolha de palavras durante a geração, colocando um padrão invisível sem mexer na qualidade do texto. Para garantir que você possa usar de novo, use o mesmo keys
em todas as sessões, assim as marcas d'água vão ser detectadas de forma consistente.
Neste exemplo, pedimos ao modelo para nos dizer sua definição de IA. Vamos primeiro ver a resposta convertendo os tokens de volta em texto legível usando o método `batch_decode()’.
watermarked_text = tokenizer.batch_decode(
output_sequences , # Model's tokenized output
skip_special_tokens=True # Removes control tokens like [BOS], [EOS], etc.
)
print(watermarked_text)
['Answer in two sentences: What is AI?
Answer:
Artificial intelligence (AI) is a branch of computer science that deals with the development of intelligent machines that can perform tasks that normally require human intelligence, such as visual perception, speech recognition, decision-making, and language translation.
AI applications include autonomous vehicles, chatbots, and virtual personal assistants.']
Como detectar marcas d'água de IA em textos
Quando se trata de detectar marcas d'água SynthID em textos gerados por IA, existem atualmente três opções práticas disponíveis.
Para demonstração e experimentação, o Hugging Face Transformers oferece uma classe de detector bayesiano. Essa classe permite testar o fluxo de trabalho de detecção em código Python usando um modelo fictício de código aberto. Mas, é importante lembrar que esse modelo é só pra demonstração e não tem precisão confiável nem robustez pra produção.
Para organizações que precisam de detecção personalizada, a classe de detector bayesiano pode ser usada para criar detectores personalizados compatíveis com SynthID. Esse exemplo completo mostra como é possível treinar em texto com marca d'água gerado com uma configuração específica e um tokenizador compartilhado para permitir a verificação consistente da marca d'água em vários modelos internos.
Depois de treinados, os detectores podem ser carregados em um repositório privado do Hugging Face Hub para acesso seguro da organização, e o Responsible GenAI Toolkit do Google oferece orientações adicionais para a implantação em produção.
Para detectar com segurança marcas d'água SynthID em conteúdo gerado pelos modelos de IA do Google (como Gemini ou Imagen), o Google oferece um portal SynthID Detector na nuvem. Portal do Detector SynthID. O serviço é fácil de usar e não precisa de programação, mas é exclusivo, só está disponível por lista de espera e só dá para verificar conteúdo do próprio Google. Não tem API pública ou versão local para desenvolvedores no momento.
Mais conversas sobre SynthID
Padronização e privacidade dos dados
O SynthID não foi adotado como padrão em toda a indústria, já que grandes empresas como a Microsoft e a Meta continuam usando seus próprios sistemas de marca d'água, criando um ecossistema fragmentado onde a detecção entre plataformas continua ineficaz. Atualmente, não existe um protocolo de avaliação padronizado para a robustez das marcas d'água em textos, imagens, áudio e vídeo.
Parcerias com a indústria — tipo a que a gente tem com a Nvidia, que usa o SynthID na plataforma Cosmos —, mas são raras. Então, mesmo com um futuro promissor, o SynthID ainda está longe de ser um padrão aceito por todo mundo.
Ao contrário do que alguns pensam, o SynthID não permite que o Google te vigie ou acompanhe o que você faz, porque a marca d'água é só um identificador passivo que aparece quando você cria o som e precisa ser enviado de boa vontade para o portal SynthID Detector para ser verificado. Não tem como saber se o Google fica de olho no que é distribuído ou usado além do processo de verificação e exclusão do portal. O Google não disse se os arquivos enviados ficam guardados por muito tempo ou se são reutilizados, o que pode ser um problema de privacidade.
Implicações legais e sociais
Tirar marcas d'água de conteúdo gerado por IA complica a aplicação dos direitos autorais, principalmente porque leis como a Lei de IA da UE podem ser usadas para proteger essas marcas. Lei da IA da UE não definem claramente a propriedade dos resultados da IA. Embora a lei COPIED (2024) dos EUA criminalize essa remoção, os invasores usam brechas — como traduzir textos ou reeditar mídias — para tirar marcas d'água sem sofrer consequências legais. Essa ambiguidade deixa os criadores vulneráveis.
Ferramentas como o SynthID, que só funcionam no Google, não dão conta do problema, porque só uma pequena parte das postagens tem marcas d'água que a gente consegue ver. Marcas d'água estáticas por si só não conseguem combater a desinformação gerada por IA por causa de vulnerabilidades técnicas, falsos positivos e incompatibilidade de plataformas. Na pior das hipóteses, ferramentas como o SynthID podem acabar criando uma confiança exagerada, dando a entender que a detecção é confiável, mas falhando com conteúdo que não é do Google ou com mídia editada.
Marcas d'água gerativas, como o SynthID-Text, não são uma resposta completa para a detecção de IA; elas são mais uma ferramenta tática que complementa outras estratégias. A eficácia depende da colaboração entre os fornecedores que realmente colocam a marca d'água durante a geração do texto. Para identificar textos gerados por IA a partir de fontes que não usam marcas d'água, ainda são necessários métodos alternativos, como a detecção pós-hoc.
Conclusão
O SynthID oferece uma maneira de colocar marcas d'água e verificar textos gerados por IA, tornando a origem do conteúdo mais transparente na era da mídia sintética. Mas, a eficácia disso é meio limitada porque não tem padrões para toda a indústria e é fácil tirar ou passar por cima das marcas d'água.
Para saber mais sobre marca d'água com IA e outras práticas responsáveis de IA, dá uma olhada nesses recursos: