GPT-2

Generative Pre-trained Transformer ( GPT ) é uma inteligência artificial de código aberto criada pela OpenAI em fevereiro de 2019.[1][2][3][4] O GPT traduz texto, responde a perguntas, resume passagens,[5] e gera saída de texto em um nível que, embora às vezes indistinguível dos humanos,[6] pode se tornar repetitivo ou sem sentido ao gerar longas passagens.[7] É um aluno de propósito geral ; não foi especificamente treinado para realizar nenhuma dessas tarefas, e sua capacidade de realizá-las é uma extensão de sua capacidade geral de sintetizar com precisão o próximo item em uma sequência arbitrária.[8][5] O GPT-2 foi criado como um "escalonamento direto" do modelo GPT 2018 da OpenAI,[9] com um aumento de dez vezes na contagem de parâmetros e no tamanho do conjunto de dados de treinamento.[4]

A arquitetura GPT implementa uma rede neural profunda, especificamente um modelo de transformador,[9] que usa atenção no lugar de arquiteturas anteriores baseadas em recorrência e convolução.[10][11] Mecanismos de atenção permitem que o modelo se concentre seletivamente em segmentos de texto de entrada que ele prevê serem os mais relevantes.[12][13] Este modelo permite uma paralelização muito maior e supera os benchmarks anteriores para modelos baseados em RNN/CNN/LSTM.[9]

A OpenAI lançou a versão completa do modelo de linguagem GPT-2 (com 1,5 bilhão de parâmetros) em novembro de 2019.[14] O GPT-2 seria seguido pelo GPT-3 de 175 bilhões de parâmetros,[15] revelado ao público em 2020[16] (cujo código-fonte nunca foi disponibilizado). O acesso ao GPT-3 é fornecido exclusivamente por meio de APIs oferecidas pela OpenAI e pela Microsoft .[17]

GPT-2
Captura de tela
GPT-2
Página oficial openai.com/blog/gpt-2-1-5b-release/

 


Desde as origens da computação, a inteligência artificial tem sido objeto de estudo; o " jogo da imitação ", postulado por Alan Turing em 1950 (e muitas vezes chamado de "teste de Turing") propunha estabelecer a capacidade de um sistema eletrônico ou mecânico para ação inteligente pela capacidade de um avaliador de distinguir seu comportamento daquele de um ser humano. O termo " aprendizado de máquina " foi usado pela primeira vez para descrever uma possível abordagem à inteligência artificial já em 1959 pelo pesquisador da IBM Arthur Samuel ;[18] o uso atual do termo abrange uma ampla variedade de aprendizado estatístico, ciência de dados e abordagens de redes neurais para problemas computacionais (muitas vezes caindo sob a égide da inteligência artificial).

linguística computacional

[editar | editar código-fonte]

O processamento de linguagem natural usando computadores, uma tarefa originalmente concebida como um subcampo da lingüística computacional, foi tentado assim que o hardware de computação teve capacidade; a primeira aplicação de uma tabela de pesquisa de dicionário foi desenvolvida no Birkbeck College em Londres em 1948.[19] O Experimento de Georgetown de 1954 foi uma demonstração de tradução automática totalmente automatizada, na qual sessenta sentenças russas foram traduzidas para o inglês (principalmente pela substituição de palavras por seus sinônimos em inglês).[20][21] As traduções eram muitas vezes grosseiras; o sistema tinha apenas 6 regras gramaticais e um vocabulário de 250 palavras,[22] e nenhuma tentativa foi feita para analisar ou traduzir a estrutura sintática .[23] No entanto, o experimento provou ao público que os computadores podem interpretar e processar a linguagem natural,[24] e garantiu o financiamento da CIA para pesquisas futuras.[20] A substituição direta continua sendo um padrão contra o qual os programas de tradução automática são avaliados.

Transformador pré-treinado generativo

