• Databricks
  • Databricks
  • Centro de ajuda
  • Documentação
  • Base de conhecimento
  • Comunidade
  • Suporte
  • Comentários
  • Experimente o Databricks
English
  • English
  • 日本語
  • Português
Amazon Web Services
  • Microsoft Azure
  • Google Cloud Platform
Databricks on AWS

Primeiros passos

  • Primeiros passos
  • O que é o Databricks?
  • DatabricksIQ
  • Notas sobre a versão

Carregar e gerenciar dados

  • guia
  • Trabalhar com objetos de bancos de dados
  • Conectar a fontes de dados
  • Conectar à computação
  • Descobrir dados
  • Consultar dados
  • Ingerir dados
  • Trabalhe com arquivos
  • Transformação de dados
  • Programar e orquestrar fluxos de trabalho
  • Monitorar dados e ativos de IA
  • Leia com sistemas externos
  • Compartilhe dados com segurança

Trabalhar com dados

  • Delta Live Tables
  • Transmissão estruturada
  • IA e machine learning
    • Tutoriais
    • Playground de IA
    • Funções de IA em SQL
    • Gateway de IA
    • modelos implantados
    • Modelos de ensino
    • Servir dados para IA
      • gerenciamento de recursos
      • Vector Search
        • Como criar e consultar um índice de pesquisa vetorial
        • Melhores práticas para o Mosaic AI Vector Search
    • Avaliar a IA
    • Crie aplicativos de IA generativa
    • MLOps
    • MLflow para o agente AI e o ciclo de vida do modelo ML
    • Política de manutenção de modelos de IA generativa
    • Integrações
    • análise gráfica e de rede
    • Soluções de referência
  • IA generativa tutorial
  • Business Intelligence
  • Data warehousing
  • Notebooks
  • Delta Lake
  • Desenvolvedores
  • Parceiros tecnológicos

Administração

  • Administração de contas e workspaces
  • Segurança e compliance
  • Governança de dados (Unity Catalog)
  • Arquitetura lakehouse

Referência e recursos

  • Referência
  • Recursos
  • Novidades
  • Arquivo de documentação

Atualizado 18/02/2025

Envie-nos comentários

  • Documentação
  • IA e machine learning em Databricks
  • Servir dados para ML e IA
  • Mosaic AI Vector Search

Mosaic AI Vector Search

Este artigo fornece uma visão geral da solução de banco de dados vetorial da Databricks, o Mosaic AI Vector Search, incluindo o que é e como funciona.

O que é o Mosaic AI Vector Search?

O Mosaic AI Vector Search é um banco de dados vetorial incorporado à Databricks Data Intelligence Platform e integrado às suas ferramentas de governança e produtividade. Um banco de dados vetorial é um banco de dados otimizado para armazenar e recuperar incorporações. As incorporações são representações matemáticas do conteúdo semântico dos dados, geralmente dados de texto ou imagem. As incorporações são geradas por um grande modelo de linguagem e são um componente essencial de muitos aplicativos de IA generativa, que dependem da localização de documentos ou imagens semelhantes entre si. Como exemplos, temos os sistemas RAG, os sistemas de recomendação e o reconhecimento de imagens e vídeos.

Com o Mosaic AI Vector Search, você cria um índice de pesquisa vetorial a partir de uma tabela Delta. O índice inclui dados incorporados com metadados. Em seguida, você pode consultar o índice usando uma API REST para identificar os vetores mais semelhantes e retornar os documentos associados. Você pode estruturar o índice para sincronizar automaticamente quando a tabela Delta subjacente for atualizada.

O Mosaic AI Vector Search é compatível com o seguinte:

  • Pesquisa híbrida por similaridade de palavras-chave.

  • Filtragem.

  • Listas de controle de acesso (ACLs) para gerenciar o ponto de extremidade de pesquisa de vetores.

  • Sincronize somente as colunas selecionadas.

  • Salve e sincronize os embeddings gerados.

Como funciona o Mosaic AI Vector Search?

