
Básico de LLM (Large Language Models) e O Modelo Estatístico
UFPE

Expandindo a linha do tempo para Modelos de Linguagem (Patriota, 2024):
(fonte: AI Experience - Google)
Segundo Patriota (2024), um modelo de linguagem é uma função que processa, relaciona e gera continuações coerentes com base em padrões aprendidos.
Entrada (Contexto): É o argumento da função (texto inicial). Saída: Um vetor de probabilidades para a próxima ‘palavra’, dado o contexto.
\[ f(\text{contexto}) = \begin{pmatrix} P_\hat{\theta}(\text{1ª palavra} | \text{contexto}) \\ \vdots \\ P_\hat{\theta}(\text{Vª palavra} | \text{contexto}) \end{pmatrix} \]
Onde \(V\) é o tamanho do vocabulário fixado.
Imagine o contexto: “Recife é uma”. O modelo calcula as probabilidades condicionais:
O modelo atribui probabilidades altas para continuações plausíveis e baixas para incoerentes. Estas probabilidades são estimadas via métodos estatísticos (e.g., Máxima Verossimilhança).
Algumas informações sobre os modelos:

Legenda:

Os “dados de treinamento especial” são conjuntos de dados de alta qualidade, cuidadosamente selecionados e organizados. Eles podem incluir dados diversificados e representativos, dados enriquecidos com anotações ou metadados, dados sintéticos, e dados privados ou proprietários. Esses dados são valiosos para criar modelos mais precisos e especializados, capazes de entender nuances e aplicar conhecimento em contextos específicos, como saúde, direito, ou finanças.
Detalhando as duas arquiteturas dos modelos de LLMs, temos:
é uma arquitetura onde cada neurônio em uma camada é conectado aos demais neurônios na camada seguinte. Essa conectividade total é também conhecida como fully connected.
é uma arquitetura de rede neural onde o modelo é dividido em vários “experts” (sub-modelos) especializados em diferentes partes do espaço de entrada. Possui uma camada denominada gating que determina quais experts serão ativados para uma dada entrada.
A tokenização é o processo de pegar o texto e transformar as sequências de entrada para números.
<PAD>, <UNK>, <EOS> (End of Sentence).Para tratamento matemático, representamos cada token como um vetor de zeros com um 1 na posição correspondente ao token no vocabulário.
Considere um vocabulário \(\{A, B, C, D\}\). A sequência \(A, A, B\) seria:
\[ \begin{pmatrix} 1 \\ 0 \\ 0 \\ 0 \end{pmatrix}_A, \begin{pmatrix} 1 \\ 0 \\ 0 \\ 0 \end{pmatrix}_A, \begin{pmatrix} 0 \\ 1 \\ 0 \\ 0 \end{pmatrix}_B \]
Denotamos o token observado como vetor \(\mathbf{\dot{x}}\) e a versão aleatória como \(\mathbf{x}\). Esta é a forma mais adequada para representar vetores aleatórios em estatística multivariada.

Apesar da referência, palavras grandes podem ser divididas em subtokens menores, sendo assim, em 1.000 tokens de palavras em português correspondem aproximadamente a 700 a 750 palavras do nosso idioma.

