A inteligência artificial generativa (GenAI) pode gerar uma variedade maior de conteúdo extremamente diversificado em escalas antes inimagináveis. Embora a maior parte desse uso seja para fins legítimos, há uma preocupação de que isso possa contribuir para problemas de desinformação e atribuição incorreta. A marca d'água é uma técnica para mitigar esses possíveis impactos. Marcas d'água imperceptíveis para humanos podem ser aplicadas a conteúdo gerado por IA, e os modelos de detecção podem pontuar conteúdo arbitrário para indicar a probabilidade de ele ter sido marcado.
O SynthID é uma tecnologia do Google DeepMind que marca e identifica conteúdo gerado por IA ao incorporar marcas-d'água digitais diretamente em imagens, áudio, texto ou vídeo gerados por IA. O SynthID Text foi aberto para disponibilizar a marca d'água para geração de texto aos desenvolvedores. Leia o artigo na Nature para uma descrição técnica mais completa do método.
Uma implementação de produção do SynthID Text está disponível no Hugging Face Transformers v4.46.0+, que pode ser testado no SynthID Text Space oficial. Uma implementação de referência também está disponível no GitHub e pode ser útil para administradores e colaboradores de código aberto que querem usar essa técnica em outros frameworks.
Aplicação de marca-d'água
Na prática, o SynthID Text é um processador de logits, aplicado ao pipeline de geração do modelo após Top-K e Top-P, que aumenta os logits do modelo usando uma função g pseudoaleatória para codificar informações de marca d'água de uma maneira que ajude a determinar se o texto foi gerado pelo modelo, sem afetar significativamente a qualidade do texto. Consulte o artigo para conferir uma descrição técnica completa do algoritmo e análises de como diferentes valores de configuração afetam o desempenho.
As marcas d'água são configuradas para parametrizar a função g e como ela é aplicada durante a geração. Cada configuração de marca d'água que você usa precisa ser armazenada de forma segura e particular. Caso contrário, sua marca d'água poderá ser facilmente replicada por outras pessoas.
É necessário definir dois parâmetros em cada configuração de marca d'água:
- O parâmetro
keys
é uma lista de números inteiros aleatórios exclusivos que são usados para calcular as pontuações da função g em todo o vocabulário do modelo. O tamanho dessa lista determina quantas camadas de marca d'água são aplicadas. Consulte o apêndice C.1 no artigo para mais detalhes. - O parâmetro
ngram_len
é usado para equilibrar a robustez e a detectabilidade. Quanto maior o valor, mais detectável será a marca d'água, mas isso torna a marca mais frágil para mudanças. Um comprimento de 5 é um bom valor padrão.
Você pode configurar a marca d'água com base nas suas necessidades de performance:
- Uma tabela de amostragem é configurada por duas propriedades,
sampling_table_size
esampling_table_seed
. Você quer usar umsampling_table_size
de pelo menos \( 2^{16} \) para garantir uma função g imparcial e estável ao fazer a amostragem, mas lembre-se de que o tamanho da tabela de amostragem afeta a quantidade de memória necessária no momento da inferência. Você pode usar qualquer número inteiro comosampling_table_seed
. - n-grams repetidos nos tokens anteriores de
context_history_size
não são marcados com marca d'água para melhorar a detectabilidade.
Não é necessário nenhum treinamento adicional para gerar texto com uma marca d'água
do SynthID Text usando seus modelos, apenas uma
configuração de marca d'água que é transmitida ao método
.generate()
do modelo para ativar o processador de logits do SynthID Text. Consulte a
postagem do blog e o Space para conferir exemplos de código
que mostram como aplicar uma marca d'água na biblioteca Transformers.
Detecção e verificação de marca d'água
A detecção de marca d'água é probabilística. Um detector bayesiano é fornecido com Hugging Face Transformers e no GitHub. Esse detector pode produzir três estados de detecção possíveis (marca-d'água, sem marca-d'água ou incerto) e o comportamento pode ser personalizado definindo dois valores de limite para atingir uma taxa específica de falso positivo e falso negativo. Consulte o Apêndice C.8 no artigo para mais detalhes.
Os modelos que usam o mesmo tokenizer também podem compartilhar a configuração e o detector de marca d'água, compartilhando uma marca d'água comum, desde que o conjunto de treinamento do detector inclua exemplos de todos os modelos que compartilham a marca d'água.
Depois de treinar um detector, você pode escolher se e como ele será exposto aos usuários e ao público em geral.
- A opção totalmente particular não libera nem expõe o detector de forma alguma.
- A opção semi-particular não libera o detector, mas o expõe por uma API.
- A opção public libera o detector para que outras pessoas façam o download e usem.
Você e sua organização precisam decidir qual abordagem de verificação de detecção é melhor para suas necessidades, com base na sua capacidade de oferecer suporte à infraestrutura e aos processos associados.
Limitações
As marcas d'água de texto SynthID são resistentes a algumas transformações, como cortar partes do texto, modificar algumas palavras ou parafrasear levemente, mas esse método tem limitações.
- A aplicação de marca d'água é menos eficaz em respostas factuais, porque há menos oportunidades de aumentar a geração sem diminuir a precisão.
- Os escores de confiança do detector podem ser bastante reduzidos quando um texto gerado por IA é reescrito completamente ou traduzido para outro idioma.
O SynthID Text não foi projetado para impedir diretamente que adversários motivados causem danos. No entanto, isso pode dificultar o uso de conteúdo gerado por IA para fins maliciosos e pode ser combinado com outras abordagens para oferecer uma cobertura melhor em tipos de conteúdo e plataformas.