Muito se tem falado ultimamente sobre as maravilhas dos Large Language Models (LLMs). A maioria desses elogios é merecida. Peça ao ChatGPT para descrever a Teoria Geral da Relatividade e você obterá uma resposta muito boa (e precisa). No entanto, no final das contas, o ChatGPT ainda é um programa de computador (como todos os outros LLMs) que executa cegamente seu conjunto de instruções. Ele não entende a Teoria Geral da Relatividade melhor do que seu animal de estimação favorito. Infelizmente, usamos palavras “humanas” para descrever as técnicas que os engenheiros usam para criá-los – por exemplo, “aprendizado de máquina” e “treinamento”. Isso é enganoso porque um LLM não tem uma mente como a de um ser humano.
Há uma certa ironia aqui - como pode um chatbot sem pensamento resumir corretamente as descobertas do homem mais inteligente que já existiu? Para entender essa natureza contraditória dos LLMs, vamos explorá-los mais detalhadamente em termos de pontos fortes, pontos fracos e perigos para ver como podemos usar os dados e uma solução de armazenamento como o MinIO para explorar o primeiro e mitigar os outros dois. Essas são técnicas que todo engenheiro deve ter em mente ao treinar, testar e implantar LLMs em sua organização.
A força dos LLMs é que eles são treinados para compreender a distribuição de probabilidade das palavras no conjunto de treinamento usado para criá-las. Se o conjunto de treinamento for suficientemente grande (ou seja, um corpus de artigos da Wikipédia ou código público no GitHub), então os modelos terão um vocabulário e uma distribuição de probabilidade correspondente que fará com que seus resultados pareçam ter uma compreensão do mundo real do texto que eles produzem. Vamos examinar outro exemplo com mais detalhes – desta vez da Filosofia. Faça a pergunta ao ChatGPT: "O que significa 'cogito, ergo sum' e quem o escreveu?" e você obterá algo semelhante ao texto abaixo.
"Cogito, ergo sum" é uma proposição filosófica latina que se traduz como "Penso, logo existo" em inglês. Esta afirmação está famosamente associada a René Descartes, um filósofo, matemático e cientista francês. Descartes expressou essa ideia em sua obra "Discurso sobre o Método", publicada em 1637. A frase reflete a tentativa de Descartes de estabelecer uma verdade fundamental da qual não se pode duvidar - a certeza da própria existência como ser pensante.
LLMs produzem resultados como este usando distribuições de probabilidade. Funciona mais ou menos assim, eles começam olhando o texto da pergunta e determinam que a palavra “Cogito” tem maior probabilidade de ser a primeira palavra da resposta. A partir daí, eles analisam a pergunta e a primeira palavra da resposta para determinar a palavra que tem maior probabilidade de ser a próxima. Isso continua até que um caractere especial de “fim de resposta” seja determinado como sendo de maior probabilidade.
Esta capacidade de gerar uma resposta em linguagem natural baseada em milhares de milhões de probabilidades não é algo a temer - pelo contrário, é algo que deve ser explorado para obter valor comercial. Os resultados ficam ainda melhores quando você usa técnicas modernas. Por exemplo, usando técnicas como Retrieval Augmented Generation (RAG) e Fine-tuning, você pode ensinar um LLM sobre seu negócio específico. Alcançar esses resultados semelhantes aos humanos exigirá dados e sua infraestrutura precisará de uma solução robusta de armazenamento de dados.
Esses recursos de previsão do próximo token não apenas podem ser usados para gerar ótimos textos para seu chatbot ou texto de marketing, mas também podem ser usados para permitir a tomada de decisões automatizada em seu aplicativo. Dados prompts inteligentemente construídos que contêm uma declaração de problema e informações sobre APIs (“funções”) que podem ser chamadas, a compreensão da linguagem de um LLM permitirá que ele gere uma resposta que explique qual “função” deve ser chamada. Por exemplo, em um aplicativo de conversação sobre previsão do tempo, um usuário pode perguntar: “Preciso de uma capa de chuva se for ao Fenway Park hoje à noite?” Com algumas sugestões inteligentes, um LLM poderia extrair os dados de localização da consulta (Boston, MA) e determinar como uma solicitação para a API de precipitação Weather.com poderia ser formulada.
Por muito tempo, a parte mais difícil na construção de software foi a interface entre a linguagem natural e os sistemas sintáticos, como as chamadas de API. Agora, ironicamente, essa pode ser uma das partes mais simples. Semelhante à geração de texto, a qualidade e a confiabilidade do comportamento de chamada de função LLM podem ser auxiliadas com o uso de ajuste fino e aprendizagem por reforço com feedback humano (RLHF).
Agora que entendemos no que os LLMs são bons e por quê, vamos investigar o que os LLMs não podem fazer.
LLMs não podem pensar, compreender ou raciocinar. Esta é a limitação fundamental dos LLMs. Os modelos de linguagem não têm a capacidade de raciocinar sobre a pergunta do usuário. São máquinas de probabilidade que produzem uma estimativa muito boa para a pergunta do usuário. Não importa quão boa seja uma suposição, ainda é uma suposição e o que quer que crie essas suposições acabará por produzir algo que não é verdade. Na IA generativa, isso é conhecido como “Alucinação”.
Quando treinados corretamente, as alucinações podem ser reduzidas ao mínimo. O ajuste fino e o RAG também reduzem bastante as alucinações. O resultado final: treinar um modelo corretamente, ajustá-lo e fornecer-lhe contexto relevante (RAG) requer dados e infraestrutura para armazená-lo em escala e atendê-lo com desempenho.
Vejamos mais um aspecto dos LLMs, que classificarei como perigoso porque afeta nossa capacidade de testá-los.
O uso mais popular de LLMs é a IA generativa. A IA generativa não produz uma resposta específica que possa ser comparada a um resultado conhecido. Isto contrasta com outros casos de uso de IA, que fazem uma previsão específica que pode ser facilmente testada. É simples testar modelos para detecção, categorização e regressão de imagens. Mas como testar LLMs usados para IA generativa de uma forma imparcial, fiel aos fatos e escalável? Como você pode ter certeza de que as respostas complexas geradas pelos LLMs estão corretas se você não é um especialista? Mesmo se você for um especialista, os revisores humanos não podem fazer parte dos testes automatizados que ocorrem em um pipeline de CI/CD.
Existem alguns benchmarks no setor que podem ajudar. GLUE (General Language Understanding Evaluation) é usado para avaliar e medir o desempenho de LLMs. Consiste em um conjunto de tarefas que avaliam a capacidade dos modelos em processar a linguagem humana. SuperGLUE é uma extensão do benchmark GLUE que apresenta tarefas linguísticas mais desafiadoras. Essas tarefas envolvem resolução de correferências, resposta a perguntas e fenômenos linguísticos mais complexos.
Embora os benchmarks acima sejam úteis, grande parte da solução deve ser sua própria coleta de dados. Considere registrar todas as perguntas e respostas e criar seus próprios testes com base em descobertas personalizadas. Isso também exigirá uma infraestrutura de dados construída para escalar e funcionar.
Aí está. Os pontos fortes, fracos e perigos dos LLMs. Se quiser explorar o primeiro e mitigar os outros dois, você precisará de dados e de uma solução de armazenamento que possa lidar com muitos deles.