Distribuire un modello di apprendimento automatico sul bordo della rete

Il machine learning svolge un ruolo sempre più importante in molti settori. I modelli di machine learning vengono creati e formati dai data scientist e vengono distribuiti per fornire previsioni o punteggi basati su previsioni e punteggi operativi, ad esempio per migliorare l'efficienza dei processi, rilevare e reagire a problemi o anomalie o valutare gli indicatori KPI (Key Performance Indicator) e gli indicatori di qualità.

I data scientist creano e preparano i propri modelli operando su data set di grandi dimensioni, costituiti da dati operativi cronologici aggregati e spesso si affidano a potenti risorse di computazione per sviluppare i propri modelli. Quando vengono distribuiti, i runtime del modello consumano i dati operativi in tempo reale e generano punteggi o previsioni su cui è possibile agire per perfezionare i processi operativi e risolvere le anomalie. A volte, si desidera distribuire il runtime del modello al margine della rete, in genere per motivi quali:
  • Il modello richiede volumi di dati maggiori rispetto alla larghezza di banda che può ospitare tra il sito remoto e la posizione centrale.
  • Si verifica una connettività intermittente tra il sito remoto e la posizione centrale.
  • Hai requisiti di latenza molto bassi che coprono il processo di alimentazione dei dati di runtime del modello, ottenendone la generazione del punteggio o della previsione e agendo su tale punteggio o previsione.
Questo tipo di distribuzione può presentare difficoltà quando si tenta di gestire centralmente tali runtime. Ad esempio, Oracle Cloud Infrastructure (OCI) Data Science può distribuire automaticamente i modelli solo in Oracle Cloud. Questa architettura affronta queste sfide.

Architettura

Questa architettura è la base per la distribuzione di modelli di machine learning vicini a fonti di dati e sistemi di produzione. È illustrato in questo diagramma:


Segue la descrizione di deployment-ml-edge-architecture.png
Descrizione dell'illustrazione deploy-ml-edge-architecture.png

implementazione-ml-edge-architecture-oracle.zip

Questa architettura funziona come segue:
  1. I processi di produzione generano dati in streaming al servizio di streaming su Oracle Cloud. Il servizio di streaming attiva una funzione per gestire la funzione streams.This in entrata memorizza i dati in entrata nel data warehouse autonomo (ADW), forse dopo l'elaborazione o la trasformazione.
  2. I data scientist ricostruiscono periodicamente i modelli di Machine Learning (ML) in base ai dati in ADW. Quando questi modelli vengono testati e confermati per migliorarli sui vecchi modelli, vengono salvati per la distribuzione (ad esempio in formato ONNX) e vengono inviati allo storage degli oggetti per renderli disponibili per il recupero successivo. Per garantire che il modello corretto venga consegnato al sito corretto, si consiglia di utilizzare un bucket di storage degli oggetti separato per ciascun sito locale. Il normale processo di Oracle Data Science, che prevede la memorizzazione dei modelli nel catalogo modelli e la successiva distribuzione come distribuzioni dei modelli, non viene utilizzato perché il catalogo modelli è inaccessibile all'esterno di OCI, e Oracle Data Science può essere distribuito solo in Oracle Cloud.
  3. Periodicamente, i siti locali verificano e recuperano gli aggiornamenti dei modelli ML controllando bucket di storage degli oggetti specifici. Quando sono disponibili nuovi modelli, i siti locali recuperano, distribuiscono e iniziano a utilizzarli.
  4. In produzione, i dati di produzione vengono passati al runtime ML per generare punteggi, previsioni, avvisi e così via.