Seja \(V\) o tamanho do vocabulário e \(k\) o contexto máximo. A distribuição do próximo token \(X_{s+1}\) dado o contexto \(\dot{\mathbf{x}}_{1:s}\) é modelada como:
\[ X_{s+1} | \mathbf{x}_{1:s} = \dot{\mathbf{x}}_{1:s} \sim \text{Multinomial}_V(1, \boldsymbol{p}_\theta^{(s)}(\dot{\mathbf{x}}_{1:s})) \]
Onde \(\boldsymbol{p}_\theta^{(s)}\) é o vetor de probabilidades condicionais calculadas pelo modelo (rede neural) dados os tokens anteriores.
Esta formulação trata a geração de texto como um processo estocástico sequencial.
Para “treinar” o modelo, precisamos estimar os parâmetros \(\boldsymbol{\theta}\). Utilizamos a Função de Verossimilhança (Likelihood). Para uma sequência observada \(\dot{\mathbf{x}}\), buscamos maximizar:
\[ L(\boldsymbol{\theta}, \dot{\mathbf{x}}) = \prod_{s=1}^{k} \prod_{i=1}^{V} p_{\theta, i}^{(s)}(x_{1:s})^{x_{i, s+1}} \]
em que \(x_{i, s+1} = 1\) se o token \(i\) é o próximo token na posição \(s+1\), e 0 caso contrário.
Embeddings são vetores numéricos obtidos dos tokens e representam palavras, frases ou documentos.
As word embeddings transformam os valores inteiros únicos obtidos a partir do tokenizador em um array \(n\)-dimensional.
Por exemplo, a palavra ‘gato’ pode ter o valor ‘20’ a partir do tokenizador, mas a camada de embedding utilizará todas as palavras no seu vocabulário associadas a ‘gato’ para construir o vetor de embeddings. Ela encontra “dimensões” ou características, como “ser vivo”, “felino”, “humano”, “gênero”, etc.
Assim, a palavra ‘gato’ terá valores diferentes para cada dimensão/característica.

Detalhes importantes:
Similaridade do Cosseno (\(Sim_{cos}\)):
Distância do Cosseno (\(D_{cos} = 1 - Sim_{cos}\)):

Alguns conceitos importantes quando se trabalha com algoritmos de LLMs, são:
Tokenização: Os dados de entrada são divididos em tokens;
Embedding: cada token é transformado em um vetor denso;
Camadas de Encoder: processam e refinam os embeddings;
Self-Attention Mechanism: Cada token avalia a importância de todos os outros.
Saída do Encoder: Conjunto de embeddings contextuais.

De forma simplificada, o Decoder do Transformer é a função \(\boldsymbol{p_\theta}\) que estimamos. Ele pode ser representado por:
\[ \underbrace{\mathbf{\dot{x}}}_{\text{input}} \to \underbrace{x^{(1)}}_{\text{Emb + Pos}} \to \left[ \underbrace{x^{(2l)}}_{\text{Att}} \to \underbrace{x^{(3l)}}_{\text{FFN}} \right]_{l=1}^N \to \underbrace{x^{(4)}}_{\text{Final}} \to \underbrace{\boldsymbol{p_\theta}(\mathbf{x})}_{\text{softmax}} \]
Cada camada introduz mais parâmetros. É uma espécie de regressão logística multivariada sofisticada (Patriota, 2024).
Alguns conceitos importantes quando se trabalha com algoritmos de LLMs, são:
Preparação da Entrada do Decoder: A entrada do decoder é preparada os embeddings contextuais do encoder;
Camada de Self-Attention do Decoder: Semelhante ao encoder, o decoder usa múltiplas cabeças de atenção para capturar diferentes aspectos da relação entre tokens, mas respeitando a ordem causal;
Camada de Atenção Encoder-Decoder: A camada de atenção encoder-decoder permite que o decoder se concentre em diferentes partes da entrada do encoder, dependendo do token que está sendo gerado.
Saída do Decoder: O resultado do decoder é um conjunto de embeddings contextuais finais, que são usados para prever o próximo token na sequência de saída.
Predição do Próximo Token: O modelo prediz o próximo token na sequência de saída com base nos embeddings contextuais finais.

