🚀 Experimente o Zilliz Cloud, o Milvus totalmente gerenciado, gratuitamente—experimente um desempenho 10x mais rápido! Experimente Agora>>

milvus-logo
LFAI
  • Home
  • Blog
  • Graças a Milvus, qualquer pessoa pode criar uma base de dados de vectores para mais de mil milhões de imagens

Graças a Milvus, qualquer pessoa pode criar uma base de dados de vectores para mais de mil milhões de imagens

  • Scenarios
November 11, 2020
milvus

O aumento da capacidade de computação e a diminuição dos custos de computação tornaram a análise à escala da máquina e a inteligência artificial (IA) mais acessíveis do que nunca. Na prática, isto significa que, com apenas um servidor e 10 linhas de código, é possível criar um motor de pesquisa de imagens invertido capaz de consultar mais de mil milhões de imagens em tempo real. Este artigo explica como o Milvus, uma plataforma de gestão de dados vectoriais de código aberto, pode ser utilizado para criar sistemas poderosos de processamento e análise de dados não estruturados, bem como a tecnologia subjacente que torna tudo isto possível.

Saltar para:

Como é que a IA permite a análise de dados não estruturados?

Uma estatística frequentemente citada é que 80% dos dados do mundo são não estruturados, mas apenas 1% é analisado. Os dados não estruturados, incluindo imagens, vídeo, áudio e linguagem natural, não seguem um modelo predefinido ou uma forma de organização. Isto torna difícil o processamento e a análise de grandes conjuntos de dados não estruturados. À medida que a proliferação de smartphones e outros dispositivos ligados leva a produção de dados não estruturados a novos patamares, as empresas estão cada vez mais conscientes da importância dos conhecimentos obtidos a partir desta informação nebulosa.

Durante décadas, os cientistas informáticos desenvolveram algoritmos de indexação adaptados para organizar, pesquisar e analisar tipos de dados específicos. Para dados estruturados, existem o mapa de bits, as tabelas de hash e a árvore B, que são normalmente utilizados em bases de dados relacionais desenvolvidas por gigantes da tecnologia como a Oracle e a IBM. Para dados semi-estruturados, os algoritmos de indexação invertida são padrão e podem ser encontrados em motores de busca populares como o Solr e o ElasticSearch. No entanto, os algoritmos de indexação de dados não estruturados dependem de inteligência artificial de computação intensiva que só se tornou amplamente acessível na última década.

As redes neuronais convertem dados não estruturados em vectores de caraterísticas fáceis de utilizar por computador

Utilizando redes neuronais (por exemplo, CNN, RNN e BERT), os dados não estruturados podem ser convertidos em vectores de caraterísticas (também conhecidos por embeddings), que são uma cadeia de números inteiros ou flutuantes. Este formato de dados numéricos é muito mais facilmente processado e analisado por máquinas. As aplicações que abrangem a pesquisa inversa de imagens, a pesquisa de vídeos, o processamento de linguagem natural (PNL) e outras podem ser criadas através da incorporação de dados não estruturados em vectores de caraterísticas e do cálculo da semelhança entre vectores utilizando medidas como a distância euclidiana ou a semelhança cosseno.

Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_2.jpeg Blogue_Graças à IA, qualquer pessoa pode criar um motor de pesquisa para mais de 1 bilião de imagens_2.jpeg

O cálculo da semelhança de vectores é um processo relativamente simples que se baseia em algoritmos estabelecidos. No entanto, os conjuntos de dados não estruturados, mesmo depois de serem convertidos em vectores de caraterísticas, são normalmente várias ordens de grandeza maiores do que os conjuntos de dados estruturados e semi-estruturados tradicionais. A pesquisa por semelhança de vectores é dificultada pelo enorme espaço de armazenamento e pela potência de computação necessários para consultar de forma eficiente e precisa dados não estruturados em grande escala. No entanto, se for possível sacrificar algum grau de precisão, existem vários algoritmos de pesquisa do vizinho mais próximo aproximado (ANN) que podem melhorar drasticamente a eficiência da consulta de conjuntos de dados maciços com elevada dimensionalidade. Estes algoritmos ANN diminuem os requisitos de armazenamento e a carga de cálculo, agrupando vectores semelhantes, o que resulta numa pesquisa vetorial mais rápida. Os algoritmos habitualmente utilizados incluem RNAs baseadas em árvores, em grafos e combinadas.

O que são plataformas de gestão de dados vectoriais?

As plataformas de gestão de dados vectoriais são aplicações criadas especificamente para armazenar, processar e analisar conjuntos de dados vectoriais maciços. Estas ferramentas foram concebidas para interagir facilmente com grandes quantidades de dados e incluem funcionalidades que simplificam a gestão de dados vectoriais. Infelizmente, existem poucos sistemas que sejam suficientemente flexíveis e potentes para resolver os desafios modernos dos grandes volumes de dados. O Milvus, uma plataforma de gestão de dados vectoriais iniciada pela Zilliz e lançada sob uma licença de código aberto em 2019, tenta preencher este vazio.

Quais são as limitações das abordagens existentes à gestão de dados vectoriais?

