O que é Milvus?

Detalhe de dedo tocando a tela

Autores

Matthew Kosinski

Staff Editor

IBM Think

O que é Milvus?

Milvus é um banco de dados de vetores de código aberto desenvolvido pela Zilliz. É conhecido por fornecer armazenamento escalável para grandes quantidades de incorporações vetoriais e permitir pesquisas de similaridade de dados vetoriais de alto desempenho.

A Zilliz desenvolveu o Milvus pela primeira vez em 2017 e contribuiu com o projeto para a Linux® Foundation em 2020. O Milvus agora está disponível tanto como um software de código aberto sob a Apache License 2.0 quanto como um serviço de nuvem totalmente gerenciado da Zilliz.

O que são bancos de dados de vetores e por que eles são importantes?

Os bancos de dados de vetores armazenam e gerenciam conjuntos de dados na forma de vetores. Eles ajudam as organizações a gerenciar dados não estruturados e são críticos para os esforços avançados em inteligência artificial (IA) e aprendizado de máquina (ML).

Vetores são matrizes de números que representam conceitos e objetos complexos, como palavras e imagens.  

Dados não estruturados, como texto, vídeo e áudio, constituem uma parte significativa dos dados empresariais atualmente, mas os bancos de dados tradicionais costumam não ser adequados para organizar e gerenciar esses dados.  

As organizações podem alimentar esses dados com modelos especializados de incorporação de deep learning, que produzem representações vetoriais chamadas “incorporações”. Por exemplo, a palavra “cat” (gato) pode ser representada pelo vetor [0,2, -0,4, 0,7], enquanto a palavra “dog” (cachorro) pode ser representada por [0,6, 0,1, 0,5].

A transformação de dados em vetores permite que as organizações armazenem diferentes tipos de dados não estruturados em um formato compartilhado em um banco de dados de vetores.  

Os vetores também ajudam as organizações a liberar o valor desses dados para IA e ML. Eles capturam as relações semânticas entre elementos, permitindo o processamento eficaz por grandes modelos de linguagem (LLMs) e ferramentas de IA generativa. A maioria das aplicações avançadas de IA e ML atualmente depende de vetores para treinamento e geração de conteúdo.

Assim como outros bancos de dados de vetores, o Milvus oferece às organizações uma maneira de gerenciar e organizar vetores de incorporação. O armazenamento altamente escalável e os recursos de pesquisa de vetores eficientes do banco de dados de vetores Milvus o tornaram uma escolha popular para geração aumentada de recuperação (RAG), sistemas de recomendação e outras aplicações de IA.  

Projeto 3D de bolas rolando em uma pista

As últimas notícias e insights sobre IA 


Descubra insights selecionados por especialistas e notícias sobre IA, nuvem e outros assuntos no boletim informativo semanal Think. 

Arquitetura do Milvus

O Milvus é um banco de dados de vetores nativo da nuvem com uma arquitetura de várias camadas baseada em microsserviços. O Milvus separa armazenamento e recursos de computação, o que permite que as organizações escalem cada camada de forma independente e horizontal.

O Milvus é compatível com vários modelos de incorporação diferentes. As organizações podem conectar seus modelos ao Milvus, que realiza a ingestão das incorporações juntamente com metadados e outras informações pertinentes. O Milvus aceita uploads de streaming e incorporação em lote.

O Milvus possui quatro camadas:

  • Camada de acesso: esta é a camada externa, que aceita inputs de usuários e serviços e retorna produções.  

  • Serviço de coordenação: a Zilliz se refere a essa camada como o “cérebro” do sistema, pois coordena o balanceamento de carga, o gerenciamento de dados, a execução de consultas e outras tarefas importantes. 

  • Nós de trabalho: essa camada executa consultas, atualiza dados e cria índices. 

  • Camada de armazenamento de objetos: essa camada inclui um armazenamento de metadados, um intermediário de logs que registra mudanças de dados em tempo real e um armazenamento de objetos que contém instantâneos de logs, arquivos de índice e resultados de computação intermediários.

