O que o ChatGPT come no café da manhã?

Featured image

Introdução

Bem, retomando os estudos sobre Machine Learning do ponto de vista de recursos de dados necessários para o seu funcionamento, é bastante natural buscar entender a família de modelos mais em alta no momento em que escrevo este artigo: Os Large Language Models (LLMs), trazidos em grande relevância pelo desenvolvimento de várias soluções, mas principalmente pela ascensão do ChatGPT.

Pela facilidade de uso, e possibilidade de aplicação nas mais diversas atividades buscando aumentar a produtividade dos seus usuários (e o seu grande hype), é natural ver diversas empresas e organizações buscando criar suas próprias soluções a partir destas tecnologias.

O problema é que construir essas soluções do zero é um processo muito custoso, e o objetivo deste artigo é entender o porquê.

Um Escritor de Probabilidades

Antes de começar, é importante lembrar a ideia geral do aprendizado de modelos de Machine Learning, assim como apresentado nos últimos artigos. Os modelos aprendem criando relações e associações entre um grande conjunto de dados de entrada e as suas saídas esperadas. Considerando esse padrão, quais são as entradas e as saídas utilizadas por um modelo como o ChatGPT?

Bem, a ideia principal destes modelos é simplesmente completar frases. Ou seja, a entrada destes modelos é uma sentença incompleta e a saída é a próxima palavra mais provável da sentença.

Completing Words

De certa forma, esses modelos funcionam como o corretor de texto presentes nos celulares, buscando sugerir palavras com base no contexto em que se encontram. A diferença aqui é que os modelos de linguagem consideram um contexto muito maior do que os simples corretores de texto, levando a uma escolha mais assertiva de palavras.

Como exemplo, podemos considerar a frase presente na imagem acima: “Ele chutou a bola no ___”. Se considerarmos o contexto presente apenas nessa frase, existem várias palavras possíveis de serem utilizadas como próximo elemento. “Gol”, “ar”, “chão”, “campo” e “ângulo” são algumas palavras que consigo pensar agora. Mas e se expandirmos o contexto, considerando frases anteriores a essa? Agora teríamos:

“O jogo estava difícil. O time adversário vencia por 1 gol, e dominava a posse de bola. Mas depois que ele entrou, o clima do jogo mudou. Com uma jogada inteligente, e algumas trocas de passes, facilmente o time alcançou a área do adversário. Ele chutou a bola no ___”.

Se considerarmos esse contexto, as probabilidades ficam muito mais assertivas, e muito provavelmente a palavra “gol” parece ser a mais adequada para preencher o campo desejado.

E é assim que esses modelos alcançam uma melhor performance. E de cara isso já traz duas importantes consequências que afetam diretamente o custo destas soluções.

Bem, só considerando isso, o custo de criar uma solução destas já parece algo bastante inalcançável. Mas não é só isso. Apesar de parecer fazer bastante sentido no papel, estes modelos inteiramente baseados em probabilidades não possuem uma noção muito clara do sentido da frase que estão construindo, e muitas vezes, apesar de criarem sentenças semanticamente corretas, elas não necessariamente acabam sendo satisfatórias para os seus usuários.

Então, aqui entra outro fator: Além de considerar apenas probabilidades, as soluções precisam considerar a relevância das respostas geradas.

Obtendo Respostas Mais Interessantes

Interesting Answers Fonte: Freepik.

Para conseguir gerar respostas mais interessantes e relevantes para as consultas feitas pelos usuários, o modelo precisa ser capaz de avaliar as diferentes respostas possíveis de serem geradas, e escolher dentre elas, a que ele acredita ter maior relevância.

Mas como trazer essa noção de relevância das respostas para o modelo? Bem, só há um jeito aparente: Trazer a opinião pessoal de usuários para dentro do modelo. Nesse ponto, o esquema interno do funcionamento de modelos como o ChatGPT torna-se bastante técnico, e portanto, vou evitar me aprofundar aqui. Já tem bastante material por aí, de pessoas bem mais capacitadas do que eu, explicando esse processo.

Mas o importante aqui é entender que, em algum momento do processo de construção da solução, as respostas geradas precisam passar por uma certa intervenção humana. Dentro do processo de treinamento do ChatGPT, isso aconteceu de duas formas:

E aqui mais custos. E o mais complexo desses custos é que atividades manuais, realizadas por humanos, possuem uma escalabilidade muito menor do que atividades totalmente automatizadas realizadas por computadores. Logo, fazer com várias pessoas gerem milhares de respostas desejadas e avaliem vários resultados de modelos não só gera muito trabalho, mas também é muito custoso financeiramente e torna a viabilidade de construção de um modelo ainda mais inacessível para diversas organizações.

O que tem nesse Café?

Então, resumindo, o que é necessário para criar um modelo de linguagem como o grande sucesso da OpenAI?

É bastante coisa. E realmente parece envolver o esforço do tamanho de uma empresa inteira. Mas não é o fim do mundo, porque existe uma estratégia bem mais simples de trazer soluções generativas para dentro de uma empresa sem precisar criá-las do zero. Basta utilizar os modelos já existentes por aí, e apenas treiná-los para os dados específicos da sua organização. Pretendo explorar isso em um artigo futuro.

Referências

How ChatGPT actually works? by AssemblyAI The Making of ChatGPT: From Data to Dialogue by SITN AI and its carbon footprint: How much water does ChatGPT consume? por Mint Lounge Entendendo Como ChatGPT Funciona - Rodando sua Própria IA por Fabio Akita