Si noti che esistono diversi approcci per il packaging e la distribuzione dei modelli. Ad esempio, Data Science potrebbe attivare una funzione (non mostrata) per raggruppare il modello e il relativo servizio Web chiamante come contenitore, che potrebbe essere memorizzato nel registro dei container (non visualizzato), da dove potrebbe essere recuperato da Kubernetes in esecuzione nel sito locale (non visualizzato). Poiché non sappiamo quali siano le possibilità e i vincoli specifici dei casi d'uso, questa architettura mostra un approccio più di base.
Questa architettura contiene i componenti elencati di seguito.
  • Posizione in locale

    Uno o più siti di produzione remoti sono connessi a Oracle Cloud utilizzando la VPN site-to-site. Questi siti potrebbero essere impianti di produzione, in cui è richiesto l'apprendimento automatico a bassa latenza sui flussi di dati provenienti dai processi di produzione

  • Macchinario di produzione

    In ogni sito remoto sono in esecuzione uno o più sistemi di produzione, sistemi di controllo qualità, sistemi MES, SCADA e così via, che generano dati di produzione e/o flussi IoT. I dati di questi sistemi vengono consegnati ai runtime ML per valutare, prevedere o avvisare, in base alle risposte dei modelli ML ai dati

  • Ambiente di esecuzione ML

    In ogni sito remoto, è operativo un ambiente di esecuzione di apprendimento automatico. Di base, questo è costituito da un runtime ML, come ONNX Runtime, forse in esecuzione come servizio Web, e fornisce funzionalità di punteggio e previsione a un gateway IoT. L'esatta configurazione dell'ambiente di esecuzione ML dipenderà da circostanze e requisiti locali specifici

  • Tenancy

    Una tenancy è una partizione sicura e isolata che Oracle imposta all'interno di Oracle Cloud quando ti iscrivi a OCI. Puoi creare, organizzare e amministrare le tue risorse in Oracle Cloud all'interno della tua tenancy. Una tenancy è sinonimo di azienda o organizzazione. In genere, un'azienda avrà una singola tenancy e ne rifletterà la struttura organizzativa all'interno di tale tenancy. Una singola tenancy in genere è associata a una singola sottoscrizione e una singola sottoscrizione in genere ha una sola tenancy.

  • Rete cloud virtuale (VCN) e subnet

    Una VCN è una rete personalizzabile e definita dal software configurata in un'area Oracle Cloud Infrastructure. Analogamente alle reti di data center tradizionali, i VCN offrono il controllo completo sull'ambiente di rete. Una VCN può avere più blocchi CIDR non sovrapposti che puoi modificare dopo aver creato la VCN. Puoi segmentare una VCN nelle subnet che possono essere definite nell'area o in un dominio di disponibilità. Ogni subnet è composta da un intervallo contiguo di indirizzi che non si sovrappongono alle altre subnet nella VCN. Puoi modificare le dimensioni di una subnet dopo la creazione. Una subnet può essere pubblica o privata.

  • Gateway del servizio

    Il gateway di servizi fornisce l'accesso da una VCN ad altri servizi, come Oracle Cloud Infrastructure Object Storage. Il traffico dalla VCN al servizio Oracle viaggia sulla struttura di rete Oracle e non attraversa mai Internet. In questa architettura il gateway di servizi fornisce l'accesso con contributo a livello locale ai servizi Oracle Cloud tramite la VPN

  • Storage degli oggetti

    Lo storage degli oggetti garantisce un accesso rapido a grandi quantità di dati strutturati e non strutturati di qualsiasi tipo di contenuto, inclusi backup del database, dati analitici e contenuti avanzati, ad esempio immagini e video. Puoi memorizzare i dati in tutta sicurezza e poi recuperarli direttamente da Internet o dall'interno della piattaforma cloud. Puoi ridimensionare lo storage in modo trasparente senza alcun peggioramento a livello di prestazioni o affidabilità dei servizi. Utilizza lo storage standard per lo storage "hot" a cui devi accedere in modo rapido, immediato e frequente. Utilizzare lo storage di archivio per lo storage "freddo" che si mantiene per lunghi periodi di tempo e raramente può accedere. In questa architettura, lo storage degli oggetti viene utilizzato per memorizzare gli aggiornamenti del modello e degli script associati quando vengono prodotti dai data scientist.

  • Autonomous Data Warehouse

    Oracle Autonomous Data Warehouse è un servizio di database a gestione autonoma, protezione automatica e funzionalità di autoriparazione ottimizzato per i carichi di lavoro di data warehousing. Non è necessario configurare o gestire hardware né installare software. Oracle Cloud Infrastructure gestisce la creazione del database, nonché il backup, l'applicazione di patch, l'aggiornamento e l'ottimizzazione del database. In questa architettura ADW memorizza i dati grezzi (o elaborati) del sito di produzione IoT per l'elaborazione successiva da parte dei data scientist.

  • VPN da sito a sito

    VPN da sito a sito fornisce la connettività IPSec VPN tra la rete in locale e i VCN in Oracle Cloud Infrastructure. La suite di protocolli IPSec cifra il traffico IP prima che i pacchetti vengano trasferiti dall'origine alla destinazione e decifra il traffico all'arrivo.

  • Funzioni

    Oracle Functions è una piattaforma completamente gestita, multi-tenant, altamente scalabile, su richiesta e Functions-as-a-Service (FaaS). Si basa sul motore open source di Fn Project. Le funzioni consentono di distribuire il codice e di chiamarlo direttamente o attivarlo in risposta agli eventi. Oracle Functions utilizza i container Docker ospitati in Oracle Cloud Infrastructure Registry. In questa architettura, le funzioni vengono utilizzate per memorizzare i dati in streaming in ADW, utilizzando una funzione creata attorno a un connettore JDBC

  • Streaming

    Oracle Cloud Infrastructure Streaming offre una soluzione di storage completamente gestita, scalabile e duratura che consente di includere flussi di dati continui e a elevato volume che puoi utilizzare ed elaborare in tempo reale. Puoi utilizzare la soluzione Streaming per l'inclusione di dati a elevato volume, ad esempio log dell'applicazione, telemetria operativa, dati di click-stream Web o per altri casi d'uso in cui i dati vengono prodotti ed elaborati in maniera continua e sequenziale in un modello di messaggistica di pubblicazione/sottoscrizione. In questa architettura lo streaming viene utilizzato per instradare i flussi di dati di produzione ad ADW per la persistenza. È anche possibile introdurre l'elaborazione e l'arricchimento di questi dati, come parte del processo di streaming, ma questo non viene mostrato qui

  • Oracle Data Science

    Oracle Data Science è una piattaforma completamente gestita che consente ai team di data scientist di creare, formare, distribuire e gestire modelli di apprendimento automatico utilizzando Python e strumenti open source. Include funzionalità MLOps, come pipeline automatizzate, distribuzioni dei modelli e monitoraggio dei modelli; tuttavia, queste funzionalità sono limitate alle distribuzioni dei modelli in Oracle Cloud e non vengono utilizzate in questa architettura. In questa architettura, i data scientist utilizzano Oracle Data Science per analizzare e creare modelli basati sui dati in modo efficiente e per creare versioni distribuibili di tali modelli, ad esempio in formato ONNX.

  • Rete di servizi Oracle

    OSN (Oracle Services Network) è una rete concettuale in Oracle Cloud Infrastructure riservata ai servizi Oracle. Questi servizi dispongono di indirizzi IP pubblici che puoi raggiungere tramite Internet. Gli host esterni a Oracle Cloud possono accedere a OSN in modalità privata utilizzando Oracle Cloud Infrastructure FastConnect o VPN Connect. Gli host dei VCN possono accedere a OSN in modalità privata tramite un gateway di servizi.

