Não há inteligência artificial sem dados. E quando seus dados estiverem espalhados por todo lugar, você gastará mais tempo gerenciando o processo de implementação em vez de focar no que é mais importante: construir o aplicativo. Os aplicativos mais proeminentes do mundo já usam o Apache Cassandra, portanto, aumentar a eficiência dos dados é uma meta cada vez mais importante. A IA tem tudo a ver com escala, e trazer a pesquisa vetorial – um componente chave no uso de modelos de IA – para o Cassandra ajudará as organizações a reduzir custos, simplificar o gerenciamento de dados e espremer até a última gota de valor de seus dados.
Esse recurso de ponta, recentemente descrito em uma proposta de aprimoramento do Cassandra (
O conceito de pesquisa de texto existe há muito tempo. Envolve a pesquisa de uma palavra-chave específica nos documentos. Mas dados importantes podem ser encontrados em mais do que apenas texto: áudio, imagens e vídeo (ou alguma combinação) também contêm informações relevantes que requerem um método de pesquisa. É aí que entra a pesquisa vetorial. Está em uso
Também conhecida como pesquisa de similaridade de vetores, há duas partes necessárias para elevar seu jogo de pesquisa.
Primeiro, os dados brutos devem ser indexados em uma representação vetorial (uma matriz de números) que serve como uma descrição matemática.
Em segundo lugar, os dados vetoriais precisam ser armazenados de forma que os desenvolvedores possam perguntar: “Dada uma coisa, quais outras coisas são semelhantes?” É simples e poderoso para desenvolvedores, difícil de implementar em grande escala no lado do servidor. É aqui que o Cassandra realmente brilhará ao fornecer dados consistentemente em qualquer escala em todo o mundo com resiliência que garante tranquilidade.
De forma alguma, isso pretende ser um mergulho profundo na pesquisa vetorial, mas mais uma explicação do que ela pode fazer pelo seu aplicativo, criando uma dimensão totalmente nova de dados úteis para reduzir a complexidade do código e entrar em produção mais rapidamente com os recursos dos usuários querer.
Exemplos práticos do mundo real de pesquisa vetorial incluem:
Recuperação de imagens baseada em conteúdo, onde imagens visualmente semelhantes são identificadas com base em seus vetores de recursos. Usando uma biblioteca como
Sistemas de recomendação, em que produtos ou conteúdos são recomendados aos consumidores com base na semelhança com itens com os quais eles já interagiram anteriormente.
Aplicativos de processamento de linguagem natural, onde as semelhanças semânticas entre o conteúdo textual podem ser identificadas e aproveitadas para tarefas como análise de sentimentos, agrupamento de documentos e modelagem de tópicos. Isso geralmente é feito usando ferramentas como
Usar ChatGPT? A pesquisa vetorial é crítica para o caso de uso do Large Language Model (LLM), pois permite armazenamento e recuperação eficientes de incorporações de vetores, representando o conhecimento destilado obtido durante o processo de treinamento do LLM. Ao realizar pesquisas de similaridade, a pesquisa vetorial pode identificar rapidamente os embeddings mais relevantes correspondentes a um prompt do usuário.
Isso ajuda os LLMs a gerar respostas mais precisas e contextualmente apropriadas, além de fornecer uma forma de memória de longo prazo para os modelos. Em essência, a pesquisa de vetores é uma ponte vital entre os LLMs e as vastas bases de conhecimento nas quais eles são treinados.
O projeto Cassandra está em uma busca sem fim para fazer de Cassandra a maior potência no universo de banco de dados. Conforme mencionado anteriormente, depois de converter seus dados em incorporações vetoriais, você precisará de um local para armazená-los e usá-los. Esses recursos estão sendo adicionados ao Cassandra, expostos de maneira simples, mas poderosa.
Para suportar o armazenamento de vetores de alta dimensão, estamos introduzindo um novo tipo de dados, ` VECTOR<type, dimension>
`. Isso permitirá o manuseio e armazenamento de
CREATE TABLE products(
id UUID PRIMARY KEY,
name varchar,
description varchar,
item_vector VECTOR<float, 3>
);
Adicionaremos um novo índice de armazenamento anexado (SAI) chamado "VectorMemtableIndex", que acomodará a funcionalidade de pesquisa aproximada do vizinho mais próximo (ANN). Esse índice funcionará em conjunto com o novo tipo de dados e a biblioteca Hierarchical Navigable Small World (HNSW) do Apache Lucene para permitir recursos eficientes de pesquisa vetorial no Cassandra.
CREATE CUSTOM INDEX item_ann_index ON product(item_vector)
USING 'VectorMemtableIndex';
Para tornar mais fácil para os usuários realizar pesquisas ANN em seus dados, apresentaremos um novo operador Cassandra Query Language (CQL), ANN OF. Esse operador permitirá que os usuários executem pesquisas de ANN com eficiência em seus dados com uma sintaxe de consulta simples e familiar. Continuando o exemplo, os desenvolvedores podem solicitar ao banco de dados algo semelhante a um vetor criado a partir de uma descrição.
SELECT * FROM product WHERE item_vector ANN OF [3.4, 7.8, 9.1]
Quando o Cassandra 4.0 foi lançado, um dos destaques facilmente esquecidos foi o conceito de maior capacidade de conexão. A nova funcionalidade de pesquisa vetorial no Cassandra é construída como uma extensão da estrutura SAI existente, evitando a reescrita do mecanismo de indexação central. Ele usa o conhecido e amplamente utilizado
A nova adição do Cassandra 4 destaca sua notável modularidade e extensibilidade. Com a integração do HNSW Lucene e a expansão da estrutura SAI, os desenvolvedores agora podem acessar uma ampla variedade de recursos prontos para produção com muito mais rapidez. Os desenvolvedores têm acesso a vários bancos de dados de vetores e muitos deles preferem construir um mecanismo de indexação de vetores antes de adicionar armazenamento. Cassandra enfrentou com sucesso a questão desafiadora do armazenamento de dados em escala por mais de uma década. Estamos muito confiantes de que a inclusão de pesquisa vetorial no Cassandra fornecerá recursos ainda mais excepcionais prontos para produção.
Cassandra não é novata em aprendizado de máquina e cargas de trabalho de IA. Os usuários de longa data do Cassandra usam o Cassandra como um armazenamento de recursos rápido e eficiente há anos. Há até rumores de que a OpenAI usa Cassandra pesadamente na construção de LLMs. Todos esses casos de uso empregam a funcionalidade existente do Cassandra. Haverá muitas maneiras de usar a nova pesquisa vetorial. Será empolgante ver o que nossa comunidade criará, mas eles provavelmente se encaixarão em duas categorias:
Se você já possui um aplicativo criado no Cassandra, pode aprimorar seus recursos incorporando a pesquisa ANN (“vizinho mais próximo aproximado”). Por exemplo, se você tiver um sistema de recomendação de conteúdo, poderá usar a pesquisa ANN para encontrar itens semelhantes e melhorar a relevância de suas recomendações. Catálogos de produtos podem desnormalizar recursos em vetores incorporados armazenados no mesmo registro. A detecção de fraude pode ser ainda mais aprimorada mapeando comportamentos para recursos. Pense em um caso de uso e provavelmente seja relevante.
Se você está iniciando um novo projeto que requer recursos de pesquisa rápida por similaridade, o novo recurso de pesquisa vetorial do Cassandra será uma excelente opção para armazenamento e recuperação de dados. Saber que você pode ir de gigabytes para petabytes no mesmo sistema permitirá que você se concentre na criação de seu aplicativo e não se preocupe com compensações. Além de armazenar incorporações vetoriais, você terá todo o poder do CQL e o armazenamento tabular de um banco de dados completo.
Independentemente de como você consome Cassandra, todas essas opções estarão disponíveis. Se for sua própria implantação usando Cassandra de código aberto, implantada em Kubernetes usando
À medida que continuamos inovando e expandindo os recursos do Cassandra, continuamos comprometidos em permanecer na vanguarda do que você precisa em gerenciamento de dados. A introdução da pesquisa vetorial é um novo caso de uso empolgante que tornará seus aplicativos orientados a dados ainda mais poderosos e versáteis. Isso, com alguns dos outros recursos de ponta, como distribuição
Estamos confiantes de que essa adição ajudará não apenas os desenvolvedores de IA, mas também as organizações que gerenciam grandes conjuntos de dados que podem se beneficiar da pesquisa rápida por similaridade. Portanto, fique de olho na versão alfa do Cassandra com funcionalidade de pesquisa vetorial, prevista para o terceiro trimestre. Estamos ansiosos para ver os aplicativos fantásticos que você criará com esse novo recurso e adoraríamos se você compartilhasse seus casos de uso com a comunidade em
Também publicado por Patrick McFadin, DataStax aqui.