O Mosaic AI Vector Search usa o algoritmo Hierarchical Navigable Small World (HNSW) para suas buscas aproximadas de vizinhos mais próximos e a métrica de distância L2 para medir a similaridade do vetor de incorporação. Se quiser usar a similaridade de cosseno, você precisará normalizar suas incorporações de pontos de dados antes de alimentá-las na pesquisa vetorial. Quando os pontos de dados são normalizados, a classificação produzida pela distância L2 é a mesma que a classificação produzida pela similaridade de cosseno.

O Mosaic AI Vector Search também é compatível com a pesquisa híbrida de similaridade de palavras-chave, que combina a pesquisa de incorporação baseada em vetores com técnicas tradicionais de pesquisa baseadas em palavras-chave. Essa abordagem corresponde às palavras exatas da consulta e, ao mesmo tempo, usa uma pesquisa de similaridade baseada em vetores para capturar as relações semânticas e o contexto da consulta.

Ao integrar essas duas técnicas, a pesquisa híbrida de similaridade de palavras-chave recupera documentos que contêm não apenas as palavras-chave exatas, mas também aquelas que são conceitualmente semelhantes, fornecendo resultados de pesquisa mais abrangentes e relevantes. Esse método é particularmente útil em aplicativos RAG, nos quais os dados de origem têm palavras-chave exclusivas, como SKUs ou identificadores que não são adequados para a pesquisa de similaridade pura.

Para obter detalhes sobre a API, consulte a referência do Python SDK e Consultar um endpoint de pesquisa vetorial.

Cálculo da pesquisa de similaridade

O cálculo da pesquisa de similaridade usa a seguinte fórmula:

recíproco de 1 mais a distância quadrada

onde dist é a distância euclidiana entre a consulta q e a entrada do índice x:

Distância euclidiana, raiz quadrada da soma das diferenças quadradas

Algoritmo de pesquisa por palavras-chave

As pontuações de relevância são calculadas usando o Okapi BM25. Todas as colunas de texto ou strings são pesquisadas, incluindo a incorporação do texto de origem e as colunas de metadados em formato de texto ou string. A função de tokenização divide nos limites das palavras, remove pontuação e converte todo o texto em minúsculas.

Como a pesquisa por similaridade e a pesquisa por palavras-chave são combinadas

Os resultados da pesquisa por similaridade e da pesquisa por palavras-chave são combinados usando a função Reciprocal Rank Fusion (RRF).

O RRF reavalia cada documento de cada método usando a pontuação:

Equação RRF

Na equação acima, a classificação começa em 0, soma as pontuações de cada documento e retorna os documentos com maior pontuação.

rrf_param controla a importância relativa dos documentos com classificação mais alta e mais baixa. Com base na literatura, rrf_param é definido como 60.

As pontuações são normalizadas para que a pontuação mais alta seja 1 e a pontuação mais baixa seja 0 usando a seguinte equação:

normalização

Opções para fornecer incorporações vetoriais

Para criar um banco de dados vetorial no Databricks, primeiro você deve decidir como fornecer incorporações vetoriais. O Databricks é compatível com três opções:

  • Opção 1: Delta Sync Index with embeddings compute by Databricks O senhor fornece uma tabela de origem Delta que contém dados em formato de texto. O Databricks calcula os embeddings usando um modelo que o senhor especifica e, opcionalmente, salva os embeddings em uma tabela no Unity Catalog. À medida que a tabela Delta é atualizada, o índice permanece sincronizado com a tabela Delta.

    O diagrama a seguir ilustra o processo:

    1. Calcular as incorporações da consulta. A consulta pode incluir filtros de metadados.

    2. Realizar pesquisa de similaridade para identificar os documentos mais relevantes.

    3. Retornar os documentos mais relevantes e acrescentá-los à consulta.

    O banco de dados de vetores calcula embeddings.
  • Opção 2: Delta Sync Index com embeddings autogerenciáveis O senhor fornece uma tabela de origem Delta que contém embeddings pré-calculados. À medida que a tabela Delta é atualizada, o índice permanece sincronizado com a tabela Delta.

    O diagrama a seguir ilustra o processo:

    1. A consulta consiste em incorporações e pode incluir filtros de metadados.

    2. Realizar pesquisa de similaridade para identificar os documentos mais relevantes. Retornar os documentos mais relevantes e acrescentá-los à consulta.

    banco de dados vetorial, incorporações pré-calculadas
  • Opção 3: Índice de acesso direto ao vetor O senhor deve atualizar manualmente o índice usando a API REST quando a tabela de embeddings for alterada.

    O diagrama a seguir ilustra o processo:

    banco de dados vetorial, incorporações pré-calculadas sem sincronização automática

