Skip to main content

Battaglia tra i titani dell'intelligenza artificiale parte 2: servizi IA di Google

Chris Dunn, Regional Vice President - APAC
March 27, 2018

Questo blog il terzo capitolo della nostra serie sull'IA. Nei primi due abbiamo parlato dei casi d'uso dell'IA, delle tecnologie che la supportano e dei servizi di IA offerti da Amazon. Oggi ci concentriamo sui servizi di IA di Google.

Servizi di IA di Google

Come osservato nel nostro ultimo blog, ogni provider di piattaforme di IA ha punti di forza diversi a seconda della sua eredit‡. Un esempio il servizio AWS Comprehend, che utilizza quella che forse la pi˘ ampia raccolta di recensioni e feedback, ovvero i commenti ai prodotti in vendita su Amazon. Quando si pensa al passato e agli investimenti recenti di Google, alcuni punti di forza sono ovvi: la ricerca, il riconoscimento delle immagini e la traduzione linguistica. Ma c' molto di pi˘. In questo blog analizzeremo tutti i servizi di IA di Google.

Se sei debole di stomaco, ti avverto: divento un po' nerd quando parlo delle TPU di Google. Quindi tieniti forte.

Si parte!

Cloud AutoML - Alpha

AutoML al momento in versione alfa, quindi non ancora in distribuzione. Ma non lasciarti scoraggiare. Se sei alla ricerca di una tecnologia per il riconoscimento delle immagini, dai un'occhiata ad AutoML.

La vision di Google quella di offrire una suite di prodotti e servizi per l'apprendimento automatico (Machine Learning, ML) che consentano agli sviluppatori di creare modelli di ML di alta qualit‡. Il primo della suite AutoML Vision per il riconoscimento delle immagini. Questo servizio si basa sulla tecnologia di riconoscimento delle immagini proprietaria di Google, probabilmente una delle pi˘ collaudate al mondo.

AutoML Vision non si limita all'IA, ma prevede la presenza di un intervento umano che crea ancora pi˘ valore. Se non hai svolto il lavoro preliminare di inserimento di etichette e immagini per addestrare AutoML Vision, puoi farlo fare a un team di crowdsourcing che generer‡ i tag per le immagini che hai inserito.

TPU su cloud

TPU sta per Tensor Processor Unit. Questa unit‡ di elaborazione quella che rende possibili le funzionalit‡ interne di IA di Google. Adesso Google sta mettendo il potere delle TPU a disposizione del grande pubblico.

E adesso scusami se entro un attimo nello specifico. Se sei un ingegnere elettronico o informatico, riuscirai a seguirmi senza problemi. Per chi non lo , cercherÚ di esprimere la bellezza della TPU in termini non troppo tecnici.

Per farla breve, si stima che la TPU su cloud abbia prestazioni 15-30 volte migliori a fronte di un consumo di energia molto pi˘ ridotto rispetto alle macchine virtuali alimentate da CPU tradizionali, con un miglioramento in termini di performance/watt da 30 a 80 volte. CiÚ vuol dire che a parit‡ di denaro un utente di un servizio IA di Google ottiene prestazioni pi˘ elevate rispetto ad altri servizi.

Vuoi sapere perchÈ? Seguimi nella tana del coniglio!

Ci sono quattro aspetti delle TPU da considerare.

Bit

Partiamo dai modelli di Machine Learning (ML) nel contesto di una rete neurale. Una rete neurale paragonabile a una vera e propria rete di nodi che si forma al momento di prendere una decisione.

Rete neurale a forma di cervello

Per ciascun nodo, moltiplichiamo i dati per il peso e aggiungiamo i risultati. Infine, decidiamo se quel "neurone" "acceso" o "spento" a seconda del risultato ottenuto. Il modo pi˘ semplice per farlo utilizzare una funzione step che metta a confronto il risultato con un valore impostato. Se il risultato maggiore di quel numero, allora il neurone "acceso". Diversamente, "spento".

Per varie ragioni, questa semplice funzione step non basta a comunicarci i risultati combinati tra i neuroni nella rete. Pertanto, utilizziamo delle funzioni pi˘ complesse, dette funzioni di attivazione.

In ogni neurone moltiplichiamo i dati per il peso, aggiungiamo i risultati e infine applichiamo una funzione di attivazione.

Questo approccio interessante perchÈ il livello di dettaglio necessario per ciascun neurone non cosÏ elevato. Come affermato sul blog di Google, quando cerchi di capire se fuori sta piovendo, non ti serve sapere il numero delle gocce che cadono ogni secondo, ma solo se stanno cadendo oppure no. CiÚ significa che non necessario un elevato livello di precisione (in termini matematici, si pensi al numero di cifre decimali) per ciascun neurone. Tutto chiaro fin qui?

Le tradizionali CPU e GPU funzionano a 32 o 64 bit. Ma, in caso di semplici calcoli per i quali non serve arrivare alla trentesima cifra decimale, non necessario utilizzare 32 o 64 bit. Andr‡ bene anche un semplice, e se vogliamo un po' fuori moda, 8 bit. » proprio cosÏ che Google ha sviluppato le sue TPU.

