Skip to main content

Embeddings

O que é Embedding?

Embedding é a técnica de transformar dados (como textos, imagens ou áudios) em vetores numéricos — ou seja, listas de números que representam o significado daquele conteúdo.

Na prática, isso permite que sistemas consigam:

  • Entender contexto (não só palavras exatas)
  • Comparar conteúdos semanticamente
  • Usar dados em modelos de Inteligência Artificial

Pense em como traduzir texto para uma “linguagem matemática” que a máquina consegue interpretar.

Quando usar Embeddings?

Use embeddings quando você precisar:

  • Busca semântica: Encontrar conteúdos similares pelo significado, não apenas por palavras iguais.
  • Comparação de conteúdo: Identificar similaridade entre textos diferentes (ex: recomendações, clustering).
  • Aplicações de IA:
  • Alimentar: Chatbots, Sistemas de recomendação ou Classificações inteligentes.

Porque tantos modelos de embeddings?

Nem todo dado é igual — e por isso existem diferentes modelos de embedding.

Cada modelo é treinado para capturar tipos específicos de informação e contexto, garantindo melhores resultados dependendo do seu caso de uso. A escolha do modelo impacta diretamente a qualidade da busca, comparação e respostas da IA

tipos de modelos:

1 - Multi-modal Modelo capaz de entender texto e imagem no mesmo espaço semântico.

Principais pontos:

  • Permite comparar imagem ↔ texto diretamente
  • Possibilita busca de imagens por descrição textual
  • Trabalha com múltiplos formatos de dados

Quando usar:

  • Catálogos de produtos com imagens
  • Busca visual
  • Aplicações que combinam imagem e texto

2 - Multi-language Modelo que entende múltiplos idiomas dentro do mesmo contexto semântico.

Principais pontos:

  • Palavras com mesmo significado ficam próximas, mesmo em idiomas diferentes
  • Permite busca e comparação entre línguas
  • Elimina necessidade de tradução prévia

Quando usar:

  • Sistemas globais
  • Produtos com usuários internacionais
  • Busca em múltiplos idiomas

3 - Text Embeddings (padrão) Modelo focado em interpretação e comparação de texto.

Principais pontos:

  • Identifica similaridade semântica (não apenas palavras iguais)
  • Base para busca semântica e RAG
  • Mais utilizado na maioria dos casos

Quando usar:

  • Chat com documentos
  • Busca inteligente
  • Sistemas de recomendação
  • Análise de texto

Como criar Embeddings na Plataforma Carol

1. Ativar o AI Provisioning Antes de tudo, é necessário habilitar o uso de IA na sua tenant.

Pré-requisito Você precisa ter a role: Org Admin Caso não tenha, solicite a ativação via issue em nosso projeto do Jira

Como fazer Via Swagger, execute o endpoint:

embeddingsswagger

POST /v1/tenant/{mdmTenantID}/ai/provision

embeddingsprovision

Parâmetros:

  • mdmTenantID: ID da sua tenant
  • provision AI usage: true

Resultado

  • Será criada uma task de provisionamento

embeddingstask

  • Sua tenant ficará habilitada para uso de modelos de IA

2. Entendendo o Endpoint Remoto

Após o provisionamento, entra o conceito de Remote Endpoint.

O que é isso?

É o mecanismo que permite ao BigQuery chamar modelos de IA externos (Google) diretamente,ou seja:

  • O processamento continua no seu ambiente Big Query, mas o modelo de IA é executado remotamente na Google.
  • A sua tenant será responsável financeira pelo uso de recursos de AI

O que ele faz na prática?

O Remote Endpoint permite:

  • Gerar embeddings diretamente via SQL
  • Chamar modelos do Vertex AI sem sair do BigQuery
  • Escolher diferentes modelos conforme o seu caso de uso

Como criar os modelos:

Para utilizar embeddings, você precisa primeiro criar um modelo remoto no BigQuery, que será responsável por apontar para o modelo do Vertex AI.

  • recomendamos que esse modelo seja criado dentro de um dataset custom_data

Estrutura do comando:

        CREATE OR REPLACE MODEL
`{PROJECT_ID}.{TENANT_ID}.embedding_model`
REMOTE WITH CONNECTION
`{PROJECT_ID}.us.conn_carol_cloud_resource`
OPTIONS (
ENDPOINT = '{MODELO_ESCOLHIDO}'
);

O que cada parte faz?

  • MODEL: Nome do modelo que será criado no BigQuery
  • REMOTE WITH CONNECTION: Define a conexão com o Vertex AI (pré-configurada)
  • ENDPOINT Define qual modelo de embedding será utilizado

Exemplo real:

      CREATE OR REPLACE MODEL
