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

milvus-logo
LFAI
  • Home
  • Blog
  • A história da SmartNews - de um utilizador Milvus a um colaborador ativo

A história da SmartNews - de um utilizador Milvus a um colaborador ativo

  • Scenarios
January 20, 2022
Milvus

Este artigo foi traduzido por Angela Ni.

A informação está em todo o lado nas nossas vidas. O Meta (anteriormente conhecido como Facebook), o Instagram, o Twitter e outras plataformas de redes sociais tornam os fluxos de informação ainda mais omnipresentes. Por conseguinte, os motores que lidam com esses fluxos de informação tornaram-se uma necessidade na maior parte da arquitetura dos sistemas. No entanto, como utilizador de plataformas de redes sociais e aplicações relevantes, aposto que deve ter sido incomodado por artigos, notícias, memes e outros conteúdos duplicados. A exposição a conteúdos duplicados dificulta o processo de recuperação de informação e conduz a uma má experiência do utilizador.

Para um produto que lida com fluxos de informação, é altamente prioritário que os criadores encontrem um processador de dados flexível que possa ser integrado sem problemas na arquitetura do sistema para deduplicar notícias ou anúncios idênticos.

A SmartNews, avaliada em 2 mil milhões de dólares americanos, é a empresa de aplicações noticiosas mais valorizada dos EUA. A SmartNews era um utilizador da Milvus, uma base de dados vetorial de código aberto, mas mais tarde tornou-se um colaborador ativo do projeto Milvus.

Este artigo partilha a história da SmartNews e explica por que razão decidiu contribuir para o projeto Milvus.

Uma visão geral da SmartNews

A SmartNews, fundada em 2012, tem sede em Tóquio, no Japão. A aplicação de notícias desenvolvida pela SmartNews foi sempre muito bem classificada no mercado japonês. A SmartNews é a aplicação de notícias com o crescimento mais rápido e também possui uma elevada viscosidade de utilizadores no mercado dos EUA. De acordo com as estatísticas da APP Annie, a duração média mensal da sessão da SmartNews ficou em primeiro lugar entre todas as aplicações de notícias até ao final de julho de 2021, superior à duração acumulada da sessão da AppleNews e da Google News.

Com o rápido crescimento da base de utilizadores e da viscosidade, a SmartNews tem de enfrentar mais desafios em termos de mecanismo de recomendação e algoritmo de IA. Esses desafios incluem a utilização de caraterísticas discretas maciças na aprendizagem automática (ML) em grande escala, a aceleração da consulta de dados não estruturados com pesquisa de semelhança de vectores e muito mais.

No início de 2021, a equipa de algoritmos de anúncios dinâmicos da SmartNews enviou um pedido à equipa de infraestruturas de IA para otimizar as funções de recuperação e consulta de anúncios. Após dois meses de pesquisa, o engenheiro de infraestrutura de IA Shu decidiu usar o Milvus, um banco de dados vetorial de código aberto que suporta vários índices e métricas de similaridade e atualizações de dados online. O Milvus tem a confiança de mais de mil organizações em todo o mundo.

A base de dados de vectores de código aberto Milvus é adoptada no sistema de anúncios SmartNews para fazer corresponder e recomendar aos seus utilizadores anúncios dinâmicos a partir de um conjunto de dados à escala de 10 milhões. Ao fazê-lo, a SmartNews pode criar uma relação de mapeamento entre dois conjuntos de dados anteriormente incomparáveis - dados do utilizador e dados de anúncios. No segundo trimestre de 2021, Shu conseguiu implantar o Milvus 1.0 no Kubernetes. Saiba mais sobre como implantar o Milvus.

img img

Após a implementação bem-sucedida do Milvus 1.0, o primeiro projeto a utilizar o Milvus foi o projeto de recolha de anúncios iniciado pela equipa de anúncios da SmartNews. Durante a fase inicial, o conjunto de dados de anúncios estava numa escala de um milhão. Entretanto, a latência do P99 era rigorosamente controlada em menos de 10 milissegundos.

Em junho de 2021, Shu e os seus colegas da equipa de algoritmos aplicaram o Milvus a mais cenários empresariais e tentaram a agregação de dados e a atualização de dados/índice online em tempo real.

Até agora, a Milvus, a base de dados vetorial de código aberto, tem sido utilizada em vários cenários empresariais na SmartNews, incluindo a recomendação de anúncios.

De utilizador a colaborador ativo