Architettura

Per creare le CPU esistono vari design di progettazione. Lo stile RISC comune e si basa su semplici istruzioni utilizzate dalla maggior parte delle applicazioni. Google, al contrario, utilizza lo stile CISC, che si concentra su attivit‡ pi˘ complesse. Di conseguenza, il chip non altrettanto efficiente in tutte le applicazioni, ma molto utile per le attivit‡ per le quali stato progettato, come l'intelligenza artificiale.

CPU, GPU, TPU... oh mamma!

Le TPU svolgono quel lavoro che Google definisce elaborazione delle matrici (matrix processing). Le CPU sono progettate per l'elaborazione scalare (scalar processing) od operazione per istruzione, mentre le GPU sono note anche come processori vettoriali. Queste riescono a eseguire operazioni simultaneamente, ottenendo centinaia di migliaia di operazioni in un solo ciclo di clock. Le TPU sono progettate per l'elaborazione di matrici, dalla quale si ottengono centinaia di migliaia di operazioni per ogni ciclo di clock (ovvero molte pi˘ operazioni per ciclo di clock rispetto alle GPU).

Grafica di una matrice

Il processore romantico

Le TPU vengono sviluppate per l'uso in quello che viene definito un array sistolico, in cui i dati scorrono attraverso l'array quasi come dei flussi sanguigni, passando attraverso un cuore. Da qui il soprannome di "processore romantico". Tale approccio richiede molta meno energia e potenza. (Per una spiegazione pi˘ dettagliata, consulta il blog di Google, qui).

Mettendo assieme tutti questi pezzi, si ottiene un processore altamente performante, efficiente a livello energetico e messo a punto per l'intelligenza artificiale.

Google Video Intelligence

Anche i video, grazie a YouTube, rappresentano uno dei capisaldi di Google. Google Video Intelligence consente la ricerca di video con termini specifici. Ad esempio se vuoi cercare video di gatti, basta digitare la parola gatti e subito ti vengono mostrati video e i momenti in cui vi compaiono i gatti.

Google Video Intelligence funziona grazie a pi˘ di 20000 tag, per questo Google in grado di supportare ogni tipo di classificazione. Inoltre, Google Video Intelligence fornisce contenuti consigliati e identifica quelli per soli adulti.

Screenshot da Google Video Intelligence che mostra i tag rilevati in automatico dal servizio di IA di Google.

Oltre alla capacit‡ di rilevare la posizione in cui appaiono gli oggetti in un video, la funzione pi˘ straordinaria di questo servizio la possibilit‡ di pubblicare annunci al momento giusto, i quali vengono innescati dai tag che appaiono in un video. Il servizio offre anche la possibilit‡ di trascrivere i video.

Google Vision API

Google Vision API il servizio gemello di Video Intelligence. Porta l'intelligenza nelle immagini, rendendo possibili le seguenti funzioni:

    • Rilevamento di tag: identifica che cosa c' nella foto.

    • Rilevamento facciale: capisce se una persona triste, arrabbiata o sorpresa basandosi sul suo volto.

    • Riconoscimento ottico dei caratteri (OCR): identifica non solo il contenuto del testo in un'immagine, ma anche la lingua e la posizione del testo, persino nelle note scritte a mano.

    • Rilevamento di contenuti espliciti: non ha bisogno di spiegazioni.

    • Rilevamento dei punti di riferimento: evidenzia i punti di riferimento comuni nelle foto e ne indica anche la longitudine e la latitudine.

    • Rilevamento dei logo: non servono spiegazioni.

    • Suggerimento ritaglio: suggerisce dove ritagliare un'immagine.

    • Annotazioni web: effettua ricerche sul web per avere maggiori informazioni sulla tua immagine. L'API trova annotazioni in tutto il web per arricchire le informazioni sull'immagine. Questa funzionalit‡ utile anche per questioni di copyright, in quanto permette di verificare la presenza di un'immagine sul web.

    • Annotazione di testo sui documenti: questa funzionalit‡ pensata appositamente per le immagini dei documenti e consente annotazioni pi˘ precise.

Sara Robinson, Responsabile dello sviluppo di Google, li approfondisce in questa breve demo:

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

Cloud Translation API

In uno dei miei primi post avevo fatto riferimento ad alcuni dei punti di forza insiti a Google, inclusa la funzione di traduzione. Google offre servizi di traduzione tramite Google Translate da diversi anni (ho utilizzato il servizio nel 2015 durante un viaggio in Europa).

Nel corso del tempo, Google ha perfezionato tali funzionalit‡ e adesso le ha rese disponibili anche per gli umili sviluppatori come noi. Ecco un breve riepilogo di alcune delle principali caratteristiche supportate dall'API Google Cloud Translation:

    • Traduzione dinamica: inserendo una stringa di testo in una delle lingue supportate, Google Translate la tradurr‡ quasi in tempo reale.

    • Supporto globale per oltre 100 lingue. Il servizio di traduzione di Google supporta pi˘ di 100 lingue diverse. Offre sia la traduzione di singole frasi (per tutte le lingue) che la traduzione automatica neurale per un sottoinsieme di combinazioni linguistiche.

    • Rilevamento della lingua: non ha bisogno di spiegazioni.

