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.
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!
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 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.
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.
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.
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.
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).
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.
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.
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 il servizio gemello di Video Intelligence. Porta l'intelligenza nelle immagini, rendendo possibili le seguenti funzioni:
Sara Robinson, Responsabile dello sviluppo di Google, li approfondisce in questa breve demo:
https://www.youtube.com/watch?v=mDAoLO4G4CQ
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:
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.
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 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:
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 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.
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.
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!
Appian è una società di software per l’orchestrazione dei processi aziendali. La Piattaforma Appian consente ai leader di progettare, automatizzare e ottimizzare processi importanti, dall’inizio alla fine. Grazie alla nostra piattaforma leader di settore e all'impegno per il successo dei clienti, Appian gode della fiducia delle principali organizzazioni per guidare un cambiamento trasformativo dei processi.