
Compartilhar:
Desenvolvedor iOS que se tornou entusiasta de Ciência de Dados e Aprendizado de Máquina. Quero que as pessoas entendam o que é o aprendizado de máquina e como podemos usá-lo em nossas Applications.
Introdução ao GPT-3
Tempo de leitura: 8 minutos
Se você ainda não percebeu, a IA está em toda parte, e finalmente chegamos a um ponto em que ela está presente em quase tudo com que interagimos. Desde as recomendações de produtos da Amazon até as sugestões da Netflix, passando pela direção autônoma e pela redação de excelentes posts de blog... Não se preocupe, este post foi escrito por um ser humano, pelo menos por enquanto.
Muitas pessoas veem como a IA é utilizada, mas você já se perguntou como ela é criada?
Este post abordará um modelo muito popular, utilizado para diversas tarefas, incluindo a geração de artigos de notícias, a geração de imagens e até mesmo a criação de sites em HTML.
Introdução à IA
Primeiro, vamos fazer um resumo básico sobre IA: trata-se de uma série de algoritmos capazes de aprender uma tarefa específica e fazer previsões sobre tarefas semelhantes. Uma dessas tarefas poderia ser prever se uma imagem contém a foto de um gato ou de um cachorro.
Neste exemplo, reunimos muitas dessas imagens e as inserimos em um algoritmo. Em seguida, rotulamos cada imagem, por exemplo: “Esta é uma foto de um cachorro” ou “Esta é uma foto de um gato”. O algoritmo “aprende” quais imagens contêm um cachorro ou um gato. O modelo faz suposições sobre o que constitui um cachorro (orelhas grandes, rabo fofo) e um gato (bigodes, formato dos olhos) e consegue aprender essas diferenças.
Fornecemos ao nosso modelo centenas de imagens, conhecidas como “treinamento”; com elas, o modelo forma uma boa noção de como são um cachorro e um gato. Por fim, apresentaremos uma nova imagem ao modelo, e ele deverá ser capaz de nos dizer se se trata da imagem de um cachorro ou de um gato.
Se você estiver interessado em aprender a criar um modelo para identificar cães, dê uma olhada aqui (https://developer.vonage.com/en/blog/dog-breed-detector-using-machine-learning-dr).
A ideia de treinar um modelo com exemplos (imagens de gatos e cachorros) e conseguir fazer previsões sobre novas imagens é Aprendizado Profundo, que é um subconjunto da IA.
Neste post, não vamos abordar como treinar um modelo, mas vamos falar sobre um modelo muito popular que é capaz de fazer coisas mais interessantes.
Em junho de 2020, uma empresa chamada OpenAI (fundada por Elon Musk) lançou um novo modelo chamado GPT-3, capaz de gerar novos conteúdos a partir de um pequeno número de exemplos de dados de entrada.
Exemplos de como você poderia usar isso incluem:
Perguntas e respostas
Resumindo as frases
Tradução
Geração de texto
Geração de imagens
Realização de operações aritméticas com números de três dígitos
Organizar palavras
Sobre o GPT-3
O GPT-3 é um modelo de linguagem baseado em aprendizado profundo, o que significa que esse modelo foi treinado com milhares de artigos da Wikipédia, sites da internet e livros.
Quando um modelo é treinado, seu resultado é uma série de parâmetros, geralmente uma matriz multidimensional de números. Esses números representam o que o modelo aprendeu.
O GPT-3 contém 175 bilhões de parâmetros. Para se ter uma ideia, a Microsoft também lançou um modelo de linguagem que utiliza apenas 10 bilhões de parâmetros.
Para que um modelo aprenda com os dados fornecidos, ele precisa ser treinado. Esse treinamento é feito alimentando o modelo com cada palavra de um determinado texto e, em seguida, fazendo com que ele preveja a próxima palavra.
Esse treinamento é computacionalmente oneroso e requer muitas GPUs para o treinamento. De acordo com uma estimativa, o treinamento do modelo GPT-3 custa US$ 4,6 milhões.
Como funciona o GPT-3
O GPT-3 é conhecido como um (G)enerativo (P)ré-treinado (T)ransformer. O fato de ser generativo significa que ele é capaz de gerar novos textos a partir de um texto de entrada.
Por exemplo, se fornecermos ao modelo o seguinte texto:
"O céu está"
O modelo deve ser capaz de prever que a próxima palavra é “azul”.
Se eu tentar redigir outra frase:
"A raposa marrom veloz"
O modelo faria primeiro uma previsão “saltou”; em seguida, usando a frase anterior (“A rápida raposa marrom saltou”), ele deveria prever a palavra “por cima” e assim por diante.
Outra parte do GPT-3 é o transformador. O transformador é uma arquitetura, desenvolvida pelo Google, que permite que um modelo se lembre ou atribua maior peso a uma frase ou conjunto de frases em uma determinada oração que tenham maior importância.
Os modelos de linguagem são construídos utilizando uma Rede Neural Recorrente. Essa arquitetura de rede neural recebe uma frase, palavra por palavra, e a processa na rede. O que a torna recorrente é o fato de que a saída da palavra anterior serve como entrada para a próxima palavra da frase.

Esses modelos só conseguem lidar com números. Portanto, o texto precisa ser convertido em um número. Uma maneira de converter texto em um número é por meio de embedding de palavras.
Uma representação de palavras transforma as palavras em um espaço vetorial tridimensional capaz de capturar o significado de uma palavra por meio de sua relação com outras palavras. Um excelente exemplo de representação de palavras é a maneira de compreender as semelhanças entre as palavras “irmão” e “irmã” em comparação com “homem” e “mulher”.

Na imagem acima, podemos ver que a palavra “irmão” ocupa o mesmo espaço físico que a palavra “homem”. Essa correspondência também foi aprendida por um modelo que leu uma grande quantidade de texto e identificou essas semelhanças.
Essa representação de palavra é inserida na representação da palavra seguinte, permitindo que o modelo “lembre-se” das palavras anteriores por meio de sua representação.
Um dos grandes problemas é que as RNNs geralmente não são boas em memorizar frases longas.
Vamos considerar esta frase:
"Tony Hung é engenheiro de software na Vonage. Ele gosta de escrever sobre Inteligência Artificial no blog da Vonage. Ele mora no interior do estado de Nova York, com sua esposa, sua filha de 4 anos e seu cachorro."
Uma RNN pegaria cada palavra (“Tony”, “Hung”, “is”) e as inseriria na rede como um embedding de palavra. Com o tempo, o modelo pode esquecer a palavra “Tony”, já que ela era a primeira palavra da frase. Se eu fizer a seguinte pergunta ao modelo: “Quem trabalha para a Vonage?”, ele precisaria voltar na frase, localizar a palavra “Vonage” e tentar encontrar o substantivo associado à pergunta. Como a palavra “Tony” está tão distante no passado, a RNN pode não conseguir encontrá-la.
A arquitetura Transformer ajuda a resolver esse problema, que foi proposta no artigo “Attention is All You Need” e utiliza um conceito chamado “Attention”.
A atenção faz parte de uma camada da rede neural capaz de se concentrar em partes específicas da frase. Como mencionamos anteriormente, um modelo RNN pode capturar todas as palavras da frase, mas, se a representação for muito grande, o modelo pode não conseguir lembrar de tudo.
Com o Attention, cada embedding agora também contém uma pontuação que indica a importância daquela palavra específica. Assim, a RNN não precisa mais memorizar todos os embeddings de palavras, mas apenas aqueles com pontuação mais alta do que os demais.
Para uma descrição mais detalhada do transformador e do mecanismo de atenção, confira a postagem no blog de Jay Alammar sobre o transformador visual.
Exemplos do GPT-3
Ainda estão aí? Ótimo! Vamos ver alguns exemplos de como o GPT-3 é usado.
Com acesso à API da OpenAI, você pode fornecer dados de treinamento, que contêm uma amostra de entrada e qual deve ser a saída. Você deve estar pensando: “Isso é ótimo, como posso começar a usar?”, mas a OpenAI ainda não disponibilizou o modelo publicamente, apenas como uma API que está em fase de beta fechada, o que significa que você precisaria solicitar acesso para usar a API. Até o momento da redação deste artigo, ainda não fui aceito no beta.
A boa notícia é que muitas pessoas já fizeram isso e podem dar uma explicação detalhada de como a API funciona.
Vamos dar uma olhada em alguns exemplos de outros desenvolvedores que utilizam o GTP-3.
Conversão de texto para HTML usando o GPT-3
Uma das muitas aplicações do GPT-3 é gerar código HTML a partir de uma determinada sequência de caracteres. A entrada na API da OpenAI consistiria nessa sequência de caracteres, bem como em seu equivalente em HTML.
Entrada: coloque o seguinte texto em negrito: “GPT-3”
Nós forneceríamos o resultado de: <b>GPT-3</b>
A API da OpenAI permite que um desenvolvedor forneça esses textos de entrada e saída ao GPT-3. Em seguida, nos servidores da OpenAI, a API enviará essa entrada e essa saída ao GPT-3 para que ele “aprenda” a entrada fornecida e qual deve ser a saída.
Então, se fornecermos uma nova sequência de texto à API da OpenAI:
"Centralize e coloque em negrito a palavra GPT-3".
Seu resultado será <center><b>GPT-3</b></center>
Não informamos nada ao GPT-3 sobre a <center> tag, já que o GPT-3 provavelmente continha sequências de HTML durante seu processo de treinamento.
Aqui está um exemplo de como isso fica:
Isso é de tirar o fôlego.
Com o GPT-3, criei um gerador de layouts em que basta descrever qualquer layout que você queira, e ele gera o código JSX para você.
O Q U E pic.twitter.com/w8JkrZO4lk
— Sharif Shameem (@sharifshameem) 13 de julho de 2020
Aventura em Texto
Outros exemplos de desenvolvedores que utilizam o GPT-3 incluem um jogo de aventura textual do site aidungeon.io
AI Dungeo
O AI Dungeon gera uma história pela qual você pode navegar por meio de texto — também conhecida como masmorra multiusuário. Neste exemplo, digitar as palavras “Look Around” gerará um novo trecho de texto sobre o cenário. Esse recurso utiliza apenas o GPT-3 para gerar texto após cada entrada.
Texto para expressão regular
Esse exemplo foi o que me chamou a atenção. Ao fornecer um texto de entrada e sua expressão regular equivalente, é possível gerar expressões regulares válidas usando inglês de fácil compreensão.
Certa vez, tive um problema e usei expressões regulares. Depois, tive dois problemas
Nunca mais. Com a ajuda dos nossos senhores do GPT-3, criei uma ferramenta para transformar texto em inglês em expressões regulares. Tem funcionado razoavelmente bem com a maioria das descrições que já testei. Inscreva-se em https://t.co/HtTpJ16V4F para testar um protótipo pic.twitter.com/trJA7VRrsf
— Parthi Loganathan (@parthi_logan) 25 de julho de 2020
Mais exemplos de desenvolvedores que utilizam o GPT-3 para criar coisas interessantes podem ser encontrados em buildgpt3.com.
Conclusão
Nesta postagem, pudemos abordar noções básicas sobre o que é o GPT-3 e como ele é construído. No entanto, não nos aprofundamos muito nos aspectos técnicos desse e de outros modelos de IA. Para conhecer o GPT-3 em profundidade, confira o Video de Jay Alammar sobre como o GPT-3 funciona. É um ótimo ponto de partida para entender como os modelos de IA podem ser treinados.
Se você ainda não está familiarizado com os aspectos técnicos da IA, que incluem o Aprendizado Profundo, dê uma olhada em Fast.ai, um curso gratuito que explica o que é o aprendizado profundo e como começar.
Espero que este post tenha ajudado você a entender o que é o GPT-3, tanto do ponto de vista técnico quanto do não técnico. Se você tiver interesse em saber mais sobre o GPT-3 e sobre os outros projetos da OpenAI, acesse OpenAI.com.