[editar | editar código-fonte]
O modelo GPT
arquitetura contagem de parâmetros dados de treinamento
GPT-1 Codificador Transformer de 12 níveis e 12 cabeças (sem decodificador), seguido por linear-softmax. 0,12 bilhões BookCorpus: [25] 4,5 GB de texto, de 7000 livros inéditos de vários gêneros.
GPT-2 GPT-1, mas com normalização modificada 1.5 bilhoes WebText: 40 GB de texto, 8 milhões de documentos, de 45 milhões de páginas votadas no Reddit.
GPT-3 GPT-2, mas com modificação para permitir escala maior. 175 bilhões 570 GB de texto simples, 0,4 trilhão de tokens. Principalmente CommonCrawl, WebText, Wikipedia em inglês e dois corpora de livros (Books1 e Books2).

Em 11 de junho de 2018, a OpenAI lançou um artigo intitulado "Melhorando a compreensão da linguagem por pré-treinamento generativo", no qual eles introduziram o transformador pré-treinado generativo (GPT).[9] Neste ponto, os modelos NLP neurais de melhor desempenho empregavam principalmente aprendizado supervisionado de grandes quantidades de dados rotulados manualmente. Essa confiança no aprendizado supervisionado limitava seu uso em conjuntos de dados que não eram bem anotados, além de tornar proibitivamente caro e demorado treinar modelos extremamente grandes;[9][26] muitos idiomas (como suaíli ou crioulo haitiano ) são difíceis de traduzir e interpretar usando tais modelos devido à falta de texto disponível para a construção do corpus.[26] Em contraste, a abordagem "semi-supervisionada" do GPT envolveu dois estágios: um estágio de "pré-treinamento" generativo não supervisionado no qual um objetivo de modelagem de linguagem foi usado para definir os parâmetros iniciais e um estágio de "ajuste fino" discriminativo supervisionado no qual esses parâmetros foram adaptados a uma tarefa-alvo.[9]

O uso de uma arquitetura transformadora, em oposição às técnicas anteriores envolvendo RNNs com atenção aumentada, forneceu ao GPT uma memória mais estruturada do que poderia ser obtida por meio de mecanismos recorrentes; isso resultou em "desempenho de transferência robusto em diversas tarefas".[9]

Durante a transferência, utilizamos adaptações de entrada específicas da tarefa derivadas de abordagens de estilo transversal, que processam a entrada de texto estruturado como uma única sequência contígua de tokens.[9]

O pré-treinamento não supervisionado foi realizado usando BooksCorpus,[27] um conjunto de dados de mais de 7.000 livros de ficção inéditos de vários gêneros; esse conjunto de dados foi escolhido em parte porque suas longas passagens de texto contínuo condicionaram o modelo a lidar com informações de longo alcance. Outros conjuntos de dados disponíveis, embora maiores, foram rejeitados com base na falta dessa estrutura de longo alcance (sendo "embaralhados" no nível da frase).[9] A biblioteca ftfy foi utilizada para limpar o texto do BooksCorpus (padronizar pontuação e espaços em branco); foi tokenizado usando spaCy .[9]

A própria arquitetura do GPT era um transformador apenas de decodificador de doze camadas, usando doze cabeças de auto-atenção mascaradas, com 64 estados dimensionais cada (para um total de 768). Em vez de uma simples descida de gradiente estocástico, foi usado o algoritmo de otimização de Adam ; a taxa de aprendizagem foi aumentada linearmente de zero nas primeiras 2.000 atualizações, até um máximo de 2,5×10 −4, e recozida para 0 usando uma programação de cosseno.[9]

Treinamos por 100 épocas em minilotes de 64 sequências contíguas amostradas aleatoriamente de 512 tokens. Uma vez que layernorm é usado extensivamente em todo o modelo, uma inicialização de peso simples de N(0,0,02) foi suficiente. Usamos um vocabulário de codificação de bytepair (BPE) com 40.000 mesclagens [53] e perdas residuais, incorporadas e de atenção com uma taxa de 0,1 para regularização. Também empregamos uma versão modificada da regularização L2 proposta em Loshchilov |numero-autores=et al. 2017, com w = 0,01 em todos os pesos sem viés ou ganho.<br>

[. . . ]<br> Usamos incorporações de posição aprendida em vez da versão senoidal proposta no trabalho original.<br>

