Cada caso de uso de aprendizado de máquina tem diferentes necessidades de desempenho e, quando se trata de sistemas de predição empresarial com tecnologia ML, não é diferente.

Um modelo de aprendizado de máquina (ML) recebe uma entrada (por exemplo, uma imagem) e faz uma previsão sobre ela (por exemplo, qual objeto está na imagem). Depois que um modelo de ML é treinado em dados históricos (por exemplo, um conjunto de imagens antigas), ele é implantado em um sistema de serviço de previsão para fazer previsões sobre novos dados.

Uma empresa pode criar seu próprio sistema de fornecimento de previsões ou usar um sistema de um provedor de nuvem. Em ambos os casos, o sistema de fornecimento de previsões precisa de armazenamento para as previsões, os metadados do modelo e a entrada ou os recursos que são passados para os modelos.

Este artigo descreve diferentes arquiteturas para atender ao aprendizado de máquina de previsão em tempo real na produção e como o Plataforma de dados Couchbase atende a várias necessidades de armazenamento de um sistema de serviço de previsão empresarial.

Terminologia

Antes de nos aprofundarmos nos detalhes, vamos dar uma olhada em algumas terminologias usadas neste artigo.

    • Sistema de serviço de previsão: Um sistema que usa um modelo de aprendizado de máquina treinado e novos dados como entrada e retorna uma previsão como saída.
    • Modelo treinado: Uma estrutura de dados estatísticos que contém os pesos e as tendências obtidos no processo de treinamento.
    • Características: Atributos dos dados que são relevantes para o processo de previsão.

Ao fazer uma previsão em tempo real, por exemplo, considere um problema de regressão linear simples, como: y = b1 x1 + b2 x2 ... + bn xn ...

    • Os recursos são x1, x2, ...
    • O modelo treinado é uma estrutura de dados que contém valores para b1, b2, .... Esses valores foram aprendidos usando o processo de treinamento.
    • O sistema de serviço de previsão usa os recursos e o modelo como entrada e retorna a previsão y como saída.

Requisitos de desempenho de um sistema de atendimento de previsão em tempo real

Diferentes casos de uso de aprendizado de máquina de previsão em tempo real têm diferentes necessidades de desempenho.

Com previsões em tempo real, por exemplo, um aplicativo interativo da Web pode exigir que as previsões sejam fornecidas em dezenas de milissegundos, enquanto um aplicativo de jogos pode precisar de latência de previsão inferior a milissegundos. O sistema de previsão pode precisar atender a um grande volume de solicitações e ser dimensionado para lidar com cargas de trabalho dinâmicas.

Diferentes tipos de bancos de dados lidam com essas diferentes necessidades de desempenho. Um importante provedor de nuvem recomenda três bancos de dados NoSQL diferentes para uso com seu sistema de previsão. Vários desses produtos de banco de dados são combinados para lidar com um único caso de uso. Isso resulta em uma arquitetura complexa para o sistema de serviço de previsão.

Neste artigo, você verá como o Couchbase substitui múltiplos armazenamentos de dados usados em um sistema de fornecimento de previsões. Isso reduz a complexidade, a sobrecarga operacional e o custo total de propriedade (TCO). Com o Couchbase, suas cargas de trabalho operacionais, analíticas e de IA/ML coexistem na mesma plataforma de dados.

Servidor Couchbasecom cache de documentos integrado, oferece alta taxa de transferência sustentada e latência consistente de menos de um milissegundo, superando o desempenho de outros produtos NoSQL, como o MongoDB e o DataStax Cassandra. (Consulte Benchmarks do Couchbase e Cache de alto desempenho do Couchbase para obter mais informações).

O desempenho de um sistema de atendimento de previsões depende de sua arquitetura e do desempenho de seus componentes. Por sua vez, a arquitetura de um determinado sistema depende do caso de uso. Vamos dar uma olhada mais de perto em alguns dos casos de uso mais comuns do serviço de previsão.

Caso de uso #1: Previsões em tempo real com dados brutos armazenados no Couchbase

Vamos usar a previsão em tempo real da pontuação de rotatividade de clientes como exemplo.

