Um embedding em IA é um vetor numérico, ou lista de números de ponto flutuante, que representa texto ou outros dados em um espaço matemático onde significados semelhantes ficam próximos. Modelos de aprendizado de máquina usam embeddings vetoriais para medir a relação entre conceitos, viabilizar a busca semântica e recuperar contexto relevante em sistemas RAG.
Quando explico embeddings a engenheiros que estão construindo seu primeiro pipeline de busca, peço que imaginem um mapa em que os assuntos substituem a geografia. A correspondência por palavras-chave verifica se duas sequências compartilham exatamente as mesmas letras, o que falha quando um documento diz cão e outro diz filhote. Um embedding vetorial resolve essa lacuna ao transformar significado em coordenadas, para que o software possa comparar ideias com geometria básica.
Como um embedding vetorial representa significado?
Um embedding vetorial representa significado convertendo entradas complexas, como palavras, frases ou imagens, em coordenadas dentro de um espaço de embeddings multidimensional. Segundo o glossário de definições de IA do Stanford HAI, embeddings colocam itens semelhantes próximos no espaço matemático. Assim, palavras como cão e filhote recebem vetores próximos, enquanto cão e torrada ficam distantes.
No guia de embeddings da OpenAI, um embedding é definido como um vetor de números de ponto flutuante cuja distância mede a relação entre sequências de texto. Distâncias pequenas entre dois vetores indicam uma relação forte, enquanto distâncias grandes indicam uma relação fraca. IBM Think apresenta o mesmo princípio para diferentes tipos de dados: embeddings vetoriais transformam entradas não matemáticas, como texto ou imagens, em arrays numéricos que modelos de aprendizado de máquina podem processar, garantindo que itens mais semelhantes no mundo real recebam vetores mais semelhantes.
O Machine Learning Crash Course do Google acrescenta três propriedades práticas dos espaços de embeddings que influenciam o trabalho dos engenheiros:
- Projeção em menos dimensões: Modelos costumam projetar entradas brutas de alta dimensionalidade em um espaço de embeddings mais denso e com menos dimensões, onde a distância pode ser calculada matematicamente como similaridade relativa.
- Coordenadas individuais opacas: Dimensões individuais de um embedding aprendido raramente podem ser interpretadas como conceitos claros rotulados manualmente. O significado está na posição e na direção combinadas de todos os números do array.
- Especificidade da tarefa: Embeddings geralmente são treinados para tarefas específicas, o que significa que um espaço vetorial otimizado para recuperação semântica de texto é diferente de um treinado para recomendações de produtos.
Como vetores codificam relações em vez da grafia exata, a OpenAI lista seis tarefas comuns em produção para embeddings: busca (classificar resultados por relevância para a consulta), agrupamento, recomendações, detecção de anomalias, medição de diversidade e classificação (atribuir uma sequência ao rótulo mais próximo).
Embeddings de palavras, frases e documentos
Embeddings de palavras, frases e documentos diferem na quantidade de texto que um modelo comprime em um único vetor. Escolher a granularidade certa determina se o sistema acompanha termos individuais, consultas curtas de usuários ou trechos com vários parágrafos.
Embeddings de palavras
Um embedding de palavra é um vetor denso atribuído a uma única palavra ou token de IA. Embeddings estáticos de palavras, como word2vec, apresentado por Tomas Mikolov e colegas em 2013, atribuem um vetor global fixo a cada palavra de um vocabulário. Como explica o Machine Learning Crash Course do Google, modelos treinados para prever o contexto ao redor de uma palavra presumem que palavras que aparecem em contextos semelhantes têm significados relacionados.
Embeddings estáticos de palavras têm uma limitação conhecida: um único vetor precisa representar todos os sentidos de uma palavra ao mesmo tempo, como banco no sentido de instituição financeira e banco no sentido de assento. O Google também observa, citando Deep Learning with Python de François Chollet, que embeddings estáticos de palavras costumavam usar quantidades de dimensões como 256, 512 ou 1024.
Embeddings de frases
Um embedding de frase mapeia uma expressão ou frase inteira em um vetor, em vez de produzir vetores separados para cada palavra. A IBM observa que embeddings de frases capturam o significado semântico combinado de uma expressão completa e são usados com frequência para codificar consultas de usuários em fluxos de busca e resposta a perguntas. Codificar a frase inteira ajuda a distinguir sequências que compartilham palavras idênticas em ordens diferentes.
Embeddings de documentos
Um embedding de documento representa um trecho mais longo, uma seção de artigo ou um bloco completo de documento como um vetor. Uma abordagem básica simples combina vetores de palavras calculando sua média, embora esse método frequentemente perca estrutura e nuances. Modelos de embedding de texto desenvolvidos para esse fim codificam o trecho inteiro em uma única etapa. Em sistemas reais de recuperação, equipes raramente comprimem um livro inteiro em um vetor; em vez disso, dividem arquivos longos em blocos menores e geram um embedding por bloco.
| Tipo de embedding | Granularidade da entrada | Unidade vetorial típica | Principal função e limitação |
|---|---|---|---|
| Embedding de palavra | Uma palavra ou token | Um vetor por item do vocabulário | Captura a similaridade entre termos; modelos estáticos como word2vec reúnem todos os sentidos de uma palavra em um vetor |
| Embedding de frase | Expressão ou frase única | Um vetor por consulta ou linha | Captura a intenção no nível da expressão; usado com frequência em consultas de busca e respostas a perguntas |
| Embedding de documento | Trecho ou bloco de documento | Um vetor por bloco ou documento | Apoia a recuperação no corpus; documentos longos geralmente precisam ser divididos antes do embedding |
O que significam as dimensões de um embedding?
As dimensões de um embedding medem o comprimento de um vetor, ou seja, quantos números de ponto flutuante um modelo produz para cada entrada. Vetores maiores têm mais capacidade de codificar distinções semânticas sutis, enquanto vetores menores reduzem o uso de memória, o tamanho do índice e o processamento necessário para comparações.
Os modelos de embedding de terceira geração da OpenAI ilustram essa compensação diretamente. Em 14 de novembro de 2026, a documentação oficial da OpenAI estabelece comprimentos de saída padrão de 1536 dimensões para text-embedding-3-small e 3072 dimensões para text-embedding-3-large. Ambos os modelos aceitam um parâmetro opcional dimensions na solicitação API, permitindo que desenvolvedores solicitem um vetor menor sem perder as propriedades do embedding que representam conceitos.
A OpenAI treinou ambos os modelos de terceira geração para que os números finais possam ser removidos sem problemas. Segundo o guia de embeddings da OpenAI em 14 de novembro de 2026, reduzir text-embedding-3-large para 256 dimensões ainda supera um embedding text-embedding-ada-002 não reduzido de 1536 dimensões no benchmark MTEB. Se um banco de dados vetorial impõe um limite rígido de 1024 dimensões, a OpenAI observa que desenvolvedores ainda podem chamar text-embedding-3-large com dimensions definido como 1024, trocando uma pequena quantidade de precisão por compatibilidade e menor espaço de armazenamento.
Desenvolvedores que reduzem vetores manualmente após recebê-los de uma API precisam aplicar depois a normalização de comprimento L2. Passar o parâmetro dimensions diretamente ao criar o embedding evita o pós-processamento manual e é o procedimento recomendado pela OpenAI.
Como a similaridade cosseno compara embeddings?
A similaridade cosseno compara dois vetores de embedding medindo o cosseno do ângulo entre eles. Como avalia a orientação no espaço de embeddings em vez da magnitude bruta dos vetores, dois trechos que apontam na mesma direção semântica recebem uma pontuação alta mesmo que seus comprimentos sejam diferentes.
Para vetores gerais, a similaridade cosseno varia de -1 a 1:
- 1: Ambos os vetores apontam exatamente na mesma direção, indicando similaridade máxima.
- 0: Os vetores são ortogonais, indicando significados não correlacionados.
- -1: Os vetores apontam em direções opostas.
A distância euclidiana oferece uma métrica alternativa ao medir a distância em linha reta entre dois pontos no espaço de embeddings. Quando desenvolvedores perguntam qual função de distância escolher, a FAQ de embeddings da OpenAI recomenda explicitamente a similaridade cosseno, observando que a escolha da métrica normalmente faz pouca diferença nos vetores da OpenAI. Todo embedding retornado pela API da OpenAI já é normalizado para comprimento 1, o que significa que a similaridade cosseno equivale ao produto escalar e que a similaridade cosseno e a distância euclidiana produzem classificações de busca idênticas.
Como embeddings são usados em RAG?
Embeddings viabilizam a geração aumentada por recuperação (RAG) ao comparar a pergunta de um usuário com blocos de documentos armazenados antes que um modelo de linguagem escreva uma resposta. Em vez de depender apenas de fatos memorizados durante o pré-treinamento, um pipeline RAG pesquisa coleções de textos privados ou atualizados usando similaridade vetorial.
De acordo com as orientações da OpenAI sobre resposta a perguntas e busca de texto, um pipeline RAG padrão segue cinco etapas:
- Divida o corpus em blocos: Divida documentos de origem longos em trechos menores para que cada vetor represente uma ideia específica. Nosso guia sobre como dividir documentos para RAG aborda estratégias específicas de divisão.
- Gere embeddings e indexe os blocos: Envie cada bloco a um modelo de embedding e armazene os vetores resultantes junto com o texto de origem. A OpenAI recomenda armazenar vetores em um banco de dados vetorial para pesquisar rapidamente em grandes coleções.
- Gere um embedding da consulta do usuário: Passe a pergunta recebida exatamente pelo mesmo modelo de embedding para que a consulta fique no mesmo espaço matemático dos blocos indexados.
- Recupere os vizinhos mais próximos: Calcule pontuações de similaridade, como similaridade cosseno ou produto escalar em vetores normalizados, e recupere os blocos mais correspondentes.
- Passe o contexto ao modelo: Insira os blocos de texto recuperados no prompt do modelo de linguagem para que ele gere uma resposta fundamentada no material de origem.
O tamanho dos blocos e os limiares de recuperação variam muito conforme a estrutura dos documentos e os padrões de consulta. Por isso, equipes devem testar estratégias de divisão em seu corpus real em vez de depender de um único tamanho universal de bloco.
Modelos de embedding da OpenAI, limites e preços
Em 14 de novembro de 2026, a API de embeddings da OpenAI oferece três modelos principais de texto com limites fixos de tokens e preços por token. Desenvolvedores geram vetores enviando uma solicitação POST https://api.openai.com/v1/embeddings que contém input e model, com dimensions opcional (nos modelos de terceira geração) e encoding_format (float por padrão ou base64).
Os três modelos de embedding da OpenAI listados compartilham os mesmos limites por solicitação: no máximo 8.192 tokens por entrada individual, até 2.048 itens por array de entrada e no máximo 300.000 tokens somados em todas as entradas de uma chamada API. Sequências vazias são rejeitadas. Para contar tokens localmente antes de enviar solicitações, a OpenAI recomenda usar a codificação cl100k_base com tiktoken. Os três modelos também são compatíveis com a Batch API da OpenAI.
| Modelo | Dimensões padrão | Máximo de tokens de entrada | Preço por 1 milhão de tokens (14 de novembro de 2026) | Páginas aproximadas por dólar (~800 tokens/página) | Pontuação MTEB publicada pela OpenAI |
|---|---|---|---|---|---|
text-embedding-3-small |
1536 | 8.192 | $0.02 | 62.500 | 62.3% |
text-embedding-3-large |
3072 | 8.192 | $0.13 | 9.615 | 64.6% |
text-embedding-ada-002 |
1536 | 8.192 | $0.10 | 12.500 | 61.0% |
Esses números vêm diretamente da página de preços da OpenAI e do guia de embeddings em 14 de novembro de 2026. A OpenAI descreve text-embedding-3-small como um sucessor aprimorado de text-embedding-ada-002 e posiciona text-embedding-3-large como seu modelo mais capaz para tarefas em inglês e em outros idiomas. Considere os percentuais MTEB acima estritamente como benchmarks publicados pela própria OpenAI em sua documentação nessa data, e não como uma classificação independente e atualizada de todos os fornecedores de embeddings do setor.
FAQ
Qual é a diferença entre um embedding vetorial e um token?
Um token é um pedaço de texto de entrada, como uma palavra ou parte de uma palavra, que um modelo lê e pelo qual cobra. Um embedding vetorial é o array denso de números de ponto flutuante produzido pelo modelo para representar o significado de um ou mais tokens. Você pode passar até 8.192 tokens para um modelo de embedding da OpenAI para receber um vetor.
O parâmetro dimensions da OpenAI reduz a precisão do embedding?
Encurtar um vetor com o parâmetro dimensions troca uma pequena quantidade de precisão por custos menores de armazenamento e processamento. A OpenAI afirma que seus modelos de terceira geração foram treinados para que números finais possam ser removidos preservando a representação de conceitos. Em 14 de novembro de 2026, a OpenAI informa que um vetor text-embedding-3-large de 256 dimensões ainda supera no MTEB um vetor text-embedding-ada-002 não reduzido de 1536 dimensões.
Devo usar similaridade cosseno ou distância euclidiana para embeddings da OpenAI?
A similaridade cosseno é a métrica recomendada pela OpenAI, embora ambas as funções deem classificações idênticas para vetores da OpenAI. Como embeddings da OpenAI são normalizados para comprimento 1, a similaridade cosseno é matematicamente equivalente ao produto escalar e a distância euclidiana preserva exatamente a mesma ordem. Para vetores gerais não normalizados de outras fontes, a similaridade cosseno isola o ângulo em vez da magnitude.
Modelos de embedding conhecem acontecimentos recentes?
Os modelos de embedding de terceira geração da OpenAI, text-embedding-3-small e text-embedding-3-large, não conhecem acontecimentos posteriores a setembro de 2021. A OpenAI observa em sua FAQ de embeddings que esse limite de conhecimento geralmente é menos restritivo para embeddings do que para modelos de geração de texto, embora certas consultas específicas de domínio ou posteriores ao limite ainda possam ter qualidade de correspondência reduzida.
A quem pertencem os embeddings gerados pela API da OpenAI?
Segundo a FAQ oficial da OpenAI, os clientes são proprietários tanto das entradas que enviam quanto dos vetores de saída gerados pelos modelos da OpenAI, incluindo embeddings. A OpenAI afirma que a propriedade se aplica a seus endpoints de embedding, enquanto os usuários continuam responsáveis por garantir que seu uso da API cumpra a legislação aplicável.
Fontes
- Guia de embeddings da OpenAI
- Preços da API da OpenAI
- Documentação de modelos da OpenAI: text-embedding-3-small
- Documentação de modelos da OpenAI: text-embedding-3-large
- Stanford HAI: o que são embeddings?
- Google Machine Learning Crash Course: espaço de embeddings e embeddings estáticos
- IBM Think: o que é embedding vetorial?



