1. Prima di iniziare
In questo codelab, applicherai le best practice della nuova edizione della guida di People + AI Research (PAIR) per progettare un nuovo prodotto con l'AI, concentrandoti su pratiche di dati incentrate sull'uomo e su una fiducia degli utenti calibrata correttamente.
Prerequisiti
- Comprensione di base di che cos'è l'AI.
- Conoscenza del flusso di lavoro di sviluppo dei prodotti.
Obiettivi didattici
In questo codelab imparerai a utilizzare la Guida People + AI di Google Research per creare prodotti di AI affidabili e incentrati sull'utente.
Nello specifico, ti occuperai di:
- Scopri le novità della seconda edizione della guida PAIR.
- Svolgi una serie di esercizi che mettono in evidenza le opportunità nel processo di sviluppo dell'AI per calibrare la fiducia degli utenti, con particolare attenzione ai dati e alla spiegabilità rivolta agli utenti.
- Scopri una gamma più ampia di materiali e risorse disponibili per ulteriori approfondimenti.
Che cosa ti serve
- Browser
- Account Google per visualizzare un notebook di Colaboratory (ad es. Analisi del sentiment con BERT)
2. Inizia
Quest'anno, al Google I/O, presenteremo la seconda edizione della guida PAIR. La prima edizione è stata pubblicata due anni fa e da allora è stata utilizzata da oltre 250.000 persone in tutto il mondo con ruoli diversi (sviluppatori, designer, product manager, studenti e così via). Siamo felici di presentare una serie di aggiornamenti per renderlo ancora più pratico.
Nello specifico, in questa seconda edizione, forniamo un nuovo modo per navigare nella guida e trovare i contenuti in base all'attività. Abbiamo creato un elenco di domande chiave che tu e il tuo team potreste avere quando sviluppate un prodotto con un approccio all'AI incentrato sull'utente e che vi aiuteranno a trovare i contenuti di cui avete bisogno, quando ne avete bisogno:
- Quando e come devo utilizzare l'AI nel mio prodotto?
- Come faccio a creare il mio set di dati in modo responsabile?
- Come posso aiutare gli utenti a creare e calibrare la fiducia nel mio sistema di AI?
- Come faccio a eseguire l'onboarding degli utenti alle nuove funzionalità di AI?
- Come faccio a spiegare il mio sistema di AI agli utenti?
- Qual è il giusto equilibrio tra controllo dell'utente e automazione?
- Come faccio ad assistere gli utenti in caso di problemi?
Una volta selezionata una domanda, riceverai contenuti pertinenti in unità più piccole e più pratiche.
Abbiamo anche aggiornato la guida PAIR con nuovi contenuti:
- Un insieme di pattern di progettazione dell'AI
- Case study
- Capitoli aggiornati
- Nuovi esercizi e un kit per il workshop
In questo codelab, vedrai alcuni di questi pattern di progettazione in azione in un flusso di lavoro mentre sviluppi una nuova funzionalità con l'AI.
Iniziamo.
3. Tradurre le esigenze degli utenti in un problema di AI
Immagina il seguente scenario:
Stai sviluppando un'app per la visualizzazione di film e vorresti offrire agli utenti un'esperienza migliorata e personalizzata, aiutandoli a trovare più film che gli piacciono.
La pagina di destinazione dell'app attualmente include le seguenti sezioni:
- Un elenco di nuovi film, ordinati per data di uscita
- Un catalogo di tutti i film, organizzati per genere
- Una casella di ricerca in cui gli utenti possono cercare in base al titolo del film, al cast e così via.
App di film senza consigli personalizzati
Vorresti aggiungere una nuova sezione con consigli sui film per l'utente e pensi che l'AI potrebbe essere una buona opzione per implementare questa funzionalità. Prima di procedere con l'implementazione, ti consigliamo di:
- Esamina i flussi di lavoro esistenti: come interagiscono attualmente gli utenti con l'app e come pensi che la loro esperienza potrebbe essere migliorata?
- Determina se l'AI può aggiungere un valore unico: il tuo problema può essere risolto bene con l'AI e l'AI può migliorare l'esperienza utente del tuo prodotto?
Utilizzando il capitolo della guida PAIR User Needs + Defining Success (Esigenze degli utenti + Definizione del successo), esamini l'elenco dei casi d'uso in cui l'AI è probabilmente una buona soluzione e scopri che l'esigenza dei tuoi utenti rientra nei seguenti tipi di problemi:
- Consigliare contenuti diversi a utenti diversi
- La personalizzazione migliora l'esperienza utente
- Mostrare contenuti dinamici è più efficiente di un'interfaccia prevedibile
Assicurati di esaminare anche l'elenco dei casi in cui l'AI probabilmente non è una soluzione migliore.
Ora che hai capito che una soluzione basata sull'AI sembra un buon candidato per soddisfare questa esigenza degli utenti, devi valutare se effettivamente offrirà un'esperienza utente migliore.
Pattern:
Prima di iniziare a creare con l'AI, assicurati che il prodotto o la funzionalità che hai in mente richieda l'AI o che possa essere migliorato grazie a questa tecnologia.
L'AI è adatta ad applicazioni come:
- Consigliare contenuti diversi a utenti diversi, ad esempio suggerimenti di film
- Previsione di eventi futuri, come eventi meteorologici o variazioni di prezzo dei voli
- Comprensione del linguaggio naturale
- Riconoscimento delle immagini
Una regola o una soluzionebasata sull'euristica potrebbe essere più adatta quando:
- Mantenere la prevedibilità è importante
- Utenti, clienti o sviluppatori hanno bisogno di una trasparenza completa
- Le persone non vogliono che un'attività venga automatizzata
Per saperne di più su quando utilizzare (o meno) l'AI, consulta il capitolo User Needs.
Link al pattern completo: https://pair.withgoogle.com/guidebook/patterns#determine-if-ai-adds-value
Puoi aggiungere valore all'app evidenziando per ogni utente i film che probabilmente apprezzerà, offrendo un'esperienza utente più ricca rispetto alla semplice visualizzazione dei film più recenti o con le valutazioni migliori. Inoltre, sospetti che questa funzionalità possa far risparmiare tempo agli utenti durante l'esplorazione di un catalogo di film in rapida crescita.
Ora che hai deciso di procedere con una soluzione basata sull'AI, puoi iniziare a pianificare i prossimi passaggi.
4. Crea un set di dati per l'attività
Per addestrare un sistema di suggerimenti a fornire agli utenti consigli sui film, devi creare un set di dati da cui il modello di AI imparerà.
La prima cosa da fare è abbinare le esigenze degli utenti a quelle dei dati.
Utilizzando l'esercizio di abbinamento del capitolo Raccolta e valutazione dei dati della guida PAIR, determini quanto segue:
- Utente: spettatori di film (utenti dell'app per film)
- Esigenza dell'utente: trovare più film che gli piacciono in modo più semplice e veloce
- Azione utente: seleziona e guarda film tramite l'app
- Output del sistema di AI: quali film suggerire e perché (etichette di sentiment o tag)
- Apprendimento del sistema di AI: modelli di comportamento relativi all'accettazione di consigli sui film, alla visione di film interi, alla scrittura di recensioni di film e all'assegnazione di valutazioni elevate a questi film
- Set di dati necessari: dati di visualizzazione dei film dall'app, informazioni sui film e valutazioni e recensioni dei film
- Funzionalità chiave necessarie nel set di dati: preferenze cinematografiche e cronologia delle visualizzazioni degli spettatori, informazioni sui film (ad es.genere, cast), valutazioni a stelle dei film, recensioni dei film
- Etichette chiave necessarie nel set di dati: tasso di accettazione o rifiuto del suggerimento dell'app da parte dello spettatore, tasso di completamento dei film da parte dello spettatore, valutazioni e recensioni dello spettatore e feedback dello spettatore sul motivo per cui un suggerimento è stato rifiutato
Ora che hai completato questo esercizio, puoi iniziare a vedere emergere diverse potenziali origini dati:
- Dati utente dell'app (preferenze specificate e cronologia delle visualizzazioni)
- Informazioni sul film dall'app (titolo, anno, durata, cast ecc.)
- Recensioni di film e informazioni sulla classificazione provenienti da altre fonti, come IMDB e MovieLens
Una volta che hai un'idea del tipo di dati di cui avrai bisogno, prendi in considerazione i principi di Google AI e le prassi di AI responsabile come esempi di framework per aiutarti a esaminare le considerazioni chiave, come la privacy (ad es. "give opportunities for notice and consent") e correttezza (ad es. "Esegui test iterativi sugli utenti per incorporare una serie di esigenze diverse degli utenti nei cicli di sviluppo")
Infine, quando prepari il set di dati di addestramento, assicurati di raccogliere dati realistici che riflettano i dati "rumorosi" presenti nel mondo. Ad esempio, assicurati di includere recensioni di film con errori ortografici, abbreviazioni, emoji e caratteri insoliti o imprevisti, perché in futuro gli utenti della tua app contribuiranno molto probabilmente con recensioni reali e "rumorose" simili, anziché con recensioni formattate perfettamente.
Pattern:
Quando sviluppi il set di dati di addestramento, non puntare a qualcosa di perfettamente curato. Consenti invece un po' di "rumore" per rendere i dati il più simili possibile a quelli reali che prevedi di ricevere dai tuoi utenti. In questo modo, puoi evitare errori e consigli di scarsa qualità una volta che il modello viene rilasciato nel mondo reale.
Per farlo, pensa ai tipi di dati che prevedi di ottenere dagli utenti e poi assicurati che questi dati siano rappresentati nel set di addestramento.
Ad esempio, per un sistema di riconoscimento delle immagini, considera i dati che potresti ottenere dai tuoi utenti. Se è probabile che non avranno il tempo di scattare fotografie di alta qualità e il tuo modello dovrà funzionare con immagini sfocate dello smartphone, includi immagini sfocate nei dati di addestramento.
Link al pattern completo: https://pair.withgoogle.com/guidebook/patterns#embrace-noisy-data
Una volta mappati i bisogni degli utenti in base a un problema di AI e alle esigenze del set di dati, puoi addestrare l'AI a fornire consigli ed etichettare i film per gli utenti della tua app. Sebbene non tratteremo questa parte della procedura in questo codelab, puoi scoprire di più sui sistemi di raccomandazione e sull'analisi del sentiment nelle seguenti risorse:
- Corso di autoapprendimento sui sistemi di suggerimenti su Google Developers
- Text Classification for Sentiment Analysis with BERT (Classificazione del testo per l'analisi del sentiment con BERT) su TensorFlow.org
5. Comunicare le funzionalità e i limiti del sistema
Quando progetti l'esperienza utente per la tua app, devi pianificare l'onboarding degli utenti alla nuova funzionalità basata sull'AI e aiutarli a impostare le loro aspettative in modo appropriato. Gli utenti non devono fidarsi implicitamente del tuo sistema di AI in tutte le circostanze, ma calibrare correttamente la loro fiducia.
Definire le aspettative degli utenti è un processo deliberato che inizia prima della loro prima interazione con il tuo prodotto. Ti consigliamo di fornire spiegazioni in vari modi, sia all'interno che all'esterno dell'esperienza con il prodotto:
- Spiega in tempo reale. Se opportuno, fornisci i motivi di una determinata inferenza, raccomandazione, suggerimento e così via.
- Fornisci ulteriori spiegazioni nel prodotto. Sfrutta altri momenti all'interno del prodotto, come l'onboarding, per spiegare i sistemi di AI.
- Vai oltre l'esperienza con il prodotto. Le informazioni nel prodotto potrebbero non essere sufficienti, ma puoi supportarle con una serie di risorse aggiuntive, come campagne di marketing per aumentare la consapevolezza e materiali didattici e campagne di alfabetizzazione per sviluppare modelli mentali.
Prendiamo un esempio: un utente ha eseguito l'accesso all'app e seleziona un film consigliato dal nuovo elenco aggiunto alla sua pagina di destinazione. Oltre alle solite informazioni sul film che possono aspettarsi di trovare, potresti includere una spiegazione del motivo per cui vedono questo film specifico nell'elenco dei consigliati.
Utilizzando la ricerca per domanda della Guida di PAIR e selezionando "Come faccio a spiegare il mio sistema di AI agli utenti?", trovi il seguente modello: spiega per far capire, non per completezza.
Pattern:
Quando spieghi i consigli del tuo sistema di AI, concentrati sulla condivisione delle informazioni di cui gli utenti hanno bisogno per prendere decisioni e andare avanti. Non tentare di spiegare tutto ciò che sta succedendo nel sistema.
Spesso, la logica alla base di una determinata previsione è sconosciuta o troppo complessa per essere riassunta in una semplice frase. Inoltre, gli utenti potrebbero non voler essere sopraffatti o distratti da spiegazioni superflue durante l'utilizzo del tuo prodotto.
Il capitolo Explainability + Trust offre esempi di diversi approcci per creare spiegazioni concise e intuitive, che includono spiegazioni parziali, divulgazione progressiva e visualizzazioni della confidenza del modello.
Se vuoi condividere spiegazioni più lunghe o dettagliate sul funzionamento generale del sistema, fallo al di fuori del flusso di utenti attivi, ad esempio nei materiali di marketing o nei contenuti di onboarding.
Link al pattern completo: https://pair.withgoogle.com/guidebook/patterns#explain-for-understanding
Applicando le best practice descritte in questo pattern, decidi di mostrare una spiegazione simile a questa:
Film consigliato, inclusa la motivazione del consiglio
In questo esempio di spiegazione, applichi le indicazioni della guida PAIR in Spiegabilità e fiducia e utilizzi le origini dati per fornire una spiegazione all'utente con le tre recensioni degli utenti con il maggior numero di voti.
Inoltre, hai evidenziato le parole specifiche che hanno contribuito maggiormente al sentiment positivo per questo film, fattori importanti per l'utente nella scelta del film. Puoi scoprire di più sull'esplorazione di un classificatore del sentiment in questa demo per lo strumento di interpretabilità del linguaggio (LIT) di PAIR.
Screenshot del Learning Interpretability Tool (LIT)
LIT può aiutarti a esaminare il comportamento dei modelli di elaborazione del linguaggio naturale (NLP) attraverso uno strumento visivo, interattivo ed estensibile, che ti consente di testare le ipotesi e convalidarle su un set di dati con metriche pertinenti e spiegazioni locali (ad es. mappe di salienza e visualizzazioni delle previsioni). I team di prodotto possono utilizzare LIT nei seguenti casi d'uso di esempio:
- Prima di eseguire il deployment di un modello
- Test di equità
- Per eseguire il debug delle singole previsioni
- Quando confronti un nuovo modello con uno vecchio
6. Determinare come visualizzare l'affidabilità
Un altro modo per impostare le aspettative degli utenti è mostrare la confidenza del modello nei suggerimenti. Anziché indicare il motivo o la modalità con cui l'AI è giunta a una determinata decisione, i valori di confidenza del modello mostrano il livello di certezza dell'AI nella sua previsione e le alternative che ha preso in considerazione. Poiché la maggior parte dei modelli può restituire classificazioni n-best e punteggi di confidenza, le visualizzazioni della confidenza del modello sono spesso una spiegazione facilmente disponibile.
Prima di aggiungere un valore di confidenza alle pagine dei film consigliati mostrate all'utente, devi determinare se questo valore è utile per l'utente e, in caso affermativo, qual è il modo migliore per visualizzarlo.
Pattern:
In alcune situazioni, puoi aiutare gli utenti a valutare il livello di affidabilità dell'output dell'AI con le visualizzazioni della confidenza del modello che spiegano il livello di certezza dell'AI nella sua previsione e le alternative prese in considerazione.
Tuttavia, in altri contesti, la visualizzazione della confidenza può essere difficile da comprendere per gli utenti.
Se decidi di utilizzarli, testa diversi tipi di display all'inizio del processo di sviluppo del prodotto per trovare la soluzione migliore per i tuoi utenti.
Link al pattern completo: https://pair.withgoogle.com/guidebook/patterns#how-to-show-model-confidence
Esaminando gli approcci consigliati per mostrare la confidenza nel capitolo della guida PAIR su Spiegabilità e fiducia, trovi le seguenti opzioni:
- N classificazioni più probabili
- Livello di confidenza numerico
Poiché nella pagina di destinazione dell'app presenti all'utente un elenco di film consigliati, scegli un elenco ordinato, in cui i film con maggiore probabilità di essere scelti vengono mostrati in ordine.
Carosello di film consigliati, con i consigli più probabili visualizzati per primi
7. Fornire all'utente un modo per superare gli errori
Nei passaggi precedenti, hai appreso alcune best practice per definire le aspettative e fornire spiegazioni agli utenti, aiutandoli a creare e calibrare la loro fiducia nel prodotto.
Un'altra domanda importante a cui devi rispondere è: che aspetto ha l'esperienza utente quando si verifica un errore? Il modo in cui gli utenti vanno avanti è altrettanto importante. Concentrarsi su ciò che gli utenti possono fare dopo l'errore del sistema consente loro di agire in modo autonomo, mantenendo l'utilità del prodotto.
Come spiegato nel capitolo della Guida PAIR su Errori + Gestione degli errori, devi iniziare definendo cos'è un errore per il tuo prodotto e di che tipo di errore si tratta (utente, sistema o contesto).
Considera i seguenti esempi:
- L'utente riceve un consiglio per un film che ha già visto al cinema. Anche se questo consiglio potrebbe non essere sbagliato, non è molto utile per l'utente.
- L'utente riceve un consiglio per un film che ha già visto al cinema e che non gli è piaciuto. Questo consiglio potrebbe essere considerato un errore dall'utente, in base alle sue preferenze cinematografiche.
- L'utente riceve un consiglio per un film di un genere che di solito non apprezza. L'utente potrebbe considerare questo un errore.
- L'utente riceve un consiglio per un film che non è più ospitato sull'app. Si tratta di un chiaro errore di sistema.
Nel secondo e nel terzo esempio elencati sopra, l'AI ha fornito un consiglio che non è utile per questo utente. In caso di errori di questo tipo, devi dare all'utente la possibilità di fornire un feedback sulla previsione e comunicare il tempo necessario per l'impatto, come consigliato nel capitolo della guida PAIR su feedback e controllo.
Pattern:
Quando il tuo sistema basato sull'AI si comporta in un modo che un utente non si aspetta o non vuole, assicurati che abbia la possibilità di condividere un feedback. E, per quanto possibile, utilizza questo feedback per migliorare il tuo modello.
Il feedback nei sistemi di AI può assumere diverse forme, tra cui:
- Dare un Mi piace o un Non mi piace a un consiglio
- Nascondere i consigli indesiderati
- Segnalazione di consigli problematici
- Flussi di feedback più tradizionali, in cui un utente segnala manualmente un problema tramite un modulo o un altro meccanismo
Una volta che un utente fornisce un feedback, conferma di averlo ricevuto. Se possibile, comunica loro come risponderà il sistema al feedback.
Link al pattern completo: https://pair.withgoogle.com/guidebook/patterns#let-users-give-feedback
Nel caso della tua app, potrebbe avere il seguente aspetto:
Gli utenti possono fornire feedback sui consigli…
…e riceve una notifica di ciò che accadrà in seguito.
8. Complimenti
Complimenti! Hai appena esaminato un flusso di lavoro di esempio che mostra come utilizzare alcune delle nuove risorse della Guida di PAIR.
Riepilogo
In questo codelab hai imparato a:
- Tradurre le esigenze degli utenti in un problema di AI
- Crea un set di dati per l'attività
- Eseguire l'onboarding degli utenti per la nuova funzionalità
- Spiegare il sistema e definire le aspettative degli utenti
- Fornire all'utente un modo per superare gli errori
- Raccogliere feedback per migliorare il prodotto
Passaggi successivi
Puoi trovare tutte le risorse evidenziate in questo codelab e molte altre ai seguenti link: