Autore: Sergey Luk'yanchikov, ingegnere consulente di InterSystems
Sfide nei calcoli AI/ML in tempo reale
Cominciamo con esempi dall'esperienza pratica di Data Science della società InterSystems:
- Il portale clienti 'sotto carico' è collegato a un sistema di raccomandazione online. È prevista la ristrutturazione delle promozioni su scala retail (ad esempio, invece della linea promozionale 'flat', si applicherà una matrice 'segmento-tattica'). Cosa succede ai meccanismi di raccomandazione? Cosa accade all'inserimento e all'aggiornamento dei dati nel meccanismo di raccomandazione (il volume dei dati in ingresso è aumentato di 25000 volte)? Cosa accade alla generazione di raccomandazioni (necessità di una riduzione di mille volte della soglia di filtraggio delle regole di raccomandazione a causa dell'aumento di mille volte della loro quantità e 'assortimento')?
- Esiste un sistema di monitoraggio della probabilità di sviluppo di difetti nei nodi dell'attrezzatura. È stato collegato un sistema di controllo automatizzato (SCADA), che trasmette migliaia di parametri del processo tecnologico ogni secondo. Cosa succede al sistema di monitoraggio, che prima operava su 'campionamenti manuali' (è in grado di garantire un monitoraggio della probabilità in tempo reale)? Cosa accadrà se nei dati in ingresso appare un nuovo blocco di diverse centinaia di colonne con le letture dei sensori recentemente collegati al SCADA (sarà necessario e per quanto tempo fermare il sistema di monitoraggio per includere nei dati le letture dei nuovi sensori)?
- È stato creato un complesso di meccanismi AI/ML (raccomandativi, di monitoraggio, predittivi), che utilizzano i risultati dell'attività reciproca. Quante ore-uomo sono necessarie ogni mese per adattare il funzionamento di questo complesso ai cambiamenti nei dati in ingresso? Qual è il 'rallentamento' complessivo nel supporto decisionale del complesso (frequenza di generazione di nuove informazioni di supporto rispetto alla frequenza di apparizione di nuovi dati in ingresso)?
Riassumendo questi e molti altri esempi, abbiamo raggiunto le formulazioni delle sfide che emergono nel passaggio all'uso di meccanismi di apprendimento automatico e intelligenza artificiale in tempo reale:
- La nostra azienda è soddisfatta della rapidità con cui vengono creati e adattati (alla situazione in evoluzione) i progetti AI/ML?
- In che misura le soluzioni AI/ML che utilizziamo supportano la gestione del business in tempo reale?
- Le soluzioni AI/ML che utilizziamo sono in grado di adattarsi autonomamente (senza sviluppatori) ai cambiamenti nei dati e nelle pratiche di gestione del business?
Il nostro articolo è un'analisi approfondita delle capacità della piattaforma InterSystems IRIS in termini di supporto universale per il deployment di meccanismi AI/ML, integrazione delle soluzioni AI/ML e training (testing) delle soluzioni AI/ML su flussi di dati intensi. Ci concentreremo sulle ricerche di mercato, su casi pratici di soluzioni AI/ML e sugli aspetti concettuali di ciò che chiamiamo in questo articolo piattaforma AI/ML in tempo reale.
Cosa emerge dai sondaggi: applicazioni in tempo reale
Risultati , condotto tra circa 800 professionisti IT nel 2019 da Lightbend, parla da sé:

Figura 1 Principali consumatori di dati in tempo reale
Citiamo in traduzione frammenti importanti del rapporto sui risultati di questo sondaggio:
«... Le tendenze nella popolarità degli strumenti di integrazione dei flussi di dati e, allo stesso tempo, nel supporto di calcoli nei contenitori danno una risposta sinergica alla domanda del mercato per soluzioni più rapide, razionali e dinamiche. I flussi di dati permettono di trasferire informazioni più rapidamente rispetto ai tradizionali pacchetti di dati. A questo si aggiunge la possibilità di applicare metodi computazionali in modo tempestivo, come ad esempio, raccomandazioni basate su AI/ML, creando vantaggi competitivi attraverso l'aumento della soddisfazione del cliente. La corsa alla rapidità influisce anche su tutti i ruoli nella paradigm DevOps, migliorando l'efficienza nello sviluppo e nel deployment delle applicazioni. ... Ottocentoquattro professionisti IT hanno fornito informazioni sull'uso dei flussi di dati nelle loro organizzazioni. I rispondenti erano per lo più nei paesi occidentali (41% in Europa e 37% in Nord America) e erano quasi equamente distribuiti tra piccole, medie e grandi imprese. ...
… L'intelligenza artificiale non è un hype. Cinquantotto percento di coloro che già utilizzano l'elaborazione dei flussi di dati in applicazioni AI/ML produttive confermano che la loro applicazione in AI/ML vedrà il maggiore impulso l'anno prossimo (rispetto ad altre applicazioni).
- Secondo la maggior parte degli intervistati, l'applicazione dei flussi di dati negli scenari AI/ML vedrà il maggiore impulso l'anno prossimo.
- L'applicazione in AI/ML crescerà non solo grazie a relativamente nuovi tipi di scenari, ma anche grazie a scenari tradizionali, in cui i dati in tempo reale vengono utilizzati sempre più intensamente.
- Oltre all'AI/ML, il livello di entusiasmo tra gli utenti di pipeline di dati IoT è impressionante: il 48% di coloro che hanno già integrato dati IoT affermano che l'implementazione di scenari basati su questi dati vedrà un sostanziale impulso nel prossimo futuro. … »
Da questo interessante sondaggio, emerge che la percezione degli scenari di apprendimento automatico e intelligenza artificiale come leader nel consumo di flussi di dati è già in fase di sviluppo. Ma anche la percezione di AI/ML in tempo reale attraverso l'ottica DevOps diventa un'osservazione altrettanto importante: qui possiamo già iniziare a parlare di trasformazione della cultura ancora predominante del "AI/ML usa e getta con un set di dati completamente accessibile".
Concetto di piattaforma AI/ML in tempo reale
Uno dei settori tipici in cui viene applicata l'AI/ML in tempo reale è la gestione dei processi tecnologici nella produzione. Prendendo spunto da questo esempio e considerando le riflessioni precedenti, formuliamo il concetto di piattaforma AI/ML in tempo reale.
L'uso dell'intelligenza artificiale e dell'apprendimento automatico nella gestione dei processi tecnologici presenta alcune peculiarità:
- I dati sullo stato del processo tecnologico arrivano intensamente: con grande frequenza e su un ampio spettro di parametri (fino a decine di migliaia di valori di parametri trasmessi al secondo da un sistema di controllo supervisione e acquisizione dati).
- I dati sull'individuazione dei difetti, per non parlare di quelli sul loro sviluppo, al contrario, sono scarsi e irregolari, caratterizzati da una scarsa tipizzazione dei difetti e dalla loro localizzazione nel tempo (spesso, rappresentati da registrazioni su supporto cartaceo).
- Dal punto di vista pratico, per l'apprendimento e l'applicazione dei modelli è disponibile solo una "finestra di attualità" dei dati originali, che riflette la dinamica del processo tecnologico per un intervallo scorrevole ragionevole, che termina con i valori letti più recenti dei parametri del processo.
Queste caratteristiche ci costringono, oltre alla ricezione e alla base elaborazione in tempo reale di un intenso "segnale in ingresso a banda larga" dal processo tecnologico, ad eseguire (in parallelo) applicazione, apprendimento e controllo della qualità dei risultati dei modelli AI/ML - anche in tempo reale. Il "frame" che i nostri modelli "vedono" nella finestra scorrevole di attualità cambia costantemente - e con esso cambia anche la qualità dei risultati dei modelli AI/ML, addestrati su uno dei "frame" del passato. Al deterioramento della qualità dei risultati dei modelli AI/ML (ad esempio: il valore dell'errore di classificazione "allerta-norma" è oltre i limiti stabiliti da noi) deve essere avviato automaticamente un riaddestramento dei modelli su un "frame" più attuale - e la scelta del momento per avviare il riaddestramento dei modelli deve tenere conto sia della durata del riaddestramento stesso sia della dinamica del deterioramento della qualità del lavoro della versione attuale dei modelli (dato che le versioni attuali dei modelli continuano ad essere applicate mentre i modelli sono in fase di addestramento e finché non vengono formate le loro versioni "riaddestrate").
InterSystems IRIS dispone di capacità fondamentali della piattaforma per garantire il funzionamento delle soluzioni AI/ML nella gestione dei processi tecnologici in tempo reale. Queste capacità possono essere suddivise in tre gruppi principali:
- Distribuzione continua (Continuous Deployment/Delivery, CD) di nuovi meccanismi AI/ML esistenti o adattati in una soluzione produttiva che funziona in tempo reale sulla piattaforma InterSystems IRIS.
- Integrazione continua (Continuous Integration, CI) in una soluzione produttiva unica dei flussi di dati in ingresso del processo tecnologico, delle code di dati per applicazione/apprendimento/controllo della qualità del lavoro dei meccanismi AI/ML e degli scambi di dati/codice/influenze di controllo con ambienti di modellazione matematica, la cui orchestrazione è effettuata in tempo reale dalla piattaforma InterSystems IRIS.
- L'apprendimento continuo (self-learning) dei meccanismi AI/ML, realizzato in ambienti di modellazione matematica utilizzando dati, codice e controlli («decisioni prese»), trasmessi dalla piattaforma InterSystems IRIS
La classificazione delle capacità delle piattaforme in relazione all'apprendimento automatico e all'intelligenza artificiale non è casuale. Citiamo la metodologia della società Google, che fornisce la base concettuale per questa classificazione, nella nostra traduzione:
«... Il concetto di DevOps, popolare ai nostri giorni, abbraccia lo sviluppo e l'operatività di sistemi informativi su larga scala. I vantaggi dell'implementazione di questo concetto includono la riduzione della durata dei cicli di sviluppo, l'accelerazione dei deployment e la flessibilità nella pianificazione delle release. Per ottenere questi vantaggi, DevOps prevede l'implementazione di almeno due pratiche:
- Integrazione continua (CI)
- Consegna continua (CD)
Queste pratiche sono applicabili anche alle piattaforme AI/ML, al fine di garantire una costruzione affidabile e performante di soluzioni AI/ML produttive.
Le piattaforme AI/ML si differenziano dagli altri sistemi informativi nei seguenti aspetti:
- Competenze del team: quando si crea una soluzione AI/ML, il team di solito include data scientist o esperti ‘accademici’ nel campo della ricerca dati, che eseguono analisi dei dati, sviluppo e test dei modelli. Questi membri del team potrebbero non essere sviluppatori professionisti di codice produttivo.
- Sviluppo: i meccanismi AI/ML sono sperimentali per loro natura. Per risolvere i problemi nella maniera più efficace, è necessario esplorare diverse combinazioni di variabili di input, algoritmi, metodi di modellazione e parametri di modello. La complessità di questa esplorazione risiede nel tracciamento di «cosa ha funzionato/non ha funzionato», nella garanzia della riproducibilità degli episodi e nella generalizzazione degli sviluppi per implementazioni ripetute.
- Test: il testing dei meccanismi AI/ML richiede un maggiore spettro di test rispetto alla maggior parte degli altri sviluppi. Oltre ai normali test di unità e di integrazione, si testano la validità dei dati e la qualità dei risultati dell'applicazione del modello su campioni di addestramento e di controllo.
- Distribuzione: la distribuzione delle soluzioni AI/ML non si limita ai servizi predittivi che utilizzano un modello addestrato una volta sola. Le soluzioni AI/ML sono costruite attorno a pipeline a più fasi che eseguono l'apprendimento automatizzato e l'applicazione dei modelli. La distribuzione di tali pipeline implica l'automazione di azioni non banali, tradizionalmente eseguite manualmente dagli data scientist, per consentire l'addestramento e il test dei modelli.
- Produttività: ai meccanismi AI/ML può mancare prestazioni non solo a causa di una programmazione inefficace, ma anche a causa della natura in continua evoluzione dei dati in ingresso. In altre parole, le prestazioni dei meccanismi AI/ML possono degradarsi a causa di un ventaglio più ampio di cause rispetto a quelle delle normali applicazioni. Questo porta alla necessità di monitorare (in tempo reale) le prestazioni dei nostri meccanismi AI/ML, così come di inviare notifiche o scartare risultati se le prestazioni non soddisfano le aspettative.
Le piattaforme AI/ML sono simili ad altri sistemi informatici in quanto entrambi necessitano di un'integrazione continua del codice con controllo delle versioni, test modulari, test di integrazione e distribuzione continua degli sviluppi. Tuttavia, nel caso di AI/ML, ci sono alcune differenze importanti:
- CI (Integrazione Continua) non si limita più al testing e alla validazione del codice delle componenti distribuite - include anche il testing e la validazione dei dati e dei modelli AI/ML.
- CD (Consegna/Digitalizzazione Continua) non si limita alla scrittura e al rilascio di pacchetti o servizi, ma implica una piattaforma per la composizione, l'addestramento e l'applicazione delle soluzioni AI/ML.
- CT (Addestramento Continuo) è un nuovo elemento [nota dell'autore dell'articolo: un nuovo elemento rispetto al concetto tradizionale di DevOps, in cui CT è generalmente il Testing Continuo], caratteristico delle piattaforme AI/ML, responsabile della gestione autonoma dei meccanismi di apprendimento e applicazione dei modelli AI/ML. …»
Possiamo affermare che l'apprendimento automatico e l'intelligenza artificiale, che operano su dati in tempo reale, richiedono un set di strumenti e competenze più ampio (dallo sviluppo del codice all'orchestrazione di ambienti di modellazione matematica), una più stretta integrazione tra tutte le aree funzionali e di dominio, e un'organizzazione più efficiente delle risorse umane e delle macchine.
Scenario in tempo reale: riconoscimento dello sviluppo dei difetti nelle pompe per nutrienti
Continuando a utilizzare come esempio l'area della gestione dei processi tecnologici, esaminiamo un compito specifico (già menzionato all'inizio): è necessario garantire il monitoraggio in tempo reale dello sviluppo dei difetti nelle pompe sulla base del flusso di valori dei parametri del processo tecnologico e dei rapporti del personale di riparazione sui difetti rilevati.

Figura 2 Definizione del compito di monitoraggio dello sviluppo dei difetti
Una caratteristica della maggior parte dei compiti formulati in questo modo è che la regolarità e la tempestività dell'arrivo dei dati (Sistemi di Controllo e Automazione dei Processi Tecnologici) devono essere considerate alla luce dell'episodicità e dell'irregolarità dell'emergere (e registrazione) dei difetti di vari tipi. In altre parole: i dati dai Sistemi di Controllo e Automazione dei Processi Tecnologici arrivano ogni secondo accurati e precisi, mentre i difetti vengono annotati con una matita chimica indicando la data in un taccuino generale in officina (ad esempio: "12.01 – perdita nel coperchio dal lato del 3° cuscinetto").
Pertanto, possiamo completare la definizione del compito con questo importante vincolo: la "etichetta" di un difetto di un tipo specifico è solo una (cioè, un esempio di difetto di un tipo specifico è rappresentato dai dati del Sistema di Controllo e Automazione dei Processi Tecnologici in una data specifica – e non abbiamo più esempi di difetto di questo tipo). Questo vincolo ci porta immediatamente oltre i confini dell'apprendimento automatico classico (apprendimento supervisionato), per il quale ci devono essere molte "etichette".

Figura 3 Chiarimento del compito di monitoraggio dello sviluppo dei difetti
Possiamo in qualche modo "moltiplicare" l'unica "etichetta" che abbiamo a disposizione? Sì, possiamo. Lo stato attuale della pompa è caratterizzato dal grado di somiglianza con i difetti registrati. Anche senza l'uso di metodi quantitativi, a livello visivo, osservando la dinamica dei valori dei dati provenienti dal sistema di controllo, si può già trarre molto:

Figura 4 Dinamica dello stato della pompa rispetto all'"etichetta" del difetto di un certo tipo
Ma la percezione visiva (almeno per ora) non è il generatore di "etichette" più adatto nel nostro scenario in rapida evoluzione. Valuteremo la somiglianza dello stato attuale della pompa con i difetti registrati utilizzando un test statistico.

Figura 5 Applicazione del test statistico ai dati in arrivo rispetto all'"etichetta" del difetto
Il test statistico determina la probabilità che le registrazioni con i valori dei parametri del processo tecnologico nel "flusso-pacchetto" ottenuto dal sistema di controllo siano simili alle registrazioni dell'"etichetta" del difetto di un certo tipo. Il valore di probabilità calcolato a seguito dell'applicazione del test statistico viene trasformato in un valore di 0 o 1, diventando un'"etichetta" per il machine learning in ciascuna registrazione specifica nel pacchetto analizzato per somiglianza. Cioè, dopo aver elaborato un nuovo pacchetto di registrazioni dello stato della pompa con il test statistico, abbiamo la possibilità di (a) aggiungere questo pacchetto al campione di addestramento per l'addestramento del modello AI/ML e (b) controllare la qualità del funzionamento della versione attuale del modello durante la sua applicazione a questo pacchetto.

Figura 6 Applicazione del modello di machine learning ai dati in arrivo rispetto all'"etichetta" del difetto
In uno dei nostri precedenti Mostriamo e spieghiamo come la piattaforma InterSystems IRIS consente di realizzare qualsiasi meccanismo AI/ML sotto forma di processi aziendali in esecuzione continua, che controllano l'affidabilità dei risultati di simulazione e adattano i parametri dei modelli. Nella realizzazione del prototipo del nostro scenario con le pompe, utilizziamo tutte le funzionalità presentate durante il webinar di InterSystems IRIS – implementando nel processo di analisi, come parte della nostra soluzione, non un apprendimento supervisionato classico, ma piuttosto un apprendimento per rinforzo, che gestisce automaticamente il campione per l'addestramento dei modelli. Nel campione per l'addestramento vengono inseriti i registri in cui si verifica un “consenso di rilevamento” dopo l'applicazione sia del test statistico che della versione attuale del modello, cioè sia il test statistico (dopo la trasformazione dell'indice di somiglianza a 0 o 1) che il modello hanno restituito il risultato 1 su tali registri. Durante un nuovo addestramento del modello, nella sua validazione (il modello addestrato di nuovo viene applicato al proprio campione di addestramento, previa applicazione di un test statistico su di esso), i registri che non hanno mantenuto il risultato 1 dopo l'elaborazione del test statistico (a causa della presenza costante di registri dall'iniziale

Figura 7 Roboticizzazione dei calcoli AI/ML in InterSystems IRIS
Nel caso in cui ci sia bisogno di una sorta di “seconda opinione” sulla qualità del rilevamento, ottenuta durante i calcoli locali in InterSystems IRIS, si crea un processo-consigliere per l'esecuzione dell'addestramento-applicazione dei modelli su un dataset di controllo utilizzando servizi cloud (ad esempio Microsoft Azure, Amazon Web Services, Google Cloud Platform, ecc.):

Figura 8 “Seconda opinione” da Microsoft Azure sotto orchestrazione di InterSystems IRIS
Il prototipo del nostro scenario in InterSystems IRIS è realizzato come un sistema agent-based di processi analitici che interagiscono con l'oggetto attrezzature (pompa), gli ambienti di modellazione matematica (Python, R e Julia) e garantiscono l'autoapprendimento di tutti i meccanismi AI/ML coinvolti – su flussi di dati in tempo reale.

Figura 9 Funzionalità principale della soluzione AI/ML in tempo reale in InterSystems IRIS
Risultato pratico del lavoro del nostro prototipo:
- Campione di difetto riconosciuto dal modello (12 gennaio):

- Difetto in fase di sviluppo, non incluso nel campione riconosciuto dal modello (11 settembre, il difetto è stato constatato dalla squadra di riparazione solo dopo due giorni – 13 settembre):

L'imitazione su dati reali, contenente più episodi dello stesso difetto, ha dimostrato che la nostra soluzione, realizzata sulla piattaforma InterSystems IRIS, consente di rilevare lo sviluppo di difetti di questo tipo diversi giorni prima del loro riconoscimento da parte della squadra di riparazione.
InterSystems IRIS – piattaforma universale per calcoli AI/ML in tempo reale
La piattaforma InterSystems IRIS semplifica lo sviluppo, il deployment e l'operatività delle soluzioni su dati in tempo reale. InterSystems IRIS è in grado di eseguire elaborazioni transazionali e analitiche contemporaneamente; supportare visioni sincronizzate dei dati in conformità con diversi modelli (inclusi relazionale, gerarchico, oggetto e documento); fungere da piattaforma di integrazione per un'ampia gamma di fonti di dati e singole applicazioni; fornire analisi avanzate in tempo reale su dati strutturati e non strutturati. InterSystems IRIS offre anche meccanismi per l'uso di strumenti analitici esterni, consentendo una flessibile combinazione di distribuzione nel cloud e su server locali.
Le applicazioni costruite sulla piattaforma InterSystems IRIS sono state implementate in vari settori, aiutando le aziende a ottenere un significativo beneficio economico in ottiche strategiche e operative, migliorando la consapevolezza nelle decisioni e colmando i "gap" tra evento, analisi e azione.

Figura 10 Architettura di InterSystems IRIS nel contesto dell'AI/ML in tempo reale
Come nel diagramma precedente, il diagramma qui sotto combina il nuovo "sistema di coordinate" (CD/CI/CT) con lo schema dei flussi di informazioni tra gli elementi operativi della piattaforma. La visualizzazione inizia con il macro-meccanismo CD e continua con i macro-meccanismi CI e CT.

Figura 11 Schema dei flussi di informazioni tra gli elementi AI/ML della piattaforma InterSystems IRIS
La sostanza del meccanismo CD in InterSystems IRIS: gli utenti della piattaforma (sviluppatori di soluzioni AI/ML) adattano le già esistenti e/o creano nuove sviluppi AI/ML utilizzando un editor di codice sorgente specializzato per meccanismi AI/ML: Jupyter (nome completo: Jupyter Notebook; per brevità, a volte si chiamano anche documenti creati in questo editor). In Jupyter, lo sviluppatore ha la possibilità di scrivere, fare debug e verificare il funzionamento (incluso, ad esempio, utilizzando grafica) di un particolare sviluppo AI/ML prima della sua implementazione (“deployment”) in InterSystems IRIS. È chiaro che lo sviluppo creato in questo modo riceverà solo un debug di base (poiché, ad esempio, Jupyter non lavora con flussi di dati in tempo reale) – questo è normale, poiché il risultato principale dello sviluppo in Jupyter diventa la conferma del funzionamento fondamentale di un singolo meccanismo AI/ML (“sui dati di test mostra il risultato atteso”). Allo stesso modo, un meccanismo già implementato nella piattaforma (vedere i successivi macro-meccanismi) prima del debug in Jupyter può richiedere un “rollback” alla versione “pre-piattaforma” (lettura dei dati da file, lavorare con i dati tramite xDBC invece di tabelle, interazione diretta con i globali – array multidimensionali di dati di InterSystems IRIS – e così via).
Un aspetto importante dell'implementazione di CD specificamente in InterSystems IRIS: tra la piattaforma e Jupyter è stata realizzata un'integrazione bidirezionale, che consente il trasferimento nella piattaforma (e, successivamente, l'elaborazione nella piattaforma) di contenuti in linguaggi Python, R e Julia (tutti e tre sono linguaggi di programmazione negli ambienti open-source leader per la modellazione matematica). In questo modo, gli sviluppatori di contenuti AI/ML hanno la possibilità di eseguire un “deploy continuo” di questo contenuto nella piattaforma, lavorando nel loro editor Jupyter familiare, con le librerie familiari disponibili in Python, R, Julia, eseguendo un debug di base (se necessario) al di fuori della piattaforma.
Passiamo al macro-meccanismo CI in InterSystems IRIS. Nella diagramma è rappresentato il macroprocesso di lavoro del "robotizzatore in tempo reale" (un insieme di strutture dati, processi aziendali e codici orchestrati in linguaggi di media matematica e nel linguaggio ObjectScript – il linguaggio di sviluppo nativo di InterSystems IRIS). L'obiettivo di questo macroprocesso è: sostenere le code di dati necessarie per il funzionamento dei meccanismi AI/ML (basati su flussi di dati inviati alla piattaforma in tempo reale), prendere decisioni sulla sequenza di applicazione e sull'"assortimento" dei meccanismi AI/ML (noti anche come "algoritmi matematici", "modelli", ecc. – possono essere chiamati in modi diversi a seconda della specifica implementazione e delle preferenze terminologiche), mantenere aggiornate le strutture dati per analizzare i risultati dell'operato dei meccanismi AI/ML (cubi, tabelle, array multidimensionali, ecc. – per report, dashboard, ecc.).
Un aspetto importante dell'implementazione di CI proprio in InterSystems IRIS: tra la piattaforma e gli ambienti di modellazione matematica è realizzata un'integrazione bidirezionale, che consente di eseguire contenuti posizionati nella piattaforma in linguaggi Python, R e Julia nei loro rispettivi ambienti, ricevendo i risultati di esecuzione. Questa integrazione è attuata sia in "modalità terminale" (cioè, il contenuto AI/ML è formulato come codice in ObjectScript che effettua chiamate ai mezzi di media matematica), sia in "modalità processo aziendale" (cioè, il contenuto AI/ML è formulato come un processo aziendale tramite un editor grafico, o a volte tramite Jupyter, o tramite IDE – IRIS Studio, Eclipse, Visual Studio Code). La disponibilità dei processi aziendali per la modifica in Jupyter è riflessa tramite un collegamento tra IRIS a livello CI e Jupyter a livello CD. Una panoramica più dettagliata dell'integrazione con gli ambienti di modellazione matematica sarà fornita successivamente. In questa fase, a nostro avviso, ci sono tutte le ragioni per registrare la presenza nella piattaforma di tutti gli strumenti necessari per realizzare "integrazioni continue" per sviluppi AI/ML (provenienti da "distribuzione continua") in soluzioni AI/ML in tempo reale.
E il principale macro meccanismo: CT. Senza di esso non sarà possibile avere piattaforme AI/ML (anche se il "tempo reale" sarà implementato tramite CD/CI). La sostanza di CT è il lavoro della piattaforma con gli "artefatti" di apprendimento automatico e intelligenza artificiale direttamente nelle sessioni lavorative degli ambienti di modellazione matematica: modelli, tabelle delle distribuzioni, vettori-matrici, strati di reti neurali, ecc. Questo "lavoro", nella maggior parte dei casi, consiste nella creazione degli artefatti menzionati negli ambienti (nel caso dei modelli, per esempio, la "creazione" consiste nella definizione delle specifiche del modello e nella successiva selezione dei valori dei suoi parametri - il cosiddetto "addestramento" del modello), nel loro utilizzo (per i modelli: il calcolo tramite di essi dei valori "modello" delle variabili obiettivo - previsioni, appartenenza a una categoria, probabilità di eventi, ecc.) e nel miglioramento degli artefatti già creati e utilizzati (per esempio, la ridefinizione del set di variabili di input del modello in base ai risultati dell'applicazione - al fine di aumentare la precisione della previsione, come opzione). Un punto chiave per comprendere il ruolo di CT è la sua "astrazione" dalle realtà di CD e CI: CT implementerà tutti gli artefatti, orientandosi sulla specificità computazionale e matematica della soluzione AI/ML nel contesto delle possibilità fornite dai singoli ambienti. La responsabilità per "fornire i dati di input" e "consegnare i risultati" sarà delle CD e CI.
Un aspetto importante dell'implementazione di CT in InterSystems IRIS: sfruttando l'integrazione con gli ambienti di modellazione matematica menzionata in precedenza, la piattaforma ha la capacità di estrarre da sessioni di lavoro che si svolgono sotto il suo controllo in ambienti matematici quegli stessi artefatti e (cosa più importante) convertirli in oggetti di dati della piattaforma. Ad esempio, una tabella di distribuzione, creata appena ora in una sessione di lavoro Python, può essere (senza fermare la sessione in Python) trasferita nella piattaforma in forma, ad esempio, di globale (array multidimensionale di dati di InterSystems IRIS) – e utilizzata per calcoli in un altro meccanismo AI/ML (già implementato in un linguaggio di un altro ambiente – ad esempio, in R) – o in una tabella virtuale. Un altro esempio: parallelamente al "funzionamento normale" del modello (in una sessione di lavoro Python), sui suoi dati di input si svolge "auto-ML": selezione automatica delle variabili di input ottimali e dei valori dei parametri. E insieme all'addestramento "normale", il modello produttivo in tempo reale riceve anche "un suggerimento per l'ottimizzazione" della sua specifica – in cui cambiano il set delle variabili di input, cambiano i valori dei parametri (già non a seguito dell'addestramento in Python, ma del training di una "versione alternativa" di se stessa, ad esempio, nello stack H2O), permettendo alla soluzione AI/ML complessiva di affrontare autonomamente imprevisti cambiamenti nella natura dei dati di input e dei fenomeni modellati.
Esploriamo più dettagliatamente le funzionalità AI/ML della piattaforma InterSystems IRIS, con l'esempio di un prototipo realmente esistente.
Nel diagramma sottostante, nella parte sinistra della slide – una parte del processo aziendale che implementa l'esecuzione di script in Python e R. Nella parte centrale – i log visivi dell'esecuzione di alcuni di questi script, rispettivamente in Python e in R. Subito dopo – esempi di contenuto in entrambe le lingue, inviati per l'esecuzione negli ambienti corrispondenti. Infine, a destra – le visualizzazioni basate sui risultati dell'esecuzione degli script. Le visualizzazioni in cima – sono state realizzate su IRIS Analytics (i dati sono stati prelevati da Python nella piattaforma dati InterSystems IRIS e visualizzati nel dashboard tramite gli strumenti della piattaforma), in basso – sono stati realizzati direttamente nella sessione di lavoro di R e estratti in file grafici. Un aspetto importante: il frammento presentato nel prototipo è responsabile dell'addestramento del modello (classificazione delle condizioni delle attrezzature) sui dati provenienti in tempo reale dal processo di simulazione delle attrezzature, su comando dal processo di monitoraggio della qualità della classificazione, osservato durante l'applicazione del modello. Si parlerà in seguito dell'implementazione di una soluzione AI/ML sotto forma di un insieme di processi interattivi ("agenti").

Figura 12 Interazione con Python, R e Julia in InterSystems IRIS
I processi della piattaforma (noti anche come 'processi aziendali', 'processi analitici', 'pipeline', ecc. – a seconda del contesto), sono principalmente modificabili nell'editor grafico dei processi aziendali all'interno della piattaforma, in modo tale da generare simultaneamente sia il suo diagramma di flusso che il corrispondente meccanismo AI/ML (codice sorgente). Parlando di "ottenere un meccanismo AI/ML", intendiamo inizialmente la sua ibridazione (all'interno di un processo): il contenuto nei linguaggi degli ambienti di modellazione matematica coesiste con il contenuto in SQL (compreso, con estensioni da ), in InterSystems ObjectScript, con altri linguaggi supportati. Inoltre, il processo di piattaforma offre ampie possibilità per la "visualizzazione" sotto forma di frammenti gerarchicamente nidificati (come mostrato nell'esempio della diagramma qui sotto), permettendo di organizzare in modo efficace contenuti anche molto complessi, senza "uscire" dal formato grafico (in metodi/classi/procedure "non grafiche" ecc.). Cioè, se necessario (e si prevede che lo sia nella maggior parte dei progetti), l'intera soluzione AI/ML può essere implementata in un formato grafico autocommentato. Notiamo che nella parte centrale del diagramma qui sotto, dove è rappresentato un livello di "profondità maggiore", si può vedere che oltre al lavoro per l'addestramento del modello (utilizzando Python e R), viene aggiunta l'analisi della cosiddetta curva ROC del modello addestrato, che consente di valutare visivamente (e computazionalmente anch'essa) la qualità dell'apprendimento – e questa analisi è realizzata nel linguaggio Julia (eseguita, rispettivamente, nell'ambiente di Julia).

Figura 13 Ambiente visivo per la composizione di soluzioni AI/ML in InterSystems IRIS
Come già accennato, lo sviluppo iniziale e (in alcuni casi) l'adattamento dei meccanismi AI/ML già implementati nella piattaforma verrà/potrà essere effettuato al di fuori della piattaforma nell'editor Jupyter. Nella diagramma qui sotto vediamo un esempio di adattamento di un processo della piattaforma esistente (lo stesso mostrato nella diagramma sopra) – questo è come appare in Jupyter quel frammento che si occupa dell'addestramento del modello. Il contenuto in linguaggio Python è disponibile per la modifica, il debug e l'output grafico direttamente in Jupyter. Le modifiche (se necessarie) possono essere effettuate con sincronizzazione immediata nel processo della piattaforma, inclusa la sua versione produttiva. Allo stesso modo, nuovi contenuti possono essere trasferiti nella piattaforma (viene creato automaticamente un nuovo processo della piattaforma).

Figura 14 Utilizzo di Jupyter Notebook per modificare il meccanismo AI/ML nella piattaforma InterSystems IRIS
L'adattamento del processo della piattaforma può essere eseguito non solo in formato grafico o notebook, ma anche in formato "totale" IDE (Integrated Development Environment). Questi IDE includono IRIS Studio (studio nativo di IRIS), Visual Studio Code (estensione InterSystems IRIS per VSCode) ed Eclipse (plugin Atelier). In alcuni casi, è possibile l'uso simultaneo da parte del team di sviluppatori di tutti e tre gli IDE. Il diagramma qui sotto mostra un esempio di modifica dello stesso processo in IRIS Studio, Visual Studio Code ed Eclipse. Tutto il contenuto è completamente accessibile per la modifica: Python/R/Julia/SQL, ObjectScript e processi aziendali.

Figura 15 Sviluppo del processo aziendale InterSystems IRIS in diversi IDE
Meritano una menzione particolare gli strumenti per la descrizione e l'esecuzione dei processi aziendali InterSystems IRIS nel linguaggio Business Process Language (BPL). Il BPL consente l'uso di "componenti di integrazione pronti" (activities) nei processi aziendali, il che fornisce piena giustificazione per affermare che in InterSystems IRIS è implementata l'"integrazione continua". I componenti pronti del processo aziendale (attività e connessioni tra di esse) rappresentano un potente acceleratore per la costruzione di soluzioni AI/ML. E non solo per la costruzione: grazie alle attività e alle connessioni, su sviluppi AI/ML e meccanismi disparati emerge uno "strato di gestione autonomo" in grado di prendere decisioni in base alla situazione, in tempo reale.

Figura 16 Componenti pronti dei processi aziendali per l'integrazione continua (CI) sulla piattaforma InterSystems IRIS
Il concetto di sistemi agenti (noti anche come "sistemi multi-agente") ha posizioni forti nella robotizzazione, e la piattaforma InterSystems IRIS lo supporta organicamente attraverso il costrutto "prodotto-processo". Oltre alle possibilità illimitate per le "componenti" necessarie a ciascun processo per la soluzione complessiva, attribuire alla piattaforma dei processi la proprietà di "agenzia" consente la creazione di soluzioni efficaci per fenomeni simulati estremamente instabili (comportamento di sistemi sociali/bio e processi tecnologici parzialmente osservabili, ecc.).

Figura 16 Funzionamento della soluzione AI/ML sotto forma di sistema agente di processi aziendali in InterSystems IRIS
Continuiamo la nostra rassegna di InterSystems IRIS con una discussione sull'uso pratico della piattaforma per risolvere intere classi di problemi in tempo reale (un'introduzione piuttosto dettagliata ad alcune delle migliori pratiche di AI/ML basate sulla piattaforma InterSystems IRIS è presente in uno dei nostri precedenti ).
A seguito del diagramma precedente, di seguito è riportato un diagramma più dettagliato del sistema agenti. Nel diagramma è rappresentato lo stesso prototipo, mostrati tutti e quattro i processi-agente, schematicamente sono disegnate le relazioni tra di essi: GENERATOR – si occupa della creazione dei dati dai sensori delle attrezzature, BUFFER – gestisce le code di dati, ANALYZER – esegue il machine learning vero e proprio, MONITOR – controlla la qualità del machine learning e segnala la necessità di riaddestrare il modello.

Figura 17 Composizione della soluzione AI/ML sotto forma di sistema agenti nei processi aziendali in InterSystems IRIS
Nel diagramma sottostante è illustrato il funzionamento autonomo di un altro prototipo robotico (riconoscimento del tono emotivo dei testi) nel corso di un certo periodo. Nella parte superiore – l'evoluzione dell'indice di qualità dell'apprendimento del modello (la qualità cresce), nella parte inferiore – la dinamica dell'indice di qualità dell'applicazione del modello e i fatti di riaddestramento (barre rosse). Come si può vedere, la soluzione ha appreso in modo autonomo ed efficace, e funziona a un livello di qualità stabilito (i valori dell'indice di qualità non scendono sotto l'80%).

Figura 18 Apprendimento continuo (auto-) sulla piattaforma InterSystems IRIS
Abbiamo anche menzionato l'«auto-ML» in precedenza, ma nel diagramma sottostante l'applicazione di questa funzionalità è mostrata in dettaglio utilizzando un altro prototipo come esempio. Nel diagramma grafico di un frammento del processo aziendale è mostrata l'attività che avvia la modellazione nello stack H2O, insieme ai risultati di questa modellazione (il chiaro dominio del modello ottenuto rispetto ai modelli «manufatti», secondo il diagramma comparativo delle curve ROC, così come l'identificazione automatizzata delle «variabili più influenti» disponibili nel set di dati originale). Un punto importante qui è il risparmio di tempo e risorse esperte che si ottiene grazie all'«auto-ML»: ciò che il nostro processo di piattaforma fa in mezzo minuto (trovare e addestrare il modello ottimale) può richiedere all'esperto da una settimana a un mese.

Figura 19 Integrazione dell'«auto-ML» nella soluzione AI/ML sulla piattaforma InterSystems IRIS
Il diagramma sottostante smorza un po' la suspense, ma rappresenta una buona conclusione per la nostra discussione sulle classi di problemi risolvibili in tempo reale: ricordiamo che, nonostante tutte le potenzialità della piattaforma InterSystems IRIS, l'addestramento dei modelli sotto la sua gestione non è obbligatorio. La piattaforma può ricevere dall'esterno una cosiddetta specifica del modello PMML, addestrato in uno strumento non gestito dalla piattaforma, e applicare questo modello in tempo reale fin dal momento dell'importazione. . È importante considerare che non tutti gli artefatti AI/ML possono essere ridotti a una specifica PMML, anche se la maggior parte degli artefatti più comuni consente di farlo. Pertanto, la piattaforma InterSystems IRIS ha un «contorno aperto» e non implica la «schiavitù della piattaforma» per gli utenti.

Figura 20 Integrazione dell'«auto-ML» nella soluzione AI/ML sulla piattaforma InterSystems IRIS
Elencando ulteriori vantaggi della piattaforma InterSystems IRIS (per chiarezza, relativi alla gestione dei processi tecnologici), che sono di grande importanza nell'automazione dell'intelligenza artificiale e dell'apprendimento automatico in tempo reale:
- Strumenti avanzati di integrazione con qualsiasi fonte e consumo di dati (ACS/SCADA, attrezzature, TOiR, ERP, ecc.)
- Integrato per l'elaborazione ibrida transazionale-analitica (Hybrid Transaction/Analytical Processing, HTAP) di qualsiasi volume di dati dei processi tecnologici
- Strumenti di sviluppo per il deployment continuo di meccanismi AI/ML in tempo reale basati su Python, R, Julia
- Processi aziendali adattivi per l'integrazione continua e l'auto-apprendimento di meccanismi AI/ML in tempo reale
- Strumenti di Business Intelligence integrati per la visualizzazione dei dati dei processi tecnologici e dei risultati delle soluzioni AI/ML
- per la consegna dei risultati delle soluzioni AI/ML a SCADA/ASUTP, sistemi informativi-analitici, newsletter e altro.
Le soluzioni AI/ML sulla piattaforma InterSystems IRIS si integrano facilmente nell'infrastruttura IT esistente. La piattaforma InterSystems IRIS garantisce l'alta affidabilità delle soluzioni AI/ML supportando configurazioni resilienti e a prova di disastro e un deployment flessibile in ambienti virtuali, su server fisici, in cloud privati e pubblici, e in contenitori Docker.
Pertanto, InterSystems IRIS è una piattaforma universale per le computazioni AI/ML in tempo reale. La versatilità della nostra piattaforma è dimostrata dalla pratica assenza di limitazioni de facto riguardo alla complessità delle computazioni implementabili, e dalla capacità di InterSystems IRIS di combinare (in tempo reale) l'elaborazione di scenari provenienti da vari settori, con un'eccezionale adattabilità di qualsiasi funzione e meccanismo della piattaforma alle specifiche esigenze degli utenti.

Figura 21 InterSystems IRIS — piattaforma universale per le computazioni AI/ML in tempo reale
Per un'interazione più concreta con coloro che tra i nostri lettori sono stati colpiti dal materiale qui presentato, raccomandiamo di non limitarvi alla lettura e di continuare il dialogo "di persona". Siamo pronti a fornire supporto nella definizione di scenari AI/ML in tempo reale specifici per le vostre esigenze aziendali, realizzeremo prototipi congiunti sulla piattaforma InterSystems IRIS, e svilupperemo e implementeremo nella pratica una roadmap per l'adozione dell'intelligenza artificiale e del machine learning nei vostri processi produttivi e gestionali. L'indirizzo email del nostro team di esperti AI/ML è .
Fonte: habr.com