[. . . ]<br> A menos que especificado, reutilizamos as configurações de hiperparâmetros do pré-treinamento não supervisionado. Adicionamos abandono ao classificador com uma taxa de 0,1. Para a maioria das tarefas, usamos uma taxa de aprendizado de 6,25 e-5 e um tamanho de lote de 32. Nosso modelo ajusta rapidamente e 3 épocas de treinamento foram suficientes para a maioria dos casos. Usamos um cronograma de decaimento da taxa de aprendizado linear com aquecimento em 0,2% do treinamento. λ foi definido como 0,5.[9]

Enquanto o ajuste fino do GPT foi adaptado para tarefas específicas, seu pré-treinamento não foi; para executar as várias tarefas, foram realizadas alterações mínimas em sua arquitetura de modelo independente de tarefa subjacente.[9] Apesar disso, o GPT ainda melhorou em relação aos benchmarks anteriores em várias tarefas de processamento de linguagem, superando modelos treinados discriminativamente com arquiteturas orientadas a tarefas em várias tarefas diversas.[9]

Em tarefas de inferência de linguagem natural (também conhecidas como vinculação textual ), os modelos são avaliados em sua capacidade de interpretar pares de sentenças de vários conjuntos de dados e classificar a relação entre eles como "implicação", "contradição" ou "neutra".[9] Exemplos de tais conjuntos de dados incluem QNLI (artigos da Wikipédia ) e MultiNLI (fala transcrita, ficção popular e relatórios governamentais, entre outras fontes);[28] nestes GPT alcançaram, respectivamente, uma melhoria de 5,8% e 1,5% em relação aos melhores resultados anteriores.[9] Ele também superou os modelos anteriores em duas tarefas relacionadas a respostas a perguntas e raciocínio de senso comum - em 5,7% no RACE,[29] um conjunto de dados de pares de perguntas e respostas escritas de exames do ensino fundamental e médio e em 8,9% no Teste Story Cloze.[30]

Outra tarefa, similaridade semântica (ou detecção de paráfrase ), avalia se um modelo pode prever se duas sentenças são paráfrases uma da outra; no conjunto de dados Quora Question Pairs (QQP), o GPT melhorou em 4,2% em relação aos modelos anteriores de melhor desempenho.[9] Em uma tarefa de classificação de texto usando o Corpus of Linguistic Acceptability (CoLA), o GPT alcançou uma pontuação de 45,4, contra um recorde anterior de 35,0. Finalmente, no GLUE, um teste multitarefa,[31] o GPT alcançou uma pontuação geral de 72,8 (em comparação com um recorde anterior de 68,9).[9]

O GPT-2 foi criado como uma ampliação direta do GPT, com a contagem de parâmetros e o tamanho do conjunto de dados aumentados por um fator de 10.[8][9][4] Ambos são modelos de transformadores não supervisionados treinados para gerar texto prevendo a próxima palavra em uma sequência de tokens . O modelo GPT-2 tem 1,5 bilhão de parâmetros e foi treinado em um conjunto de dados de 8 milhões de páginas da web.[8] Embora o GPT-2 tenha sido reforçado com critérios muito simples (interpretar uma sequência de palavras em uma amostra de texto e prever a próxima palavra mais provável), ele produz frases e parágrafos completos ao continuar a prever palavras adicionais, gerando palavras totalmente compreensíveis (e semanticamente significativas). declarações em linguagem natural .[8] Notavelmente, o GPT-2 foi avaliado em seu desempenho em tarefas em uma configuração de tiro zero .

