Battle of the AI Titans Part 3 - Microsoft Azure's AI Services

Chris Dunn,
April 4, 2018

Con questo si conclude la serie in 4 parti sull'intelligenza artificiale (IA). Il primo articolo di questa serie si concentrava sulle basi dell'IA, seguito da altri in cui veniva presentato ciascuno dei principali attori del settore dell'IA: Google, Amazon e oggi anche i servizi IA di Microsoft Azure.

Non si puÚ certo negare che Microsoft Azure stia prendendo in seria considerazione l'intelligenza artificiale. Per esempio, il gruppo di Servizi cognitivi comprende 28 servizi diversi e sono solo una parte dell'intera gamma di servizi relativi all'IA. Ci sono molti aspetti da affrontare. Iniziamo!

Servizi cognitivi

I servizi cognitivi di Microsoft Azure si dividono in 5 aree: Vista, Voce, Lingua, Conoscenza e Ricerca.

Servizi di IA di Microsoft Azure - Visione artificiale

API Visione artificiale

Questo servizio identifica oggetti e azioni all'interno di immagini e video. A partire da questa funzionalit‡ di base puÚ realizzare varie attivit‡, tra cui:

  • Leggere testo stampato e scritto a mano.
  • Riconoscere celebrit‡ e punti di riferimento.
  • Analizzare video identificandone gli oggetti.

Content Moderator

Il servizio consente di moderare testi, immagini e video. Per quanto riguarda i testi, il Content Moderator rileva potenziali espressioni volgari in pi˘ di 100 lingue. PuÚ, inoltre, utilizzare elenchi personalizzati con termini inappropriati definiti tali dallo sviluppatore. Per quanto riguarda i video invece, il Content Moderator valuta i contenuti possibili destinati agli adulti. D‡, inoltre, la possibilit‡ di integrare le revisioni umane, in questo modo sar‡ possibile garantire la supervisione delle operazioni.

Servizio visione artificiale personalizzato (Anteprima)

Gli utenti possono addestrare il servizio caricando immagini gi‡ taggate (oppure caricando immagini senza tag e facendole riconoscere al Servizio visione artificiale personalizzato). Una volta che il sistema dispone delle immagini taggate, l'utente gli "insegna" a riconoscere alcuni aspetti dell'immagine, come una particolare stanza o cibo. Guarda questo video per scoprire quanto facile addestrare il Servizio visione artificiale personalizzato:

https://www.youtube.com/watch?v=3sjInlJcpBs

API Viso

API Viso determina la probabilit‡ che due immagini contengano la stessa persona. » inoltre capace di reperire informazioni su una persona contenuta nell'immagine ñ come et‡, sesso, posa, sorriso, emozioni e presenza di barba ñ e indicare dove si trova (in coordinate) una data parte del viso (per es. il sopracciglio sinistro si trova alle coordinate X e Y). L'ho testato su una mia foto e l'ho trovato di una precisione inquietante.

Ma la cosa davvero interessante che quando ho caricato un'immagine scattata diversi anni fa e una dell'anno scorso, il sistema ha rilevato la stessa et‡. (A quanto pare non sono invecchiato negli ultimi anni!)

API Emozioni

Questo servizio verr‡ disattivato in quanto le sue funzionalit‡ sono incluse nell'applicazione API viso. Come suggerisce il nome, rileva le emozioni delle persone contenute nelle immagini.

Video Indexer (Anteprima)

