Como conter GPT-3
A OpenAI está se preparando para abrir uma API comercial para GPT-3, sua maior e mais nova rede neural para geração de texto. Em preparação, a empresa está criando um sistema de filtragem de conteúdo para evitar a publicação de informações pessoais de pessoas.
Engenheiros estão desenvolvendo esse sistema, por exemplo, para não distribuir telefones pessoais. O trabalho já está em andamento há mais de um ano, e o laboratório de aprendizado de máquina de San Francisco espera lançar a API ainda este ano.
Por que você precisa de tal filtro?
Em dezembro de 2020, cientistas da computação de várias instituições educacionais e empresas - por exemplo, Stanford, UC Berkeley, OpenAI e Google - colaboraram para mostrar que a GPT-2, a predecessora da GPT-3, pode ser provocada para ser incluída no texto ele gera informações pessoais de pessoas. Essas informações podem incluir nomes, endereços, números de telefone e números de previdência social das pessoas.
Além do mais, a equipe descobriu que pelo menos 0,1% de todos os textos que o GPT-2 gerou - e isso é estimado de forma conservadora - citou longos trechos de texto de documentos no conjunto de dados de treinamento. Em outras palavras, milhões de páginas de texto publicamente disponível coletadas da Internet para treinamento de uma rede neural contêm informações pessoais vazadas ou publicadas por engano, ou conteúdo protegido por direitos autorais. E todos esses dados vão para a saída de texto do GPT-2.
A equipe de pesquisa também observou que as informações pessoais também podem ser recuperadas de conversas com GPT-2, embora essas entradas apareçam apenas uma vez nos dados de treinamento.
E não só esses pesquisadores perceberam esse problema.
Hilary Mason, cofundadora da Hidden Door, uma plataforma online para jogos de texto, estava brincando com acesso público ao GPT-2 quando percebeu algo estranho. No final da nota sobre o crime gerada pela rede neural, um número de telefone foi fornecido e estava escrito que pertencia ao departamento de polícia do Oregon. Seus primeiros três dígitos, 503, indicavam que poderia ser um número real - era o código de área que cobria Portland, Salem e Beaverton. Descobriu-se que o número era realmente real, só que não pertencia à polícia.
“Pareceu-me estranho”, disse-nos Mason. - Queria saber se era um número real e procurei na Internet. Acontece que não era o número de uma delegacia de polícia, mas um centro comunitário de Oregon. ”
As redes neurais OpenAI são treinadas para gerar texto encontrando padrões no que os humanos escreveram. Esse conhecimento é usado para prever uma palavra que provavelmente seguirá um texto fornecido pelo usuário. Isso permite que uma pessoa pergunte ao programa a primeira frase de uma história ou um poema, ou insira uma pergunta, e o código irá gerar o texto que o programa pensa que deveria ir a seguir. A rede neural construirá frases e parágrafos, artigos e respostas no chat, de modo que à primeira vista pareçam coerentes, mas em uma inspeção mais próxima acabam sendo lixo.
Algumas palavras estão mais intimamente relacionadas do que outras, e esses padrões não são esquecidos por GPT-2 e GPT-3. Por exemplo, a palavra "papel" tem mais probabilidade de aparecer ao lado das palavras "escrever" ou "madeira" do que com as palavras "concreto" ou "sapato". Ao digitar palavras como "ligar" ou "telefone", você aumenta a probabilidade de que esses padrões de linguagem apresentem algo intimamente relacionado a esses conceitos - por exemplo, os números de telefone das pessoas.
Uso criativo da memória?
É difícil dizer se o modelo cuspiu o número de telefone de alguém retirado dos dados de treinamento ou se apenas juntou alguns números aleatórios que inadvertidamente se transformaram no número correto. No exemplo acima, com o número de telefone de uma suposta delegacia de polícia em Oregon, Mason não forneceu um modelo de entrada que acionaria diretamente um número de telefone a ser recuperado da memória. Ela simplesmente pediu ao GPT-2 para gerar um trecho de texto e recebeu um artigo fictício com um número de telefone do centro comunitário.
Ela acredita que, neste caso, o número estava presente nos dados de treinamento do GPT-2 e a rede neural o salvou. Ela acredita que as palavras "Oregon" e "contatos" no texto fizeram com que a rede neural fornecesse um número de telefone. É provável que essas palavras tenham aparecido ao lado dos dez dígitos do número de telefone na página que foi salva no conjunto de dados de treinamento.
Mason queria ver a probabilidade de o GPT-2 gerar um número de telefone real e, por curiosidade, pediu à rede neural que criasse números contendo os dígitos 617 - o código de discagem de Boston, Massachusetts. E o GPT-2 forneceu uma lista de números como 617-XXX-XXXX, embora a maioria deles não fossem telefones válidos. É difícil dizer se a rede neural se lembrou dos números corretos ou se eles descobriram involuntariamente quando o GPT-2 preencheu os espaços vazios com números aleatórios. É possível que às vezes ela dê uma sequência que acaba sendo o número de telefone de alguém.
“Isso confunde a capacidade de criar dados a partir de modelos e recuperá-los da memória”, disse Mason. - Ela pode dar números de telefone reais sem motivo, mas a probabilidade de isso aumentar se você perguntar a ela diretamente. As construções de linguagem que chamam por um número de telefone não são muito diversas, então não é surpreendente que recebamos esses números ao sair. "
Se a GPT-3 fornecer um número de telefone em um chat ou em um artigo fictício, provavelmente é porque esses números foram encontrados em algum lugar na Internet e entraram nos dados de treinamento, embora haja uma pequena chance de que a rede neural os tenha criado por acidente, sem conhecê-los antes. Encontrar os números corretos nos dados de treinamento pode resolver essa questão.
O problema é que esses modelos, que funcionam segundo o princípio do aprendizado de máquina, em um produto comercial - por exemplo, em um chat de suporte - podem fornecer dados pessoais reais de uma pessoa que não queria ou não quer mais publicá-los , e certamente não o compartilhou para o propósito de seu uso em bots de bate-papo. Imagine que um invasor queira enganar as vítimas ou tirar vantagem de sua identidade e tudo o que ele precisa é executar um programa do OpenAI ou encontrar uma versão funcional dele em algum provedor e descobrir dados pessoais em uma conversa com um bot.
Cientistas e engenheiros já notaram que essa tecnologia pode violar leis que protegem dados pessoais, como o GDPR na Europa ou o CCPA na Califórnia. Os dados pessoais armazenados nas bases da rede neural como bases de treinamento, como pesos ou outras quantidades estão suficientemente protegidos? E se alguém pedir para excluir seus dados - eu tenho que treinar novamente a rede? Ou podemos simplesmente excluí-los do banco de dados? Os pesquisadores consideram essa área legalmente obscura.
Deve-se notar que hoje o risco de dano é mínimo - é muito difícil garantir que dados pessoais apareçam na saída do modelo de linguagem, além disso, o sistema é treinado em dados, a maioria dos quais públicos. No entanto, há temores de que, com o tempo, esses sistemas se tornem mais poderosos, consumam cada vez mais dados de cada vez mais fontes. Como resultado, se os engenheiros não pensarem cuidadosamente sobre como suas criações podem ser usadas para fins ruins, há o risco de que as ferramentas de IA disponíveis para todos forneçam dados pessoais das pessoas.
Ariel Herbert-Voss, um dos pesquisadores que estudou o OpenAI, disse que o GPT-2 e o GPT-3 geram texto contendo informações semelhantes a dados pessoais em cerca de 20% das vezes. Além disso, os próprios dados revelam-se reais em 1% dos casos. As tentativas de obter o número de telefone específico de alguém são bem-sucedidas em cerca de 1% das vezes.
As probabilidades podem parecer mínimas para você, mas se você escalá-las para milhares e milhões de conversas, o vazamento de informações pode se tornar um problema. A OpenAI, que se prepara para lançar o GPT-3 ao público, não conta com o acaso e cria um filtro que irá limpar o texto gerado não apenas de números de telefone, mas também de quaisquer dados pessoais problemáticos.
Finja que pode até que funcione
Coletar dados com um programa de aprendizado de máquina é uma faca de dois gumes. Não é bom para um modelo lembrar-se repentinamente do seu número de telefone, mas a tecnologia por trás disso pode ser benéfica.
Brad Dwyer, fundador e CTO da startup de visão computacional Roboflow, trabalhou em um projeto relacionado chamado Stack Roboflow. Ele treinou o modelo GPT-2 no site de perguntas e respostas do Stack Overflow para ver se ele poderia fornecer respostas úteis para perguntas de codificação. Ele queria criar um modelo de linguagem que pudesse entender não apenas a linguagem natural, mas também as linguagens de programação, para que pudesse ajudar as pessoas a resolver problemas de programação. No entanto, os primeiros experimentos mostraram que as expectativas do modelo eram muito altas.
A ferramenta Stack Roboflow que gera respostas às perguntas só é útil se as perguntas forem precisas e corretamente feitas - afinal, o tema da programação é muito tecnológico. Portanto, é necessário lembrar as informações necessárias literalmente: por exemplo, para fornecer trechos exatos de programas ou para fornecer links funcionais para repositórios e documentação reais. Até agora, o modelo GPT-2 não dá conta disso devido à variabilidade de sua saída.
“Ela não se encaixava na tarefa”, disse Dwyer. “À primeira vista, o texto parecia verossímil, parecia uma linguagem nerd, continha links para documentação e sites, mas muitas vezes esses links eram apenas inventados. No entanto, às vezes o sistema também retornou URLs reais. ”
“Os modelos de linguagem precisam ser capazes de aprender muito e, ao mesmo tempo, fornecer dados seletivamente. Queremos obter uma ferramenta útil que não despeje dados acidentalmente - o fluxo de dados deve ser controlado. Ele pode saber vários números de telefone, mas queremos que ele não forneça informações pessoais. A filtragem de conteúdo continua sendo uma tarefa em aberto. "
Em geral, a tecnologia OpenAI não pode lembrar de forma confiável detalhes específicos - como links para bibliotecas e documentação - para rodar em aplicativos como Stack Roboflow. Mas, ao mesmo tempo, ela é boa o suficiente para cuspir acidentalmente as informações pessoais de alguém em uma conversa.
Falar com carros por longos períodos de tempo tornará o diálogo estranho. Redes neurais massivas para geração de texto podem produzir histórias fantásticas de unicórnios falantes. Eles podem ser induzidos a escrever ensaios distópicos alertando sobre os perigos da IA. Ou, para um uso mais prático, às vezes cuspem os números de telefone das pessoas.
O aparecimento de informações pessoais reais nos dados produzidos por modelos de IA já nos assustou antes. Os pesquisadores nos alertaram há anos que os modelos de aprendizado de máquina podem produzir informações contidas nos dados de treinamento. Todos os tipos de redes neurais são afetados por esse recurso, não apenas gigantes como GPT-2 e GPT-3 da OpenAI ou Meena do Google.
O filtro GPT-3 da OpenAI examinará a saída reescrevendo o texto e substituindo números de telefone potencialmente reais por números aleatórios. Por exemplo, se ele vir um número de dez dígitos começando com um código de área real, ele o substituirá por algo obviamente falso, como 111-111-1111 ou 012-345-6789. Outros tipos de informações, como endereços, não têm uma estrutura tão clara e, portanto, serão mais difíceis de filtrar. A OpenAI está procurando uma solução mais inteligente e elegante do que apenas um monte de expressões regulares no código.
Os endereços contêm números e palavras de vários formatos, comprimentos e grafias. O filtro de saída precisa ser claro sobre quando um conjunto de caracteres se parece com um endereço ou outra forma de dados pessoais e quando parece mais inocente. Pode haver pistas no texto, como as palavras "rua" ou números que parecem códigos postais. No entanto, isso nem sempre é óbvio e o filtro provavelmente deixará passar algumas exceções.
Além disso, os dados pessoais não podem ser removidos dos dados de treinamento - por isso, um contexto útil que é importante para treinar uma rede neural pode desaparecer. Ela pode precisar considerar as conexões entre endereços, números de telefone e nomes, e as palavras ao redor - por exemplo, para entender se uma passagem é sobre uma empresa ou família, um ente querido ou uma reclamação sobre uma organização. E assim por diante - é por isso que o filtro de saída é necessário.
“Com muitos modelos, você precisa ter muito cuidado ao servir o texto gerado diretamente ao usuário, sem processá-lo ou torná-lo disponível publicamente”, disse Mason.
“Este problema específico com informações pessoais não é tão perigoso quanto a quantidade de preconceitos e declarações inadequadas que uma rede neural pode produzir. Você precisa trabalhar com cuidado e pensar onde e o que pode dar errado. Para aplicações reais, testes de vários estágios serão necessários. "
Atualmente, apenas alguns testadores beta selecionados têm acesso ao GPT-3 por meio da API, e a OpenAI planeja cobrar dinheiro dos usuários para acessar o modelo. A empresa não comentou o problema descrito.