Memorization In Stable Diffusion Is Unexpectedly Driven by CLIP Embeddings
Este artigo revela que a memorização no Stable Diffusion é impulsionada de forma inesperada pela duplicação estrutural do embedding de fim de texto nos tokens de preenchimento, o que amplifica sua influência, e propõe estratégias simples de tempo de inferência para mitigar esse problema sem degradar a qualidade da imagem.
Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
O Grande Problema: O Modelo está "Preso" em Memórias
Imagine um artista talentoso (Stable Diffusion) que foi treinado em milhões de fotos. Às vezes, quando você pede a esse artista para desenhar algo novo, ele acidentalmente copia uma foto específica de seu conjunto de treinamento exatamente, pixel por pixel. Isso é chamado de memorização. É um risco de privacidade e direitos autorais porque o modelo não está criando algo novo; está apenas regurgitando dados antigos.
Cientistas têm tentado descobrir por que isso acontece. A maioria das teorias focava nas palavras que você digita (o prompt) ou na matemática interna do modelo. Este artigo, no entanto, encontrou um culpado surpreendente escondido no "preenchimento" das instruções.
O Cenário: Como o Artista Lê as Instruções
Para entender a descoberta, precisamos olhar como o artista lê suas instruções.
- O Prompt: Você digita uma frase como "Um gato em um tapete".
- O Limite: O artista só pode ler instruções até um certo comprimento (77 "tokens" ou partes de palavras).
- O Preenchimento: Se sua frase é curta (por exemplo, apenas 10 palavras), o computador precisa preencher os 67 espaços vazios restantes para atingir o limite de 77.
A Maneira Antiga (Stable Diffusion v1.4):
O computador preenche esses espaços vazios com um token especial "Fim do Texto" (vamos chamá-lo de <eot>).
- A Analogia: Imagine que você está lendo uma história, mas a última página está em branco. Em vez de deixá-la em branco, a impressora continua carimbando as palavras "FIM" repetidamente até que a página esteja cheia.
- Então, para um prompt curto, o artista vê:
[Suas Palavras] + [FIM] + [FIM] + [FIM]...(repetido 60+ vezes).
A Descoberta: O Efeito "Câmara de Eco"
Os autores do artigo descobriram que o artista depende pesadamente desses carimbos repetidos de "FIM" para decidir o que desenhar, especialmente ao memorizar imagens.
Aqui está a cadeia de eventos que eles encontraram:
- Incompatibilidade no Treinamento: O sistema que traduz palavras em matemática (chamado CLIP) foi treinado para tratar o primeiro token "FIM" como o resumo mais importante de toda a frase. Ele aprendeu a ignorar as palavras reais e os tokens de preenchimento.
- O Glitch: Como o computador preenche o espaço vazio com mais tokens "FIM", o artista de repente vê o token "FIM" repetido dezenas de vezes.
- A Amplificação: O artista pensa: "Uau, há tantos tokens 'FIM'! Isso deve ser a parte mais importante da instrução!"
- O Resultado: O modelo foca excessivamente nesse token repetido. Se esse padrão específico de "FIM" estava associado a uma imagem protegida por direitos autorais durante o treinamento, o modelo fica preso em um loop e reproduz exatamente essa imagem, ignorando seu pedido real.
A Metáfora:
Imagine um coral onde o maestro (o modelo) deveria ouvir o solista (seu prompt). Mas, os membros do coral estão todos gritando "PARE!" (o token de preenchimento) repetidamente. O maestro fica tão sobrecarregado com os gritos que para de ouvir o solista e começa apenas a marchar em círculo com base nos comandos "PARE!". Se o comando "PARE!" estava previamente ligado a uma dança específica, o coral apenas repete essa dança, ignorando a música.
A Reviravolta Surpreendente: As Palavras Não Importam Tanto
Os autores testaram isso removendo as palavras reais do prompt e substituindo-as pelo token "Fim".
- Resultado: O modelo ainda conseguia gerar uma imagem reconhecível.
- Conclusão: As palavras reais que você digitou (o prompt) contribuem muito pouco para a parte de memorização do processo. Os tokens de "preenchimento" estão fazendo o trabalho pesado para o comportamento de cópia.
A Solução: Duas Soluções Simples
O artigo propõe duas maneiras fáceis de impedir isso sem re-treinar todo o modelo ou desacelerá-lo. Ambas são correções de "tempo de inferência", o que significa que você pode aplicá-las logo antes da imagem ser gerada.
Correção 1: Alterar o Token de Preenchimento
- A Ação: Em vez de preencher o espaço vazio com "FIM" (
<eot>), substitua-o por um símbolo neutro, como um ponto de exclamação (!). - Por que funciona: Isso quebra a câmara de eco. O modelo não vê mais 60 cópias do token "Fim". Ele vê um símbolo neutro que não carrega o mesmo peso pesado.
- Bônus: Eles também ocultam (mascaram) o único token "Fim" original para maior segurança.
Correção 2: Silenciar o Preenchimento
- A Ação: Mantenha os tokens como estão, mas simplesmente diminua o volume (mascare) nos tokens "Fim" repetidos para que o modelo preste menos atenção a eles.
- Por que funciona: Reduz a influência do "eco" sem alterar o tokenizador.
A Prova: Por que a Versão 2.1 é Melhor
Os autores notaram que o Stable Diffusion v2.1 (uma versão mais recente) não tem esse problema de memorização tão grave.
- Por quê? Acontece que os criadores da v2.1 corrigiram acidentalmente esse problema. Eles mudaram para um sistema de texto diferente (OpenCLIP) que usa um símbolo neutro para preenchimento em vez de repetir "FIM".
- A Lição: O fato de a v2.1 ter naturalmente parado de memorizar tanto prova que o "token Fim repetido" foi de fato a principal causa do problema na v1.4.
Resumo
- O Problema: O Stable Diffusion às vezes copia imagens de treinamento exatamente.
- A Causa: Prompts curtos são preenchidos com tokens repetidos "Fim do Texto". O modelo confunde esses tokens repetidos com a parte mais importante da instrução, fazendo com que ele "sobreajuste" e memorize imagens específicas.
- A Correção: Altere o token de preenchimento para algo neutro (como
!) ou silencie os tokens repetidos. Isso impede a memorização mantendo a alta qualidade da imagem. - O Benefício: Você pode usar essa correção imediatamente sem precisar re-treinar a IA ou detectar quais imagens são arriscadas anteriormente.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.