Progettazione dell'architettura dell'intelligenza artificiale

L'intelligenza artificiale (IA) è la capacità di un computer di imitare il comportamento umano intelligente. Tramite l'intelligenza artificiale, i computer possono analizzare le immagini, comprendere il parlato, interagire in modo naturale ed eseguire stime usando i dati.

Illustration depicting the relationship of artificial intelligence as a parent concept. Within AI is machine learning. Within machine learning is deep learning.

Concetti relativi all'intelligenza artificiale

Algoritmo

Un algoritmo è una sequenza di calcoli e regole usati per risolvere un problema o analizzare un set di dati. È analogo a un diagramma di flusso, con istruzioni dettagliate per le domande da porre, ma è scritto in codice matematico e di programmazione. Un algoritmo può descrivere come determinare se un animale domestico è un gatto, un cane, un pesce, un volatile o una lucertola. Un altro algoritmo molto più complesso può descrivere come identificare una lingua scritta o parlata, analizzarne le parole, tradurle in una lingua diversa e quindi controllare l'accuratezza della traduzione.

Apprendimento automatico

Machine Learning è una tecnica di intelligenza artificiale che usa algoritmi matematici per creare modelli predittivi. Viene usato un algoritmo per analizzare i campi dati e per "apprendere" da questi dati usando gli schemi trovati per generare modelli. Questi modelli vengono quindi usati per eseguire stime o prendere decisioni informate in merito a nuovi dati.

I modelli predittivi vengono convalidati in base a dati noti, misurati in base alle metriche delle prestazioni selezionate per scenari aziendali specifici e quindi modificati in base alle esigenze. Questo processo di apprendimento e convalida è detto training. Ripetendo periodicamente il training, i modelli ML migliorano nel tempo.

Deep Learning

Deep Learning è un tipo di Machine Learning in grado di determinare se le stime sono accurate. Usa inoltre gli algoritmi per analizzare i dati, ma su scala più vasta rispetto a Machine Learning.

Le funzionalità di Deep Learning usano reti neurali artificiali, costituite da più livelli di algoritmi. Ogni livello esamina i dati in ingresso, esegue un'analisi specializzata e produce un output che gli altri livelli possono comprendere. L'output viene quindi passato al livello successivo, in cui un algoritmo diverso esegue la propria analisi e così via.

Grazie alla presenza di numerosi livelli in ogni rete neurale e talvolta all'uso di più reti neurali, un computer può apprendere tramite le proprie attività di elaborazione dati. A tale scopo sono necessari molti più dati e molta più potenza di calcolo rispetto a quanto necessario per le funzionalità di Machine Learning.

Bot

Un bot è un programma software automatizzato progettato per eseguire una determinata attività. È paragonabile a un robot senza corpo. I primi bot erano piuttosto semplici e gestivano attività ripetitive e voluminose con una logica algoritmica relativamente lineare. Un esempio sono gli agenti di ricerca Web usati dai motori di ricerca per esplorare e catalogare automaticamente il contenuto Web.

I bot sono diventati molto più sofisticati e usano l'intelligenza artificiale e altre tecnologie per simulare l'attività umana e i processi decisionali, spesso interagendo direttamente con gli esseri umani tramite il testo o anche il parlato. Ci sono ad esempio bot in grado di effettuare una prenotazione per la cena, chatbot (o intelligenza artificiale conversazionale) che forniscono supporto nelle interazioni con il servizio clienti e social bot che pubblicano le ultime notizie o dati scientifici nei siti di social media.

Microsoft offre il servizio Azure Bot, un servizio gestito creato appositamente per lo sviluppo di bot di livello aziendale.

Sistemi autonomi

I sistemi autonomi fanno parte di una nuova classe in evoluzione che va oltre l'automazione di base. Invece di eseguire ripetutamente un'attività specifica con nessuna o poche variazioni (come fanno i bot), i sistemi autonomi portano l'intelligenza nei computer in modo che possano adattarsi ai cambiamenti degli ambienti per raggiungere un obiettivo desiderato.

