Embeddings
Definição rápida
Um embedding é uma lista de números (um vetor) que representa o significado de um texto, imagem ou outro item, de modo que itens semelhantes recebam vetores próximos. Os embeddings são o que torna a busca por significado possível.
Nesta página
Como os embeddings funcionam
Um modelo de embedding lê um texto e gera um vetor de comprimento fixo, tipicamente de várias centenas a alguns milhares de números. O modelo é treinado para que textos com significados relacionados fiquem próximos uns dos outros nesse espaço: "política de reembolso" e "como faço para recuperar meu dinheiro?" compartilham quase nenhuma palavra, mas produzem vetores próximos.
A ideia remonta a vetores de palavras como word2vec (Mikolov e colegas, 2013), que aprenderam que palavras que aparecem em contextos semelhantes têm significados semelhantes. Modelos em nível de frase, como Sentence-BERT (2019), estenderam isso para frases e trechos inteiros, que é o que a busca e a resposta a perguntas precisam.
Para que são usados
As embeddings potencializam a busca semântica: comparam o vetor de uma pergunta com os vetores de passagens armazenadas e retornam a mais próxima. Elas são a etapa de recuperação da geração aumentada por recuperação (RAG). Também servem para agrupar conversas semelhantes, detectar duplicatas, recomendar produtos similares e direcionar uma mensagem para o tópico correto.
Modelos de embedding multilíngues colocam uma pergunta em francês e uma passagem em inglês próximas quando significam a mesma coisa, permitindo que uma base de conhecimento atenda clientes em muitos idiomas.
Pontos práticos
Vetores de diferentes modelos não são comparáveis: se você mudar o modelo de embedding, cada passagem armazenada precisa ser re-embarcada. As embeddings capturam significado, não valores exatos, então são ruins em filtros precisos como uma faixa de preço ou uma referência de produto — esses precisam de campos estruturados ou busca por palavras-chave ao lado. E documentos longos devem ser divididos em passagens antes da embedding, porque um vetor para todo um manual desfoca seu conteúdo.
Modelos de embedding também diferem em cobertura de idioma, dimensão (e, portanto, custo de armazenamento) e onde estão hospedados.
Embeddings no AI SmartTalk
Cada assistente do AI SmartTalk usa um modelo de embedding para todo o seu conhecimento. Novos assistentes usam um modelo multilíngue hospedado na UE por padrão, e modelos de embedding da OpenAI também estão disponíveis. Os vetores são armazenados no PostgreSQL com pgvector e combinados com busca por palavras-chave e trigramas, para que referências de produtos e termos exatos sejam encontrados de forma tão confiável quanto perguntas parafraseadas.
Perguntas frequentes
Qual é a diferença entre uma embedding e um token?
Um token é um pedaço de texto, aproximadamente um fragmento de palavra, que um modelo lê. Uma embedding é um vetor de números que representa significado — de um token, uma frase ou uma passagem inteira.
As embeddings são o mesmo que um banco de dados vetorial?
Não. As embeddings são os vetores; um banco de dados ou índice vetorial os armazena e encontra os mais próximos rapidamente.
Posso mudar os modelos de embedding depois?
Sim, mas cada item armazenado deve ser re-embarcado com o novo modelo, porque vetores de diferentes modelos vivem em espaços diferentes e não podem ser comparados.