Como configurar o Mosaic AI Vector Search

Para usar o Mosaic AI Vector Search, você deve criar o seguinte:

  • Um endpoint de busca por vetores. Este endpoint serve o índice de busca por vetores. Você pode consultar e atualizar o endpoint usando a API REST ou o SDK. Consulte Criar um endpoint de busca por vetores para obter instruções.

    aumenta automaticamente para suportar o tamanho do índice ou o número de solicitações do concorrente. não são reduzidos automaticamente.

  • Um índice de busca por vetores. O índice de busca por vetores é criado a partir de uma tabela Delta e é otimizado para fornecer buscas aproximadas de vizinhos mais próximos em tempo real. O objetivo da busca é identificar documentos semelhantes à consulta. Os índices de busca por vetores aparecem e são governados pelo Unity Catalog. Consulte Criar um índice de busca por vetores para obter instruções.

Além disso, se o senhor optar por ter Databricks compute os embeddings, poderá usar um Foundation Model pré-configurado APIs endpoint ou criar um modelo de serviço endpoint para servir o modelo de embedding de sua escolha. Consulte Pay-per-tokens Foundation Model APIs ou Create foundation servindo modelo endpoint para obter instruções.

Para consultar o endpoint de atendimento do modelo, você deve usar a API REST ou o Python SDK. Sua consulta pode definir filtros com base em qualquer coluna na tabela Delta. Para obter detalhes, consulte Usar filtros em consultas, a referência da API ou a referência do SDK do Python.

Requisitos

  • Workspace habilitado para o Unity Catalog.

  • sem servidor compute ativado. Para obter instruções, consulte Conectar-se à computação sem servidor.

  • A tabela de origem deve ter a opção Alterar feed de dados ativada. Para obter instruções, consulte Usar o feed de dados de alteração do Delta Lake no Databricks.

  • Para criar um índice de pesquisa vetorial, o senhor deve ter privilégios de CREATE TABLE no esquema de catálogo em que o índice será criado.

A permissão para criar e gerenciar o ponto de extremidade de pesquisa vetorial é configurada usando listas de controle de acesso. Consulte Pesquisa de vetores endpoint ACLs.

Proteção de dados e autenticação

O Databricks implementa os seguintes controles de segurança para proteger seus dados:

  • Cada solicitação de cliente ao Mosaic AI Vector Search é logicamente isolada, autenticada e autorizada.

  • O Mosaic AI Vector Search criptografa todos os dados em repouso (AES-256) e em trânsito (TLS 1.2+).

O Mosaic AI Vector Search é compatível com dois modos de autenticação:

  • entidade de serviço tokens. Um administrador pode gerar um token de entidade de serviço e passá-lo para SDK ou API. Veja usar entidade de serviço. Para casos de uso de produção, o site Databricks recomenda o uso de tokens de entidade de serviço.

    # Pass in a service principal
    vsc = VectorSearchClient(workspace_url="...",
            service_principal_client_id="...",
            service_principal_client_secret="..."
            )
    
  • Tokens de acesso pessoal. O senhor pode usar tokens de acesso pessoal para se autenticar em Mosaic AI Vector Search. Consulte tokens de autenticação de acesso pessoal. Se o senhor usar o SDK em um ambiente de Notebook, o SDK gerará automaticamente tokens PAT para autenticação.

    # Pass in the PAT token
    client = VectorSearchClient(workspace_url="...", personal_access_token="...")
    

