Embedding é uma lista de números (um vetor) que representa o significado de um texto, imagem ou áudio. Um modelo de embedding transforma “tênis para corrida” e “calçado para correr” em vetores próximos entre si e distantes de “tênis de mesa”. Comparando esses vetores, um sistema consegue buscar por significado em vez de palavra exata, recomendar itens parecidos, encontrar duplicatas e classificar conteúdo.
Embeddings são a base invisível de muita coisa: a busca do RAG, a “loja que entende o que você quis dizer”, o agrupamento automático de tickets de suporte. Este guia explica o que são, como medir similaridade, quais modelos estão disponíveis hoje nas documentações oficiais (OpenAI, Google, Voyage e o recém-anunciado EmbeddingGemma 2) e como escolher um para conteúdo em português.
Resumo rápido
- Um embedding converte conteúdo em vetor; conteúdos parecidos ficam próximos no espaço vetorial.
- A medida mais usada é a similaridade de cosseno. Com vetores normalizados, ela equivale ao produto escalar.
- Usos principais: busca semântica, recomendação, deduplicação, classificação e agrupamento.
- Opções atuais incluem text-embedding-3 da OpenAI, Gemini Embedding 2, a família Voyage 4 (indicada pela Anthropic) e o EmbeddingGemma 2, aberto e leve para rodar no próprio aparelho.
- Nunca misture vetores de modelos diferentes: trocar de modelo exige gerar todos os embeddings de novo.
O que é um embedding, sem matemática pesada
Pense num mapa. Cada texto vira um ponto, e a posição do ponto reflete o assunto e o sentido. “Boleto vencido” e “pagamento atrasado” ficam no mesmo bairro; “receita de bolo” fica em outra cidade. A diferença para um mapa comum é que esse espaço tem centenas ou milhares de dimensões, não duas. O text-embedding-3-small da OpenAI, por exemplo, gera vetores de 1.536 números por padrão.
Ninguém define à mão o que cada dimensão significa. O modelo aprende essas posições durante o treinamento, vendo enormes quantidades de texto (e, nos modelos multimodais, imagens, áudio e vídeo). O resultado prático: você não precisa de lista de sinônimos nem de regras. Basta gerar o vetor da pergunta e procurar os vetores mais próximos.
Embedding não é o mesmo que um modelo de chat. Ele não escreve nada; só devolve números. Por isso é muito mais barato e rápido, e costuma ser chamado milhares de vezes para indexar um catálogo ou uma base de documentos.
Como medir a semelhança: cosseno, produto escalar e distância
A similaridade de cosseno mede o ângulo entre dois vetores. Vale perto de 1 quando apontam na mesma direção (significados parecidos) e cai conforme divergem. É a medida recomendada pela OpenAI para seus embeddings.
Um detalhe útil: OpenAI e Voyage informam que seus embeddings já vêm normalizados (comprimento 1). Nesse caso, a similaridade de cosseno é igual ao produto escalar, que é mais rápido de calcular, e a distância euclidiana produz a mesma ordenação. Em Python, com NumPy:
import numpy as np
def cosseno(a, b):
a, b = np.array(a), np.array(b)
return float(a @ b / (np.linalg.norm(a) * np.linalg.norm(b)))
# com vetores já normalizados, basta: float(np.array(a) @ np.array(b))
Não existe um valor mágico de similaridade que signifique “igual” ou “relevante”. A escala muda de modelo para modelo. Defina limites (por exemplo, para considerar dois produtos duplicados) testando com exemplos reais da sua base.
Para que servem: os casos de uso
Busca semântica
O cliente digita “roupa para trilha no frio” e o sistema encontra “jaqueta corta-vento térmica”, mesmo sem palavras em comum. É o uso mais conhecido e a etapa de recuperação de um sistema RAG. Para montar o pipeline completo, com chunking, busca híbrida e citação de fonte, veja nosso guia prático de RAG e bancos vetoriais. Aqui o foco é o embedding em si.
Recomendação
Gere o vetor de cada produto, artigo ou vídeo a partir da descrição (e da imagem, com modelos multimodais). “Itens parecidos” passam a ser os vizinhos mais próximos. Para recomendar por usuário, uma abordagem simples é calcular a média dos vetores do que a pessoa viu ou comprou e buscar itens próximos dessa média.
Deduplicação
Cadastros duplicados com grafias diferentes (“Cadeira Escritório Giratória Preta” e “cadeira giratória p/ escritório – preto”) ficam muito próximos. Embeddings ajudam a encontrar candidatos a duplicata; a decisão final pode combinar um limite de similaridade com regras (mesmo SKU, mesmo fornecedor) e revisão humana.
Classificação e agrupamento
Com algumas centenas de exemplos rotulados, você pode classificar novos textos pelo rótulo dos vizinhos mais próximos ou treinar um classificador simples sobre os vetores. Sem rótulos, algoritmos de agrupamento (clustering) revelam temas recorrentes em tickets, avaliações ou respostas de pesquisa.
Modelos de embedding disponíveis hoje
A tabela resume o que as documentações oficiais informavam em 17 de outubro de 2026. Preços não entram aqui porque variam e mudam com frequência; consulte a página de cada fornecedor.
| Modelo | Fornecedor | Entrada máxima | Dimensões | Destaques |
|---|---|---|---|---|
| text-embedding-3-small | OpenAI (API) | 8.192 tokens | 1.536 (ajustável) | Opção de menor custo da OpenAI; parâmetro dimensions para encurtar o vetor. |
| text-embedding-3-large | OpenAI (API) | 8.192 tokens | 3.072 (ajustável) | Maior qualidade da linha, vetores maiores. |
| Gemini Embedding 2 | Google (Gemini API) | 8.192 tokens | 128 a 3.072 (padrão 3.072) | Multimodal: texto, imagem, vídeo, áudio e PDF no mesmo espaço; mais de 100 idiomas. |
| gemini-embedding-001 | Google (Gemini API) | 2.048 tokens | 128 a 3.072 | Só texto; aceita task_type (busca, classificação, agrupamento etc.). |
| voyage-4-large, voyage-4, voyage-4-lite | Voyage AI (MongoDB) | 32.000 tokens | 1.024 (256, 512 ou 2.048) | Indicados pela Anthropic para uso com o Claude; foco em busca multilíngue. |
| EmbeddingGemma 2 | Google (pesos abertos) | 8 mil tokens | 768 (512, 256 ou 128) | 740 milhões de parâmetros, multimodal, licença Apache 2.0, roda no próprio aparelho. |
OpenAI
Os modelos text-embedding-3-small e text-embedding-3-large seguem como a linha atual no guia de embeddings da OpenAI. Os vetores vêm normalizados, e a documentação recomenda pedir vetores menores pelo parâmetro dimensions em vez de cortá-los por conta própria (se cortar, normalize de novo).
Google: Gemini Embedding 2
O Gemini Embedding 2 é descrito pelo Google como o primeiro modelo de embedding multimodal da Gemini API. Ele aceita, por requisição, até 6 imagens, áudio de até 180 segundos, vídeo de até 120 segundos ou um PDF de até 6 páginas. Diferente do modelo anterior, não usa o parâmetro task_type: para tarefas de texto, a instrução vai como prefixo no próprio texto. A documentação avisa que os espaços vetoriais do gemini-embedding-001 e do Gemini Embedding 2 são incompatíveis. Confira o identificador exato na documentação, porque a página de modelos e a de embeddings podem listar versões diferentes (estável e preview).
Anthropic e Voyage AI
A Anthropic não tem modelo de embedding próprio. A documentação do Claude aponta a Voyage AI, hoje parte da MongoDB, como fornecedora, sem deixar de recomendar que você avalie outras opções. Para uso geral, a indicação é voyage-4-large (melhor qualidade), voyage-4 (equilíbrio) e voyage-4-lite (menor latência e custo). Há modelos específicos para código (voyage-code-4), finanças e direito, e o voyage-4-nano, de pesos abertos. Um cuidado da documentação: use sempre o parâmetro input_type indicando se o texto é consulta (query) ou documento (document), porque isso melhora a busca.
EmbeddingGemma 2: aberto e local
Anunciado pelo Google em 6 de outubro de 2026, o EmbeddingGemma 2 tem 740 milhões de parâmetros e coloca texto, imagens, áudio, vídeo e código no mesmo espaço vetorial. Para uso só com texto, a configuração pode cair para 270 milhões de parâmetros. Os vetores têm 768 dimensões e podem ser encurtados para 512, 256 ou 128, técnica chamada Matryoshka, com até 6 vezes menos armazenamento. Os pesos estão no Hugging Face e no Kaggle, com suporte a ferramentas como Ollama, llama.cpp, sentence-transformers e transformers.js. Segundo o anúncio, quantizado num Pixel 11 Pro, ele usa cerca de 191 MB de RAM para texto. Para quem não pode enviar dados para fora, é a opção mais direta; veja como rodar IA local com Ollama.
Como escolher um modelo para conteúdo em português
Nenhum fornecedor publica um ranking oficial “para português”, e a OpenAI não detalha suporte a idiomas no guia de embeddings. O Google informa mais de 100 idiomas no Gemini Embedding 2, e a Voyage destaca busca multilíngue na linha 4. Mesmo assim, a regra é testar com os seus dados.
- Monte um conjunto de teste. Separe de 50 a 100 consultas reais (com gírias, erros de digitação e termos regionais, como “aipim”, “macaxeira” e “mandioca”) e marque quais itens deveriam aparecer.
- Compare dois ou três modelos. Meça quantas vezes o item certo aparece entre os primeiros resultados.
- Pese custo e armazenamento. Vetores de 3.072 dimensões ocupam quatro vezes mais espaço que vetores de 768. Dimensões menores e quantização (a Voyage oferece int8 e binário, com redução de 4 e 32 vezes no armazenamento) reduzem custo, com alguma perda de precisão.
- Considere onde os dados podem ficar. Dados sensíveis podem pedir um modelo local. Envio a APIs externas exige base legal e contrato adequado; veja nosso guia de segurança e LGPD.
O placar público MTEB, mantido no Hugging Face, ajuda a filtrar candidatos, mas resultados em benchmark não garantem desempenho no seu catálogo. Se você usa a API do Gemini, nossa página de integrações do Google Gemini reúne as novidades do ecossistema.
Exemplo: loja de artigos esportivos em Recife
Imagine uma loja online de artigos esportivos em Recife com cerca de 8 mil produtos. A busca atual só encontra palavras exatas: quem digita “roupa de praia para treino” não acha “bermuda de surf com proteção UV”, e o catálogo tem dezenas de produtos cadastrados duas vezes por fornecedores diferentes.
Um plano em quatro etapas:
- Indexação: para cada produto, a loja junta nome, categoria e descrição num texto só e gera o embedding. Com um modelo multimodal, como o Gemini Embedding 2 ou o EmbeddingGemma 2, a foto também pode entrar no mesmo espaço.
- Busca: a consulta do cliente vira vetor e o sistema retorna os produtos mais próximos. Para códigos de produto e marcas, a busca por palavra continua rodando ao lado.
- “Você também pode gostar”: na página de cada produto, os vizinhos mais próximos no espaço vetorial viram sugestões, filtrando o que está fora de estoque.
- Limpeza do catálogo: pares de produtos com similaridade muito alta vão para uma fila de revisão, onde alguém da equipe confirma se são duplicados.
O ponto de atenção é a manutenção: produto novo ou descrição alterada precisa de embedding novo, e trocar de modelo exige reprocessar o catálogo inteiro, porque vetores de modelos diferentes não são comparáveis.
Erros comuns
- Misturar modelos. Comparar o vetor de uma consulta gerado por um modelo com documentos indexados por outro produz resultados sem sentido.
- Ignorar consulta x documento. Modelos como os da Voyage têm modos diferentes para cada lado. Usar o mesmo modo para tudo piora a busca.
- Cortar vetores sem normalizar. Se encurtar o vetor por conta própria, normalize de novo. A OpenAI recomenda usar o parâmetro
dimensions; o gemini-embedding-001 exige normalização manual fora das 3.072 dimensões. - Embutir textos enormes de uma vez. Passar do limite de entrada corta ou recusa o texto, e um vetor para um documento inteiro dilui os assuntos. Divida em trechos.
- Confiar só na busca semântica. SKUs, CEPs e nomes próprios pedem busca por palavra exata junto.
- Escolher pelo ranking. Teste com consultas reais em português antes de decidir.
Perguntas frequentes
Embedding é a mesma coisa que banco vetorial?
Não. O embedding é o vetor gerado por um modelo. O banco vetorial (como pgvector ou Qdrant) é onde esses vetores ficam guardados e são buscados com rapidez. Você precisa dos dois para uma busca semântica em produção.
Preciso de GPU para gerar embeddings?
Pelas APIs, não: o processamento é do fornecedor. Para rodar localmente, modelos leves como o EmbeddingGemma 2 foram desenhados para aparelhos com poucos recursos, segundo o Google. Para indexar catálogos grandes, uma GPU acelera, mas não é obrigatória.
Posso usar embeddings da OpenAI com o Claude ou o Gemini?
Sim. O modelo de embedding só faz a busca; o modelo de chat recebe o texto recuperado, não o vetor. Você pode combinar fornecedores livremente, desde que use sempre o mesmo modelo de embedding para consultas e documentos.
Quantas dimensões devo usar?
Comece pelo padrão do modelo e reduza se o armazenamento ou a latência pesarem. O Google recomenda 768, 1.536 ou 3.072 para o Gemini Embedding 2. Teste a qualidade da busca a cada redução.
Embeddings funcionam com imagens e áudio?
Com modelos multimodais, sim. O Gemini Embedding 2 e o EmbeddingGemma 2 colocam texto, imagem, áudio e vídeo no mesmo espaço, o que permite buscar fotos de produtos digitando uma descrição.