HBase
 sql >> Base de Dados >  >> NoSQL >> HBase

Como implantar modelos de ML na produção


Atualmente, muitas empresas, incluindo muitos clientes da Cloudera, estão experimentando o aprendizado de máquina (ML) e criando modelos para enfrentar uma ampla variedade de desafios. Embora hoje muitos modelos sejam usados ​​para painéis e propósitos internos de BI, um grupo pequeno e em rápido crescimento de líderes empresariais começou a perceber o potencial do ML para automação de negócios, otimização e inovação de produtos. Nesta postagem do blog, abordaremos o último – especificamente, como as linhas de negócios estão reorientando seus cientistas de dados para trabalhar com engenheiros de aplicativos e outras partes interessadas para resolver problemas de negócios em tempo real. Esses casos de uso variam de acordo com a importância do setor e do negócio e estão crescendo em amplitude e profundidade à medida que as empresas aprendem o quanto pode ser feito com os dados que possuem.

Exemplos desses casos de uso incluem:
  • Cerner, líder em saúde, utiliza dados de sensores de pacientes para identificar a sepse usando modelos de aprendizado de máquina e notifica proativamente os médicos para que possam diagnosticar e tratar melhor dentro das 6 horas que esta doença é tratável
  • Serviços financeiros as empresas estão usando o aprendizado de máquina para detectar transações fraudulentas em tempo real e usando o feedback em tempo real dos clientes para fazer o aprendizado por reforço 
  • Empresas ferroviárias os trens de carga de longo curso passam por estações especiais onde tiram milhares de fotos de alta resolução e aplicam aprendizado de máquina para identificar peças com defeito. Eles então agendam o trem para chegar a uma instalação de reparo junto com peças e técnicos - tornando a parada semelhante a um pit stop de Fórmula 1
  • Utilitários estão usando dados de medidores inteligentes para identificar possíveis problemas na rede de distribuição elétrica e programar a manutenção de forma proativa
  • Empresas de mídia estão usando aprendizado de máquina para identificar e fornecer conteúdo relevante em tempo real com base no que você está visualizando
  • Empresas de tecnologia de anúncios e comércio eletrônico usam esses recursos há mais tempo para garantir a relevância de suas ofertas para vários públicos-alvo

Depois que um problema é identificado e uma decisão é tomada para investir em uma solução de negócios, os cientistas de dados estudarão os dados usando várias ferramentas de ML para criar os algoritmos e trabalhar com engenheiros de software para criar aplicativos que possam aproveitar esses algoritmos.

Dependendo de suas necessidades, os dados podem residir em seu data warehouse ou dentro de seus bancos de dados operacionais. Muitos dos clientes da Cloudera usarão Spark &​​SparkMLlib dentro do Cloudera Machine Learning (CML) para treinar seus algoritmos. O uso de CML permite fluxos de trabalho contínuos para operacionalizar modelos em uma plataforma única, segura e governada, criada para fluxos de trabalho de ML mais rápidos. Para saber mais sobre nossa abordagem para desenvolver fluxos de trabalho de produção em CML, junte-se este webinar.

Algoritmos de treinamento podem ser feitos no banco de dados operacional 


Um dos principais motivos para usar um data warehouse para algoritmos de treinamento é evitar adicionar carga a um banco de dados operacional existente e, assim, afetar os SLAs da carga de trabalho operacional. No entanto, no caso do Banco de Dados Operacional (OpDB) da Cloudera, os usuários podem definir cotas e limites na quantidade de recursos e na carga que os usuários de aprendizado de máquina podem colocar no sistema. Isso protege as cargas de trabalho operacionais e permite que os cientistas de dados usem dados em tempo real sem incorrer no custo de criar uma segunda cópia.

Ao usar o OpDB da Cloudera, os clientes costumam usar o Spark para consultar dados no banco de dados operacional, eliminando a necessidade de descarregar dados antes de explorá-los e usá-los para treinamento para fins de aprendizado de máquina.

Os algoritmos de ML devem atender aos requisitos de disponibilidade, resiliência e capacidade de resposta no nível do aplicativo 


O desenvolvimento e treinamento do algoritmo baseado em ML geralmente é feito em conjunto com o desenvolvimento do aplicativo (assumindo que o fato de que isso é factível já foi estabelecido). Os requisitos de aplicativo típicos para um banco de dados subjacente geralmente incluem:
  • Tempo de resposta inferior a 1 ms
  • Disponibilidade contínua em caso de interrupções de hardware (ou alta disponibilidade, mas a alta disponibilidade é menos preferida)
  • Capacidade de expansão
  • Alta simultaneidade (1.000s de solicitações/segundo)

Ao implantar o aprendizado de máquina como parte de um aplicativo, os requisitos de disponibilidade, resiliência e capacidade de resposta do aplicativo devem ser atendidos. Além disso, vários requisitos adicionais específicos de aprendizado de máquina são impostos ao aplicativo:
  • Capacidade de auditar decisões
  • Capacidade de versão de modelos/algoritmos
  • Capacidade de oferecer suporte ao aumento de dados para aprendizado contínuo (dependendo do algoritmo implantado)

O banco de dados operacional da Cloudera pode atender aos dois conjuntos de requisitos 


Para atender a esses requisitos, os clientes normalmente nivelam a saída do modelo de aprendizado de máquina em uma tabela – essencialmente pré-computando todas as saídas para todo o espaço de entrada. Isso cria requisitos adicionais para o banco de dados subjacente:
  • Capacidade de criar uma tabela com centenas de gigabytes ou terabytes (dependendo do tamanho e do número de parâmetros de entrada)
  • Simplicidade de gerenciamento (não force os administradores a gerenciar fragmentação etc.)

Da perspectiva do banco de dados operacional da Cloudera, um modelo de aprendizado de máquina é facilmente representado como uma tabela (e essa é a abordagem que muitos clientes adotaram):
  • A chave primária é composta pelo conjunto de entradas necessárias para identificar a saída (independentemente do número de entradas necessárias)
  • Coluna:recomendação do modelo de aprendizado de máquina (a saída)
  • Coluna:Versão do modelo

Um recurso de auditoria também se parece com uma tabela:
  • A chave primária é composta pelo conjunto de entradas necessárias para identificar a saída (independentemente do número de entradas necessárias)
  • Coluna:para quem você veiculou essa saída (por exemplo, ID do cliente)
  • Coluna:qual saída foi veiculada
  • Coluna:qual versão do modelo foi usada
  • Coluna:qual resposta alternativa teria sido melhor (aumento)

O aumento pode ser feito manualmente ou programaticamente (ou seja, quando uma empresa de cartão de crédito envia um e-mail para você solicitando que você verifique uma transação – eles estão fazendo o aumento de dados). Essa tabela de auditoria aumentada pode ser usada para aprendizado de reforço no local no banco de dados ou descarregado em um data warehouse.



Como os dados estão no banco de dados, as atualizações do modelo podem ser feitas sem qualquer tempo de inatividade do aplicativo.

Do ponto de vista de dimensionamento, o banco de dados operacional da Cloudera é construído no Apache HBase e no Apache Phoenix - ambos comprovadamente lidam com tabelas com centenas de terabytes de tamanho sem problemas.

Confira o banco de dados operacional da Cloudera na Cloudera Data Platform na nuvem pública para criar seu próximo aplicativo baseado em ML.