Offriamo un dibattito amichevole sul ruolo che JMP e JMP Pro probabilmente svolgeranno nell'ambito delle moderne tendenze dell'intelligenza artificiale (IA) e dell'apprendimento automatico (ML). Nel panorama in continua evoluzione di IA/ML, scienziati e ingegneri di tutti i settori necessitano di strumenti intuitivi per l'esplorazione dei dati, la creazione di modelli e l'implementazione.
JMP e JMP Pro, in quanto piattaforme no-code, semplificano e velocizzano il processo dai dati grezzi all'intelligenza artificiale con funzionalità visive e interattive che migliorano la comprensione e l'efficienza. Questa presentazione ne evidenzia i punti di forza attraverso esempi concreti, tra cui il deep learning per dati tabulari, testuali e di immagine, dimostrando come questi strumenti consentano di ottenere informazioni fluide e basate sull'intelligenza artificiale con competenze di programmazione minime e risparmi potenzialmente significativi in termini di tempo ed energia.
Ciao. Benvenuti alla conferenza. Sono Florian Vögl e intervengo qui insieme al mio collega Russ. Ci stiamo collegando dalla Germania e dagli Stati Uniti per discutere se JMP possa davvero svolgere un ruolo significativo nel futuro dell'intelligenza artificiale e del machine learning. Giusto?
Bella domanda, Florian.
Ovviamente, tutte le risposte di oggi saranno di parte, ma penso che abbiamo alcuni buoni punti da sollevare e, in particolare, penso che abbiamo alcuni esempi interessanti da condividere con voi. Pensiamo che sia particolarmente potente. JMP è sempre stato progettato per essere utile a scienziati e ingegneri e si è evoluto per incorporare un set di strumenti, un set di strumenti end-to-end che parte dai dati grezzi fino a, come lo chiamiamo noi, informazioni condivisibili e, credo, che includa tutto ciò che serve per svolgere un ruolo significativo nel panorama dell'intelligenza artificiale e del machine learning.
Conosco anche Florian, i nostri clienti, scienziati e ingegneri sono persone molto impegnate e, con gran parte dell'AIML moderno, si ha l'impressione che si debba... L'unico modo per arrivarci è attraverso la programmazione, e oggi cercheremo di rompere questo schema e di mostrare come tramite JMP Pro possiamo effettivamente accedere ad alcuni metodi molto potenti. Alcuni di questi sono praticamente all'avanguardia, direttamente tramite un'interfaccia, e ottengono le risposte molto più rapidamente rispetto alla necessità di scrivere codice una tantum ogni volta.
Sì. È uno degli aspetti più potenti, e tutto questo in combinazione con tutte le funzionalità avanzate per scienziati e ingegneri che JMP già incorpora. Basta con le chiacchiere. Facciamo un esempio. Russ, penso che tu abbia preparato un ottimo esempio per iniziare.
Sì. Volevo sottolineare che c'è una grande ondata di interesse nel mondo della chimica per la previsione di [inudibile 00:02:06] fondamentalmente a partire da una descrizione strutturale, spesso in una stringa SMILES, e volevo evidenziare un esempio davvero interessante. È uscito qualche mese fa uno studio in cui si studiano gli effetti della ricristallizzazione del ghiaccio, e si cerca di vedere gli effetti del congelamento sulle molecole. La ricerca è stata condotta qualche anno fa, e ha superato tutti gli ostacoli della pubblicazione, ed è un ottimo articolo ora qui su Nature Communications, e hanno anche reso i dati facilmente accessibili al pubblico in questo repository GitHub. È qui che ho preso i dati.
L'articolo, non entreremo troppo nei dettagli, ma lo hanno fatto anche loro. Penso che abbiano fatto un lavoro molto approfondito, si concentrano fondamentalmente sul classico approccio (Q)SAR in cui hanno assemblato diversi set di descrittori delle molecole e poi hanno eseguito... Tendevano a usare la convalida incrociata "lasciane uno fuori" e poi hanno presentato i risultati. Ad esempio, questo primo set di dati si chiama Glyco2 e questi sono i risultati qui in questa tabella che mostra le colonne finali delle metriche di performance per l'errore quadratico medio nella correlazione di Pearson per un paio di set di funzionalità diversi, e poi fanno anche una cosa interessante quando mettono insieme, e si può vedere che il miglioramento dall'insieme porterà la correlazione, diciamo intorno a 0,4 o giù di lì, fino a oltre 45,46.
Questo è un set di dati che ho rianalizzato in JMP e con il componente aggiuntivo JMP Pro Torch Deep Learning. Ecco i dati, in questo caso 223 molecole. La prima cosa che ho fatto è stata eseguirli. Ora abbiamo due ottimi componenti aggiuntivi relativamente nuovi. Il primo si chiama Material Informatics Toolkit e qui si possono semplicemente inserire stringhe SMILES e creare le immagini che vedete qui. È anche possibile creare funzionalità basate su RDKit; gli autori hanno anche fornito il loro set di funzionalità.
Questo è già un set di dati piuttosto ricco per il (Q)SAR classico. Non abbiamo tempo di approfondire troppo, ma a quanto pare ora ci sono diversi approcci concorrenti su come potremmo prevedere questo risultato, e il (Q)SAR classico prenderebbe semplicemente le caratteristiche numeriche come al solito, inserendole in una sorta di base, ad esempio una rete neurale, o anche si potrebbe usare XG Boost o altri metodi basati su alberi. Basta inserire queste informazioni e procedere, e si dovrebbe impostare una sorta di convalida incrociata come hanno fatto loro. Tendiamo a preferire forse un fattore cinque piuttosto che ometterne uno, ma non credo che alla fine faccia molta differenza.
Ma ora, la cosa davvero interessante è che possiamo adottare questi approcci di apprendimento automatico più moderni, e oggi volevo menzionarne due. Il primo si chiama "graph neural network" e ha avuto un grande successo. Esiste un pacchetto chiamato Chemprop che si basa sulle funzionalità di RDKit e l'idea è quella di costruire una rete neurale grafica che imita la molecola e poi prevederne il risultato una volta configurata, e ora lo abbiamo nel componente aggiuntivo Torch Deep Learning. L'input è semplicemente una stringa SMILES, a cui si fornisce l'output e questo è tutto ciò di cui si ha bisogno. È una configurazione piuttosto semplice, anche se a volte la messa a punto del modello può richiedere un po' di tempo, e offriamo diverse opzioni per questo. Non entreremo nei dettagli oggi.
L'ultima novità che abbiamo, e che ora vorrei menzionare, è questo modello chiamato CNN a trasformatore, in cui vengono utilizzati due, direi forse i due componenti di mini-architettura più popolari della rete neurale: trasformatori e reti neurali, e li si mette insieme in un unico modello.
Qui, stiamo realizzando la parte del trasformatore utilizzando di nuovo un modello BERT classico con input stringa SMILES, e poi ne inoltriamo l'output in un convoluzionale 1D, una serie di livelli convoluzionali 1D e, in definitiva, siamo in grado di migliorare leggermente i risultati del documento. Non entrerò nei dettagli, ma il documento si è concentrato principalmente sul (Q)SAR classico, ma combinandolo con questi metodi moderni, possiamo migliorare ulteriormente i risultati e tutto ciò è ora possibile nel componente aggiuntivo Torch, semplicemente senza dover eseguire le operazioni con clic del mouse. Questo è un esempio di output che potresti ottenere, ad esempio da uno dei modelli; poi l'assemblaggio e tutto il resto sono abbastanza semplici. Sono davvero entusiasta di questa particolare applicazione, Florian. Credo di sperare che forse abbiamo già dimostrato il nostro punto di vista con questo solo esempio di utilizzo della stringa SMILES.
Penso che sia assolutamente qualcosa che suona, almeno per me, che sono un biotecnologo e non ho mai imparato a programmare da zero all'università. Quindi sembra tutto un po' qualcosa che si può fare, ma è molto difficile e, giusto per aggiungere a quanto hai mostrato, i pacchetti sono, diciamo, pacchetti standard del settore integrati, ad esempio, in Python o metodi già riconosciuti e utilizzati, ma ora sono accessibili tramite questa interfaccia intuitiva in cui non è necessario utilizzare alcuna codifica e si può comunque implementare l'output come si farebbe se si stesse programmando. Questa è una cosa positiva, credo, soprattutto per noi.
Andando oltre, penso che JMP aggiunga un tocco di magia al processo, perché la nostra filosofia è quella di avere sempre una stretta integrazione tra modellazione e grafica, e poi abbiamo strumenti come il profiler, che credo stiate per mostrarci, con cui ora possiamo andare più a fondo, non solo adattando un modello, ma osservandolo e poi formulando previsioni o scenari ipotetici. Questo è esattamente il tipo di cose con cui scienziati e ingegneri si scontrano continuamente.
È un'ottima osservazione. Vorrei condividere brevemente la mia schermata e la mia opinione su, diciamo, l'aspetto specifico del perché ritengo che JMP svolga un ruolo importante in futuro. Da un lato, queste tecniche avanzate sembrano essere un esercizio imprescindibile, un'attività imprescindibile, ma dall'altro lato, averle accessibili, e soprattutto come dici tu, scienziati e ingegneri non sono sempre interessati solo a una pura previsione, ma cercano sempre di capire perché le cose accadono.
Soprattutto in ambito di ricerca e sviluppo, ma anche in ambito produttivo, è importante comprendere come interagiscono le cose e una delle caratteristiche più interessanti di JMP sono le tecniche specializzate, come quella che vediamo qui, Functional Data Explorer, che ci permettono di analizzare output complessi come una curva. In questo caso, abbiamo un cromatogramma e la domanda specifica è: come possiamo ottenere la maggior quantità possibile di dati verdi, ovvero il prodotto, senza avere dati rossi?
Questa piattaforma ci consente di fare delle previsioni, ma ci consente anche di esplorare le impostazioni, le cose che possiamo modificare nel nostro processo e vedere quanto o quanto poco ciascuna di esse è correlata al risultato desiderato e non solo; possiamo anche combinare tutto questo con, diciamo, di nuovo, un modello più simile a una scatola nera per ottenere una previsione che ci dice quindi: "Ok, eseguilo in questo modo e otterrai un buon risultato".
Penso che questo sia un angolo, diciamo un po' da una parte, ma poi JMP offre anche delle funzionalità molto potenti, come la maggior parte delle persone che hanno utilizzato JMP sa, e cioè, se diamo un'occhiata a una tabella di dati qui dove abbiamo molti lotti, lotti di fermentazione, e abbiamo appena visto che possiamo dare un'occhiata a queste curve, analizzarle e vedere come la loro forma è correlata ai fattori di input, ma ancora una volta, possiamo anche combinare tutte queste informazioni in un'impronta digitale del lotto e questo è altrettanto facile in JMP.
Ho questo piccolo pulsante qui. Devo riorganizzarmi. Questa è la tabella che cercavo. Tutto quello che devi fare è apportare alcune piccole trasformazioni alla tua tabella dati, cosa facilmente possibile in JMP e, come hai visto, puoi anche automatizzare tutto e, da lì, puoi usare Graph Builder e creare la tua impronta digitale. Penso che non sia stato accurato, e poi puoi colorarla. Trasformala in una mappa termica.
Ora hai un'impronta digitale, che a prima vista è una media di tutti i batch, ma ora puoi anche crearne una per ogni batch e all'istante hai creato un'impronta digitale, che evidenzia specificamente i valori in quell'immagine per ciascuno dei batch e cioè, voglio dire, spetta all'esperto in materia decidere cosa vuoi avere lì dentro, ma ora è facilmente accessibile, non solo per avere una panoramica, ma ancora una volta, puoi facilmente rimetterla in una tabella, unirla ai tuoi dati originali.
Si può usare anche, diciamo, per la classificazione di immagini con machine learning di fascia alta, dove si può prevedere un rendimento o un risultato di interesse, e penso che questo lo renda uno strumento molto potente. Si può vedere quanto sia facile e veloce passare dalla trasformazione dei dati alla visualizzazione, fino alla creazione di predittori di immagini e come utilizzarli. Penso che Russ, tu abbia un altro esempio di questo.
Per lui è incredibile, perché tutte queste nuove possibilità stanno appena emergendo. JMP era già molto potente. Abbiamo molte persone che lo adorano. Ora possiamo fare non solo quello che abbiamo mostrato con le predizioni di stringhe SMILES, ma ora con le immagini come input e come dati, questo apre un mondo completamente nuovo di possibilità di cose che possiamo fare, e come hai appena mostrato, ad esempio, e questa è una cosa a cui forse non penseresti normalmente, soprattutto in JMP, sarebbe convertire dati multifunzionali in un'immagine come hai appena mostrato facilmente, ma una volta fatto questo, ora siamo nel pieno dei moderni metodi di ML per l'elaborazione delle immagini e quello classico è la classificazione delle immagini, che si può fare anche con il componente aggiuntivo Torch. L'idea sarebbe qui. Ho un esempio simile a quello che hai appena mostrato a Florian. In effetti, ho creato queste stesse immagini con Graph Builder.
A proposito, è anche facile importare qualsiasi tipo di immagine direttamente in JMP utilizzando il file, importando più file. Sia che i dati dell'immagine siano già stati acquisiti, ad esempio da una fotocamera, o che si voglia modificarli manualmente manipolando o modificando le caratteristiche numeriche. In definitiva, l'immagine è solo un modo molto intuitivo e compatto per catturare molti dati dettagliati che sono disposti, in genere, lungo l'asse X, e quindi si ha una certa flessibilità su come impostare le coordinate, ma spesso anche queste hanno un significato in termini di ordinamento. Per quanto riguarda il componente aggiuntivo, è molto semplice, quasi più facile di prima: tutto ciò che bisogna fare è scattare l'immagine, renderla il proprio input e poi, indicare l'obiettivo di qualcosa che si desidera calcolare.
Diciamo, in questo caso, come un punteggio di qualità. Puoi anche farne più di uno e magari usare un qualche tipo di framework di convalida, in modo da non sovradimensionare, e poi il componente aggiuntivo ti offre alcune opzioni molto comode per attingere a queste classiche architetture moderne di classificazione delle immagini, e puoi provarne diverse, confrontare rapidamente metodi diversi, oltre a cercare di codificare molte opzioni extra per aiutarti a perfezionare i tuoi modelli, tra cui, ad esempio, la regolazione delle dimensioni dell'immagine di input, qualche ampliamento, e poi, man mano che ti ci abitui, puoi iniziare a sperimentare con cose come il dropout e altri fronzoli per creare un modello davvero personalizzato per una particolare applicazione, e l'aggiunta tiene conto di tutto per te.
Sfrutterà anche l'hardware moderno, in genere un computer Windows con una GPU NVIDIA, o se avete un Mac, in genere vorrete uno dei moderni chip M perché questi calcoli possono diventare molto intensi molto rapidamente, soprattutto con l'aumentare del numero di immagini, sia in termini di numero che di dimensioni. Avere a disposizione una potenza di calcolo potente è utile. Al giorno d'oggi è abbastanza conveniente, per fortuna, e poi si può andare avanti e fare previsioni e cose del genere, cosa mai accaduta prima. Penso che JMP Pro stia vivendo un momento davvero entusiasmante e abbiamo già molti clienti molto entusiasti.
So che alcuni hanno già creato modelli, ad esempio sulle loro immagini, e li stanno implementando nella pratica con Python. Credo che abbiamo già dimostrato la sua utilità, e lo stiamo già facendo, e credo che siamo solo all'inizio. È un periodo davvero entusiasmante.
Assolutamente. Grazie per aver condiviso questi ottimi esempi. Come hai detto, abbiamo già visto che gioca un ruolo importante. Riassumendo ancora una volta, abbiamo sempre puntato su scienziati e ingegneri per aiutarli a utilizzare i dati in modo più efficiente nella loro vita quotidiana, e in genere queste persone non hanno una formazione specifica in materia. Inoltre, sono spesso troppo impegnati per imparare cose come la codifica di modelli di apprendimento automatico da zero.
Sì, per rispondere, abbiamo tutto il set di strumenti a cui molti scienziati e ingegneri sono già abituati in JMP, ma ora siamo anche arrivati a un punto in cui abbiamo già a disposizione un set di strumenti molto intuitivo e completo, e in più, abbiamo a disposizione ciò che abbiamo visto oggi, questi metodi all'avanguardia. Credo che, per riassumerlo in una parola, sì, JMP può svolgere un ruolo significativo nel futuro dell'intelligenza artificiale e del machine learning. Immagino che tu sia d'accordo, vero?
Sono pienamente d'accordo. Non solo, vogliamo davvero che ci sia un terreno interessante tra programmatori e scienziati, e il divario non è banale in molti casi, e c'è conoscenza da acquisire per entrambi. Penso che se potessimo fungere da strumento abilitante, potremmo addirittura spingerci oltre in alcuni casi, e so che scrivendo l'interfaccia, dovremmo confrontarci con alcune domande su quali siano le impostazioni predefinite migliori da impostare, qual è il modo migliore per organizzare le cose. Credo che tutto questo aiuti a gestire le complessità e a ottenere risposte di buona qualità più velocemente.
Non posso che essere d'accordo. Grazie mille, Russ. Credo che questo sia tutto per il nostro discorso di oggi, ma siamo sempre lieti di approfondire ulteriormente questi argomenti.
Grazie.
Grazie. Ciao. Bene.