Se ti interessa scoprire la differenza tra la traduzione basata su frasi e quella con rete neurale,leggi l'interessante articolo sull'argomento nel blog di Systran (specialista nella traduzione multilingue tramite ML) qui.

Cloud Natural Language

Questo servizio estrae dati chiave da un blocco di testo. » in grado di eseguire l'analisi del sentimento e di fornire informazioni sugli elementi principali del testo, come persone, luoghi ed eventi. Se consideri che Google gestisce il motore di ricerca pi˘ utilizzato al mondo, puoi facilmente capire che questo un altro dei punti di forza di Google.

Cloud Speech API

Cloud Speech API un servizio che converte l'audio in testo a partire dalla frase "Ok Google" ed , senza dubbio, un altro punto di forza dell'azienda. Simile a Google Cloud Translation API, questo servizio supporta oltre 110 lingue e varianti. Le funzionalit‡ chiave includono:

    • Visualizzazione del testo in tempo reale: Google Cloud Speech API fornisce risultati parziali durante la trascrizione, perciÚ le parole compaiono per scritto nello stesso momento in cui vengono pronunciate. Se devi trascrivere grandi volumi di parole, Google Speech API lavora anche da file audio.

    • Ambienti rumorosi: in grado di gestire audio provenienti da un'ampia variet‡ di ambienti rumorosi.

    • Consapevolezza del contesto: riconosce i suggerimenti verbali per ogni chiamata API, fornendo agli sviluppatori i metadati relativi alla provenienza della richiesta API (ovvero da quale app).

Qui sotto trovi una buona demo di Google Cloud Speech API a cura di Sara Robinson. Ma fa' attenzione: tutto scritto sotto forma di comandi nel linguaggio di programmazione degli sviluppatori, per cui non adatto ai deboli di cuore.

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

Dialogflow - Beta

Dialogflow la piattaforma chatbot di Google. » stata sviluppata da API.ai, una startup che stata acquisita da Google nel 2016. Dialogflow supporta l'interazione vocale e scritta su varie piattaforme di messaggistica (tra cui Facebook Messenger, Kik, Slack, Telegram, Viber e Skype).

Uno degli aspetti che preferisco dell'approccio di Dialogflow che offre assistenti precostruiti specializzati in varie aree, i quali possono essere usati come base per il proprio agente personalizzato.

Alcuni esempi d'uso sono l'interazione con i sistemi elettronici dell'automobile, la conversione della valuta, il calcolo di dati, la ricerca di giorni festivi, ecc. L'idea alla base aiutare gli sviluppatori a creare e gestire i loro chatbot in maniera sempre pi˘ veloce, senza bisogno di programmare.

Cloud Job Discovery

Se hai letto il mio articolo sui servizi di intelligenza artificiale di AWS, ricorderai che avevo premiato uno dei loro servizi come "il pi˘ vicino alle serie TV". A Google, invece, attribuisco il dubbio onore di essere il "servizio di intelligenza artificiale pi˘ di nicchia". Si tratta di un'interessante applicazione della loro tecnologia di ML, risalente a un'iniziativa chiamata "Google for Jobs."

Come affermato da Google, l'iniziativa rappresenta "un impegno da parte dell'intera azienda di Google ad aiutare le persone a trovare lavoro pi˘ facilmente". Questa iniziativa sfrutta la tecnologia di ML per capire meglio quali sono i lavori disponibili e li abbina agli utenti in cerca di un impiego. Per esempio, se un annuncio di lavoro viene elencato come "bus az." anzichÈ "business development", l'API Google Cloud Job Discovery dispone dell'intelligenza necessaria a capire che l'utente voleva dire in realt‡ "sviluppo aziendale".

CiÚ significa che chi cerca lavoro e chi invece vuole assumere, non deve pi˘ sforzarsi di usare i termini di ricerca perfetti. L'API Google Cloud Job Discovery aiuta le piattaforme di assunzione a superare gli errori umani nella ricerca di lavoro.

Se ti interessa, puoi provare tu stesso senza necessit‡ di alcuna codifica. Apri il motore di ricerca Google e digita alcuni termini per cercare lavoro. Immediatamente, verranno visualizzati diversi risultati, localizzati in base alla tua area geografica.

Screenshot che mostra i risultati di ricerca di lavoro nel browser di ricerca di Google grazie ai servizi di IA di Google.

Conclusioni

Termina qui la mia descrizione dei servizi di intelligenza artificiale di Google.

Chiedo scusa per essermi dilungato sulle TPU di Google Cloud, ma bisogna ammettere che sono straordinarie! Se non l'hai ancora fatto, ti invito a leggere il primo post di questa serie dedicata a intelligenza artificiale e machine learning.La prossima settimana parleremo dell'ultimo gigante nel mondo dell'AI as a Service (intelligenza artificiale come servizio): Microsoft Azure. Non perdertelo!