Language Modeling
A modelação da linguagem atribui probabilidades a sequências de palavras ou tokens, geralmente prevendo o token seguinte. Aborda n-gramas, modelos neurais e avaliação.
A modelação de linguagem consiste em atribuir uma probabilidade a uma sequência de palavras ou tokens. Pela regra da cadeia da probabilidade, P(w1, w2, ..., wn) = P(w1) x P(w2 | w1) x ... x P(wn | w1, ..., wn-1); assim, um modelo que prevê cada token seguinte com base nos anteriores define a probabilidade de qualquer texto, e a amostragem dessas previsões gera texto novo. Este objetivo de prever o token seguinte treina todos os modelos GPT e a maioria dos grandes modelos de linguagem (LLM); durante décadas, antes dos LLMs, modelos de linguagem mais pequenos classificavam resultados possíveis em sistemas de reconhecimento de fala e tradução automática, e ainda sugerem a palavra seguinte nos teclados dos telemóveis.
Como um modelo de linguagem gera texto#
Um modelo treinado lê o prompt, atribui uma pontuação a cada token do seu vocabulário e converte essas pontuações em probabilidades para o token seguinte através de uma softmax. Uma regra de descodificação seleciona então um token, o modelo acrescenta-o e repete o ciclo até produzir um token de fim ou atingir um limite de comprimento; é assim que funciona a geração de texto:
A amostragem com uma temperatura ou amostragem de núcleo troca alguma probabilidade por variedade. Como cada token depende dos que já foram escritos, a resposta é produzida um token de cada vez. A interface LLM da Ultralytics transmite stream=True ao fornecedor, permitindo que um pipeline YOLO26 que pede a um modelo para descrever uma cena detetada imprima cada fragmento de texto à medida que chega.
De n-gramas a modelos neurais#
No artigo de 1948 sobre teoria da informação, Claude Shannon criou aproximações de palavras e letras em inglês a partir de estatísticas de n-gramas. Um modelo de n-gramas estima P(próxima palavra | n-1 palavras anteriores) contando a frequência das sequências de palavras num corpus, e os sistemas de reconhecimento de fala da IBM das décadas de 1970 e 1980 baseavam-se nesses modelos. Um modelo de bigramas, com n = 2, ilustra a ideia em poucas linhas de Python:
from collections import Counter
sentences = ["the cat sat on the mat .", "the dog sat on the rug .", "the cat saw the dog ."]
corpus = " ".join(sentences).split()
# Count word pairs to estimate P(next word | previous word)
pairs = Counter(zip(corpus, corpus[1:]))
firsts = Counter(corpus[:-1])
# The model's next-word distribution after "the"
print({nxt: round(n / firsts["the"], 2) for (prev, nxt), n in pairs.items() if prev == "the"})
# Chain rule: a sentence's probability is the product of its next-word probabilities
sentence = ["the", "dog", "sat", "on", "the", "mat"]
p = 1.0
for prev, nxt in zip(sentence, sentence[1:]):
p *= pairs[(prev, nxt)] / firsts[prev]
print(f"P(dog sat on the mat | the) = {p:.4f}")Depois de "the", o modelo prevê "cat" e "dog" com probabilidade de 0,33 cada, e "mat" e "rug" com 0,17 cada. Atribui a probabilidade de 0,0278 a "dog sat on the mat" depois de "the", embora essa frase nunca apareça no corpus, porque todos os pares de palavras que a compõem aparecem. Qualquer par ausente do corpus recebe probabilidade zero, por isso os modelos de n-gramas práticos precisam de métodos de suavização, como Kneser-Ney, e continuam sem conseguir usar contexto para além das n-1 palavras anteriores.
O modelo neural probabilístico de linguagem de 2003, de Yoshua Bengio e colegas, substituiu as contagens por embeddings aprendidos e uma rede neural, permitindo que palavras semelhantes partilhassem informação estatística. As redes neurais recorrentes (RNN) e as LSTM alargaram o contexto utilizável, e o transformer, com autoatenção sobre toda a janela de contexto, tornou-se a arquitetura padrão depois de 2017. O GPT-3 demonstrou em 2020 que um modelo de linguagem com 175 mil milhões de parâmetros podia aprender novas tarefas com exemplos no prompt.
Modelação de linguagem causal e mascarada#
A modelação de linguagem causal, ou autorregressiva, prevê cada token a partir dos tokens à sua esquerda e é o objetivo dos modelos generativos. A modelação de linguagem mascarada oculta alguns tokens e prevê-os com base no contexto de ambos os lados. O BERT é treinado desta forma com 15% dos tokens de entrada, e o contexto bilateral torna-o eficaz em tarefas de compreensão, como a classificação e o reconhecimento de entidades nomeadas, embora não consiga gerar texto da esquerda para a direita. Os modelos de linguagem de difusão ampliam a máscara para criar um gerador que preenche muitas posições em paralelo ao longo de várias etapas.
Treino e avaliação#
O treino é aprendizagem autossupervisionada: o próprio texto bruto fornece os rótulos, e o modelo minimiza a função de perda de entropia cruzada entre a distribuição prevista e cada token seguinte real. A exponencial da perda média é a perplexidade, a métrica intrínseca padrão, e as leis de escala descrevem como a perda diminui à medida que os modelos, os dados e a capacidade computacional aumentam. Um modelo base pré-treinado apenas dá continuidade ao texto; o ajuste de instruções e a aprendizagem por reforço com feedback humano (RLHF) transformam-no num assistente que segue pedidos.
Modelação de linguagem vs. termos relacionados#
- Modelo de linguagem e LLM: Um modelo de linguagem é qualquer modelo treinado nesta tarefa, desde uma tabela de bigramas até um transformer. Um LLM é um modelo de linguagem com milhares de milhões de parâmetros, treinado com biliões de tokens.
- Processamento de linguagem natural (NLP): Todo o campo da computação com linguagem humana, do qual a modelação de linguagem é uma das tarefas.
- Modelação autorregressiva visual (VAR): Aplica a mesma previsão do passo seguinte às imagens, gerando mapas de tokens de resoluções grosseiras a finas em vez de palavras.