Uma forma comum de construir um sistema de análise de dados não estruturados é emparelhar algoritmos como a ANN com bibliotecas de implementação de código aberto, como o Facebook AI Similarity Search (Faiss). Devido a várias limitações, estas combinações de algoritmos e bibliotecas não são equivalentes a um sistema completo de gestão de dados vectoriais como o Milvus. A tecnologia existente utilizada para gerir dados vectoriais enfrenta os seguintes problemas

  1. Flexibilidade: Por defeito, os sistemas existentes armazenam normalmente todos os dados na memória principal, o que significa que não podem ser executados em várias máquinas e são pouco adequados para lidar com conjuntos de dados maciços.
  2. Tratamento dinâmico dos dados: Os dados são frequentemente considerados estáticos uma vez introduzidos nos sistemas existentes, o que complica o processamento de dados dinâmicos e impossibilita a pesquisa quase em tempo real.
  3. Processamento avançado de consultas: A maioria das ferramentas não suporta o processamento avançado de consultas (por exemplo, filtragem de atributos e consultas multi-vectoriais), que é essencial para a construção de motores de pesquisa por semelhança úteis.
  4. Optimizações de computação heterogénea: Poucas plataformas oferecem optimizações para arquitecturas de sistemas heterogéneos em CPUs e GPUs (excluindo o Faiss), o que leva a perdas de eficiência.

O Milvus tenta ultrapassar todas estas limitações. O sistema aumenta a flexibilidade oferecendo suporte a uma variedade de interfaces de aplicativos (incluindo SDKs em Python, Java, Go, C++ e APIs RESTful), vários tipos de índices vetoriais (por exemplo, índices baseados em quantização e índices baseados em gráficos) e processamento avançado de consultas. O Milvus lida com dados vetoriais dinâmicos usando uma árvore de mesclagem estruturada em log (árvore LSM), mantendo as inserções e exclusões de dados eficientes e as pesquisas funcionando em tempo real. O Milvus também fornece optimizações para arquitecturas de computação heterogéneas em CPUs e GPUs modernas, permitindo aos programadores ajustar os sistemas a cenários, conjuntos de dados e ambientes de aplicação específicos.

Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_3.png Blogue_Graças à IA, qualquer pessoa pode criar um motor de pesquisa para mais de 1 bilião de imagens_3.png

Utilizando várias técnicas de indexação ANN, o Milvus consegue atingir uma taxa de 99% de recuperação dos 5 primeiros. O sistema também é capaz de carregar mais de 1 milhão de entradas de dados por minuto. Isto resulta num tempo de consulta inferior a um segundo ao executar uma pesquisa de imagem inversa em mil milhões de imagens. Como uma aplicação nativa da nuvem que pode funcionar como um sistema distribuído implantado em vários nós, o Milvus pode facilmente e de forma fiável alcançar um desempenho semelhante em conjuntos de dados que contêm 10, ou mesmo 100, mil milhões de imagens. Além disso, o sistema não se limita a dados de imagem, com aplicações que abrangem visão computacional, IA de conversação, sistemas de recomendação, descoberta de novos medicamentos e muito mais.

Tal como referido anteriormente, uma plataforma de gestão de dados vectoriais capaz como a Milvus, associada a algoritmos de vizinho mais próximo aproximado, permite a pesquisa de semelhanças em volumes gigantescos de dados não estruturados. Esta tecnologia pode ser utilizada para desenvolver aplicações que abrangem uma grande variedade de domínios. Em seguida, explicamos brevemente vários casos de utilização comuns para ferramentas de gestão de dados vectoriais e pesquisa de semelhanças vectoriais.

Os principais motores de pesquisa, como o Google, já dão aos utilizadores a opção de pesquisar por imagem. Além disso, as plataformas de comércio eletrónico aperceberam-se das vantagens que esta funcionalidade oferece aos compradores online, tendo a Amazon incorporado a pesquisa de imagens nas suas aplicações para smartphones.

Blog_Thanks to AI, Anyone Can Build a Search Engine for 1+ Billion Images_4.png Blogue_Graças à IA, qualquer pessoa pode criar um motor de pesquisa para mais de 1 bilião de imagens_4.png

O software de código aberto como o Milvus permite a qualquer empresa criar o seu próprio sistema de pesquisa inversa de imagens, reduzindo as barreiras à entrada desta funcionalidade cada vez mais procurada. Os programadores podem utilizar modelos de IA pré-treinados para converter os seus próprios conjuntos de dados de imagens em vectores e, em seguida, utilizar o Milvus para permitir a pesquisa de produtos semelhantes por imagem.

Sistemas de recomendação de vídeo

As principais plataformas de vídeo online, como o YouTube, que recebe 500 horas de conteúdos gerados pelos utilizadores por minuto, apresentam exigências únicas no que diz respeito à recomendação de conteúdos. Para fazer recomendações relevantes e em tempo real que tenham em consideração os novos carregamentos, os sistemas de recomendação de vídeo devem oferecer um tempo de consulta extremamente rápido e um tratamento de dados dinâmico eficiente. Ao converter quadros-chave em vectores e depois alimentar o Milvus com os resultados, milhares de milhões de vídeos podem ser pesquisados e recomendados quase em tempo real.

Processamento de linguagem natural (PNL)

O processamento de linguagem natural é um ramo da inteligência artificial que tem por objetivo criar sistemas capazes de interpretar as línguas humanas. Depois de converter os dados de texto em vectores, o Milvus pode ser utilizado para identificar e remover rapidamente texto duplicado, potenciar a pesquisa semântica ou mesmo criar um assistente de escrita inteligente. Uma plataforma eficaz de gestão de dados vectoriais ajuda a maximizar a utilidade de qualquer sistema de PNL.

Saiba mais sobre o Milvus

Se quiser saber mais sobre Milvus, visite o nosso sítio Web. Além disso, o nosso bootcamp oferece vários tutoriais, com instruções para a configuração do Milvus, testes de benchmark e construção de uma variedade de aplicações diferentes. Se estiver interessado em gestão de dados vectoriais, inteligência artificial e desafios de grandes volumes de dados, junte-se à nossa comunidade de código aberto no GitHub e converse connosco no Slack.

Pretende obter mais informações sobre a criação de um sistema de pesquisa de imagens? Veja este estudo de caso:

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    Continue Lendo