Uma empresa fictícia chamada ACME quer identificar os clientes que provavelmente deixarão de usar seus produtos. A empresa treina um modelo de previsão de rotatividade com base em dados históricos de clientes e o implementa na produção para obter pontuações de rotatividade para novos clientes em tempo real usando o aprendizado de máquina de previsão.

Uma maneira simples de a ACME configurar um sistema de fornecimento de previsões é mostrada no diagrama de caso de uso da Figura 1 abaixo.

Using raw data for real-time predictions with Couchbase

Para encontrar a pontuação de rotatividade de um cliente, um aplicativo ACME envia o ID do cliente para o sistema de previsão. O sistema de previsão então:

  1. Lê os dados brutos do cliente no armazenamento de dados.
  2. Transforma os dados em recursos esperados pelo modelo, por exemplo, um valor verdadeiro ou falso é convertido em 0 ou 1.
  3. Aplica o modelo treinado nos recursos para calcular a previsão e a devolve ao aplicativo.

Se o modelo treinado também for um pipeline, que transforma dados em recursos, as etapas 2 e 3 serão combinadas. Para fornecer as previsões mais oportunas, o sistema precisa concluir todas as etapas acima no menor tempo possível.

Se a ACME armazenasse seus dados de entrada no Couchbase Data Platform de baixa latência de leitura, conforme mostrado na Figura 1, isso reduziria o tempo para concluir a etapa 1. Obviamente, o Couchbase também pode ser um banco de dados operacional que atende a outros aplicativos da ACME ao mesmo tempo.

Se o sistema de atendimento de previsão não exigir um inteira a API de subdocumento do Couchbase o ajuda a acessar apenas as partes dos documentos JSON de que ele precisa. O uso da API de subdocumento melhora o desempenho e a eficiência de E/S da rede, especialmente ao trabalhar com documentos grandes.

Caso de uso #2: previsões em tempo real com recursos armazenados no Couchbase

Para melhorar o desempenho, o ACME pode decidir pré-processar os dados de entrada e armazená-los em um armazenamento de recursos, conforme mostrado na Figura 2 abaixo.

As vantagens dessa abordagem incluem:

    • Os recursos estão prontamente disponíveis para uma rápida consulta ao fazer previsões.
    • Os dados não precisam ser transformados em recursos sempre que o modelo é atualizado. Essa é uma vantagem sobre os pipelines de modelos.
    • Os recursos podem ser reutilizados em vários modelos.

Using Couchbase as a feature store for a real-time prediction serving system

Nessa arquitetura, o sistema de serviço de previsão:

  1. Lê recursos do armazenamento de recursos.
  2. Aplica o modelo treinado nos recursos para gerar uma previsão e retorna a previsão para o aplicativo.

Se a ACME armazenar os recursos na Couchbase Data Platform de ingestão rápida de dados, os recursos serão gravados rapidamente. Como antes, a baixa latência de leitura fornecida pelo Couchbase reduz o tempo necessário para executar a etapa 1, reduzindo, por sua vez, a latência da previsão.

O tempo necessário para executar a etapa 2 depende do desempenho do modelo. Os modelos lineares mais simples são rápidos, mas os modelos sofisticados, como as redes neurais profundas, são computacionalmente intensivos e podem levar mais tempo para gerar previsões. Os usuários podem precisar simplificar modelos complexos ou usar aceleradores de hardware para reduzir o tempo gasto na etapa 2.

Caso de uso #3: Previsões pré-computadas armazenadas em cache no Couchbase

O suporte ao cliente da ACME tem um problema: quando um cliente liga com uma reclamação, eles precisam saber a pontuação de rotatividade do cliente e rapidamente.

Esperar que o serviço de previsão calcule a pontuação de rotatividade em tempo real não é uma opção. Para resolver isso, a ACME pode decidir pré-computar as previsões usando um trabalho em lote, conforme mostrado na Figura 3 abaixo.

Batch processing of cached predictions using the Couchbase Data Platform

Nessa arquitetura, a etapa de execução do modelo não está no caminho crítico do atendimento às previsões e, como resultado, a complexidade do modelo (redes neurais simples ou profundas) pode não ser relevante.

