Funcionamento das LLMs: por dentro da geração de texto
As LLMs representam um avanço significativo na maneira como as máquinas entendem e interagem com o idioma humano, nos ajudando a resolver problemas complexos, interpretar dados massivos e até mesmo criar conteúdo novo e envolvente. Este post visa desmistificar o funcionamento das LLMs, destacando sua importância e as perspectivas futuras que oferecem. Vamos mergulhar em um universo onde a tecnologia e a linguagem convergem, abrindo um leque de possibilidades sem precedentes.
A Base Tecnológica: Rede Neural e Aprendizado Profundo
Para entender como as LLMs operam, é essencial compreender primeiro o conceito de redes neurais artificiais (RNA), especificamente, aquelas aplicadas ao processamento de linguagem natural (PLN). Essas redes, baseadas em uma estrutura inspirada no cérebro humano, aprendem de maneira iterativa e são treinadas com enormes volumes de texto.
A inovação das LLMs reside no uso da arquitetura de "Transformers", que facilitam o reconhecimento de padrões complexos de linguagem a partir de grandes conjuntos de dados. Esse método permite que a LLM entenda contextos, inferência, e nuances da linguagem de forma muito mais eficiente do que as tecnologias anteriores. E com anteriores me refiro a algoritmos, métodos e estratégia da literaturá até 2017, ano em que os Transformers apareceram.
Pré-treinamento e Ajuste Fino
Antes de serem usadas para uma tarefa específica, as LLMs passam por um processo de pré-treinamento em grandes conjuntos de dados textuais, como a Wikipedia, livros digitizados, e outros documentos. Esse pré-treinamento permite que o modelo adquira um amplo conhecimento linguístico. Posteriormente, o modelo pode ser ajustado, ou "finetuned", para tarefas específicas, como geração de texto, classificação de sentimentos, tradução, ou resposta a perguntas. De fato, muitas empresas hoje em dia focam em realizar o fine-tuning de uma LLM para "atender" a um funcionamento/requerimento específico.
Atenção e Contexto
Uma das características distintivas das LLMs é sua capacidade de prestar atenção em diferentes partes do texto enquanto o processam. Isso é realizado por meio de "mecanismos de atenção", que permitem ao modelo focar em partes relevantes do texto de entrada para gerar uma saída coerente. O contexto desempenha um papel crucial no entendimento e na geração de texto, permitindo que as LLMs capturem nuances e sutilezas da linguagem.
Geração de Texto: Cómo trabalham as LLMs?
Aqui vamos ser mais detalhistas. Uma das aplicações mais impressionantes das LLMs é sua capacidade de gerar texto de forma autônoma, com base no contexto fornecido. Isso pode incluir a continuação de uma frase, a tradução de um texto para outro idioma ou até mesmo a criação de histórias inteiras. Mas esse processo não é tão complicado como pode parecer. Assim, assumindo que temos uma LLM funcional, o processo que é realizado para gerar texto é o seguinte:
Passo 1 - Separação em tokens: A frase inserida como input (por exemplo o prompt) é separada em tokens. Um token refere-se a uma unidade básica de texto que o modelo processa, e podem ser palavras individuais, partes de palavras (subpalavras) ou mesmo caracteres, dependendo de como o modelo é configurado e treinado. Para facilitar, assumiremos que um token é uma palavra individual da frase inserida no imput.
Passo 2 - Codificação dos Tokens: Cada token é convertido em uma representação vetorial única. A representação em vetores, também conhecida como embeddings de tokens, é uma técnica que mapeia cada token do vocabulário para um vetor numérico em um espaço de alta dimensionalidade. Existem várias maneiras de criar essas representações vetoriais, mas uma das abordagens mais comuns é usar técnicas de aprendizado de representação distribuída, como Word2Vec, GloVe (Global Vectors for Word Representation) ou embeddings contextuais como os usados nos Transformers.
Os vetores numéricos de cada token representam o significado e a relação semântica das palavras entre si, permitindo que o modelo compreenda o contexto. Por isso, as representações em vetores dos tokens em LLMs desempenham um papel crucial na capacidade do modelo de entender e gerar texto coerente e relevante. A qualidade desses vetores, permitem que a LLM capture e generalize informações complexas presentes nos dados de treinamento.
Passo 3 - Análise e Processamento: Os vetores de tokens são enviados, então, à LLM para processar o contexto fornecido através da suas camadas de processamento, em especial pelas suas camadas de "atenção" de Transformer.
Isso permitem que a LLM pondere melhor os pesos dos tokens no input, com base em sua relevância para a previsão da próxima palavra. E neste momento quando a "mágica" do poder conversacional das LLMs acontece.
Recomendados pelo LinkedIn
Passo 4 - Cálculo de Probabilidades Condicionais: A LLM calcula as probabilidades condicionais de todas as palavras que existem no seu vocabulário, o mesmo que foi gerado/obtido durante o pré-treinamento e/ou fine-tuning. Essas probabilidades são calculadas usando métodos como softmax sobre a distribuição de probabilidade condicional em função do contexto fornecido pelo texto do input. Assim, todas as palavras do vocabulario da LLM são ordenados em função da sua probabilidade de ser a "próxima palavra mais provável" até a "palavra menos provável".
Passo 5 - Seleção da Próxima Palavra: A palavra seguinte é selecionada de acordo com as probabilidades condicionais calculadas. Quanto maior a probabilidade de uma palavra aparecer a seguir, maior a chance de ela ser escolhida como a próxima palavra na sequência gerada pela LLM. Aqui é importante lembrar que a LLM não armazena a palavras em si, e sim suas representações vetoriais conforme mencionado no passo 2. Então, a LLM retorna a representação vetorial da "palavra mais provável" selecionada.
Passo 6 - Geração de Texto Contínuo: Com o vetor numérico da palavra selecionada, a mesma é decodificada para obter sua "forma original" e adicioná-la à sequência de entrada como a próxima palavra.
Logo, o processo é repetido para gerar texto contínuo, palavra por palavra.
As LLMs são as únicas em usar esse processo?
Na verdade não, as LLMs não são as únicas que geram texto calculando probabilidades condicionais. Várias abordagens em processamento de linguagem natural (PLN) usam métodos baseados em probabilidades condicionais para gerar texto, por exemplo: modelos de N-gram, modelos ocultos de Markov (HMM), Redes Neurais Recorrentes (RNNs), etc. Porém, é evidente que as LLMs tem alcançado um nível muito maior do que todos os outros métodos, tanto que quando o ChatGPT foi lançado, causou a euforia global, não apenas na comunidade científica, mas também na indústria, política e demais esferas de atuação humana.
Assim, podemos atribuir o sucesso das LLMs em relação a outros métodos baseados em probabilidades condicionais aos seguintes fatores:
Então, as LLMs não entendem ou conhecem sobre um determinado tema ou conversa?
Embora as LLMs possam gerar texto de maneira impressionante e até mesmo fornecer respostas relevantes/surprendentes em muitos casos, é importante entender que elas NÃO possuem uma compreensão real do significado das palavras ou do contexto em que são usadas. Isto é, elas não são tão ou mais inteligentes que um humano, ou tem o QI (próximo) de Albert Einstein, nem nada do que em algum momento a sociedade especulou.
Isso significa que, enquanto as LLMs podem produzir texto que soa natural e relevante em uma ampla variedade de tópicos, elas não têm conhecimento substancial sobre nenhum tópico em particular.
Portanto lembre que, ao usar aplicações de LLMs como ChatGPT e outros, é importante que você como humano e ser pensante possa interpretar com cautela as respostas que um algoritmico que usa probabilidades lhe oferece. Espero que o artigo de hoje leve você a entender melhor o porque não deve atribuir às LLMs um nível de compreensão ou conhecimento que elas não possuem.
Na próxima publicação, daremos uma olhada nas LLMs existentes na literatura (e no mercado) e compararemos o desempenho delas.