Como o ChatGPT realmente funciona?
O ChatGPT é um chatbot baseado em um modelo de linguagem grande (GPT-3.5 ou GPT-4). Por trás dele, o ChatGPT é uma rede neural pré-treinada que foi treinada em uma quantidade impressionante de dados de texto disponíveis publicamente na Internet.
Essa grande quantidade de dados permite que o modelo aprenda padrões, gramática, contexto e até mesmo algum conhecimento de senso comum, permitindo que ele gere respostas significativas e coerentes às consultas dos usuários. O ChatGPT tem a capacidade exclusiva de participar de conversas interativas e dinâmicas com os usuários, o que o torna uma ferramenta promissora para uma ampla gama de aplicações.
O que é um modelo de linguagem grande
Os modelos de linguagem grande são algoritmos de IA que usam técnicas de aprendizagem profunda conhecidas como processamento de linguagem natural para ler, entender, gerar e prever textos.
Quando você digita um prompt, o modelo não procura a resposta na Internet, ele fornece a resposta de cabeça (embora não tenha cabeça). Ele gera uma resposta uma palavra por vez, determinando cada palavra seguinte com base em probabilidades derivadas dos dados de texto com os quais foi treinado e do texto que gerou até o momento.

11 bilhões de parâmetros: resposta a perguntas, aritmética, compreensão de idiomas
Como isso é possível? Bem, o ChatGPT não precisa procurar informações na Internet, porque ele já sabe tudo (bem, quase tudo). Todo o conhecimento disponível na Internet é incorporado ao ChatGPT por meio de seus 175 bilhões de parâmetros.

62 bilhões de parâmetros: tradução, raciocínio de senso comum, conclusão de código
À medida que o número de parâmetros do modelo aumenta, surgem novas habilidades no modelo que não foram projetadas intencionalmente por ninguém.

540 bilhões de parâmetros: cadeias de inferência lógica, reconhecimento de padrões, compreensão de leitura
Como o ChatGPT foi treinado
O ChatGPT foi treinado em centenas de milhares de livros, artigos e diálogos, inclusive:
- WebText2 (uma grande biblioteca de mais de 45 terabytes de dados de texto)
- Cornell Movie Dialogs Corpus (um conjunto de dados que contém mais de 200.000 conversas entre 10.000 personagens de filmes em roteiros de filmes)
- Ubuntu Dialogue Corpus (uma coleção de 1.000.000 de diálogos de várias voltas entre usuários do Ubuntu e a equipe de suporte da comunidade)
- bilhões de linhas de código do GitHub
Primeiro, o GPT teve permissão para processar todos os dados aos quais tinha acesso sem nenhuma orientação humana, permitindo que ele compreendesse de forma independente as regulamentações e conexões que ditam o domínio do texto (isso é o que se chama de "aprendizado não supervisionado").
Em seguida, para ajustar o modelo de linguagem, foi aplicada uma técnica chamada aprendizagem por reforço com feedback humano (RLHF):
- Os instrutores humanos de IA conduziram conversas em que representavam os dois lados: o usuário e um assistente de IA. Eles tiveram acesso a sugestões escritas pelo modelo para ajudar a compor as respostas. O modelo foi treinado usando o ajuste fino supervisionado para prever a próxima mensagem do assistente com base no histórico do diálogo.
- Para criar um modelo de recompensa para o aprendizado por reforço, foram coletados dados de comparação. Os instrutores de IA classificaram várias respostas do modelo por qualidade, considerando aspectos como se a resposta fazia sentido e se era útil. As respostas selecionadas tornaram-se um conjunto de dados de diálogo com novas mensagens escritas pelo modelo.
- Um modelo de recompensa foi criado usando uma técnica chamada modelagem de recompensa, em que um modelo foi treinado para prever a qualidade de uma resposta com base nos dados de comparação coletados na etapa anterior.
No final, o ChatGPT aprendeu a responder em qualquer situação, a dar respostas precisas e relevantes e a evitar tópicos potencialmente prejudiciais.
Arquitetura Transformer
O processo de treinamento do ChatGPT envolve a previsão da próxima palavra em uma frase com base nas palavras anteriores. Para isso, é empregada uma arquitetura Transformer (a propósito, T em ChatGPT significa Transformer), que é composta de camadas de mecanismos de autoatenção. A autoatenção permite que o modelo pondere diferentes palavras em uma frase com base em sua importância e relevância para prever a próxima palavra com precisão.
As redes neurais recorrentes (RNNs) mais antigas leem o texto da esquerda para a direita. Embora isso funcione bem quando as palavras relacionadas estão adjacentes, torna-se um desafio quando elas estão em extremidades opostas de uma frase.
Portanto, quando uma RNN estava trabalhando com um texto de uma página, na metade do terceiro parágrafo, ela já "esqueceria" o que estava no início.
Por outro lado, os transformers são capazes de processar simultaneamente cada palavra em uma frase e comparar cada palavra com todas as outras. Isso permite que eles concentrem sua "atenção" nas palavras mais relevantes, independentemente de sua posição na sequência de entrada.
Tokenização
É importante observar que os transformers não operam com palavras individuais (eles não conseguem ler como os humanos). Em vez disso, o texto de entrada é dividido em tokens individuais, incluindo palavras, sinais de pontuação e tokens especiais. Os tokens no ChatGPT são blocos de texto representados como vetores (números com direção e posição).
A proximidade dos vetores de tokens no espaço determina seu nível de associação: quanto mais próximos, mais relacionados eles são. Além disso, a atenção é codificada como um vetor, permitindo que as redes neurais baseadas em transformadores retenham informações cruciais das partes anteriores de um parágrafo.
Quando um usuário interage com o ChatGPT, o modelo recebe o histórico da conversa como entrada, incluindo as solicitações do usuário e as respostas geradas pelo modelo. A entrada é tokenizada e, em seguida, alimenta a rede neural. Cada token é associado a uma incorporação que representa seu significado no contexto da conversa.
O GPT-3 foi treinado com cerca de 500 bilhões de tokens, o que permite que seus modelos de linguagem atribuam mais facilmente o significado e prevejam o texto subsequente plausível, mapeando-os no espaço vetorial. Muitas palavras são mapeadas para tokens únicos, embora palavras mais longas ou mais complexas geralmente se dividam em vários tokens. Em média, os tokens têm cerca de quatro caracteres.
Durante o estágio de inferência, em que o modelo gera respostas, é usado um processo conhecido como autorregressão. Isso significa que o modelo prevê uma palavra de cada vez enquanto condiciona o histórico da conversa e as palavras geradas anteriormente. Para garantir que a resposta gerada seja coerente e relevante, são utilizadas técnicas como amostragem top-p e escala de temperatura.
Em resumo, o parâmetro top-p dá ao modelo um conjunto de opções (tokens) para escolher, enquanto a temperatura determina a probabilidade de escolher um determinado token. Quando a temperatura é definida como 0, o modelo escolherá somente os tokens mais "populares" (palavras que são encontradas juntas com mais frequência nos dados de texto em que o ChatGPT foi treinado):

Isso nem sempre é bom. Temperaturas mais altas tornam os resultados mais diversificados:

Mais informações sobre os parâmetros do ChatGPT: https://talkai.info/pt/blog/understanding_chatgpt_settings/