Visão geral das opções de implantação do Milvus
O Milvus é um banco de dados vetorial escalável e de alto desempenho. Ele suporta casos de uso de uma ampla gama de tamanhos, desde demonstrações executadas localmente em Jupyter Notebooks até clusters Kubernetes em grande escala que lidam com dezenas de bilhões de vetores. Atualmente, existem três opções de implantação do Milvus: Milvus Lite, Milvus Standalone e Milvus Distributed.
Milvus Lite
O Milvus Lite é uma biblioteca Python que pode ser importada para as suas aplicações. Como uma versão leve do Milvus, é ideal para prototipagem rápida em Jupyter Notebooks ou para execução em dispositivos inteligentes com recursos limitados. O Milvus Lite suporta as mesmas APIs que outras implementações do Milvus. O código do lado do cliente que interage com o Milvus Lite também pode funcionar com instâncias do Milvus em outros modos de implantação.
Para integrar o Milvus Lite em seus aplicativos, execute pip install pymilvus
para instalá-lo e use a instrução MilvusClient("./demo.db")
para instanciar um banco de dados vetorial com um arquivo local que persiste todos os seus dados. Para obter mais detalhes, consulte Executar o Milvus Lite.
Milvus Standalone
O Milvus Standalone é uma implantação de servidor de máquina única. Todos os componentes do Milvus Standalone são empacotados em uma única imagem Docker, tornando a implantação conveniente. Se tem uma carga de trabalho de produção mas prefere não utilizar Kubernetes, executar o Milvus Standalone numa única máquina com memória suficiente é uma boa opção. Além disso, o Milvus Standalone suporta alta disponibilidade através da replicação mestre-escravo.
Milvus Distribuído
O Milvus Distributed pode ser implantado em clusters Kubernetes. Esta implementação apresenta uma arquitetura nativa da nuvem, em que a carga de ingestão e as consultas de pesquisa são tratadas separadamente por nós isolados, permitindo a redundância de componentes críticos. Oferece a maior escalabilidade e disponibilidade, bem como a flexibilidade na personalização dos recursos alocados em cada componente. O Milvus Distributed é a melhor escolha para utilizadores empresariais que executam sistemas de pesquisa vetorial de grande escala em produção.
Escolha a implementação correta para o seu caso de utilização
A seleção de um modo de implementação depende normalmente da fase de desenvolvimento da sua aplicação:
Para prototipagem rápida
Se pretender construir rapidamente algo como protótipo ou para fins de aprendizagem, como demos de Retrieval Augmented Generation (RAG), chatbots de IA, pesquisa multimodal, o Milvus Lite ou uma combinação do Milvus Lite e do Milvus Standalone é adequado. Pode utilizar o Milvus Lite em notebooks para prototipagem rápida e explorar várias abordagens, como diferentes estratégias de fragmentação em RAG. Poderá querer implementar a aplicação construída com o Milvus Lite numa produção em pequena escala para servir utilizadores reais, ou validar a ideia em conjuntos de dados maiores, digamos mais do que alguns milhões de vectores. O Milvus Standalone é apropriado. A lógica da aplicação do Milvus Lite pode ser partilhada, uma vez que todas as implementações do Milvus têm a mesma API do lado do cliente. Os dados armazenados no Milvus Lite também podem ser transferidos para o Milvus Standalone com uma ferramenta de linha de comando.
Implantação de produção em pequena escala
Para a fase inicial de produção, quando o projeto ainda está à procura de um produto adequado ao mercado e a agilidade é mais importante do que a escalabilidade, o Milvus Standalone é a melhor escolha. Ele ainda pode escalar até 100M de vetores com recursos de máquina suficientes, enquanto exige muito menos DevOps do que manter um cluster K8s.
Implantação de produção em larga escala
Como o seu negócio está a crescer rapidamente e a escala de dados excede a capacidade de um único servidor, é altura de considerar o Milvus Distributed. Pode continuar a usar o Milvus Standalone para desenvolvimento ou ambiente de teste por conveniência, e operar o cluster K8s que corre o Milvus Distributed. Isso pode sustentá-lo em dezenas de bilhões de vetores, além de fornecer flexibilidade na adaptação do tamanho do nó para sua carga de trabalho específica, como casos de alta leitura e gravação pouco frequente ou alta gravação e baixa leitura.
Pesquisa local em dispositivos de borda
Para pesquisar através de dispositivos de ponta privados ou sensíveis, pode implementar o Milvus Lite no dispositivo sem depender de um serviço baseado na nuvem para fazer pesquisa de texto ou imagem. Isto é adequado para casos como a pesquisa de documentos proprietários ou a deteção de objectos no dispositivo.
A escolha do modo de implementação do Milvus depende da fase e da escala do seu projeto. O Milvus oferece uma solução flexível e poderosa para várias necessidades, desde a criação rápida de protótipos até à implementação em grande escala numa empresa.
- O Milvus Lite é recomendado para conjuntos de dados mais pequenos, até alguns milhões de vectores.
- O Milvus Standalone é adequado para conjuntos de dados de média dimensão, com escalas até 100 milhões de vectores.
- O Milvus Distributed foi concebido para implementações em grande escala, capaz de lidar com conjuntos de dados de 100 milhões a dezenas de milhares de milhões de vectores.
Selecione a opção de implementação para o seu caso de utilização
Comparação de funcionalidades
Funcionalidade | Milvus Lite | Milvus Standalone | Milvus Distribuído |
---|---|---|---|
SDK / Manual do cliente | Python gRPC | Python Go Java Node.js C# RESTful | Python Java Go Node.js C# RESTful |
Tipos de dados | Vetor denso Vetor esparso Vetor binário Booleano Inteiro Ponto flutuante VarChar Matriz JSON | Vetor Denso Vetor Esparso Vetor Binário Booleano Inteiro Ponto Flutuante VarChar Matriz JSON | Vetor Denso Vetor Esparso Vetor Binário Booleano Inteiro Ponto Flutuante VarChar Matriz JSON |
Capacidades de pesquisa | Pesquisa vetorial (Pesquisa ANN) Filtragem de metadados Pesquisa de intervalos Consulta escalar Obter entidades por chave primária Pesquisa híbrida | Pesquisa vetorial (Pesquisa ANN) Filtragem de metadados Pesquisa de intervalos Consulta escalar Obter entidades por chave primária Pesquisa híbrida | Pesquisa vetorial (Pesquisa ANN) Filtragem de metadados Pesquisa de intervalos Consulta escalar Obter entidades por chave primária Pesquisa híbrida |
Operações CRUD | ✔️ | ✔️ | ✔️ |
Gestão avançada de dados | N/A | Controlo de acesso Partição Chave de partição | Controlo de acesso Partição Chave de partição Agrupamento de recursos físicos |
Níveis de consistência | Forte | Forte Staleness limitado Sessão Eventual | Forte Staleness limitado Sessão Eventual |