SynthID: ferramentas para adicionar marca-d'água e detectar texto gerado por LLM

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 e sampling_table_seed. Você quer usar um sampling_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 como sampling_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.