O que é um vetor
Um vetor é um objeto que representa um item do mundo real como um matriz de números flutuantes.
Cada item no mundo real é representado no formato de vetor (como uma matriz) e tem muitas dimensões (atributos) associadas ao objeto com base em suas características.
Por exemplo, se quisermos representar as cores em formato vetorial, podemos criar uma matriz de valores de atributos. Exemplo [ "R", "G", "B"]
Cada cor em uma imagem RGB é representada por três valores: a quantidade de luz vermelha, verde e azul presente. Esses valores normalmente variam de 0 a 255, indicando a intensidade de cada componente de cor.
Pure Red= [ "255", "0", "0"]
Onde:
-
- R representa a intensidade do vermelho (nesse caso, a intensidade máxima, 255),
- G representa a intensidade do verde (nesse caso, 0, ou seja, sem verde),
- B representa a intensidade do azul (nesse caso, 0, ou seja, sem azul).
Da mesma forma, você pode representar qualquer cor usando esse formato de vetor RGB, com valores que variam de 0 a 255 para cada canal de cor.
Se quisermos encontrar correspondências próximas para a cor vermelha, podemos descobrir com base no primeiro valor de atributo da cor.
Os objetos do mundo real podem ter muitos outros atributos que precisam ser representados e, portanto, um vetor que representa um objeto do mundo real é representado por uma matriz maior de 512, 1028, 1536 ou 2048 valores de atributos.
O que é o Vector Search?
A pesquisa vetorial é um método de encontrar itens com base em sua representação vetorial. Na pesquisa vetorial, cada item é representado em um espaço multidimensional em que cada dimensão representa o valor do atributo do item.
Mais detalhes podem ser encontrados em:
Casos de uso em todo o setor
A pesquisa vetorial pode ser usada em vários setores para diversos casos de uso:
-
- Geração de conteúdo
- Detecção de anomalias
- Pesquisa híbrida
- Chatbots com IA.
Pesquisa vetorial vs. pesquisa de texto completo?
A pesquisa vetorial e a pesquisa de texto completo são métodos usados para pesquisar em coleções de dados, mas operam de maneiras diferentes e são adequadas a diferentes tipos de dados e casos de uso.
Pesquisa de texto completo: é uma técnica usada na recuperação de informações para pesquisar e analisar o conteúdo textual em documentos ou bancos de dados. Diferentemente dos métodos de pesquisa tradicionais que correspondem a frases exatas ou palavras-chave, os mecanismos de pesquisa de texto completo analisam o conteúdo de documentos ou registros para corresponder às consultas de pesquisa com base no significado e no contexto das palavras.
Área de comparação | Pesquisa de texto completo | Pesquisa de vetores | |
1 | Representação de dados | Os dados são representados como documentos de texto ou cadeias de caracteres | Os dados são representados como vetores em um espaço multidimensional |
2 | Critérios de correspondência | Correspondência exata ou difusa | Partida vizinha mais próxima |
3 | Pesquisa | Pesquisa ou comparação textual | Pesquisa ou comparação contextual com base nos atributos do objeto. |
4 | Caso de uso | Pesquisa em um documento, página da Web, conteúdo de e-mail, etc. | Pesquisa de áudio, vídeo, imagem, texto, etc. |
Por que o Couchbase para o Vector Search?
-
- Vetor em nossos produtos: Primeiro no setor a anunciar suporte para todas as três implementações: nuvem, local e móvel.
- Capacidades amplas: Cache integrado, pesquisa de texto completo, pesquisa analítica, série temporal, valor-chave, eventos e outros recursos, além de pesquisa vetorial em uma única plataforma.
- Integração do ecossistema: LangChain e LlamaIndex integração.
- Velocidade e flexibilidade comprovadas: Arquitetura na memória, formato json flexível e indexação potente.
Mais detalhes podem ser encontrados em nosso Anúncio de lançamento do vector search.
Pré-requisitos
- Couchbase Capella ou Couchbase Server 7.6 EE
- Já criaram um banco de dados
- Dados de amostra:
- Baixar arquivo color_data_2vectors.zip
- Para este exemplo, usaremos o rgb.json arquivo
- Arquivo de índice: color-index.json
- color-index.json:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124{"tipo": "fulltext-index","name" (nome): "color-index","sourceType": "gocbcore","sourceName": "vector-sample" (amostra de vetor),"sourceUUID": "789365cccdf940ee2814a5dd2752040a","planParams": {"maxPartitionsPerPIndex": 512,"indexPartitions": 1},"params": {"doc_config": {"docid_prefix_delim": "","docid_regexp": "","mode" (modo): "scope.collection.type_field","type_field": "tipo"},"mapeamento": {"análise": {},"default_analyzer": "padrão","default_datetime_parser": "dateTimeOptional","default_field": "_all","default_mapping": {"dinâmico": falso,"habilitado": falso},"default_type": "_default","docvalues_dynamic": falso,"index_dynamic": falso,"store_dynamic": falso,"type_field": "_type","tipos": {"color.rgb": {"dinâmico": falso,"habilitado": verdadeiro,"propriedades": {"brilho": {"dinâmico": falso,"habilitado": verdadeiro,"campos": [{"índice": verdadeiro,"name" (nome): "brilho","loja": verdadeiro,"tipo": "número"}]},"cor": {"dinâmico": falso,"habilitado": verdadeiro,"campos": [{"analisador": "en","índice": verdadeiro,"name" (nome): "cor","loja": verdadeiro,"tipo": "texto"}]},"colorvect_dot": {"dinâmico": falso,"habilitado": verdadeiro,"campos": [{"dims": 3,"índice": verdadeiro,"name" (nome): "colorvect_dot","similaridade": "dot_product","tipo": "vetor"}]},"colorvect_l2": {"dinâmico": falso,"habilitado": verdadeiro,"campos": [{"dims": 3,"índice": verdadeiro,"name" (nome): "colorvect_l2","similaridade": "l2_norm","tipo": "vetor"}]},"description" (descrição): {"dinâmico": falso,"habilitado": verdadeiro,"campos": [{"analisador": "en","índice": verdadeiro,"name" (nome): "description" (descrição),"loja": verdadeiro,"tipo": "texto"}]},"embedding_vector_dot": {"dinâmico": falso,"habilitado": verdadeiro,"campos": [{"dims": 1536,"índice": verdadeiro,"name" (nome): "embedding_vector_dot","similaridade": "dot_product","tipo": "vetor"}]}}}}},"loja": {"indexType": "scorch" (queimar),"segmentVersion": 16}},"sourceParams": {}}
- color-index.json:
- Definição de pesquisa de amostra:
{"fields": ["*"], "query": { "match_none": "" }, "knn": [ { "k": 2, "field": "colorvect_l2", "vector": [ 0, 0, 128 ] } ] }
Etapas
Criar dados de amostra
Abra a Capella UI, vá para Banco de dadose comece a importar dados usando a importação do navegador usando ferramentas de dados:
-
- Use o arquivo de dados rgb.json de amostra fornecido nos pré-requisitos.
- Escolha a opção carregar do navegador.
- Selecione o arquivo: rgb.json
- Especifique o nome do novo bucket: amostra de vetores
- Especifique o novo escopo com o nome: cor
- Especifique o nome da nova coleção: rgb
- Na etapa 3, visualização seus dados,
Escolha como o Capella cria identificadores para cada um de seus documentos. Selecione a opção como campo e especifique o campo: Id conforme identificado na captura de tela abaixo. - Clique em Import.
Criar índice de pesquisa de vetores
Em Search Options (Opções de pesquisa), em Ferramentas de dados:
-
- Criar índice de pesquisa
- Selecione modo avançado
- Clique em Definição do índice no lado direito da interface do usuário
- Selecione a opção Importar do arquivo
- Escolha o arquivo color-index.json especificado nos pré-requisitos
- Especifique o nome do índice como: color-index.json
- Escolha a caçamba: amostra de vetores
- O escopo será preenchido automaticamente como cor
- Clique em Criar índice
- Criar índice de pesquisa
Executar uma pesquisa de vetor
Selecione o Pesquisa na opção índice de cores linha (botão próximo à extrema direita)
Cole o texto de pesquisa da etapa de pré-requisito na janela Pesquisar.
Clique em Pesquisa para obter um resultado (exibido na janela abaixo do texto da pesquisa).
Conclusão
Nesta postagem, abordamos os conceitos básicos do que é a pesquisa vetorial e como começar a usar rapidamente a pesquisa vetorial com o Couchbase.
Depois de executar uma pesquisa vetorial básica, é possível combinar facilmente consultas SQL com a pesquisa vetorial no Couchbase, o que ajuda a consolidar a pilha de bancos de dados e evita a gravação de várias consultas para obter um único resultado significativo para um aplicativo.
Comece gratuitamente
-
- Inicie sua Conta de avaliação de 30 dias para Capella para executar seu primeiro experimento hoje mesmo!
Referências