Gli edifici intelligenti usano sistemi autonomi per controllare automaticamente aspetti come illuminazione, ventilazione, aria condizionata e sicurezza. Un esempio più sofisticato è quello di un robot autonomo che esplora un pozzo minerario collassato per mappare accuratamente l'interno, determinare quali parti sono strutturalmente solide, analizzare la respirabilità dell'aria e rilevare segnali di minatori intrappolati che necessitano di aiuto, il tutto senza un monitoraggio umano in tempo reale da remoto.

Informazioni generali sull'intelligenza artificiale Microsoft

Per altre informazioni sull'intelligenza artificiale Microsoft e per notizie aggiornate correlate, vedere:

Tipi di architettura di alto livello

Intelligenza artificiale predefinita

Come dice la parola, l'intelligenza artificiale predefinita è costituita da API, servizi e modelli IA preconfezionati pronti all'uso. Queste soluzioni consentono di aggiungere intelligenza ad app, siti Web e flussi senza dover raccogliere dati e quindi creare modelli personalizzati, eseguirne il training e pubblicarli.

Un esempio di intelligenza artificiale predefinita è un modello già sottoposto a training che è possibile incorporare così come è o usare come base per un ulteriore training personalizzato. Un altro esempio è un servizio API basato sul cloud che è possibile chiamare per elaborare il linguaggio naturale nel modo desiderato.

Servizi cognitivi di Azure

Servizi cognitivi offre agli sviluppatori la possibilità di usare API predefinite e toolkit di integrazione per creare applicazioni in grado di vedere, ascoltare, parlare, comprendere e persino iniziare a ragionare. Il catalogo di servizi inclusi in Servizi cognitivi può essere suddiviso in cinque categorie principali: Visione, Voce, Lingua, Ricerca Web e Decisione/Raccomandazione.

Modelli di intelligenza artificiale predefiniti in AI Builder

AI Builder è una nuova funzionalità di Microsoft Power Platform che fornisce un'interfaccia basata su puntamento e clic per l'aggiunta di intelligenza artificiale alle app, anche senza competenze di scrittura di codice o data science. Alcune funzionalità di AI Builder non sono ancora state rilasciate per la disponibilità generale e rimangono in stato di anteprima. Per altre informazioni, vedere la pagina Disponibilità delle funzionalità per area .

È possibile creare modelli personalizzati ed eseguirne il training, ma AI Builder fornisce anche modelli IA predefiniti immediatamente pronti per l'uso. È ad esempio possibile aggiungere un componente in Microsoft Power Apps basato su un modello predefinito che riconosce le informazioni di contatto dai biglietti da visita.

Intelligenza artificiale personalizzata

Sebbene l'intelligenza artificiale predefinita sia utile (e sempre più flessibile), il modo migliore per ottenere ciò che serve dall'intelligenza artificiale è probabilmente quello di creare un sistema personalizzato. Si tratta ovviamente di un argomento molto profondo e complesso, di cui verranno qui esaminati alcuni concetti di base in aggiunta a quanto appena illustrato.

Linguaggi di codice

Il concetto di base dell'intelligenza artificiale è l'uso di algoritmi per analizzare i dati e generare modelli per descriverli (o per assegnare un punteggio) in modi utili. Gli algoritmi vengono scritti da sviluppatori e data scientist (e talvolta da altri algoritmi) usando il codice di programmazione. Due dei linguaggi di programmazione più diffusi per lo sviluppo dell'intelligenza artificiale sono attualmente Python e R.

Python è un linguaggio di programmazione di alto livello per utilizzo generico. Ha una sintassi semplice e di facile apprendimento che ne enfatizza la leggibilità. Non è presente alcun passaggio di compilazione. Python ha una vasta libreria standard, ma offre anche la possibilità di aggiungere moduli e pacchetti. Ciò favorisce la modularità e consente di espandere le funzionalità quando necessario. C'è un ecosistema vasto e in espansione di librerie IA e ML per Python, tra cui molte disponibili in Azure.

R è un linguaggio e un ambiente per l'elaborazione statistica e la grafica. Può essere usato per diversi scopi, dal mapping di tendenze sociali e di marketing generali online allo sviluppo di modelli finanziari e climatici.