Suggerimenti

Utilizzare i seguenti suggerimenti come punto di partenza per la distribuzione di un modello di apprendimento automatico a livello di rete. I requisiti potrebbero essere diversi da quelli dell'architettura descritta qui.
  • VCN

    Per instradare il traffico dai siti remoti (connessi dalla VPN da sito a sito) ai servizi in esecuzione nella rete di servizi, è necessaria una VCN con un DRG collegato e un gateway di servizi. Questa VCN richiede una voce nella relativa tabella di instradamento per instradare tutto il traffico associato ai servizi nell'area Oracle Cloud scelta per essere instradato tramite il gateway di servizi. In questa architettura, tutto il traffico tra il sito remoto e la rete di servizi viene attivato da una richiesta dal sito remoto alla rete di servizi

  • Sicurezza

    Utilizza Oracle Cloud Guard per monitorare e mantenere la sicurezza delle tue risorse in Oracle Cloud Infrastructure in modo proattivo. Cloud Guard utilizza le ricette del rilevatore che è possibile definire per esaminare le risorse ai fini delle carenze di sicurezza e per monitorare operatori e utenti per le attività a rischio. Quando viene rilevata un'attività di configurazione errata o non sicura, Cloud Guard consiglia azioni correttive e assiste l'esecuzione di tali azioni, in base alle ricette del rispondente che è possibile definire.

  • Cloud Guard

    Duplicare e personalizzare le ricette predefinite fornite da Oracle per creare ricette personalizzate di rilevatori e rispondenti. Queste ricette consentono di specificare il tipo di violazione della sicurezza che genera un'avvertenza e quali azioni possono essere eseguite su di esse. Ad esempio, potresti voler rilevare i bucket di storage degli oggetti con visibilità impostata sul pubblico.

    Applica Cloud Guard a livello di tenancy per coprire l'ambito più ampio e ridurre l'onere amministrativo derivante dalla gestione di più configurazioni.

    È inoltre possibile utilizzare la funzione Elenco gestito per applicare determinate configurazioni ai rilevatori.

  • Zone di sicurezza

    Per le risorse che richiedono una maggiore sicurezza, Oracle consiglia di utilizzare le zone di sicurezza. Una zona di sicurezza è un compartimento associato a una ricetta dei criteri di sicurezza definita da Oracle basata sulle migliori prassi. Ad esempio, le risorse in una zona di sicurezza non devono essere accessibili dalla rete Internet pubblica e devono essere cifrate utilizzando chiavi gestite dal cliente. Quando crei e aggiorni le risorse in una zona di sicurezza, Oracle Cloud Infrastructure convalida le operazioni nei criteri della ricetta della zona di sicurezza e nega le operazioni che violano uno qualsiasi dei criteri

  • Gruppi di sicurezza di rete (NSG)

    Puoi utilizzare i gruppi NSG per definire un set di regole di entrata e uscita valide per VNIC specifiche. È consigliabile utilizzare i gruppi NSG anziché le liste di sicurezza, perché i gruppi NSG consentono di separare l'architettura della subnet della VCN dai requisiti di sicurezza dell'applicazione.

