Domínio de Dados Facilitado: Explorando a Magia dos Bancos de Dados Vetoriais em Jupyter Notebooks
A Anthropic lançou recentemente uma versão de 100k tokens do Claude. O Google lançou recentemente o PaLM 2. E, claro, todos nós já estamos bem cientes do GPT e do ChatGPT da OpenAI neste momento. Grandes modelos de linguagem (LLMs) impulsionaram a aceleração na adoção de IA, aumentando a demanda por bancos de dados vetoriais junto com eles.
Por quê? Porque bancos de dados vetoriais podem ajudar a resolver um dos maiores problemas que os LLMs enfrentam - a falta de conhecimento de domínio e de dados atualizados. Fora dos LLMs, os bancos de dados vetoriais também mostram sua utilidade ao impulsionar aplicações de busca por similaridade. Além disso, eles são necessários para trabalhar em recomendações de produtos, busca reversa de imagens e busca semântica de texto.
Como você pode começar a usar um banco de dados vetorial no seu Jupyter Notebook? Este tutorial aborda:
- O que é um Banco de Dados Vetorial?
- Como Usar um Banco de Dados Vetorial no Seu Jupyter Notebook
- O que é o Milvus (Lite)?
- Resumo de um Banco de Dados Vetorial no Seu Jupyter Notebook
Isso se aplica igualmente aos notebooks do CoLab. Aqui estão dois para você: um notebook do CoLab para busca reversa de imagens, e um notebook do CoLab para busca semântica de texto.
O que é um Banco de Dados Vetorial?
Antes de entrarmos no tutorial, vamos obter uma compreensão básica dos bancos de dados vetoriais. Um banco de dados vetorial é criado para armazenar, indexar e consultar dados vetoriais. Eles são usados principalmente para trabalhar com dados não estruturados, como imagens, texto ou vídeo. Primeiro, você passa seus dados por uma rede neural existente para obter os embeddings vetoriais, geralmente extraídos da penúltima camada.
Esses embeddings vetoriais são então armazenados em um banco de dados vetorial. Depois que seus embeddings vetoriais estão armazenados, você pode consultar o banco de dados vetorial pelos top k registros de dados mais semelhantes por meio de embeddings vetoriais, como mostrado nos notebooks do CoLab acima. Algumas das ferramentas que os bancos de dados vetoriais abstraem para você incluem:
- Índices vetoriais que você teria que incluir de outra forma.
- Algoritmos de busca vetorial, como HNSW.
- Uma forma de se comunicar com uma camada de armazenamento persistente.
O que é o Milvus (Lite)?
Milvus é um banco de dados vetorial com um backend nativo de sistema distribuído. Ele é desenvolvido especificamente para lidar com indexação, armazenamento e consulta de dados vetoriais em escala de bilhões. O Milvus usa várias camadas e tipos de nós trabalhadores para um design facilmente escalável. Além de usar vários nós de propósito único, o Milvus também usa dados segmentados para uma indexação mais eficiente. O Milvus usa segmentos de dados de 512MB que não são alterados depois de preenchidos e os consulta em paralelo para oferecer a menor latência em todo o setor.
Arquitetura de alto nível do Banco de Dados Vetorial Milvus
Normalmente, você usaria Docker Compose, Helm, ou o Milvus Operator para iniciar uma instância do Milvus. No entanto, o Milvus Lite permite que você inicie uma instância do Milvus diretamente do seu Jupyter Notebook ou script Python. Ele funciona da mesma forma que o Milvus e salva todos os seus dados localmente.
Como Usar um Banco de Dados Vetorial no Seu Jupyter Notebook
Você pode começar com um banco de dados vetorial como o Milvus Lite diretamente no seu notebook por meio de uma instalação com pip. Na primeira linha do seu Jupyter Notebook, execute ! pip install pymilvus milvus. Depois de instalar pymilvus e milvus, você pode iniciar o banco de dados vetorial e se conectar a ele dentro de um notebook iPython.
O módulo milvus fornece o Milvus Lite e o módulo pymilvus fornece uma interface Python para se conectar ao Milvus. Para começar, importamos três módulos. Primeiro, default_server de milvus. Segundo,connections de pymilvus, e terceiro, utility de pymilvus. Usamos a função start() do default_server para iniciar o servidor. Depois que o servidor é iniciado, conectamo-nos usando connect de connections e passando o host, localhost ou 127.0.0.1, e a porta, obtida do servidor padrão.
from milvus import default_server
from pymilvus import connections, utility
default_server.start()
connections.connect(host="127.0.0.1", port=default_server.listen_port)
Depois de se conectar ao Milvus, você pode usar utility para verificar seu banco de dados. Por exemplo, chame get_server_version() para garantir que você tenha a versão mais recente, que pode ser verificada no Milvus Blog. Você também pode usar utility para verificar collections, tabelas separadas no Milvus. Se quiser começar do zero, você pode verificar se uma coleção com o nome que deseja usar já está em uso e descartá-la com drop_collection, ou escolher um novo nome.
utility.get_server_version()
if utility.has_collection(COLLECTION_NAME):
utility.drop_collection(COLLECTION_NAME)
Quer ir ainda mais longe e usar um banco de dados vetorial em produção ou para um projeto maior? Considere o Zilliz Cloud ou o Milvus Standalone.
Resumo de Como Usar um Banco de Dados Vetorial no Seu Jupyter Notebook
Neste post, aprendemos que bancos de dados vetoriais são úteis sempre que você precisa fazer qualquer coisa que envolva uma busca por similaridade. Eles ajudam a indexar, armazenar e consultar representações de embeddings vetoriais de dados não estruturados, como imagens, vídeos ou texto. Em seguida, analisamos um exemplo de uso de um banco de dados vetorial no seu Jupyter Notebook via Milvus Lite.
Por fim, damos uma olhada nos bastidores do Milvus para ver o backend do sistema distribuído. Também fornecemos recursos para entender como começar a usar um banco de dados vetorial por meio de exemplos em notebooks CoLab. Para quem deseja usar uma instância independente de banco de dados vetorial, também fornecemos exemplos de como configurar o Milvus Standalone.
Continue lendo

Demystifying the Milvus Sizing Tool
Explore how to use the Sizing Tool to select the optimal configuration for your Milvus deployment.

Vector Databases vs. Time Series Databases
Use a vector database for similarity search and semantic relationships; use a time series database for tracking value changes over time.

Selecting the Right ETL Tools for Unstructured Data to Prepare for AI
Learn the right ETL tools for unstructured data to power AI. Explore key challenges, tool comparisons, and integrations with Milvus for vector search.