Tipos de implementação do Milvus

  • Milvus Lite: uma biblioteca Python que permite aos usuários executar o Milvus em ambientes locais. Atualmente, o Milvus Lite é compatível com Ubuntu e MacOS, mas não com Microsoft Windows.

  • Milvus Standalone: um banco de dados Milvus completo empacotado em uma única imagem do Docker e executado em uma única máquina. 

  • Milvus Cluster: um banco de dados de vetores distribuído que propaga serviços entre grupos de nós em um cluster do Kubernetes.  

  • Zilliz Cloud: a versão totalmente gerenciada do Milvus.
Mixture of Experts | 28 de agosto, episódio 70

Decodificando a IA: resumo semanal das notícias

Participe do nosso renomado painel de engenheiros, pesquisadores, líderes de produtos e outros enquanto filtram as informações sobre IA para trazerem a você as mais recentes notícias e insights sobre IA.

Principais características e recursos do Milvus

Recursos avançados de pesquisa 

O Milvus permite pesquisas por similaridade vetorial de alto desempenho, um tipo de pesquisa vetorial que retorna resultados semanticamente semelhantes a uma consulta. O benefício da pesquisa por similaridade é que ela não se limita a correspondências exatas, como seria uma pesquisa tradicional por palavras-chave.  

Por exemplo, uma pesquisa por palavra-chave de “melhor restaurante pizza” retornaria somente resultados contendo as palavras “melhor”, “restaurante” e “pizza”. Uma pesquisa por similaridade com a mesma palavra-chave encontraria qualquer resultado para pizzarias altamente recomendadas, mesmo que as palavras exatas “melhor restaurante pizza” não fossem usadas no conteúdo

.

O Milvus aceita vários tipos de pesquisa por similaridade, incluindo pesquisa aproximada dos k vizinhos mais próximos (ANN) e ANN dentro de um intervalo.  

O Milvus também permite pesquisas híbridas, que combinam pesquisas vetoriais semânticas com outros critérios, como filtragem de metadados ou pesquisa de palavras-chave.

Pesquisas híbridas podem ser mais eficientes e relevantes. Considere uma pesquisa que combine pesquisa por palavra-chave e vetorial. A pesquisa pode primeiro usar palavras-chave específicas para filtrar os resultados com base em correspondências exatas e, em seguida, usar a pesquisa por similaridade vetorial para pesquisar esses resultados filtrados pelo conteúdo mais semanticamente relevante

.
Indexação 

O Milvus aceita vários tipos de indexação, incluindo mundo pequeno navegável hierárquico (HNSW), arquivo invertido (IVF) e índices baseados em GPU.

A indexação de vetores ajuda a acelerar as pesquisas. Por exemplo, o HNSW agrupa vetores semelhantes durante o processo de construção do índice, facilitando a localização mais rápida de resultados relevantes.

Escalabilidade

As camadas do Milvus podem ser escaladas de forma independente umas das outras, o que pode proporcionar às organizações uma maneira eficiente em termos de custo e recursos para lidar com grandes volumes de dados vetoriais e pesquisas intensivas.

Integrações e compatibilidade 

O Milvus oferece vários kits de desenvolvimento de software (SDKs) para permitir o desenvolvimento em várias linguagens, incluindo Python (pymilvus), Java e Go.

O Milvus também pode se integrar a ferramentas de análise de dados, como Apache Spark, frameworks como LangChain e modelos de IA generativa, como IBM® watsonx, Llama da Meta e modelos GPT da OpenAI. 

Software livre

Uma grande comunidade de código aberto contribui com correções de bugs, atualizações e outras melhorias para os repositórios do GitHub do Milvus.

Milvus vs. outros bancos de dados vetoriais

Milvus vs. Pinecone

Tanto o Pinecone quanto o Milvus oferecem pesquisa de baixa latência e armazenamento escalável, mas o Pinecone é um banco de dados de vetores proprietário e está disponível apenas como um serviço gerenciado.

Milvus vs. Weaviate

Assim como o Milvus, o Weaviate é de código aberto e permite pesquisas híbridas. Uma diferença fundamental é que o Milvus oferece mais tipos de indexação do que o Weaviate.