Considerazioni

Quando si distribuisce questa architettura di riferimento, tenere presente quanto riportato di seguito.

  • Prestazioni

    I principali problemi di performance sono legati al volume dei dati generati dai processi di produzione.

    L'ambiente di esecuzione ML, in cui i runtime di apprendimento automatico vengono richiamati per rispondere ai dati di produzione, deve essere dimensionato per gestire i volumi dei dati generati. Si tratta di un problema relativo all'impostazione del sito remoto che non rientra nell'ambito di questa architettura.

    I dati generati dai processi di produzione potrebbero essere sufficientemente voluminosi da sovraccaricare la larghezza di banda disponibile per lo streaming su OCI. In questi casi, può essere opportuno pre-elaborare i dati a livello locale per eliminare i dati irrilevanti, aggregare i dati, comprimere i dati, ecc., in modo da ridurre le richieste di larghezza di banda.

    Spostando i runtime ML vicini all'origine dati, le latenze ML si riducono.

  • Disponibilità

    Se la connettività tra siti remoti e Oracle Cloud è intermittente, è possibile eseguire il flusso dei dati in un'installazione Kafka locale che passa poi a Oracle Streaming. In questo modo, l'installazione Kafka locale può memorizzare nel buffer i dati se si verifica un'interruzione di rete.

Visualizza altro

Scopri di più sulla distribuzione di modelli di apprendimento automatico vicini alle origini dati e ai sistemi di produzione.

Esaminare le risorse aggiuntive riportate di seguito.

Approvazioni

Author: Gareth Smith