Chaves gerenciadas pelo cliente (CMK) são suportadas em endpoints criados em ou após 8 de maio de 2024.

Monitorar o uso e os custos

A tabela do sistema de uso faturável permite que você monitore o uso e os custos associados aos índices e endpoints da pesquisa vetorial. Aqui está um exemplo de consulta:

WITH all_vector_search_usage (
  SELECT *,
         CASE WHEN usage_metadata.endpoint_name IS NULL THEN 'ingest'
              WHEN usage_type = "STORAGE_SPACE" THEN 'storage'
              ELSE 'serving'
        END as workload_type
    FROM system.billing.usage
   WHERE billing_origin_product = 'VECTOR_SEARCH'
),
daily_dbus AS (
  SELECT workspace_id,
       cloud,
       usage_date,
       workload_type,
       usage_metadata.endpoint_name as vector_search_endpoint,
       CASE WHEN workload_type = 'serving' THEN SUM(usage_quantity)
            WHEN workload_type = 'ingest' THEN SUM(usage_quantity)
            ELSE null
            END as dbus,
       CASE WHEN workload_type = 'storage' THEN SUM(usage_quantity)
            ELSE null
            END as dsus
 FROM all_vector_search_usage
 GROUP BY all
ORDER BY 1,2,3,4,5 DESC
)
SELECT * FROM daily_dbus

Para obter detalhes sobre o conteúdo da tabela de uso de faturamento, consulte Referência da tabela de uso faturável do sistema. Consultas adicionais estão no seguinte exemplo de notebook.

Notebook de consultas de tabelas do sistema de pesquisa vetorial

Abrir notebook na nova guia

Limites de tamanho de recursos e dados

A tabela a seguir resume os limites de tamanho de dados e recursos para endpoints e índices de pesquisa vetorial:

Recursos

Granularidade

Limite

Endpoints de pesquisa vetorial

Por workspace

100

Incorporações

Por endpoint

320.000.000

Dimensão de incorporação

Por índice

4096

Índices

Por endpoint

50

Colunas

Por índice

50

Colunas

Tipos compatíveis: bytes, curto, inteiro, longo, flutuante, duplo, booleano, string, carimbo de data/horário, data

Campos de metadados

Por índice

50

Nome do índice

Por índice

128 caracteres

Os limites a seguir se aplicam à criação e à atualização de índices de pesquisa vetorial:

Recursos

Granularidade

Limite

Tamanho da linha para o índice Delta Sync

Por índice

100 KB

Tamanho da coluna de origem de incorporações para o índice de sincronização Delta

Por índice

32764 bytes

Limite de tamanho de solicitação de upsert em massa para o índice vetorial direto

Por índice

10 MB

Limite de tamanho da solicitação de exclusão em massa para o índice vetorial direto

Por índice

10 MB

Os seguintes limites se aplicam à API de consulta.

Recursos

Granularidade

Limite

Comprimento do texto de consulta

Por consulta

32764 bytes

Número máximo de resultados retornados

Por consulta

10.000

Limitações

  • HIPAA compliance não está disponível no espaço de trabalho que tem um plano de controle em us-west-2 e um plano de dados em us-east-1.

  • Não há compatibilidade com permissões em nível de linha e coluna. No entanto, você pode implementar suas próprias ACLs em nível de aplicativo usando a API de filtro.

Recursos adicionais

  • Implante seu chatbot de LLM com a geração aumentada de recuperação (RAG), modelos de base e pesquisa vetorial.

  • Como criar e consultar um índice de pesquisa vetorial.

  • Notebooks de exemplo


© Databricks 2025. Todos os direitos reservados. Apache, Apache Spark, Spark e o logotipo do Spark são marcas registradas da Apache Software Foundation.

Envie-nos seus comentários | Aviso de privacidade | Termos de uso | Declaração sobre escravidão moderna | Privacidade na Califórnia | Suas opções de privacidade