Aqui, a plataforma de dados Couchbase é usada para duas finalidades:

  1. Armazenamento dos dados brutos (ou recursos) necessários para fazer previsões no trabalho em lote.
  2. Armazenamento em cache das previsões pré-computadas para atendê-las com alto rendimento e latência de leitura inferior a um milissegundo. O ID do cliente é usado como a chave para as previsões pré-calculadas.

Por padrão, o Couchbase persiste as previsões armazenadas em cache no disco. Mas se as previsões forem regeneradas periodicamente e sua persistência não for necessária, o ACME poderá armazenar em cache as previsões nos buckets do Couchbase Ephemeral. Isso melhora ainda mais o desempenho ao reduzir a sobrecarga do disco em segundo plano e diminui os custos de armazenamento em disco. (Saiba mais sobre o uso de buckets efêmeros com o Couchbase Buckets.)

Além do ganho de desempenho com o armazenamento em cache das previsões no Couchbase, há outras vantagens em usar a plataforma de dados do Couchbase. As previsões armazenadas em cache podem ser indexadas usando o serviço Index do Couchbase e usadas para executar consultas usando o serviço Query do Couchbase. Por exemplo, os usuários podem executar uma Consulta N1QL do Couchbase para identificar clientes de alto risco cuja pontuação de rotatividade está prevista para estar acima de um determinado limite. Isso pode ser usado pelo marketing da ACME para direcionar ofertas promocionais a esses clientes.

O Couchbase oferece suporte ao dimensionamento multidimensional, em que cada serviço - dados, índice, consulta, eventos, análise - pode ser dimensionado de forma independente. Isso também oferece isolamento da carga de trabalho, de modo que a carga de trabalho do serviço de consulta, por exemplo, não interfira na do serviço de dados.

Caso de uso #4: Previsões orientadas por eventos com dados armazenados no Couchbase

O suporte ao cliente da ACME tem uma nova exigência: Eles querem que a pontuação de churn de um cliente seja recalculada sempre que o registro do cliente for alterado.

Para lidar com esse caso de uso, a ACME pode decidir gerar previsões quase em tempo real em resposta a um evento e depois armazená-las em cache para uso posterior, conforme mostrado na Figura 4 abaixo.

Event-driven prediction serving system using Couchbase

Esse caso de uso também mostra como os metadados do modelo desempenham uma função no processo de previsão.
Os metadados do modelo são informações sobre o modelo, como nome, número da versão, quando foi treinado e assim por diante. Também podem incluir as métricas de desempenho do modelo, como a latência e a precisão médias da previsão.

Neste exemplo, os metadados do modelo são usados para identificar os recursos esperados pelo modelo treinado. Como essa etapa é executada durante o processo de previsão, os metadados do modelo também precisam ser armazenados em um armazenamento de pesquisa rápida.

Como visto na Figura 4, um único cluster do Couchbase pode armazenar os metadados do modelo, bem como os recursos e as previsões. Cada um desses tipos de dados pode ser armazenado em um bucket separado do Couchbase. O Couchbase oferece suporte a multilocação, ou seja, a capacidade de mais de um aplicativo armazenar e recuperar informações no Couchbase. Os buckets são os elementos lógicos usados para dar suporte ao multilocatário.

Caso de uso #5: Previsões entre data centers com o Couchbase

A ACME agora está se expandindo como empresa. Para se proteger contra falhas no data center e fornecer previsões de baixa latência em diferentes regiões geográficas, ela implementa o sistema de fornecimento de previsões em vários data centers, conforme mostrado na Figura 5 abaixo.

A prediction serving system that uses cross data center replication

A ACME usa a tecnologia de replicação entre data centers (XDCR) do Couchbase, que permite aos clientes implantar aplicativos distribuídos geograficamente com alta disponibilidade em qualquer ambiente (local, nuvem pública e privada ou nuvem híbrida). Consulte a documentação do Couchbase XDCR para obter mais informações sobre essa tecnologia.

Como visto na Figura 5 acima, a ACME armazena os recursos no servidor Couchbase e usa o recurso XDCR do Couchbase para replicar os recursos do Data Center A para o Data Center B.

A Figura 6 abaixo mostra outra maneira de o ACME atender às previsões nos data centers.

Cached machine learning predictions across multiple data centers in Couchbase

Nesse caso, o sistema de fornecimento de previsões é implantado em apenas um data center. As previsões são geradas no Data Center A, depois são armazenadas em cache no Couchbase e replicadas para outros data centers usando o Couchbase XDCR.

