HBase
 sql >> Database >  >> NoSQL >> HBase

Come distribuire i modelli ML alla produzione

Attualmente, molte aziende, inclusi molti clienti Cloudera, stanno sperimentando l'apprendimento automatico (ML) e creando modelli per affrontare un'ampia gamma di sfide. Sebbene oggi molti modelli vengano utilizzati per dashboard e scopi di BI interna, un piccolo gruppo di leader aziendali in rapida crescita ha iniziato a realizzare il potenziale del ML per l'automazione aziendale, l'ottimizzazione e l'innovazione di prodotto. In questo post del blog ci addentreremo in quest'ultimo, in particolare, come le linee di business stanno riorientando i loro data scientist per lavorare con gli ingegneri delle applicazioni e altre parti interessate per risolvere i problemi di business in tempo reale. Questi casi d'uso variano a seconda del settore e della criticità aziendale e stanno crescendo in ampiezza e profondità man mano che le aziende imparano quanto si può fare con i dati di cui dispongono.

Esempi di questi casi d'uso includono:

  • Cerner, un leader sanitario, utilizza i dati dei sensori dei pazienti per identificare la sepsi utilizzando modelli di apprendimento automatico e informa in modo proattivo i medici in modo che possano diagnosticare e curare ulteriormente entro 6 ore questa malattia è curabile
  • Servizi finanziari le aziende utilizzano l'apprendimento automatico per rilevare transazioni fraudolente in tempo reale e utilizzano il feedback in tempo reale dei clienti per eseguire l'apprendimento per rinforzo 
  • Compagnie ferroviarie i treni merci a lungo raggio passano attraverso stazioni speciali dove scattano migliaia di immagini ad alta risoluzione e applicano l'apprendimento automatico per identificare le parti difettose. Quindi programmano l'arrivo del treno in una struttura di riparazione insieme a parti e tecnici, rendendo la sosta simile a una sosta ai box di Formula 1
  • Utilità stanno utilizzando i dati dei contatori intelligenti per identificare potenziali problemi nella rete di distribuzione elettrica e programmare la manutenzione in modo proattivo
  • Società media utilizzano l'apprendimento automatico per identificare e fornire contenuti pertinenti in tempo reale in base a ciò che stai visualizzando
  • Società di tecnologia pubblicitaria ed e-commerce utilizzano queste capacità da più tempo per garantire la pertinenza delle loro offerte ai vari segmenti di pubblico di destinazione

Una volta identificato un problema e presa la decisione di investire in una soluzione aziendale, i data scientist studieranno i dati utilizzando vari strumenti ML per creare gli algoritmi e collaboreranno con gli ingegneri del software per creare applicazioni in grado di sfruttare tali algoritmi.

A seconda delle loro esigenze, i dati possono risiedere nel loro data warehouse o all'interno dei loro database operativi. Molti dei clienti di Cloudera utilizzeranno Spark &​​SparkMLlib all'interno di Cloudera Machine Learning (CML) per addestrare i propri algoritmi. L'utilizzo di CML consente flussi di lavoro senza interruzioni per rendere operativi i modelli in un'unica piattaforma sicura e gestita creata per flussi di lavoro ML più veloci. Per ulteriori informazioni sul nostro approccio allo sviluppo di flussi di lavoro di produzione in CML, iscriviti questo webinar.

Gli algoritmi di training possono essere eseguiti nel database operativo 

Uno dei motivi principali per utilizzare un data warehouse per l'addestramento degli algoritmi è evitare di aggiungere carico a un database operativo esistente e quindi di influire sugli SLA del carico di lavoro operativo. Tuttavia, nel caso del database operativo (OpDB) di Cloudera, gli utenti possono impostare quote e limiti sulla quantità di risorse e sul carico che gli utenti di machine learning possono imporre sul sistema. Ciò protegge i carichi di lavoro operativi consentendo ai data scientist di utilizzare i dati in tempo reale senza sostenere il costo della creazione di una seconda copia.

Quando utilizzano OpDB di Cloudera, i clienti utilizzano spesso Spark per eseguire query sui dati all'interno del database operativo, eliminando la necessità di scaricare i dati prima di esplorarli e utilizzarli per l'addestramento ai fini del machine learning.

Gli algoritmi ML devono soddisfare i requisiti di disponibilità, resilienza e reattività a livello di applicazione 

Lo sviluppo e l'addestramento dell'algoritmo basato su ML vengono in genere eseguiti insieme allo sviluppo dell'applicazione (supponendo che il fatto che ciò sia fattibile sia già stato stabilito). I requisiti tipici dell'applicazione per un database sottostante spesso includono:

  • Tempo di risposta inferiore a 1 ms
  • Disponibilità continua in caso di interruzioni dell'hardware (o disponibilità elevata ma la disponibilità elevata è meno preferita)
  • Possibilità di ridimensionamento
  • Elevata concorrenza (1.000 di richieste al secondo)

Quando si distribuisce l'apprendimento automatico come parte di un'applicazione, devono essere soddisfatti i requisiti dell'applicazione in termini di disponibilità, resilienza e reattività. Inoltre, all'applicazione vengono imposti diversi requisiti specifici di apprendimento automatico:

  • Capacità di controllare le decisioni
  • Possibilità di versioni di modelli/algoritmi
  • Possibilità di supportare l'aumento dei dati per l'apprendimento continuo (a seconda dell'algoritmo implementato)

Il database operativo di Cloudera può soddisfare entrambe le serie di requisiti 

Per soddisfare questi requisiti, i clienti in genere appiattiscono l'output del modello di apprendimento automatico in una tabella, essenzialmente pre-calcolando tutti gli output per l'intero spazio di input. Ciò crea requisiti aggiuntivi per il database sottostante:

  • Possibilità di creare una tabella di centinaia di gigabyte o terabyte (a seconda della dimensione e del numero di parametri di input)
  • Semplicità di gestione (non forzare gli amministratori a gestire lo sharding, ecc.)

Dal punto di vista del database operativo di Cloudera, un modello di machine learning è facilmente rappresentabile come una tabella (e questo è l'approccio adottato da molti clienti):

  • La chiave primaria è composta dall'insieme di input necessari per identificare l'output (indipendentemente dal numero di input richiesti)
  • Colonna:raccomandazione del modello di apprendimento automatico (l'output)
  • Colonna:versione del modello

Una funzionalità di controllo ha anche l'aspetto di una tabella:

  • La chiave primaria è composta dall'insieme di input necessari per identificare l'output (indipendentemente dal numero di input richiesti)
  • Colonna:a chi hai fornito questo output (ad es. ID cliente)
  • Colonna:quale output è stato servito
  • Colonna:quale versione del modello è stata utilizzata
  • Colonna:quale risposta alternativa sarebbe stata migliore (aumento)

L'aumento può essere eseguito manualmente o in modo programmatico (ad esempio, quando una società di carte di credito ti invia un'e-mail chiedendoti di verificare una transazione, sta eseguendo un aumento dei dati). Questa tabella di audit aumentata può essere utilizzata per l'apprendimento per rinforzo sul posto nel database o scaricata in un data warehouse.

Poiché i dati sono nel database, gli aggiornamenti del modello possono essere eseguiti senza alcun tempo di inattività dell'applicazione.

Dal punto di vista della scalabilità, il database operativo di Cloudera è basato su Apache HBase e Apache Phoenix, che hanno entrambi dimostrato di gestire senza problemi tabelle di dimensioni di centinaia di terabyte.

Controlla il database operativo di Cloudera all'interno della Cloudera Data Platform su Public Cloud per creare la tua prossima app basata su ML.