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

milvus-logo
LFAI
  • Home
  • Blog
  • Revelar as 10 principais palavras-chave que dominam a comunidade Milvus em 2023

Revelar as 10 principais palavras-chave que dominam a comunidade Milvus em 2023

  • Engineering
January 21, 2024
Jack Li, Fendy Feng

Ao concluirmos 2023, vamos rever a notável jornada da comunidade Milvus: ostentando 25.000 GitHub Stars, o lançamento do Milvus 2.3.0 e ultrapassando 10 milhões de downloads de imagens Docker. Este post explora o coração da comunidade, analisando os históricos de chat e revelando as 10 principais palavras-chave nas discussões.

#1 Versão - A ascensão do AIGC impulsiona a rápida iteração do Milvus

Surpreendentemente, "Versão" surgiu como a palavra-chave mais discutida em 2023. Essa revelação está enraizada na onda de IA do ano, com bancos de dados vetoriais como uma infraestrutura crítica para enfrentar os desafios nos problemas de alucinação dos aplicativos AIGC.

O entusiasmo em torno das bases de dados vectoriais conduz o Milvus a uma fase de rápida iteração. A comunidade testemunhou o lançamento de vinte versões apenas em 2023, acomodando as demandas dos desenvolvedores do AIGC que inundaram a comunidade com perguntas sobre como escolher a versão ideal do Milvus para várias aplicações. Para os utilizadores que navegam nestas actualizações, recomendamos que adoptem a versão mais recente para obterem funcionalidades e desempenho melhorados.

Se estiver interessado no planeamento do lançamento do Milvus, consulte a página Milvus Roadmap no site oficial.

A "Pesquisa" ocupa o segundo lugar, reflectindo o seu papel fundamental nas operações da base de dados. O Milvus suporta várias capacidades de pesquisa, desde a pesquisa Top-K ANN até à pesquisa com filtro escalar e pesquisa por intervalos. O lançamento iminente do Milvus 3.0 (Beta) promete a pesquisa por palavras-chave (embeddings esparsos), que muitos programadores de aplicações RAG aguardam ansiosamente.

As discussões na comunidade sobre a pesquisa centram-se no desempenho, nas capacidades e nos princípios. Os utilizadores fazem frequentemente perguntas sobre filtragem de atributos, definição de valores de limite de índice e resolução de problemas de latência. Recursos como documentação de consulta e pesquisa, Propostas de Melhoria do Milvus (MEPs) e discussões no Discord tornaram-se referências para desvendar as complexidades da pesquisa no Milvus.

#3 Memória - trade-offs entre desempenho e precisão para minimizar a sobrecarga de memória

A "memória" também ocupou um lugar central nas discussões da comunidade durante o ano passado. Como um tipo de dados distinto, os vectores têm inerentemente dimensões elevadas. O armazenamento de vectores em memória é uma prática comum para um desempenho ótimo, mas o aumento do volume de dados limita a memória disponível. O Milvus optimiza a utilização da memória adoptando técnicas como o MMap e o DiskANN.

No entanto, conseguir uma baixa utilização de memória, um excelente desempenho e uma elevada precisão simultaneamente num sistema de base de dados continua a ser complexo, exigindo compromissos entre o desempenho e a precisão para minimizar a sobrecarga de memória.

No caso do Conteúdo Gerado por Inteligência Artificial (AIGC), os programadores dão geralmente prioridade a respostas rápidas e à precisão dos resultados em detrimento de requisitos de desempenho rigorosos. A adição de MMap e DiskANN do Milvus minimiza o uso de memória enquanto maximiza o processamento de dados e a precisão dos resultados, atingindo um equilíbrio que se alinha com as necessidades práticas dos aplicativos AIGC.

#4 Insert - uma navegação suave através da inserção de dados

A inserção eficiente de dados é uma preocupação crucial para os programadores, provocando discussões frequentes sobre a otimização da velocidade de inserção na comunidade Milvus. O Milvus destaca-se na inserção eficiente de dados em fluxo contínuo e na construção de índices, graças à sua separação competente de dados em fluxo contínuo e em lote. Esta capacidade distingue-o como uma solução de elevado desempenho em comparação com outros fornecedores de bases de dados vectoriais, como a Pinecone.

Aqui estão algumas informações e recomendações valiosas sobre inserções de dados:

  • Inserção em lote: Opte por inserção em lote em vez de inserção em linha única para aumentar a eficiência. Em particular, a inserção a partir de ficheiros ultrapassa a inserção em lote em termos de velocidade. Ao lidar com grandes conjuntos de dados que excedam dez milhões de registos, considere a utilização da interface bulk_insert para um processo de importação simplificado e acelerado.

  • Uso estratégico de flush(): Em vez de chamar a interface flush() após cada lote, faça uma única chamada após concluir toda a inserção de dados. O uso excessivo da interface flush() entre lotes pode levar à geração de arquivos de segmento fragmentados, colocando uma carga de compactação considerável no sistema.

  • Deduplicação de chaves primárias: O Milvus não realiza a desduplicação da chave primária ao usar a interface insert para inserção de dados. Se precisar de desduplicar chaves primárias, recomendamos que implemente a interface upsert. No entanto, o desempenho de inserção de upserté inferior ao de insert, devido a uma operação de consulta interna adicional.

Configuração #5 - descodificar o labirinto de parâmetros

O Milvus é uma base de dados vetorial distribuída que integra muitos componentes de terceiros, como o armazenamento de objectos, as filas de mensagens e o Etcd. Os utilizadores lutaram para ajustar os parâmetros e compreender o seu impacto no desempenho do Milvus, tornando a "Configuração" um tópico frequentemente discutido.