Una delle cose migliori dei servizi di IA di Microsoft Azure che racchiudono diverse tecnologie di IA per offrire un servizio pi˘ completo. Video Indexer un esempio perfetto, in quanto, pur essendo semplice, comprende le seguenti funzionalit‡:

  • Trascrizione audio: supporta il riconoscimento vocale in inglese, spagnolo, francese, tedesco, italiano, cinese, portoghese (brasiliano), giapponese e russo.
  • Monitoraggio e rilevamento viso: come suggerisce il nome, questa funzionalit‡ identifica i volti (celebrit‡). » possibile anche addestrare Video Indexer a riconoscere altri volti e a identificarli tra i video feed.
  • Indicizzazione della voce: rileva chi pronuncia determinate parole e in che momento.
  • Riconoscimento visivo del testo: estrapola il testo di cartelli stradali, documenti e altri testi che appaiono in un video.
  • Rilevamento dell'attivit‡ vocale: identifica lo sfondo e separa le voci dal rumore di fondo.
  • Rilevamento della scena: esegue l'analisi visiva di un video per rilevare un cambiamento di scena.
  • Estrazione dei keyframe: identifica automaticamente i fotogrammi chiave di un video.
  • Analisi del sentiment.
  • Traduzione: traduce la trascrizione di un video.
  • Moderazione dei contenuti: identifica la presenza di materiale per adulti nei video.
  • Estrazione di parole chiave: Video Indexer identifica le parole chiave basandosi sulla trascrizione.
  • Annotazione: Video Indexer annota i video utilizzando un modello predefinito di 2000 oggetti (in maniera simile a molti altri giganti dell'intelligenza artificiale).

Servizi di IA di Microsoft Azure - Voce

API Traduzione vocale

Questo servizio assomiglia a Google Cloud Translate e va sottolineato che integrato in alcune applicazioni popolari di Microsoft, tra cui Skype e PowerPoint. Tra poco lo vedremo pi˘ nel dettaglio.

API Traduzione vocale, come suggerisce il nome, traduce il parlato attraverso 5 passaggi:

  1. Rileva la presenza di una voce.
  2. Identifica la lingua.
  3. Trascrive le parole in testo.
  4. Traduce il testo.
  5. Legge a voce alta la traduzione.

Qui, sul sito di Microsoft, troverai numerosi e dettagliati casi d'uso. Uno dei pi˘ interessanti perÚ, riguarda l'utilizzo di ciÚ che Microsoft definisce la "funzionalit‡ in tempo reale".

Tale funzionalit‡ consente agli sviluppatori di integrare la traduzione automatica in tempo reale nelle proprie applicazioni. C' da dire che Microsoft utilizza l'API di traduzione vocale sia in Skype che in Powerpoint. Adesso gli utenti che comunicano tramite Skype, ma in lingue diverse, possono fare affidamento sull'API vocale per avere la traduzione delle proprie conversazioni in tempo reale.

Devi tenere una presentazione e i tuoi interlocutori non parlano la tua stessa lingua? Nessun problema! I team di Microsoft si sono uniti per integrare l'API di traduzione vocale in Powerpoint. Il nuovo plugin ti consente di fornire sottotitoli in una lingua diversa durante la presentazione.

Per avere maggiori informazioni su questa tecnologia, scarica l'app di Microsoft Traduttore, disponibile per Android e iOS, sul tuo cellulare.

L'app si basa sull'API di traduzione vocale e fornisce una traduzione in tempo reale durante una conversazione tra due persone. Sia io, che sono madrelingua spagnolo, che un mio collega, madrelingua inglese, abbiamo provato l'app e l'abbiamo trovata sorprendentemente precisa. Per giunta, stato anche molto divertente!

Traduzione vocale in tempo reale

API Riconoscimento del parlante

Il nome calza a pennello! Questo servizio identifica chi sta parlando basandosi sulla voce. Se ripensi a Video Indexer, di cui abbiamo parlato poco fa, questo il servizio che sta alla base della sua capacit‡ di riconoscere chi sta parlando e quando.

Servizio riconoscimento vocale personalizzato

A un alto livello, questo servizio consente di creare il proprio modello di riconoscimento vocale. Con un po' pi˘ di impegno, puoi anche creare modelli linguistici e acustici personalizzati. Microsoft descrive bene le differenze fra modelli qui. Ne ho riportato un estratto:

"Il modello acustico un classificatore che etichetta brevi frammenti di audio in un numero di fonemi, o unit‡ sonore, di una determinata lingua. Per esempio, la parola 'cane' composta da quattro fonemi: 'k a n e'. Queste classificazioni avvengono nell'ordine di 100 volte al secondo.

Il modello linguistico una distribuzione di probabilit‡ su sequenze di parole che aiuta il sistema a decidere quali sequenze di parole sono simili in base alla probabilit‡ delle sequenze di parole stesse. Ad esempio, il cane strofina le zampe' e il canestro finale zampe' suonano uguali, ma la prima ipotesi molto pi˘ probabile, perciÚ il modello di lingua le assegner‡ un punteggio pi˘ alto."

Il Servizio riconoscimento vocale personalizzato perfetto per le applicazioni che contengono termini propri, quindi puÚ essere interessante per coloro che vogliono sviluppare applicazioni. Questo ci porta direttamente al prossimo insieme di servizi di IA di Microsoft Azure - Lingua.

Servizi di IA di Microsoft Azure - Lingua

Language Understanding (LUIS)

Se stai cercando di incorporare azioni basate sulla lingua nella tua app, questo il servizio che fa per te! Attraverso Bing Speech API (che vedremo meglio tra poco) traduce il parlato in testo. DopodichÈ, LUIS lo elabora e ne decifra le intenzioni (o le azioni che l'utente intende intraprendere) e le entit‡ su cui agiscono tali oggetti,

quindi restituisce un file in formato JSON con tutte le informazioni che ti servono per intervenire sulle tue app. Il servizio si ricollega anche al Bot service di Azure, quindi puoi creare rapidamente Bot per alimentare le tue applicazioni.

La cosa migliore che hanno adottato un approccio simile al DialogFlow di Google, offrendo i cosiddetti "modelli di dominio predefiniti" che includono intenzioni, entit‡ e quelli che Azure chiama "enunciati". In questo modo, si puÚ creare un Bot o aggiungere il riconoscimento vocale alle app molto pi˘ rapidamente. Esistono ben 21 modelli di dominio.

Fra parentesi, i miei complimenti a Microsoft per lo straordinario lavoro di documentazione. Tutto quello che serve per iniziare ed essere operativo con i loro servizi disponibile e di facile accesso, compresa una spiegazione di intenzioni, entit‡ ed enunciati, se ti interessasse.

Guarda il riconoscimento vocale in azione

API Controllo ortografico Bing

La maggior parte dei servizi di IA di Microsoft Azure ha nomi che rispecchiano ciÚ per cui sono stati progettati. Questo servizio non fa eccezione: il Controllo ortografico di Bing garantisce che le parole nei documenti e nelle ricerche sul web siano scritte correttamente. L'utente inserisce una stringa di testo e riceve un messaggio in formato JSON contenente le parole errate evidenziate e il punteggio di attendibilit‡ per quel risultato.

API Analisi del testo

Stavo giusto parlando delle ottime capacit‡ di Microsoft nel denominare i propri servizi... questa potrebbe essere l'eccezione alla regola :).

L'API Analisi del testo esegue 3 attivit‡: analisi del sentiment, estrazione di frasi chiave e rilevamento della lingua. Non esattamente ciÚ che immaginavo dall'espressione "Analisi del testo". L'API restituisce un punteggio di sentiment compreso tra 0 e 1, dove 1 pi˘ positivo.

Oltre a rilevare la lingua, l'API restituisce un punteggio di attendibilit‡ compreso tra 0 e 1, dove 1 corrisponde (come puoi immaginare) a una sicurezza del 100%. Ad oggi, Microsoft supporta l'estrazione di frasi chiave solo in alcune lingue, ma quelle indicate nell'anteprima sono davvero tantissime: consulta lalista completa qui.

API Traduzione testuale

L'API Traduzione testuale rientra nella stessa categoria di API Traduzione vocale - Microsoft Translator. La sola differenza (come si puÚ facilmente intuire) che lavora unicamente su testi scritti, rilevandone la lingua e fornendo la relativa traduzione. Oggi Microsoft per questo servizio utilizza la Neural Machine Translation (NMT), aspetto che da un punto di vista tecnico la colloca al pari di AWS e Google.

Servizi di IA di Microsoft Azure - Conoscenza

QnA Maker (Anteprima)

Si tratta del servizio di FAQ di Azure. Con QnA Maker, creare una FAQ davvero semplice: basta inserire un link a una fonte online di Q&A o caricare un documento (i formati supportati sono .tsv, .pdf, .doc, .docx e .xlsx) che sia ben formattato con un sommario, rinominare il proprio servizio, ed fatta: Azure si occuper‡ del resto.

Il servizio pensato per essere usato in combinazione con il Bot Service di Azure per alimentare le risposte di cui un bot puÚ avere bisogno.

Servizio decisionale personalizzato (Anteprima)

Suggerire contenuti in base alla cronologia di lettura degli articoli di un utente diventata una pratica sempre pi˘ comune tra vari siti e provider di contenuti. Ora, grazie al Servizio decisionale personalizzato, questa funzionalit‡ disponibile mediante una semplice chiamata API anche ai semplici sviluppatori come me.

Il Servizio decisionale personalizzato cerca di comprendere il contesto delle informazioni di cui hai bisogno, apprendendo in tempo reale per suggerire contenuti migliori. Allo stesso tempo sperimenta le nuove opzioni, in modo da adattarsi alle tendenze emergenti.

Project Knowledge Exploration

Orientato all'ambito accademico, questo servizio rientra in quelli che Microsoft chiama Cognitive Services Labs e trasforma una richiesta in linguaggio naturale in un'espressione di query strutturata per effettuare ricerche nelle riviste accademiche. Presenta inoltre altre capacit‡ che aiutano i ricercatori, tra cui il completamento automatico.

Project Academic Knowledge

Anche questo rientra nei Cognitive Services Labs. A partire da una richiesta in linguaggio naturale, il servizio comprende l'intenzione accademica e recupera le informazioni richieste utilizzando il Microsoft Academic Graph (MAG), che tra poco vedremo nel dettaglio.

» inoltre in grado di calcolare la somiglianza tra due paper non solo in termini di parole ma anche di intenzioni.

Se vi state chiedendo che cos' il MAG, lascio rispondere direttamente a Microsoft:

"Il Microsoft Academic Graph un grafico eterogeneo contenente registri di pubblicazioni scientifiche e le relative relazioni di citazione, cosÏ come autori, istituzioni, riviste, conferenze e ambiti di studio. Il grafico viene utilizzato per alimentare Bing, Cortana, Word e Microsoft Academic; attualmente viene aggiornato su base settimanale."

Project Entity Linking

Questo servizio ottimo per fornire contesto alle informazioni indicate. Prima identifica "entit‡" come la Terra, gli Stati Uniti o l'Universit‡ della Florida (la mia preferita :) ), poi aggiunge automaticamente un link alla voce di ciascuna entit‡ su Wikipedia, fornendo cosÏ contesto.

Servizi di IA di Microsoft Azure - Ricerca

API Suggerimenti automatici Bing

Questo servizio molto semplice, poichÈ permette di inserire funzionalit‡ "type-ahead" intelligenti nella tua applicazione. Pi˘ semplice di cosÏ...

API Ricerca notizie Bing

Un altro servizio relativamente semplice. Questa API fornisce:

  • Un'immagine per l'articolo.
  • Un URL all'articolo.
  • Informazioni sul provider di notizie.

API di ricerca web di Bing

API di ricerca web di Bing

Un altro servizio semplice che esegue una ricerca sul web e riporta il numero di articoli disponibili corrispondenti all'argomento e un sottoinsieme di tali articoli per titolo, link e data dell'ultima indicizzazione. L'utente puÚ anche impostare una serie di parametri, tra cui se la ricerca debba essere "sicura" e il tipo di contenuti desiderati (per es. News, Immagini, ecc.)

API Ricerca entit‡ Bing

In linea con gli altri servizi di Bing, si tratta di un altro prodotto mirato che restituisce link e informazioni su entit‡ (aziende, luoghi, persone, libri, ecc) piuttosto che link a siti web che menzionano le entit‡.

API Ricerca immagini Bing

L'API Ricerca immagini Bing restituisce anteprime, URL, metadati e altro ancora in seguito all'invio di una richiesta.

API Ricerca video Bing

Questo servizio restituisce il nome e il collegamento ai video che corrispondono ai termini di ricerca. L'API di ricerca video di Bing consente di visualizzare le anteprime dei video nei risultati e di restituire una grande quantit‡ di metadati tra cui un'immagine, l'attribuzione di media, il luogo di registrazione del video, l'editore, ecc.

API Ricerca personalizzata Bing

Questo servizio mette la potenza di Bing Search nelle mani degli sviluppatori e puÚ essere usato in due modalit‡ principali: Ricerca sito e Ricerca verticale personalizzata. Entrambi avvengono nell'interfaccia di ricerca personalizzata.

Qui puoi aggiungere l'elenco di siti web che vuoi far cercare a Bing, il quale restituir‡ solo risultati provenienti da tali siti. Puoi anche "bloccare" un particolare sito: in questo modo ti assicuri che i risultati corrispondenti al termine di ricerca del sito "bloccato" compaiano per primi rispetto agli altri.

Per effettuare una ricerca sul sito, inserisci l'indirizzo dei siti web e Ricerca personalizzata Bing far‡ il resto! Allo stesso modo, per la Ricerca verticale personalizzata basta aggiungere i siti che vuoi che vengano analizzati.

Microsoft offre anche un'interfaccia utente da utilizzare una volta impostata la ricerca, alla quale applicare piccole personalizzazioni alla grafica per una migliore corrispondenza con il tuo sito. Per saperne di pi˘, guarda questa ottima demo di Mahesh Balachandran

https://www.youtube.com/watch?v=d5skeIApBo4

Servizi di IA di Microsoft Azure - Machine Learning

Workbench

Workbench l'ultimo arrivato tra gli strumenti per i data scientist. Si tratta di un'applicazione desktop che consente ai data scientist di preparare i dati, creare modelli di IA e rivedere i risultati e che offre una serie di viste dei dati estremamente utili. Comprende inoltre i Jupyter Notebook, un must per i data scientist.

Workbench supporta anche ciÚ che Azure chiama "Trasformazioni basate su esempi". Questa potente funzionalit‡ ti consente di esaminare una tabella contenente dati e di specificare in una colonna a lato come verranno visualizzati gli elementi. Per vederlo in azione, guarda questo video. Rientra decisamente tra i miei preferiti!

https://www.youtube.com/watch?v=9KG0Sc2B2KI

Per una panoramica di Workbench, guarda questo breve video:

https://www.youtube.com/watch?v=tW1JV6bHXFA

Servizio sperimentazione di Azure Machine Learning

Se associ questo servizio a Workbench e al servizio di gestione dei modelli (specificato nella sezione che trovi di seguito), otterrai qualcosa di simile a SageMaker di AWS. Se non hai familiarit‡ con questo prodotto, dai un'occhiata al mio articolo sulle funzioni dell'intelligenza artificiale di AWS in cui troverai un riepilogo delle sue funzionalit‡.

Il servizio di sperimentazione compatibile con Workbench e consente la gestione dei progetti, l'integrazione del sistema Git, il controllo degli accessi, il roaming e la condivisone. Ti consente inoltre di eseguire ogni volta i tuoi modelli nello stesso identico ambiente, utilizzando solo algoritmi diversi.

Quindi, registra la cronologia di esecuzione e ti d‡ la possibilit‡ di vedere il modello che soddisfa maggiormente le tue esigenze. Per quanto riguarda l'esecuzione degli esperimenti, supporta la macchina nativa, un Docker locale, un Docker su VM e un cluster Spark ridimensionato (maggiori informazioni su Spark pi˘ avanti).

Servizio gestione modelli di Azure Machine Learning

Il servizio ti consente di implementare i tuoi modelli in una grande variet‡ di ambienti. Richiede l'utilizzo di comandi dell'interfaccia della riga di comando che contengono i modelli in immagini Docker. Al termine, possibile implementare i modelli su macchine locali, server locali, cloud e dispositivi periferici IoT. Questo servizio ha molto da offrire. Per saperne di pi˘, fai clic qui.

Libreria Microsoft Machine Learning per Apache Spark (MMLSpark)

Questa libreria include un'integrazione delle pipeline SparkML con Microsoft Cognitive Toolkit e OpenCV. Se lavori con Workbench e conduci i tuoi esperimenti su Docker, non devi fare nient'altro: Workbench utilizza automaticamente MMLSpark.

Data Science Virtual Machine (DSVM)

CosÏ come AWS dotata di AMI per il deep learning precompilate con componenti per attivit‡ di IA e Machine Learning, i servizi IA di Microsoft Azure includono macchine virtuali predefinite pronte per svolgere compiti di intelligenza artificiale. Azure offre opzioni sia per Linux che per Windows con un numero impressionante di applicazioni gi‡ installate, tra cui Jupyter Notebook, database (SQL e PostgreSQL), R, Python e molti altri. Puoi visualizzare l'elenco completo sul loro sito qui.

Va sottolineato che DSVM di Azure offre una serie di esempi predefiniti e Jupyter Notebook di esempio per essere subito operativo.

Data Science Virtual Machine (DSVM)

Azure Batch

Questo potente servizio automatizza l'esecuzione degli algoritmi di apprendimento automatico su insiemi multipli di dati. Avvia le risorse necessarie per eseguire calcoli in parallelo e le arresta immediatamente al termine dell'attivit‡.

Si tratta del servizio ideale per i programmatori che desiderano eseguire gli algoritmi di apprendimento automatico su grandi quantit‡ di dati.

___________________________________________________________________________________

E questa era una panoramica dei servizi di AI di Microsoft Azure.

Se desideri avere dei consigli pratici e conoscere le strategie per ottenere il massimo dall'AI, segui il nostro webinar on-demand.

Chris Dunn