Como a arquitetura do transformador permitia a paralelização massiva, os modelos da série GPT podiam ser treinados em corpos maiores do que os modelos NLP anteriores. Enquanto o modelo GPT inicial demonstrou que a abordagem era viável, o GPT-2 exploraria ainda mais as propriedades emergentes de redes treinadas em corpora extremamente grandes. CommonCrawl, um grande corpus produzido por web crawling e usado anteriormente em sistemas de treinamento de NLP,[32] foi considerado devido ao seu grande tamanho, mas foi rejeitado após uma análise mais aprofundada revelar grandes quantidades de conteúdo ininteligível.[8][32] Em vez disso, a OpenAI desenvolveu um novo corpus, conhecido como WebText ; em vez de coletar conteúdo indiscriminadamente da World Wide Web, o WebText foi gerado coletando apenas páginas vinculadas a postagens do Reddit que receberam pelo menos três votos positivos antes de dezembro de 2017. O corpus foi posteriormente limpo; Os documentos HTML foram analisados em texto simples, as páginas duplicadas foram eliminadas e as páginas da Wikipedia foram removidas (já que sua presença em muitos outros conjuntos de dados poderia ter induzido o overfitting ).[8]

Embora se saiba que o custo do treinamento GPT-2 foi de $ 256 por hora,[33][34] a quantidade de horas necessárias para concluir o treinamento é desconhecida; portanto, o custo geral do treinamento não pode ser estimado com precisão.[35] No entanto, modelos de linguagem grandes comparáveis usando arquiteturas transformadoras tiveram seus custos documentados com mais detalhes; os processos de treinamento para BERT e XLNet consumiram, respectivamente, $ 6.912 e $ 245.000 de recursos.[34]

GPT-2 escrevendo um artigo fictício sobre as ações de Edward Snowden após vencer a eleição presidencial dos Estados Unidos em 2020 (todo o texto destacado é gerado por máquina). Embora Snowden (no momento da geração) nunca tenha sido eleito para um cargo público, a amostra gerada é gramaticalmente e estilisticamente válida.

Devido à amplitude de seu conjunto de dados e à amplitude de sua abordagem, o GPT-2 tornou-se capaz de realizar uma gama diversificada de tarefas além da simples geração de texto: responder perguntas, resumir e até mesmo traduzir entre idiomas em vários domínios específicos, sem sendo instruído em qualquer coisa além de como prever a próxima palavra em uma sequência.[36][37]

