Certamente você já ouviu falar do ChatGPT e como essa tecnologia incrível de inteligência artificial ajuda em diversas tarefas, desde conversas cotidianas, criação de conteúdo e auxílio no desenvolvimento de software. Mas se você é uma pessoa não-técnica, pode estar se perguntando como essa tecnologia realmente funciona.
Neste artigo, apresentamos uma tradução adaptada do texto do Guodong (Troy) Zhao, que explica detalhadamente os diferentes aspectos do ChatGPT 3 e como aplicá-lo aos seus objetivos. Mesmo com o lançamento do GPT-4 e suas novas funcionalidades, esse conteúdo é especialmente útil para quem deseja entender melhor a tecnologia por trás do ChatGPT.
Boa leitura!
Entendendo o funcionamento do ChatGPT de forma simples: um guia para não-técnicos
O lançamento do ChatGPT pela OpenAI no final do ano passado foi fenomenal – até minha avó estava perguntando sobre isso. Suas capacidades de gerar linguagem semelhante à humana inspiraram as pessoas a experimentar seu potencial em vários produtos. Seu lançamento de grande sucesso até pressionou gigantes da tecnologia como o Google a correr para lançar sua própria versão do ChatGPT.
Mas sejamos honestos, para gerentes de produto, designers e empreendedores não técnicos, o funcionamento interno do ChatGPT pode parecer uma caixa preta. Não se preocupe! Neste artigo, tentarei explicar a tecnologia e o modelo por trás do ChatGPT da maneira mais simples possível. Ao final deste artigo, você terá uma boa compreensão do que o ChatGPT pode fazer e como ele realiza sua mágica.
O transformador e a linha do tempo do GPT
Antes de nos aprofundarmos no mecanismo real do ChatGPT, vamos dar uma rápida olhada na linha do tempo do desenvolvimento da arquitetura do modelo transformer e das diferentes versões do GPT, para poder ter uma melhor noção de como as coisas evoluíram para o ChatGPT que temos hoje.
- 2015 – A OpenAI foi fundada por Sam Altman, Elon Musk, Greg Brockman, Peter Thiel e outros. A OpenAI desenvolve muitos modelos de IA diferentes além do GPT.
- 2017 – O Google publicou o artigo Attention is All You Need, que apresentou a arquitetura do transformer. O modelo transformer é uma arquitetura de rede neural que estabelece a base para muitos modelos de linguagem grande (LLM) de última geração (SOTA), como o GPT.
- 2018 – O GPT é introduzido na Improving Language Understanding by Generative Pre-training [3]. É baseado em uma arquitetura transformer modificada e pré-formada num grande corpus.
- 2019. O GPT-2 é introduzido nos Models are Unsupervised Multitask Learners [4], que podem executar uma variedade de tarefas sem supervisão explícita durante o treinamento.
- 2020. GPT-3 é apresentado em Language Models are Few-Shot Learners [5], que pode funcionar bem com poucos exemplos no prompt sem ajuste fino.
- 2022. O InstructGPT é apresentado nos Training language models to follow instructions with human feedback [6], que podem seguir melhor as instruções do usuário por meio do ajuste fino com feedback humano.
- 2022. ChatGPT, um irmão do InstructGPT, é apresentado em ChatGPT: Optimizing Language Models for Dialogue. Ele pode interagir com humanos em conversas, graças ao ajuste fino com exemplos humanos e aprendizado por garantia com feedback humano (RLHF).
A linha do tempo mostra que o GPT evoluiu da arquitetura original do transformer e ganhou sua capacidade por meio de muitas iterações. Se você não entende os termos como transformer, pré-treinamento, ajuste fino ou aprendizado por reforço com feedback humano, não se preocupe! Vou explicá-los ao longo desse artigo.
Mergulhando fundo atrás dos modelos
Agora que você sabe que o ChatGPT é baseado no transformer e nos modelos GPT anteriores, vamos dar uma olhada mais de perto nos componentes desses modelos e como eles funcionam. Tudo bem se você não estiver familiarizado com deep learning, redes neurais ou IA — deixarei de fora as equações e explicarei os conceitos usando analogias e exemplos.
Nas próximas seções, começarei com uma visão geral dos modelos de linguagem e NLP, passando para a arquitetura original do transformer, depois para como o GPT adaptou a arquitetura do transformer e, finalmente, como o ChatGPT é ajustado com base no GPT.
Modelos de linguagem e NLP
Existem muitos tipos de IA ou modelos de deep learning. Para tarefas de Processamento de Linguagem Natural (Natural Language Processing – NLP), como conversas, reconhecimento de fala, tradução e resumo, recorreremos a modelos de linguagem para nos ajudar.
Os modelos de linguagem podem aprender uma biblioteca de texto (chamada corpus) e prever palavras ou sequências de palavras com distribuições probabilísticas, ou seja, a probabilidade de ocorrência de uma palavra ou sequência. Por exemplo, quando você diz “O Tom gosta de comer…”, a probabilidade da próxima palavra ser “pizza” seria maior do que “mesa”. Se estiver prevendo a próxima palavra na sequência, é chamada de previsão do próximo token; se estiver prevendo uma palavra ausente na sequência, é chamado de modelagem de linguagem mascarada.
Como é uma distribuição de probabilidade, pode haver muitas palavras prováveis com probabilidades diferentes. Embora você possa pensar que o ideal é escolher sempre o melhor candidato com a maior probabilidade, isso pode levar a sequências repetitivas. Assim, na prática, os pesquisadores adicionariam alguma aleatoriedade (temperatura) ao escolher a palavra entre os principais candidatos.
Em um processo típico de NLP, o texto de entrada passará pelas seguintes etapas:
Pré-processamento: limpar o texto com técnicas como segmentação de sentenças, tokenization (quebrar o texto em pequenos pedaços chamados tokens), stemming (remover sufixos ou prefixos), remover palavras de parada, corrigir ortografia, etc. Por exemplo, “Tom gosta de comer pizza .” seria tokenizado em [“Tom”, “likes”, “to”, “eat”, “pizza”, “.”] e derivado em [“Tom”, “like”, “to”, “eat”, “ pizza”, “.”]. |
Encoding: transformar o texto limpo em um vetor de números, para que o modelo possa processar. |
Alimentação do modelo: passar a entrada codificada para o modelo para processamento. |
Obtendo o resultado: obter o resultado de uma distribuição de probabilidade de palavras potenciais representadas em vetores de números do modelo. |
Decoding: traduzir o vetor de volta para palavras legíveis por humanos. |
Pós-processamento: refinar a saída com verificação ortográfica, verificação gramatical, pontuação, capitalização, etc. |
Pesquisadores de IA criaram muitas arquiteturas de modelos diferentes. Transformers, um tipo de rede neural, tem sido o estado da arte nos últimos anos e estabelece as bases para o GPT. Nas próximas seções, veremos a arquitetura e os componentes dos transformers.
Arquitetura do transformers
A arquitetura do transformer é a base do GPT. É um tipo de rede neural, que é semelhante aos neurônios do nosso cérebro humano. O transformer pode compreender contextos em dados sequenciais como texto, fala ou música melhor com mecanismos chamados de atenção e autoatenção.
A atenção permite que o modelo se concentre nas partes mais relevantes da entrada e da saída, aprendendo a relevância ou semelhança entre os elementos, sendo geralmente representados por vetores. Se focar na mesma sequência, chama-se autoatenção.
Tomemos como exemplo a seguinte frase: “Tom gosta de comer maçã. Ele as come todos os dias. Nesta frase, “ele” refere-se a “Tom” e “eles” refere-se a “maçãs”. E o mecanismo de atenção usa um algoritmo matemático para dizer ao modelo que essas palavras estão relacionadas, calculando uma pontuação de similaridade entre os vetores de palavras. Com esse mecanismo, os transformers podem “dar sentido” melhor aos significados nas sequências de texto de maneira mais coerente.
Os transformers possuem os seguintes componentes:
- Incorporação e Encoding Posicional: transformando palavras em vetores de números
- Encoder: extrai recursos da sequência de entrada e analisa o significado e o contexto dela. Ele gera uma matriz de estados ocultos para cada token de entrada a ser passado para o decodificador
- Decoder: gere a sequência de saída com base na saída do codificador e nos tokens de saída anteriores
- Camadas lineares e não lineares (Softmax): transformando o vetor em uma distribuição de probabilidade de palavras de saída
O encoder e o decoder são os principais componentes da arquitetura do transformer. O encoder é responsável pela análise e “compreensão” do texto de entrada e o decoder é responsável pela geração de saída.
Se estiver interessado, você pode ler os detalhes dos encoder e decoder. Caso contrário, sinta-se à vontade para pular para o próximo subtítulo, onde abordaremos o GPT, sendo uma variante dos transformadores.
O encoder é uma pilha de várias camadas idênticas (6 no papel original do transformador). Cada camada possui duas subcamadas: uma camada de autoatenção multi-head e uma camada de alimentação, com algumas ligações, denominada ligação residual e normalização da camada. A subcamada de autoatenção multi-head aplica o mecanismo de atenção para encontrar a ligação/similaridade entre os tokens de entrada para entender a entrada. A subcamada de alimentação para a frente faz algum processamento antes de passar o resultado para a camada seguinte para evitar a sobreposição. Você pode pensar no encoder como ler livros – você prestará atenção a cada nova palavra que ler e pensará em como ela está relacionada às palavras anteriores.
O decoder é semelhante ao encoder no sentido de que também é uma pilha de camadas idênticas. Mas cada camada do decoder tem uma camada de atenção do encoder-decoder adicional entre as camadas de autoatenção e de avanço, para permitir que o decoder atenda à sequência de entrada. Por exemplo, se você está traduzindo “eu te amo” (entrada) para “Je t’aime” (saída), você precisa saber que “Je” e “eu” estão alinhados e “amor” e “aime” estão alinhados.
As camadas de atenção multi-head no decoder também são diferentes. Eles são mascarados para não atender nada à direita do token atual, que ainda não foi gerado. Você pode pensar no decoder como escrita de forma livre – você escreve com base no que escreveu e no que leu, sem se importar com o que vai escrever.
De transformadores para GPT, GPT2 e GPT3
O nome completo do GPT é Generative Pre-trained Transformer (algo como Transformador Generativo Pré-treinado). Pelo nome, você pode ver que é um modelo generativo, bom para gerar resultados; é pré-treinado, o que significa que aprendeu com um grande corpus de dados de texto; é um tipo de transformer.
Na verdade, o GPT usa apenas a parte do decoder da arquitetura do transformer. Na seção de transformers anterior, aprendemos que o decoder é responsável por prever o próximo token na sequência. A GPT repete esse processo várias vezes usando os resultados gerados anteriormente como entrada para gerar textos mais longos, os quais são chamados de autorregressivos. Por exemplo, se estiver traduzindo “eu te amo” para o francês, primeiro gerará “Je” e, em seguida, usará o “Je” gerado para obter “Je t’aime”. (Veja a linha tracejada na ilustração anterior).
No treinamento da primeira versão do GPT, os pesquisadores usaram um pré-treinamento não supervisionado com o BookCorpus databases, composto por mais de 7.000 livros únicos não publicados. A aprendizagem não supervisionada é como ter a própria IA a ler esses livros e tentar aprender as regras gerais da língua e das palavras. Além do pré-treinamento, eles também utilizaram afinações supervisionadas em tarefas específicas como resumos ou perguntas e respostas. Supervisionado significa que eles mostrarão à IA exemplos de solicitações e respostas corretas e solicitaram à IA que aprenda com esses exemplos.
No GPT-2, os pesquisadores expandiram o tamanho do modelo (parâmetros de 1,5B) e o corpus que alimentou o modelo foi o WebText, sendo uma coleção de milhões de páginas da web, durante o pré-treinamento não supervisionado. Com um corpus tão grande com que aprender, o modelo provou que pode funcionar muito bem numa vasta gama de tarefas relacionadas com a língua, mesmo sem afinação fina supervisionada.
No GPT-3, os pesquisadores deram um passo adiante ao expandir o modelo para 175 bilhões de parâmetros e usar um enorme corpus composto por centenas de bilhões de palavras da web, livros e Wikipedia. Com um modelo tão grande e um corpus enorme no pré-treinamento, os pesquisadores descobriram que o GPT-3 pode aprender a executar melhor tarefas com um (um disparo) ou alguns exemplos (poucos disparos) no imediato, sem uma afinação supervisionada explícita.
(Se quiser aprender mais sobre como incitar os modelos a produzir melhores resultados, pode ler o meu outro artigo: Como utilizar o ChatGPT na gestão de produtos)
Nesta fase, o modelo GPT-3 já é impressionante. Mas eles são mais como modelos de linguagem de uso geral. Os pesquisadores queriam explorar como ele pode seguir instruções humanas e conversar com humanos. Portanto, eles criaram o InstructGPT e o ChatGPT com base no modelo geral do GPT. Vamos detalhar em seguida como isto foi feito
Ensinar GPT a interagir com humanos: InstructGPT e ChatGPT
Após as iterações de GPT para GPT-3 com modelos em crescimento e tamanho de corpus, os investigadores perceberam que modelos maiores não significam que possam seguir bem a intenção humana e que possam produzir resultados prejudiciais. Portanto, eles tentaram ajustar o GPT-3 com aprendizado supervisionado e aprendizado por reforço com feedback humano (RLHF). Com essas etapas de treinamento, vieram os dois modelos ajustados – InstructGPT e ChatGPT.
O primeiro passo é a aprendizagem supervisionada a partir de exemplos humanos. Os pesquisadores forneceram primeiro o GPT pré-treinado com um conjunto de dados com curadoria, rotulado de pares de prontidão e resposta escrita por rotuladores humanos. Esse conjunto de dados é usado para permitir que o modelo aprenda o comportamento desejado desses a partir desses exemplos. A partir deste passo, obtêm um modelo supervisionado e afinado (SFT).
O segundo passo é treinar um modelo de recompensa (RM) para avaliar as respostas do modelo generativo. Os pesquisadores usaram o modelo SFT para gerar respostas múltiplas a partir de cada reação e pediram aos rotuladores humanos que classificassem as respostas do melhor para o pior pela qualidade, empenho, informatividade, segurança, coerência, e relevância. Os pedidos, respostas e classificações são alimentados por um modelo de recompensa para aprender as preferências humanas das respostas através da aprendizagem supervisionada. O modelo de recompensa pode prever um valor de recompensa escalar com base em quão bem a resposta corresponde às preferências humanas.
Na terceira etapa, os pesquisadores utilizaram o modelo de recompensa para optimizar a política do modelo SFT através do reforço da aprendizagem. O modelo SFT gerará uma resposta a partir de uma nova solicitação; o modelo de recompensa avaliará a resposta e dará um valor de recompensa que se aproxima da preferência humana; a recompensa é então utilizada para otimizar o modelo generativo através da atualização dos seus parâmetros. Por exemplo, se o modelo generativo gerar uma resposta que o modelo de recompensa pense que os humanos possam gostar, receberá uma recompensa positiva para continuar a gerar respostas semelhantes no futuro; e vice-versa.
Através deste processo com aprendizagem supervisionada e aprendizagem de reforço com feedback humano, o modelo InstructGPT (com apenas parâmetros 1.3B) consegue executar melhor em tarefas que seguem instruções humanas do que o modelo muito maior GPT-3 (com 175 parâmetros B).
(Nota: Contudo, isto não significa que InstructGPT seja melhor do que o GPT-3 em todos os aspectos ou domínios. Por exemplo, o GPT-3 pode ainda ter uma vantagem em gerar textos mais longos ou mais criativos, tais como histórias ou artigos).
O ChatGPT é um modelo irmão do InstructGPT. O processo de treinamento é semelhante para ChatGPT e InstructGPT, incluindo os mesmos métodos de aprendizado supervisionado e RLHF que abordamos anteriormente. A principal diferença é que o ChatGPT é treinado com exemplos de tarefas de conversação, como responder a perguntas, bate-papo, etc. Através deste treinamento, o ChatGPT pode ter conversas naturais com humanos em diálogos. Nas conversas, o ChatGPT pode responder a perguntas de acompanhamento e admitir erros, tornando a interação mais envolvente.
Aprendizado sobre o ChatGPT
Com as explicações anteriores, espero que você tenha uma compreensão mais clara de como funciona o modelo por trás do ChatGPT e como ele evoluiu para o que é hoje.
Como um pequeno resumo, aqui estão as principais conclusões e as limitações dos modelos do GPT:
- O ChatGPT é baseado em um modelo transformer auto regressivo somente decoder para obter uma sequência de texto e gerar uma distribuição de probabilidade de tokens na sequência, gerando um token de cada vez iterativamente.
- Por não ter a capacidade de buscar referências em tempo real, faz previsões probabilísticas no processo de geração com base no corpus em que foi treinado, o que pode levar a falsas afirmações sobre os fatos.
- Ele é pré-treinado em um enorme corpus de dados da web e de livros e ajustado com exemplos de conversas humanas por meio de aprendizado supervisionado e aprendizado por reforço com feedback humano (RLHF).
- Sua capacidade baseia-se principalmente no tamanho do modelo e na qualidade e tamanho do corpus e exemplos com os quais aprendeu. Com algum aprendizado supervisionado adicional ou RLHF, ele pode ter um desempenho melhor em contextos ou tarefas específicas.
- Como o corpus vem de conteúdo da web e livros, eles podem ter vieses com os quais o modelo pode aprender, especialmente para vieses sociais, culturais, políticos ou baseados em gênero, resultando em respostas tendenciosas a algumas solicitações.
Mantenha-se curioso e aberto a novas tecnologias como o ChatGPT. Acredito que uma mentalidade aberta e curiosidade podem nos ajudar como gerentes de produto, designers e empreendedores não técnicos a navegar nessa nova onda de revolução tecnológica.