Design dell'architettura dell'intelligenza artificiale (IA)
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.
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
Il Machine learning è una tecnica IA 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 di Azure AI
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 di Azure AI 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 nello stato di anteprima. Per maggiori informazioni, consultare la pagina Disponibilità delle funzionalità in base all'area geografica.
È 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.
Azure for Python developers (Azure per sviluppatori Python)
Introduzione a Machine Learning con Python e Azure Notebooks
scikit-learn
. Libreria ML open source per PythonPyTorch. Libreria Python open source con un vasto ecosistema che è possibile usare per Deep Learning, visione artificiale, elaborazione del linguaggio naturale e altro ancora
TensorFlow. Libreria matematica simbolica open source usata anche per le applicazioni ML e le reti neurali
Tutorial: Applicare modelli di Machine Learning in Funzioni di Azure con Python e TensorFlow
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
Notebook Python SDK di Azure Machine Learning. Repository GitHub di notebook di esempio che illustrano l'SDK Python di Azure Machine Learning.
Eseguire il training di modelli R usando l'interfaccia della riga di comando di Azure ML (v2)
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.
Informazioni sui prodotti di machine learning forniti da Microsoft
Che cos'è Azure Machine Learning? Informazioni generali con collegamenti a numerosi SDK, risorse di apprendimento, documentazione e altro ancora
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.
Home page del prodotto Machine Learning automatizzato di Azure
Infografica su Machine Learning automatizzato di Azure (PDF)
Tutorial: Creare un modello di classificazione con ML automatizzato in Azure Machine Learning
Usare l'estensione dell'interfaccia della riga di comando per Azure Machine Learning
Servizi di Azure AI
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.
Ricerca cognitiva di Azure
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.
Introduzione all'arricchimento tramite intelligenza artificiale
Panoramica della documentazione di Ricerca cognitiva di Azure
Scelta di una tecnologia di elaborazione del linguaggio naturale in Azure
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.
Microsoft Machine Learning Library per Apache Spark è SynapseML (precedentemente conosciuto come MMLSpark). Questa libreria open source aggiunge all'ecosistema Spark molti strumenti di deep learning e data science, funzionalità di rete e prestazioni a livello di produzione. Maggiori informazioni su funzionalità e caratteristiche di SynapseML.
Panoramica di Azure HDInsight. Informazioni di base su funzionalità, architettura dei cluster e casi d'uso, con collegamenti ad argomenti di avvio rapido ed esercitazioni.
Tutorial: Creare un'applicazione di machine learning Apache Spark in Azure HDInsight
Configurare le impostazioni del cluster HDInsight Apache Spark
Repository GitHub per SynapseML; Microsoft Machine Learning Library per Apache Spark
Creare una pipeline di Machine Learning Apache Spark in HDInsight
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.
Assegnazione dei punteggi in batch per i modelli Spark di Machine Learning in Azure Databricks
Panoramica delle funzionalità di Deep Learning per Azure Databricks
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:
ASOS: Rivenditore online risponde alle sfide con il servizio Azure Machine Learning
Volkswagen: La traduzione automatica permette a Volkswagen di parlare 40 lingue
Asklepios Klinik Altona: Chirurgia di precisione con Microsoft HoloLens 2 e la visualizzazione 3D
Esplorare altre storie dei clienti in relazione all'intelligenza artificiale
Passaggi successivi
Per informazioni sui prodotti Microsoft di sviluppo di intelligenza artificiale disponibili, vedere la pagina dedicata alla piattaforma di intelligenza artificiale Microsoft.
Per risorse di formazione sullo sviluppo di soluzioni di intelligenza artificiale, vedere Microsoft AI School.
La pagina Intelligenza artificiale Microsoft su GitHub: esempi, architetture di riferimento e procedure consigliate organizza i repository Microsoft open source basati sull'intelligenza artificiale, fornendo esercitazioni e materiali didattici.