Recursos/Treinamento de modelo/Preparação de dados

Etapa do pipeline

Dados pessoais e segredos (PII)

Antes do treinamento, e-mails, números de telefone, números de cartão, IBANs, documentos de identidade nacionais e chaves de API são detectados e, por padrão, substituídos por espaços reservados, porque um modelo com fine-tuning pode repetir seu texto de treinamento palavra por palavra.

Capítulo 54 min de leitura4 referências

O que é

PII — informações de identificação pessoal — é qualquer dado que identifique uma pessoa: um endereço de e-mail, um número de telefone, um documento de identidade nacional, uma conta bancária. Os registros de chat estão cheios disso, porque as pessoas colam seus dados ao pedir ajuda. Segredos, como chaves de API e senhas, acabam lá pelo mesmo motivo. Esta etapa os encontra nos dados de treinamento e decide o que acontece com eles antes que os dados sejam enviados para o treinamento.

Por que um modelo pode vazar dados de treinamento

O treinamento força o modelo a tornar cada resposta-alvo mais provável. Para a maior parte do texto, isso significa aprender padrões, mas para sequências raras e exatas — um IBAN, um endereço de e-mail, uma chave —, a única maneira de prevê-las é memorizá-las. Esse texto memorizado pode então reaparecer quando um prompt posterior se assemelhar ao contexto original.

Isso não é hipotético. Carlini et al. (2020) extraíram centenas de sequências literais dos dados de treinamento do GPT-2, incluindo nomes, números de telefone e endereços de e-mail, ao enviar prompts ao modelo e filtrar suas saídas. Trabalhos posteriores descobriram que a memorização cresce com o tamanho do modelo e com a frequência com que um exemplo se repete, e Lukas et al. (2023) mostraram que métodos comuns de limpeza reduzem, mas não eliminam, o vazamento de PII. Os dados de fine-tuning formam um conjunto muito menor, visto várias vezes (cada época é uma nova passagem), o que torna a memorização mais fácil, e não mais difícil.

Como funciona

A detecção examina o texto da conversa em busca de identificadores com uma estrutura reconhecível: endereços de e-mail, números de telefone, números de cartão de pagamento, IBANs, números de identidade nacional e chaves de API. Cada correspondência é então tratada de acordo com o modo que você escolher. Com a opção Ocultar, o valor é substituído por um espaço reservado do mesmo tipo:

detectado → marcador
Email        dana.k@example.com              →  [EMAIL]
Phone        +44 20 7946 0958                →  [PHONE]
Card number  4111 1111 1111 1111             →  [CARD]
IBAN         GB33 BUKB 2020 1555 5555 55     →  [IBAN]
API key      sk_live_…                       →  [API_KEY]
No conjunto de dados

userOlá, sou Dana. Por favor, envie o reembolso para GB33 BUKB 2020 1555 5555 55 e confirme em dana.k@example.com ou +44 20 7946 0958.

No arquivo de treinamento · Anonimizar

userOlá, sou Dana. Por favor, envie o reembolso para [IBAN] e confirme em [EMAIL] ou [PHONE].

dados pessoais detectadosplaceholder do mesmo tipo
A mesma mensagem do usuário antes e depois da anonimização. O modelo ainda aprende o formato da solicitação — um reembolso para uma conta, uma confirmação por e-mail —, mas nenhum número de conta, endereço ou número de telefone real chega ao arquivo de treinamento.

Os espaços reservados mantêm o sinal de treinamento intacto. O modelo ainda aprende que uma solicitação de reembolso menciona uma conta e que uma boa resposta pede a confirmação por e-mail; ele simplesmente nunca vê uma conta real. Durante o uso, ele às vezes escreverá [EMAIL] onde um valor deveria estar, o que é uma falha muito melhor do que escrever o endereço de um cliente real.

OcultarTípico Recomendado#

Substitua cada valor detectado por um espaço reservado tipado, como [EMAIL] ou [IBAN]. O padrão recomendado: o modelo aprende o padrão, não os dados.

Sinalizar#

Mantenha os valores, mas relate quantos foram encontrados e onde. Use isso para auditar um conjunto de dados antes de decidir, ou quando os identificadores forem dados de teste sintéticos e você precisar que o modelo reproduza seu formato exato.

Ignorar#

Não fazer nada. Apropriado apenas quando se sabe que os dados não contêm informações pessoais reais, por exemplo, em conversas totalmente sintéticas.

Exemplo prático: uma conversa sobre reembolso
  1. O usuário escreve: “Reembolso para GB33 BUKB 2020 1555 5555 55, confirmar em dana.k@example.com.” O assistente responde: “Concluído — uma confirmação está a caminho de dana.k@example.com.”
  2. A detecção encontra um IBAN e o mesmo endereço de e-mail duas vezes, uma na mensagem do usuário e outra na resposta alvo.
  3. Com a opção Ocultar, ambas as mensagens são reescritas: o alvo se torna “Concluído — uma confirmação está a caminho de [EMAIL].”
  4. O e-mail no alvo é o mais perigoso: o texto alvo é o que o modelo é treinado para produzir. Sem ocultação, um usuário futuro perguntando sobre reembolsos poderia receber o endereço de Dana.
  5. Com a opção Sinalizar, o relatório mostraria 3 itens em 1 conversa, e o arquivo de treinamento os manteria.

O que a detecção não consegue capturar

A detecção de padrões é confiável para identificadores com um formato fixo. Ela é muito mais fraca em textos livres: o nome de uma pessoa, um endereço residencial escrito em prosa, um diagnóstico ou um detalhe que identifica alguém apenas em combinação (“o CFO do nosso escritório em Lyon”). Trate a ocultação de dados como uma rede de segurança, não como uma garantia, e leia uma amostra do conjunto de dados com isso em mente — especialmente quando os chats abordarem questões de saúde, finanças, RH ou assuntos jurídicos.

Erros comuns

  • Ocultar apenas as mensagens do usuário: as respostas do assistente são os alvos que o modelo é treinado para reproduzir, portanto, são as que mais importam.
  • Tratar a ocultação automática como completa. Nomes, endereços e fatos sensíveis em prosa não são identificadores estruturados.
  • Usar a opção Sinalizar “apenas por enquanto” e treinar no arquivo sinalizado de qualquer maneira.
  • Esquecer segredos: chaves de API coladas em um chat de suporte são tão perigosas na saída de um modelo quanto dados pessoais.
  • Alterar o modo de ocultação entre duas preparações e, em seguida, comparar os modelos resultantes como se apenas as configurações de treinamento fossem diferentes.

Referências e leitura complementar

Fontes externas abrem em uma nova aba.

  1. 01Extracting Training Data from Large Language ModelsCarlini et al., 2020 · arXiv · arxiv.orgO estudo que demonstrou que modelos de linguagem podem ser induzidos por prompts a revelar dados pessoais de seu conjunto de treinamento.
  2. 02Quantifying Memorization Across Neural Language ModelsCarlini et al., 2022 · arXiv · arxiv.orgComo a memorização cresce com o tamanho do modelo, a duplicação e o comprimento do prompt.
  3. 03Analyzing Leakage of Personally Identifiable Information in Language ModelsLukas et al., 2023 · arXiv · arxiv.orgMede o quão bem a limpeza e outras defesas realmente reduzem o vazamento de PII.
  4. 04Personal dataWikipedia · en.wikipedia.orgDefinições de dados pessoais e PII em estruturas jurídicas, como o GDPR.

Transforme semanas de trabalho especializado em minutos

Veja como o Scalata se adapta à sua equipe, aos seus dados e aos seus Controles.

Fale com vendas