A replicação entre data centers é independente da infraestrutura. Nos exemplos acima, o Data Center A e o Data Center B podem estar sendo executados no mesmo ambiente de nuvem ou em ambientes diferentes, ou até mesmo em infraestruturas diferentes, como no local e na nuvem.

O Couchbase atende a outros requisitos dos sistemas de serviço de previsão

O Couchbase também pode ser usado para armazenar metadados de recursos. Essa é a descrição de cada recurso em um armazenamento de recursos. Os metadados podem incluir o nome do recurso, como ele foi criado, seu esquema e assim por diante. Os recursos podem ser compartilhados entre vários modelos de aprendizado de máquina. Os metadados de recursos ajudam os usuários a descobrir recursos que são relevantes para seus modelos.

O Couchbase permite que os dados sejam acessados com baixa latência consistente e com alta taxa de transferência sustentada. Além de atender às suas necessidades de desempenho, o Couchbase também satisfaz os seguintes requisitos de banco de dados de um sistema de fornecimento de previsões de nível de produção.

Escalabilidade

À medida que a carga de trabalho de previsão aumenta, o armazenamento de dados deve continuar a oferecer o mesmo desempenho em estado estável. Ele deve ser capaz de escalar linear e facilmente sem afetar negativamente o desempenho do seu sistema de fornecimento de previsões.

O Couchbase Server foi projetado para fornecer escalabilidade linear e elástica usando acesso inteligente e direto aos dados do aplicativo ao nó, sem roteamento e proxy adicionais. A adição ou remoção de nós é feita em minutos com a simplicidade de um botão, sem tempo de inatividade ou alterações de código.

Disponibilidade

Para manter a disponibilidade do seu sistema de separação de previsões, o banco de dados deve estar sempre disponível durante as interrupções planejadas e não planejadas.

O Couchbase Server foi projetado para ser tolerante a falhas e altamente resiliente em qualquer escala e em qualquer plataforma - física ou virtual - oferecendo disponibilidade sempre ativa em caso de falhas de hardware ou janelas de manutenção planejada.

Capacidade de gerenciamento

O armazenamento de dados não deve sobrecarregar a sua equipe de implantação e operações do sistema de previsão. Ele deve ser razoavelmente rápido de implantar e fácil de monitorar e gerenciar.

O Couchbase oferece suporte a vários métodos de implantação, incluindo nuvem híbrida e contêineres do Docker com o Couchbase Autonomous Operator. O Operador autônomo do Couchbase fornece integração nativa do Couchbase Server com o Kubernetes de código aberto e o Red Hat OpenShift. Ele permite que os usuários automatizem o gerenciamento de tarefas comuns do Couchbase, como a configuração, a criação, o dimensionamento e a recuperação de clusters do Couchbase.

Segurança

Um banco de dados seguro é essencial para a segurança e a integridade gerais do seu sistema de serviço de previsão empresarial.

O Couchbase fornece criptografia de ponta a ponta dos dados, tanto por fio quanto em repouso. Opções flexíveis de segurança são possíveis com autenticação baseada em função e dados incorporados, e as ferramentas de auditoria administrativa permitem um controle robusto dos dados da sua empresa.

Conclusão

Agora você viu cinco exemplos reais de como o Couchbase é usado para armazenar dados brutos de entrada, recursos, previsões e metadados de modelos. Independentemente de você estar comprando um sistema de serviço de previsão empresarial ou criando o seu próprio sistema, a plataforma de dados Couchbase proporciona desempenho máximo e resultados em tempo real para que você maximize o valor das suas previsões de aprendizado de máquina.

Aqui estão algumas maneiras de começar e experimentar o Couchbase por conta própria:

 

Autor

Postado por Poonam Dhavale, engenheiro de software principal

Poonam Dhavale é engenheira de software principal da Couchbase. Ela tem mais de 20 anos de experiência em projeto e desenvolvimento de sistemas distribuídos, NoSQL, alta disponibilidade e tecnologias de armazenamento. Ela detém várias patentes em sistemas de armazenamento distribuído e possui certificações em aprendizado de máquina e ciência de dados.

Deixar uma resposta