Microsoft ha adottato il linguaggio di programmazione R e offre molte opzioni diverse per consentire agli sviluppatori R per eseguire il codice in Azure.

Formazione

Il training è fondamentale in ambito di Machine Learning. Si tratta del processo iterativo di "apprendimento" di un algoritmo per la creazione di modelli, che vengono usati per analizzare i dati e quindi eseguire stime accurate basate su di essi. In pratica, questo processo comprende tre fasi generali: training, convalida e test.

Durante la fase di training, a un set di qualità di dati noti vengono aggiunti tag in modo che i singoli campi siano identificabili. I dati con tag vengono inseriti in un algoritmo configurato per eseguire una stima specifica. Al termine, l'algoritmo restituisce un modello che descrive gli schemi individuati come set di parametri. Durante la convalida, vengono aggiunti tag a nuovi dati che vengono usati per testare il modello. L'algoritmo viene modificato in base alle esigenze ed eventualmente sottoposto a ulteriori fasi di training. Infine, la fase di test usa dati reali senza tag né destinazioni preselezionate. Se i risultati del modello sono accurati, il modello viene considerato pronto per l'uso e può essere distribuito.

Ottimizzazione degli iperparametri

Gli iperparametri sono variabili di dati che regolano il processo di training. Si tratta di variabili di configurazione che controllano il funzionamento dell'algoritmo. Gli iperparametri vengono quindi in genere impostati prima dell'inizio del training del modello e non vengono modificati durante il processo di training come avviene per i parametri. L'ottimizzazione degli iperparametri comporta l'esecuzione di prove nell'attività di training, la valutazione delle prestazioni nell'esecuzione del processo e quindi la modifica in base alle esigenze. Questo processo genera più modelli, ognuno dei quali viene sottoposto a training usando famiglie diverse di iperparametri.

Selezione del modello

Il processo di training e ottimizzazione degli iperparametri produce numerosi modelli candidati. Questi possono presentare molte differenze, tra cui il lavoro necessario per preparare i dati, la flessibilità del modello, la quantità di tempo di elaborazione e, naturalmente, il livello di accuratezza dei risultati. La scelta del modello sottoposto a training migliore per i propri vincoli ed esigenze è detta selezione del modello, ma riguarda sia la pianificazione preventiva prima del training che la scelta dell'opzione più adatta.

Machine Learning automatizzato (AutoML)

Machine Learning automatizzato, o AutoML, indica il processo di automazione delle attività iterative per lo sviluppo di modelli di Machine Learning che richiedono molto tempo. Può ridurre significativamente il tempo necessario per ottenere modelli di Machine Learning pronti per la produzione. Le funzionalità di Machine Learning automatizzato possono fornire supporto per la selezione del modello, l'ottimizzazione degli iperparametri, il training del modello e altre attività, senza richiedere una conoscenza approfondita della programmazione o del dominio.

Punteggio

L'assegnazione di un punteggio, anche detta stima, è il processo di generazione di valori in base a un modello di Machine Learning sottoposto a training, considerando alcuni nuovi dati di input. I valori, o punteggi, creati possono rappresentare stime di valori futuri, ma possono anche rappresentare una categoria o un risultato probabile. Il processo di assegnazione di un punteggio può generare molti tipi diversi di valori:

  • Un elenco di elementi consigliati e un punteggio di somiglianza

  • Valori numerici, per i modelli di serie temporali e i modelli di regressione

  • Un valore di probabilità che indica la probabilità che un nuovo input appartenga a una categoria esistente

  • Il nome di una categoria o di un cluster a cui un nuovo elemento è più simile

  • Classe o risultato stimato, per i modelli di classificazione

L'assegnazione di un punteggio batch avviene quando i dati vengono raccolti durante un periodo di tempo fisso e quindi elaborati in un batch. Ciò può includere la generazione di report aziendali o l'analisi della fedeltà dei clienti.