Entre todas as perguntas sobre configurações, "quais parâmetros ajustar" é sem dúvida o aspeto mais desafiador, pois os parâmetros variam em diferentes situações. Por exemplo, a otimização dos parâmetros de desempenho de pesquisa é diferente da otimização dos parâmetros de desempenho de inserção e depende muito da experiência prática.

Quando os utilizadores identificam "quais os parâmetros a ajustar", as questões subsequentes de "como ajustar" tornam-se mais fáceis de gerir. Para procedimentos específicos, consulte a nossa documentação Configurar o Milvus. A grande novidade é que o Milvus suporta ajustes dinâmicos de parâmetros desde a versão 2.3.0, eliminando a necessidade de reiniciar o sistema para que as alterações tenham efeito. Para procedimentos específicos, consulte Configure Milvus on the Fly.

#6 Logs - navegando na bússola de resolução de problemas

Os "Logs" servem como a bússola do solucionador de problemas. Os utilizadores procuraram orientação na comunidade sobre a exportação de registos do Milvus, o ajuste dos níveis de registo e a integração com sistemas como o Loki do Grafana. Aqui estão algumas sugestões sobre os logs do Milvus.

  • Como visualizar e exportar os logs do Milvus: Você pode exportar facilmente os logs do Milvus com o script de um clique export-milvus-log.sh que está disponível no repositório do GitHub.

  • Nível de registo: Milvus tem vários níveis de log para acomodar diversos casos de uso. O nível info é suficiente para a maioria dos casos, e o nível debug é para depuração. Um excesso de registos do Milvus pode indicar níveis de registo mal configurados.

  • Recomendamos a integração dos registos do Milvus com um sistema de recolha de registos como o Loki para uma recuperação simplificada de registos em futuras resoluções de problemas.

Cluster #7 - escalonamento para ambientes de produção

Dada a identidade do Milvus como uma base de dados vetorial distribuída, o termo "cluster" é um tópico frequente de discussão na comunidade. As conversas giram em torno do escalonamento de dados num cluster, migração de dados e backup e sincronização de dados.

Em ambientes de produção, a escalabilidade robusta e a alta disponibilidade são requisitos padrão para sistemas de bases de dados distribuídas. A arquitetura de separação entre armazenamento e computação do Milvus permite uma escalabilidade de dados perfeita através da expansão de recursos para nós de computação e armazenamento, acomodando escalas de dados ilimitadas. O Milvus também oferece alta disponibilidade com uma arquitetura de várias réplicas e recursos robustos de backup e sincronização. Para obter mais informações, consulte Coordinator HA.

#8 Documentação - a porta de entrada para entender o Milvus

"Documentação" é outra palavra-chave frequentemente mencionada nas discussões da comunidade, muitas vezes associada a questões sobre se existe alguma página de documentação para uma funcionalidade específica e onde a encontrar.

Servindo como porta de entrada para a compreensão do Milvus, cerca de 80% das perguntas da comunidade encontram respostas na documentação oficial. Recomendamos que leia a nossa documentação antes de utilizar o Milvus ou de encontrar quaisquer problemas. Além disso, pode explorar exemplos de código em vários repositórios SDK para obter informações sobre a utilização do Milvus.

#9 Deployment - simplificando a jornada do Milvus

A implementação simples continua a ser o objetivo permanente da equipa Milvus. Para cumprir esse compromisso, introduzimos o Milvus Lite, uma alternativa leve ao Milvus que é totalmente funcional, mas não tem dependências K8s ou Docker.

Simplificámos ainda mais a implementação, introduzindo a solução de mensagens NATS mais leve e consolidando os componentes do nó. Em resposta ao feedback dos utilizadores, estamos a preparar-nos para lançar uma versão autónoma sem dependências, com esforços contínuos para melhorar as funcionalidades e simplificar as operações de implementação. A rápida iteração do Milvus mostra o compromisso contínuo da comunidade com o refinamento contínuo do processo de implantação.

#10 Eliminação - desvendar o impacto

As discussões predominantes sobre a "eliminação" giram em torno da contagem de dados inalterados após a eliminação, a recuperação contínua dos dados eliminados e a falha na recuperação do espaço em disco após a eliminação.

O Milvus 2.3 introduz a expressão count(*) para lidar com actualizações atrasadas da contagem de entidades. A persistência de dados eliminados nas consultas deve-se provavelmente à utilização inadequada de modelos de consistência de dados. As preocupações com falhas na recuperação de espaço em disco levam a redesenhar o mecanismo de recolha de lixo do Milvus, que define um período de espera antes da eliminação completa dos dados. Esta abordagem permite uma janela de tempo para uma potencial recuperação.

Conclusão

As 10 principais palavras-chave oferecem um vislumbre das discussões vibrantes dentro da comunidade Milvus. À medida que o Milvus continua a evoluir, a comunidade continua a ser um recurso inestimável para os programadores que procuram soluções, partilham experiências e contribuem para o avanço das bases de dados vectoriais na era da IA.

Junte-se a esta emocionante jornada juntando-se ao nosso canal Discord em 2024. Aí, pode interagir com os nossos brilhantes engenheiros e ligar-se a entusiastas de Milvus que pensam da mesma forma. Além disso, participe do Milvus Community Lunch and Learn todas as terças-feiras das 12:00 às 12:30 PM PST. Partilhe as suas ideias, questões e comentários, uma vez que cada contribuição contribui para o espírito de colaboração que impulsiona o Milvus. A sua participação ativa não é apenas bem-vinda; é apreciada. Vamos inovar juntos!

Like the article? Spread the word

Continue Lendo