Após estimar os parâmetros, o texto é gerado de forma autoregressiva. O token gerado é inserido no contexto e o processo é repetido até gerar o token <EOS>.
\[ f(x_1, \dots, x_k) \to x_{k+1} \] \[ f(x_1, \dots, x_k, x_{k+1}) \to x_{k+2} \] \[ \vdots \]
Para escolher o próximo token a partir das probabilidades, usamos técnicas como greedy, top-k e top-p.
Os modelos possuem alguns hiperparâmetros ajustáveis para inferência dos retornos.
Entretanto, vamos falar primeiramente definições de Top-k e Top-p e depois detalharemos sobre a Temperatura.
O top-k proporciona uma aleatoriedade controlada ao considerar um número fixo de tokens mais prováveis, enquanto o top-p permite um controle dinâmico sobre o número de tokens considerados, resultando em diferentes níveis de diversidade no texto gerado.
A probabilidade cumulativa refere-se ao somatório das probabilidades de um conjunto de eventos ou opções, somadas em ordem decrescente de probabilidade até que um certo limite seja atingido
Suponha que o modelo tenha os seguintes tokens candidatos, com suas probabilidades associadas:
| Token | Probabilidade |
|---|---|
| Token A | 0,40 |
| Token B | 0,30 |
| Token C | 0,15 |
| Token D | 0,10 |
| Token E | 0,05 |
Agora, se você definir top-p = 0,85, o modelo irá selecionar tokens até que a probabilidade cumulativa atinja 0,85.
Assim, apenas os tokens A, B e C serão considerados, pois a soma de suas probabilidades atinge 0,85. Tokens com probabilidade mais baixa (como D e E) serão excluídos da escolha, a menos que top-p seja aumentado.
Vamos relembrar…

O parâmetro de temperatura é aplicado diretamente à função softmax.

Efeito da Temperatura
À medida que a temperatura se aproxima de 0, as probabilidades de saída se tornam mais “agudas”. Uma das probabilidades ficará próxima de 1.
Conforme a temperatura aumenta, as probabilidades de saída se tornam mais “planas” ou “uniformes”, reduzindo a diferença entre as probabilidades dos diferentes elementos.
O intervalo do parâmetro de temperatura é definido entre 0 e 1 na documentação da OpenAI. No contexto da Cohere, os valores de temperatura estão dentro do intervalo de 0 a 5.
Código em python para analisar-mos a temperatura1:

O que esses modelos modernos podem fazer (Patriota, 2024)?
Problemas:
O modelo ainda erra de forma confiante.
Não se sabe se apenas inserir módulos ou modificar o treinamento resolveria questões lógicas complexas.
Em termos práticos, alguns problemas que temos com LLMs (SLMs) são:
Duas alternativas para mitigar esses problemas são:
Fine-Tuning: ajustar o modelo para um conjunto de dados específico, para que ele possa aprender a tarefa desejada;
RAG (Retrieve and Generate): que é um modelo que combina a capacidade de recuperar informações de um grande banco de dados com a capacidade de gerar texto de um modelo de linguagem.

Para quem tem interesse em implementar modelos de linguagem no R, consulte o trabalho de Alexandre Patriota:
Patriota, A. G. (2024). O modelo estatístico por trás dos Modelos de Linguagem Modernos. Apresentação para o V EPBEST.
Reid, Machel, et al. (2024). Gemini 1.5: Unlocking multimodal understanding across millions of tokens of context. arXiv preprint arXiv:2403.05530 .
Vaswani, A., N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, L. Kaiser, and I. Polosukhin (2017). Attention is all you need. Advances in neural information processing systems 30.
Devlin, J., M.-W. Chang, K. Lee, and K. Toutanova (2018). Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805.
Fontes das imagens utilizadas:
https://iaexpert.academy/2017/03/23/ia-simbolica-x-ia-conexionista/
https://www.zendesk.com.br/blog/inteligencia-artificial-simbolica-e-conexionista/
https://bleedaiacademy.com/overview-of-the-field-artificial-intelligence-part-4/
https://www.researchgate.net/publication/ 221053431_Application_of_Mixture_of_Experts_to_Construct_Real_Estate_Appraisal_Models
https://lena-voita.github.io/nlp_course/word_embeddings.html
OBRIGADO!
Slide produzido com quarto
Lattes: http://lattes.cnpq.br/4617170601890026
LinkedIn: jodavidferreira
Site Pessoal: https://jodavid.github.io/
e-mail: jodavid.ferreira@ufpe.br
Redes Neurais - Prof. Jodavid Ferreira