Futuros
Aceda a centenas de contratos perpétuos
TradFi
Ouro
Plataforma de ativos tradicionais globais
Opções
Hot
Negoceie Opções Vanilla ao estilo europeu
Conta Unificada
Maximize a eficiência do seu capital
Negociação de demonstração
Introdução à negociação de futuros
Prepare-se para a sua negociação de futuros
Eventos de futuros
Participe em eventos para recompensas
Negociação de demonstração
Utilize fundos virtuais para experimentar uma negociação sem riscos
Lançamento
CandyDrop
Recolher doces para ganhar airdrops
Launchpool
Faça staking rapidamente, ganhe potenciais novos tokens
HODLer Airdrop
Detenha GT e obtenha airdrops maciços de graça
Launchpad
Chegue cedo ao próximo grande projeto de tokens
Pontos Alpha
Negoceie ativos on-chain para airdrops
Pontos de futuros
Ganhe pontos de futuros e receba recompensas de airdrop
Investimento
Simple Earn
Ganhe juros com tokens inativos
Investimento automático
Invista automaticamente de forma regular.
Investimento Duplo
Aproveite a volatilidade do mercado
Soft Staking
Ganhe recompensas com staking flexível
Empréstimo de criptomoedas
0 Fees
Dê em garantia uma criptomoeda para pedir outra emprestada
Centro de empréstimos
Centro de empréstimos integrado
Tudo começa com uma pergunta simples: como é que uma máquina consegue compreender texto? Quando treinas um modelo para distinguir spam de mensagens normais ou para determinar a tonalidade de opiniões, algo interessante acontece por baixo do capô. O modelo precisa de alguma forma transformar letras e palavras em números, porque as redes neurais só trabalham com dígitos.
A primeira abordagem ingênua - simplesmente atribuir um número a cada palavra única. Good = 6, bad = 26, awesome = 27. Parece lógico, mas há um problema: os números 26 e 27 estão próximos um do outro, por isso o modelo vai pensar que bad e awesome são semelhantes. Na realidade, awesome e good são semanticamente mais próximas. Aqui está o truque.
Tentámos o One Hot Encoding - damos a cada palavra um vetor do tamanho de todo o vocabulário, onde apenas um elemento é 1, indicando a palavra certa, e o resto são zeros. O problema do ranking desapareceu, mas surgiu outro: se o vocabulário tiver 20 mil palavras, cada vetor será de 20 mil elementos. Consome muita memória e a semântica das palavras não é capturada pelo modelo.
Depois vieram Bag of Words e N-gramas - contamos quantas vezes uma palavra aparece no texto. Adiciona contexto, mas novamente - vetores esparsos grandes e o modelo não entende ligações profundas entre palavras. Se na frase "The librarian loves books" as palavras librarian e book não estiverem próximas, os N-gramas não vão captar que estão relacionadas.
É aqui que entra a codificação correta através de embeddings. A ideia é que palavras semelhantes devem estar próximas umas das outras no espaço vetorial. Imagine um plano bidimensional: numa direção está o tamanho do animal, na outra, o perigo. Um tigre e um leão estarão próximos (grandes e perigosos), enquanto um hamster estará separado (pequeno e seguro). Isso é embedding - um vetor denso que armazena o significado da palavra num espaço n-dimensional.
O mais incrível: com esses vetores, podemos fazer matemática. Pegue o vetor de "filho", subtraia "homem" e adicione "mulher" - obterá um vetor próximo de "filha". Ou: Madrid + Alemanha - Espanha = Berlim. Funciona porque o modelo captura as relações entre conceitos.
Como é que se treinam esses embeddings? O Google propôs o Word2Vec com duas abordagens. No CBOW, você pega as palavras de contexto e prevê a palavra central. No Skip-Gram, faz-se o contrário - a partir da palavra central, prevê-se os vizinhos. Ambas as técnicas funcionam bem para treinar embeddings de palavras.
Nos modelos atuais, como GPT ou BERT, tudo é um pouco diferente. A camada de embedding não é pré-definida, mas treinada junto com o próprio modelo. Primeiro, o texto é dividido em tokens, depois uma rede neural simples cria um embedding para cada token. Os pesos dessa camada são parâmetros treináveis que aprendem a representar as palavras no espaço desejado. Depois, esses embeddings passam por blocos de decodificação e chegam à camada de saída, que fornece probabilidades para o próximo token.
Um detalhe importante - a codificação posicional. O transformador processa todos os tokens em paralelo, ao contrário das RNNs. Por isso, é preciso informar ao modelo a ordem das palavras. Eles usam um vetor posicional e somam-no ao vetor de embedding. Assim, temos uma combinação: o significado da palavra + a informação sobre sua posição no texto.
Após a codificação posicional, o embedding entra no mecanismo de atenção - que é o coração de todos os grandes modelos de linguagem. O embedding captura a semântica de palavras individuais, mas o contexto é entendido precisamente pelo attention. Por isso, a palavra "chave" em diferentes contextos receberá representações contextuais diferentes.
Assim, combinando ideias simples - tokenização, contagem de palavras, codificação correta via embedding - chegamos gradualmente aos transformadores e ao ChatGPT. Os embeddings estão em todo lado: em sistemas de recomendação, na busca por imagens semelhantes, na base de todos os LLMs atuais. Se queres entender NLP de verdade, é preciso compreender como funcionam o CBOW, o Skip-Gram e toda essa arquitetura. Essa é a base de tudo, com que tudo começa.