L'assegnazione di un punteggio in tempo reale è un processo di assegnazione in corso che viene eseguito il più rapidamente possibile. L'esempio classico è il rilevamento delle frodi con carte di credito, ma l'assegnazione di un punteggio in tempo reale può essere usata anche nel riconoscimento vocale, nelle diagnosi mediche, nelle analisi di mercato e in molte altre applicazioni.

Informazioni generali sull'intelligenza artificiale personalizzata in Azure

Offerte della piattaforma Azure per intelligenza artificiale

Di seguito sono illustrati i diversi servizi, tecnologie e piattaforme di Azure che è possibile usare per sviluppare soluzioni di intelligenza artificiale per le proprie esigenze.

Azure Machine Learning

Servizio di Machine Learning di livello aziendale per accelerare la creazione e la distribuzione dei modelli. Azure Machine Learning offre interfacce Web e SDK per eseguire rapidamente il training e la distribuzione di modelli e pipeline di Machine Learning su larga scala. Usare queste funzionalità con framework Python open source, come PyTorch, TensorFlow e scikit-learn.

Architetture di riferimento di Machine Learning per Azure

Machine Learning automatizzato di Azure

Azure offre supporto completo per i processi di Machine Learning automatizzato. Gli sviluppatori possono creare modelli usando un'interfaccia utente senza codice o un'esperienza di notebook di tipo code-first.

Servizi cognitivi di Azure

Si tratta di una famiglia completa di servizi di intelligenza artificiale e API cognitive per la creazione di app intelligenti. Questi modelli di intelligenza artificiale specifici del dominio e già sottoposti a training possono essere personalizzati con i propri dati.

Servizio di ricerca cloud basato sull'intelligenza artificiale per lo sviluppo di app per dispositivi mobili e Web. Il servizio consente di eseguire ricerche su contenuto eterogeneo privato, con opzioni per l'arricchimento tramite intelligenza artificiale se il contenuto non è strutturato o non è ricercabile in formato non elaborato.

Servizio Azure Bot

Ambiente creato appositamente per lo sviluppo di bot con modelli predefiniti per iniziare rapidamente.

Apache Spark in Azure

Apache Spark è un framework di elaborazione parallela che supporta l'elaborazione in memoria per migliorare le prestazioni delle applicazioni di analisi di Big Data. Spark fornisce le primitive per il cluster computing in memoria. Un processo Spark può caricare e memorizzare nella cache i dati, nonché eseguire ripetutamente query su di essi con tempi molto più rapidi rispetto alle applicazioni basate su disco, ad esempio Hadoop.

Apache Spark in Azure HDInsight è l'implementazione Microsoft di Apache Spark nel cloud. I cluster Spark in HDInsight sono compatibili con Archiviazione di Azure e Azure Data Lake Storage, quindi è possibile usare i cluster HDInsight Spark per elaborare i dati archiviati in Azure.

La libreria di Microsoft Machine Learning per Apache Spark è SynapseML (in precedenza nota come MMLSpark). Questa libreria open source aggiunge molti strumenti di deep learning e data science, funzionalità di rete e prestazioni di livello di produzione all'ecosistema Spark. Altre informazioni sulle funzionalità e le funzionalità di SynapseML.

Azure Databricks Runtime per Machine Learning

Azure Databricks è una piattaforma di analisi basata su Apache Spark che offre configurazione con un clic, flussi di lavoro semplificati e un'area di lavoro interattiva per la collaborazione tra data scientist, ingegneri e analisti aziendali.

Databricks Runtime per Machine Learning (Databricks Runtime ML) consente di avviare un cluster Databricks con tutte le librerie necessarie per il training distribuito. Fornisce un ambiente pronto all'uso per l'esecuzione di attività di Machine Learning e data science. Contiene inoltre più librerie di ampia diffusione, tra cui TensorFlow, PyTorch, Keras e XGBoost. È inoltre supportato il training distribuito con Horovod.

Storie dei clienti

Diversi settori stanno applicando l'intelligenza artificiale in modi innovativi e interessanti. Di seguito sono riportati alcuni case study e casi di successo dei clienti:

Esplorare altre storie dei clienti in relazione all'intelligenza artificiale

Passaggi successivi