Milvus vs. Qdrant

Outro banco de dados de vetores de código aberto é o Qdrant, conhecido por seus sólidos recursos de filtragem de metadados. Embora o Qdrant seja adequado para usos em escala moderada, o Milvus geralmente pode lidar com volumes maiores de dados vetoriais.

Milvus vs. Chroma

O Chroma se concentra na facilidade de uso e na rápida implementação local. Ele não possui uma arquitetura distribuída, o que o torna menos escalável. Enquanto o Chroma é muito usado para prototipagem e testes, o Milvus possibilita uma maior variedade de casos de uso.

Casos de uso comuns do Milvus

As organizações utilizam o Milvus para várias aplicações de IA, incluindo:

  • Geração aumentada de recuperação (RAG)

  • Sistemas de recomendação

  • Pesquisas de mídia 

  • Detecção de anomalias e fraudes

Geração aumentada de recuperação (RAG)

RAG é uma arquitetura que conecta modelos de IA a bases de conhecimento externas para ajudá-los a fornecer resultados mais relevantes e precisos.  

O Milvus é comum em implementações de RAG devido à sua compatibilidade com pesquisas híbridas eficientes. Ao combinar a compreensão contextual da pesquisa semântica com a precisão da pesquisa de palavras-chave e da filtragem de metadados, o Milvus ajuda a exibir documentos relevantes, trechos de código e outras informações de fontes de RAG.

CacheGPT, um cache semântico de código aberto para LLMs desenvolvido pela Zilliz, também ajuda o Milvus a viabilizar implementações de RAG. O CacheGPT armazena respostas de aplicações de IA generativa como incorporações de vetores.

Os serviços conectados, como as interfaces RAG, não precisam fazer uma chamada de API para a IA generativa a cada pesquisa. Em vez disso, eles podem verificar o cache primeiro e solicitar a IA generativa somente se a resposta não estiver lá.

Sistemas de recomendação

O Milvus é popular em sistemas de recomendação que combinam conteúdo, produtos e anúncios com usuários de acordo com comportamentos anteriores. 

As preferências do usuário podem ser representadas como vetores, e uma pesquisa por similaridade pode apresentar as representações vetoriais de produtos, anúncios e conteúdo que estão próximos das preferências do usuário.

Pesquisas de mídia

Os recursos de pesquisa por similaridade do Milvus ajudam a otimizar a pesquisa de imagens, áudio, vídeo e outras pesquisas de mídia.

Detecção de anomalias e fraudes

O Milvus pode ser usado para detectar defeitos em produtos, comparando os vetores de imagens de produtos com outros que representam as formas adequadas desses produtos. Diferenças entre os vetores podem indicar defeitos.

O Milvus também serve para detectar anomalias em outros contextos. Na cibersegurança, os vetores que representam atividades de rede autorizadas podem ser comparados àqueles que representam atividades maliciosas conhecidas. Da mesma forma, em finanças, os vetores que representam transações podem ser analisados para identificar desvios indicativos de fraude.

Soluções relacionadas
IBM® watsonx.ai

Treine, valide, ajuste e implemente recursos de IA generativa, modelos de base e recursos de aprendizado de máquina com o IBM watsonx.ai, um estúdio empresarial de última geração para construtores de IA. Crie aplicações de IA em menos tempo com menos dados.

Explore o watsonx.ai
Soluções de inteligência artificial

Coloque a IA em ação na sua empresa com a experiência em IA líder do setor e com o portfólio de soluções da IBM.

Explore as soluções de IA
Consultoria e serviços em inteligência artificial (IA)

Os serviços de IA da IBM Consulting ajudam a reinventar a forma como as empresas trabalham com IA para gerar transformação.

Explore os serviços de IA
Dê o próximo passo

Obtenha acesso completo aos recursos que abrangem o ciclo de vida do desenvolvimento da IA. Produza soluções poderosas de IA com interfaces fáceis de usar, fluxos de trabalhos e acesso a APIs e SDKs padrão do setor.

Explore o watsonx.ai Agende uma demonstração em tempo real