Durante a integração do Milvus na arquitetura do produto Smartnews, Shu e outros programadores apresentaram pedidos de funções como hot reload, item TTL (time-to-live), atualização/substituição de itens, entre outras. Estas são também funções desejadas por muitos utilizadores da comunidade Milvus. Por conseguinte, Dennis Zhao, chefe da equipa de infra-estruturas de IA da SmartNews, decidiu desenvolver e contribuir com a função de carregamento a quente para a comunidade. Dennis acredita que "a equipa da SmartNews tem beneficiado da comunidade Milvus, pelo que estamos mais do que dispostos a contribuir se tivermos algo para partilhar com a comunidade".

O recarregamento de dados permite a edição de código durante a execução do código. Com a ajuda do recarregamento de dados, os programadores já não precisam de parar num ponto de interrupção ou reiniciar a aplicação. Em vez disso, podem editar o código diretamente e ver o resultado em tempo real.

No final de julho, Yusup, engenheiro da SmartNews, propôs a ideia de utilizar um alias de coleção para conseguir um hot reload.

Criar um alias de coleção refere-se à especificação de nomes de alias para uma coleção. Uma coleção pode ter vários aliases. No entanto, um alias corresponde a um máximo de uma coleção. Basta fazer uma analogia entre uma coleção e um cacifo. Um cacifo, tal como uma coleção, tem o seu próprio número e posição, que permanecerão sempre inalterados. No entanto, pode sempre colocar e retirar coisas diferentes do cacifo. Da mesma forma, o nome da coleção é fixo, mas os dados da coleção são dinâmicos. É sempre possível inserir ou eliminar vectores numa coleção, uma vez que a eliminação de dados é suportada na versão Milvus pré-GA.

No caso da atividade publicitária SmartNews, são inseridos ou actualizados cerca de 100 milhões de vectores à medida que são gerados novos vectores de anúncios dinâmicos. Existem várias soluções para este problema:

  • Solução 1: eliminar primeiro os dados antigos e inserir os novos.
  • Solução 2: criar uma nova coleção para os novos dados.
  • Solução 3: utilizar um alias de coleção.

Para a solução 1, uma das deficiências mais evidentes é o facto de ser extremamente morosa, especialmente quando o conjunto de dados a atualizar é enorme. Geralmente, são necessárias horas para atualizar um conjunto de dados à escala de 100 milhões.

Quanto à solução 2, o problema é que a nova coleção não está imediatamente disponível para pesquisa. Ou seja, uma coleção não pode ser pesquisada durante o carregamento. Além disso, o Milvus não permite que duas colecções usem o mesmo nome de coleção. A mudança para uma nova coleção exigiria sempre que os utilizadores modificassem manualmente o código do lado do cliente. Ou seja, os utilizadores teriam de rever o valor do parâmetro collection_name sempre que precisassem de mudar de coleção.

A solução 3 seria a solução milagrosa. Basta inserir os novos dados numa nova coleção e utilizar o alias de coleção. Ao fazê-lo, basta trocar o alias de coleção sempre que for necessário mudar de coleção para efetuar a pesquisa. Não precisa de se esforçar mais para rever o código. Esta solução poupa-lhe os problemas mencionados nas duas soluções anteriores.

Yusup partiu deste pedido e ajudou toda a equipa SmartNews a compreender a arquitetura do Milvus. Após um mês e meio, o projeto Milvus recebeu um PR sobre hot reload da Yusup. E mais tarde, esta função está oficialmente disponível juntamente com o lançamento do Milvus 2.0.0-RC7.

Atualmente, a equipa de infra-estruturas de IA está a tomar a iniciativa de implementar o Milvus 2.0 e de migrar gradualmente todos os dados do Milvus 1.0 para o 2.0.

img_collection alias Alias de coleção img_collection

O suporte para o nome alternativo de coleção pode melhorar significativamente a experiência do utilizador, especialmente para as grandes empresas da Internet com grandes volumes de pedidos de utilizadores. Chenglong Li, engenheiro de dados da comunidade Milvus, que ajudou a construir a ponte entre o Milvus e o Smartnews, disse: "A função de alias de coleção surge de um pedido real da SmartNews, um utilizador do Milvus. E a SmartNews contribuiu com o código para a comunidade Milvus. Este ato de reciprocidade é um excelente exemplo do espírito de código aberto: da comunidade e para a comunidade. Esperamos ver mais colaboradores como a SmartNews e construir em conjunto uma comunidade Milvus mais próspera."

"Atualmente, parte do negócio da publicidade está a adotar o Milvus como base de dados vetorial offline. O lançamento oficial do Mivus 2.0 está a aproximar-se e esperamos poder utilizar o Milvus para criar sistemas mais fiáveis e fornecer serviços em tempo real para mais cenários empresariais", afirmou Dennis.

Atualização: O Milvus 2.0 já está disponível para todos! Saiba mais

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