Adicione contexto: de vetores de palavras a Transformers
Veja por que um vetor por palavra não é suficiente e como os Transformers constroem representações sensíveis ao contexto.
- Explique por que um único vetor fixo por palavra é insuficiente
- Descreva o que uma camada Transformer e autoatenção acrescentam
- Explique como um modelo de linguagem gera texto, um token por vez
Um modelo no estilo word2vec fornece ao banco um vetor. Mas “sentamos na margem do rio” e “depositei dinheiro no banco” têm significados muito diferentes. Um vetor fixo (estático) deve fazer a média deles. Os modelos modernos produzem embeddings contextuais: o vetor para banco muda dependendo das palavras ao seu redor.
Experimente
Até 15 XPQual banco?
Leia cada frase e decida qual significado de banco ela usa. Pergunte a si mesmo quais outras palavras revelaram isso - essas são exatamente as palavras às quais um modelo contextual presta atenção.
“Fizemos um piquenique na margem do rio.”
“O banco aprovou seu empréstimo.”
“Peixes reunidos perto da margem lamacenta.”
“Ele abriu uma conta no banco do centro.”
O Transformer em uma imagem
O Transformer (Vaswani et al., 2017) é a arquitetura por trás dos modelos de linguagem atuais. Muito aproximadamente:
- Cada token se torna uma embedding, mais informações posicionais (a atenção por si só não conhece a ordem das palavras).
- Uma pilha de camadas executa a autoatenção (cada token coleta informações dos outros) e uma pequena rede de feed-forward.
- Depois de muitas camadas, o vetor de cada token reflete todo o seu contexto.
Um modelo de linguagem estilo decodificador usa os vetores finais para prever o próximo token, anexa-o e repete - o mesmo jogo de palavras seguintes do modelo bigrama, mas com um contexto de milhares de tokens e representações aprendidas em vez de contagens.
1import math
2a = [1, 0]
3b = [0.8, 0.6]
4dot = sum(x * y for x, y in zip(a, b))
5cosine = dot / (math.sqrt(sum(x * x for x in a)) * math.sqrt(sum(y * y for y in b)))
6print(round(cosine, 2))0.8
Principais conclusões
Vetores estáticos dão um significado a uma palavra; embeddings contextuais mudam com as palavras ao redor.
Os transformadores empilham camadas de autoatenção, além de informações posicionais para ordem das palavras.
Os modelos de linguagem são gerados prevendo repetidamente o próximo token - fluente, mas não garantido como verdadeiro.
Quiz da aula
6 perguntas · aprovação com 5 acertos · até 50 XP
Ao passar, você conclui a aula e mantém sua sequência. As perguntas erradas voltarão em sessões de revisão.
Pratique: aplique NLP com Python
Experimente cada ideia de processamento de texto em Python, execute com entradas de exemplo e use os resultados para ver onde o método funciona ou falha.
Compare dois vetores
Leia dois vetores diferentes de zero, separados por espaço, de comprimento igual, em linhas separadas. Calcule a similaridade do cosseno e imprima-a com duas casas decimais.
- Vetores perpendiculares
- Vetores semelhantes
O Python é executado em um ambiente isolado no navegador, com limite de 60 segundos. O runtime é carregado pelo CDN do Pyodide; seu código permanece neste navegador.
Dúvidas sobre esta lição
Travou em algum ponto? Pergunte. Descobriu algo? Compartilhe. Explicar também é uma ótima forma de aprender.
Carregando publicações…