paint-brush
Revolucionando o desenvolvimento de IA: Apache Cassandra apresenta a pesquisa vetorialpor@datastax
1,882 leituras
1,882 leituras

Revolucionando o desenvolvimento de IA: Apache Cassandra apresenta a pesquisa vetorial

por DataStax7m2023/05/22
Read on Terminal Reader

Muito longo; Para ler

A poderosa pesquisa vetorial, juntamente com o Apache Cassandra, o banco de dados mais escalável do mundo, é uma virada de jogo para aplicativos de IA.
featured image - Revolucionando o desenvolvimento de IA: Apache Cassandra apresenta a pesquisa vetorial
DataStax HackerNoon profile picture


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 ( CEP-30 ), é mais uma prova do compromisso da comunidade Cassandra em construir rapidamente recursos confiáveis. Também é uma prova do crescente apelo de Cassandra para desenvolvedores de IA e organizações que lidam com conjuntos de dados massivos, fornecendo-lhes as ferramentas para criar aplicativos avançados orientados a dados.


O que é pesquisa vetorial?

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 por algum tempo agora , e provou ser bastante valioso em várias aplicações, especialmente nos campos de IA e aprendizado de máquina.


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 img2vec , você pode converter um arquivo de imagem em 512 identificadores exclusivos que podem ser usados para pesquisa de similaridade.


  • 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 palavra2vec e pode exigir a escala que Cassandra oferece.


  • 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 que está por vir para Cassandra?

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.


Tipo de dados vetoriais

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 Float32 embeddings, que são comumente usados em aplicativos de IA. Isso já resultou em discussões para adicionar Cassandra em bibliotecas de IA como LangChain . Neste exemplo, imagine a criação de um vetor a partir da descrição para possibilitar uma busca por similaridade semântica.



CREATE TABLE products(

id UUID PRIMARY KEY,

name varchar,

description varchar,

item_vector VECTOR<float, 3>

);



índice de pesquisa ANN

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';


Operador ANN em CQL

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]



Destacando a extensibilidade do Cassandra

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 funcionalidade HNSW em Lucene, que fornece uma solução rápida e eficiente para encontrar vizinhos mais próximos aproximados no espaço de alta dimensão.


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.


Novos casos de uso

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:


Aprimore um caso de uso existente com pesquisa ANN

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.

Crie algo novo que precise de pesquisa vetorial

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 K8ssandra ou na nuvem com serviços como Data Stax Astra DB , você obterá o mesmo excelente sistema. A liberdade que você obtém com o código aberto é a liberdade de escolher como construir seus aplicativos.


Construído por e para desenvolvedores

À 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 Transações ACID em escala , fará do Cassandra 5.0 a atualização mais significativa que você pode fazer. Também não vamos parar por aqui. As empresas e desenvolvedores que oferecem suporte ao Cassandra estão trabalhando duro para pensar em mais maneiras de consolidar seus dados, simplificar o gerenciamento e economizar dinheiro.


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 Planeta Cassandra .



Também publicado por Patrick McFadin, DataStax aqui.