Um exemplo de aprendizado generalizado é a capacidade do GPT-2 de realizar tradução automática entre francês e inglês, tarefa para a qual o desempenho do GPT-2 foi avaliado usando tarefas de tradução do WMT-14. O corpus de treinamento do GPT-2 não incluía praticamente nenhum texto em francês; O texto não em inglês foi deliberadamente removido durante a limpeza do conjunto de dados antes do treinamento e, como consequência, apenas 10 MB de francês dos 40.000 MB restantes estavam disponíveis para o modelo aprender (principalmente de citações em idiomas estrangeiros em postagens e artigos em inglês) .[8] Apesar disso, o GPT-2 alcançou 5 BLEU no conjunto de testes de inglês para francês WMT-14 (ligeiramente abaixo da pontuação de uma tradução por substituição de palavra por palavra). Ele também foi capaz de superar várias linhas de base de tradução automática não supervisionadas contemporâneas (2017) no conjunto de testes de francês para inglês, onde o GPT-2 alcançou 11,5 BLEU. Isso permaneceu abaixo da abordagem não supervisionada contemporânea de maior desempenho (2019), que alcançou 33,5 BLEU.[8] No entanto, outros modelos usaram grandes quantidades de texto em francês para obter esses resultados; Estima-se que o GPT-2 tenha usado um corpus francês monolíngue de aproximadamente 1/500 do tamanho de abordagens comparáveis.[8]

  1. Piper, Kelsey (15 de maio de 2019). «A poetry-writing AI has just been unveiled. It's ... pretty good.». Vox. Consultado em 19 de dezembro de 2020. Arquivado do original em 7 de novembro de 2020 
  2. Johnson, Khari (20 de agosto de 2019). «OpenAI releases curtailed version of GPT-2 language model». VentureBeat. Consultado em 19 de dezembro de 2020. Arquivado do original em 18 de dezembro de 2020 
  3. Vincent, James (7 de novembro de 2019). «OpenAI has published the text-generating AI it said was too dangerous to share». The Verge. Consultado em 19 de dezembro de 2020. Arquivado do original em 11 de junho de 2020 
  4. a b c «Better Language Models and Their Implications». OpenAI. 14 de fevereiro de 2019. Consultado em 19 de dezembro de 2020. Arquivado do original em 19 de dezembro de 2020 
  5. a b Hegde, Chaitra; Patil, Shrikumar (9 de junho de 2020). «Unsupervised Paraphrase Generation using Pre-trained Language Models». arXiv:2006.05477Acessível livremente [cs.CL] 
  6. Kaiser, Caleb (31 de janeiro de 2020). «Too big to deploy: How GPT-2 is breaking servers». Towards Data Science. Consultado em 27 de fevereiro de 2021. Arquivado do original em 15 de fevereiro de 2020 
  7. Hern, Alex (14 de fevereiro de 2019). «New AI fake text generator may be too dangerous to release, say creators». The Guardian. Consultado em 19 de dezembro de 2020. Arquivado do original em 14 de fevereiro de 2019 
  8. a b c d e f g h i Radford, Alec; Wu, Jeffrey; Child, Rewon; Luan, David; Amodei, Dario; Sutskever, Ilua (14 de fevereiro de 2019). «Language models are unsupervised multitask learners» (PDF). 1 (8). Consultado em 19 de dezembro de 2020. Cópia arquivada (PDF) em 6 de fevereiro de 2021 
  9. a b c d e f g h i j k l m n o p q r s Radford, Alec; Narasimhan, Karthik; Salimans, Tim; Sutskever, Ilya (11 de junho de 2018). «Improving Language Understanding by Generative Pre-Training» (PDF). OpenAI. 12 páginas. Consultado em 23 de janeiro de 2021. Arquivado do original (PDF) em 26 de janeiro de 2021 
  10. Polosukhin, Illia; Kaiser, Lukasz (12 de junho de 2017). «Attention Is All You Need». arXiv:1706.03762Acessível livremente [cs.CL] 
  11. Olah, Chris; Carter, Shan (8 de setembro de 2016). «Attention and Augmented Recurrent Neural Networks». Distill. 1 (9). doi:10.23915/distill.00001Acessível livremente. Consultado em 22 de janeiro de 2021. Cópia arquivada em 22 de dezembro de 2020 
  12. Bahdanau, Dzmitry; Cho, Kyunghyun (1 de setembro de 2014). «Neural Machine Translation by Jointly Learning to Align and Translate». arXiv:1409.0473Acessível livremente [cs.CL] 
  13. Luong, Minh-Thang; Pham, Hieu (17 de agosto de 2015). «Effective Approaches to Attention-based Neural Machine Translation». arXiv:1508.04025Acessível livremente [cs.CL] 
  14. «GPT-2: 1.5B Release». OpenAI (em inglês). 5 de novembro de 2019. Consultado em 14 de novembro de 2019. Arquivado do original em 14 de novembro de 2019 
  15. Brown, Tom B.; Mann, Benjamin (22 de julho de 2020). «Language Models are Few-Shot Learners». arXiv:2005.14165Acessível livremente [cs.CL] 
  16. Arram (9 de julho de 2020). «GPT-3: An AI that's eerily good at writing almost anything». Arram Sabeti. Consultado em 31 de julho de 2020. Arquivado do original em 20 de julho de 2020 
  17. Hao, Karen. «OpenAI is giving Microsoft exclusive access to its GPT-3 language model». MIT Technology Review (em inglês) 
  18. Samuel, Arthur (1959). «Some Studies in Machine Learning Using the Game of Checkers». IBM Journal of Research and Development. 3 (3): 210–229. CiteSeerX 10.1.1.368.2254Acessível livremente. doi:10.1147/rd.33.0210 
  19. Hancox, P.J. (26 de janeiro de 1996). «SEM1A5 – Part 1 – A brief history of NLP». University of Birmingham. Consultado em 12 de janeiro de 2021. Arquivado do original em 13 de janeiro de 2021 
  20. a b Nye, Mary Jo (2016). «Speaking in Tongues: Science's centuries-long hunt for a common language». Distillations. 2 (1): 40–43. Consultado em 22 de março de 2018. Cópia arquivada em 3 de agosto de 2020 
  21. Gordin, Michael D. (2015). Scientific Babel: How Science Was Done Before and After Global English. Chicago, Illinois: University of Chicago Press. ISBN 9780226000299 
  22. John Hutchins. «The first public demonstration of machine translation: the Georgetown-IBM system, 7th January 1954» 
  23. Reifler, Erwin (2–5 de fevereiro de 1960). «The solution of MT linguistic problems through lexicography.». Proceedings of the National Symposium on Machine Translation 
  24. Hutchins, John (1997). «From first conception to first demonstration: the nascent years of machine translation, 1947–1954. A chronology.». Machine Translation 12, 195–252. 12 (3): 195–252. doi:10.1023/A:1007969630568 
  25. Zhu, Yukun; Kiros, Ryan; Zemel, Rich; Salakhutdinov, Ruslan; Urtasun, Raquel; Torralba, Antonio; Fidler, Sanja (2015). «Aligning Books and Movies: Towards Story-Like Visual Explanations by Watching Movies and Reading Books»: 19–27 
  26. a b Tsvetkov, Yulia (22 de junho de 2017). «Opportunities and Challenges in Working with Low-Resource Languages» (PDF). Carnegie Mellon University. Consultado em 23 de janeiro de 2021. Arquivado do original (PDF) em 31 de março de 2020 
  27. Zhu, Yukun; Kiros, Ryan (22 de junho de 2015). «Aligning Books and Movies: Towards Story-like Visual Explanations by Watching Movies and Reading Books». arXiv:1506.06724Acessível livremente [cs.CV] 
  28. Williams, Adina; Nangia, Nikita; Bowman, Samuel (1 de junho de 2018). «A Broad-Coverage Challenge Corpus for Sentence Understanding through Inference» (PDF). Association for Computational Linguistics. Consultado em 23 de janeiro de 2021. Arquivado do original (PDF) em 11 de fevereiro de 2020 
  29. Lai, Guokun; Xie, Qizhe (15 de abril de 2017). «RACE: Large-scale ReAding Comprehension Dataset From Examinations». arXiv:1704.04683Acessível livremente [cs.CL] 
  30. Mostafazadeh, Nasrin; Roth, Michael; Louis, Annie; Chambers, Nathanael; Allen, James F. (3 de abril de 2017). «LSDSem 2017 Shared Task: The Story Cloze Test» (PDF). Association for Computational Linguistics. Consultado em 23 de janeiro de 2021. Arquivado do original (PDF) em 22 de novembro de 2020 
  31. Wang, Alex; Singh, Amanpreet (20 de abril de 2018). «GLUE: A Multi-Task Benchmark and Analysis Platform for Natural Language Understanding». arXiv:1804.07461Acessível livremente [cs.CL] 
  32. a b Trinh, Trieu H.; Le, Quoc V. (7 de junho de 2018). «A Simple Method for Commonsense Reasoning». arXiv:1806.02847Acessível livremente [cs.CL] 
  33. Quach, Katyanna (14 de fevereiro de 2019). «Roses are red, this is sublime: We fed OpenAI's latest chat bot a classic Reg headline». The Register. Consultado em 27 de fevereiro de 2021. Arquivado do original em 9 de março de 2021 
  34. a b «The Staggering Cost of Training SOTA AI Models». Synced. 27 de junho de 2019. Consultado em 27 de fevereiro de 2021. Arquivado do original em 24 de novembro de 2020 
  35. Wiggers, Kyle (23 de março de 2020). «Google open-sources framework that reduces AI training costs by up to 80%». VentureBeat. Consultado em 27 de fevereiro de 2021. Arquivado do original em 26 de novembro de 2020 
  36. Vincent, James (14 de fevereiro de 2019). «OpenAI's new multitalented AI writes, translates, and slanders». The Verge. Consultado em 19 de dezembro de 2020. Arquivado do original em 18 de dezembro de 2020 
  37. Piper, Kelsey (14 de fevereiro de 2019). «An AI helped us write this article». Vox. Consultado em 19 de dezembro de 2020. Arquivado do original em 8 de novembro de 2020