`carol-6f77a449debc4270ac8b.custom_data.embedding_model`
REMOTE WITH CONNECTION
`carol-6f77a449debc4270ac8b.us.vertex_remote_conn`
OPTIONS (
ENDPOINT = 'text-embedding-004'
);

O que esse comando cria?

Essa ação cria um modelo remoto dentro do BigQuery, esse modelo funciona como uma ponte para o Vertex AI e permite que você use funções como: ML.GENERATE_EMBEDDING ,ou seja, você passa a conseguir gerar embeddings diretamente via SQL.

Escolha do modelo (muito importante)

embeddingexemple

No exemplo acima, utilizamos:

 text-embedding-004

Esse modelo é: indicado para texto

Muito utilizado em: busca semântica, similaridade de documentos e chatbots

Documentação oficial de modelos

Você pode consultar os modelos disponíveis e suas indicações aqui: link

Como os modelos de embedding funcionam na Carol

Na plataforma Carol, esse processo já é abstraído após os passos anteriores,no exemplo da imagem acima, ele ficou disponível como: ideia-dataops-prod.daen.text_embedder.

Gerando Embeddings em Pipelines ou Carol apps

Após a habilitação dos modelos em sua tenant, é possível criar os embedding em sua pipeline e em seus Carol apps.

O que precisa ser feito?

  • Escolher a coluna de texto que contém os dados a serem vetorizados. (ex: content)
  • Criar uma nova coluna com o embedding
  • Chamar a função de ML

exemplo no git de chamada de modelo em pipelines:

exemplo no git de chamada de modelo em Carol apps:

Exemplo Bloco de geração de embeddings:

    embeddedData AS (
SELECT
pd.*,
emb.ml_generate_embedding_result AS embedded_content
FROM ML.GENERATE_EMBEDDING(
MODEL `ideia-dataops-prod.daen.text_embedder`,
(SELECT content FROM processedData),
STRUCT(TRUE AS flatten_json_output, 'RETRIEVAL_DOCUMENT' AS task_type)
) AS emb

Exemplo explicado

  • Função principal: ML.GENERATE_EMBEDDING

    Essa função:

    • Recebe um texto
    • Aplica um modelo de IA
    • Retorna um vetor numérico

1. Modelo utilizado

MODEL `ideia-dataops-prod.daen.text_embedder`

Define qual modelo será usado para gerar os embeddings.

2. Dados de entrada

(SELECT content FROM processedData)

Indica qual coluna será transformada em embedding, neste caso: content

3. Configurações STRUCT( TRUE AS flatten_json_output, 'RETRIEVAL_DOCUMENT' AS task_type ) flatten_json_output: organiza a saída task_type: define o contexto do embedding 'RETRIEVAL_DOCUMENT' = otimizado para busca semântica

4. Resultado

emb.ml_generate_embedding_result AS embedded_content

Cria uma nova coluna: embedded_content

Tipo: vetor (array numérico)

5. Junção com dados originais

INNER JOIN processedData pd
ON pd.content = emb.content

Isso garante que o embedding volte junto com os dados originais e que nenhuma informação seja perdida.

Query completa com exemplo de embedding (exemplo)

WITH carol_documentation_contents_carolembbededdocumentations AS (
SELECT
content,
link,
*--metadata--*
FROM (
SELECT *
FROM `carol-625aa8edd1264e34b7fe.625aa8edd1264e34b7fe2aec00f322a6.stg_carol_docs_carol_documentation_contents`
*--timestamp-- WHERE _ingestionDatetime > SAFE.DATETIME(TIMESTAMP_MICROS(SAFE_CAST({{start_from}} AS INT64)))*
QUALIFY ROW_NUMBER() OVER (PARTITION BY mdmId ORDER BY _ingestionDatetime DESC, mdmCounterForEntity DESC) = 1
) AS stg
),

processedData AS (
SELECT *
FROM carol_documentation_contents_carolembbededdocumentations
),

embeddedData AS (
SELECT
pd.*,
emb.ml_generate_embedding_result AS embedded_content
FROM ML.GENERATE_EMBEDDING(
MODEL `ideia-dataops-prod.daen.text_embedder`,
(SELECT content FROM processedData),
STRUCT(TRUE AS flatten_json_output, 'RETRIEVAL_DOCUMENT' AS task_type)
) AS emb
INNER JOIN processedData pd
ON pd.content = emb.content
)

SELECT
content AS content_1,
link,
embedded_content,
__mdmId,
__mdmTenantId,
__mdmCounterForEntity,
__mdmStagingRecordIds,
__mdmSourceEntityNames,
__mdmTaskId,
__mdmSourceOperationTaskId
FROM embeddedData AS stg

Com a coluna vetorizada já é possível utilizá-la e explorar o potencial, salvando seu dado em em Datamodel com o baixa latência ativada.

Em breve

  • Como usar seu campo vetorizado: tools, data service, mcp server.