1. Antes de começar
Neste codelab, você vai aplicar as práticas recomendadas da nova edição do guia People + AI Research (PAIR) para projetar um novo produto com IA, com foco em práticas de dados centradas no ser humano e na confiança do usuário calibrada corretamente.
Pré-requisitos
- Noções básicas sobre o que é IA.
- Conhecimento do fluxo de trabalho de desenvolvimento de produtos.
O que você vai aprender
Neste codelab, você vai aprender a usar o guia Pessoas + IA da Pesquisa Google para criar produtos de IA confiáveis e centrados no usuário.
Especificamente, você vai:
- Saiba o que há de novo na segunda edição do guia do PAIR.
- Faça uma série de exercícios que destacam oportunidades no processo de desenvolvimento de IA para calibrar a confiança do usuário, com foco em dados e explicabilidade voltada ao usuário.
- Conheça um kit de ferramentas mais amplo de materiais e recursos disponíveis para análises mais aprofundadas.
O que é necessário
- Navegador
- Conta do Google para acessar um notebook do Colaboratory (por exemplo, Análise de sentimento com BERT)
2. Primeiros passos
Estamos lançando a segunda edição do Guia do PAIR no Google I/O deste ano. A primeira edição foi lançada há dois anos e, desde então, foi usada por mais de 250 mil pessoas em várias funções (desenvolvedores, designers, gerentes de produto, estudantes etc.) em todo o mundo. Agora, temos o prazer de apresentar um conjunto de atualizações para tornar esse recurso ainda mais útil.
Especificamente, nesta segunda edição, estamos oferecendo uma nova maneira de navegar pelo guia e encontrar conteúdo por tarefa. Criamos uma lista de perguntas importantes que você e sua equipe podem ter ao desenvolver um produto com uma abordagem de IA centrada no usuário. Isso vai ajudar você a encontrar o conteúdo necessário quando precisar:
- Quando e como devo usar IA no meu produto?
- Como posso criar meu conjunto de dados de forma responsável?
- Como posso ajudar os usuários a criar e calibrar a confiança no meu sistema de IA?
- Como faço para integrar usuários aos novos recursos de IA?
- Como explico meu sistema de IA aos usuários?
- Qual é o equilíbrio certo entre controle do usuário e automação?
- Como posso ajudar os usuários quando algo dá errado?
Depois de selecionar uma pergunta, você vai receber conteúdo relevante em unidades menores e mais práticas.
Também atualizamos o PAIR Guidebook com novo conteúdo:
- Um conjunto de padrões de design de IA
- Estudos de caso
- Capítulos atualizados
- Novos exercícios e um kit de workshop
Neste codelab, você vai conferir alguns desses padrões de design em ação em um fluxo de trabalho enquanto desenvolve um novo recurso com IA.
Vamos começar!
3. Traduzir necessidades do usuário em um problema de IA
Imagine o seguinte cenário:
Você está desenvolvendo um app de exibição de filmes e quer oferecer aos usuários uma experiência aprimorada e personalizada, ajudando-os a encontrar mais filmes que gostem.
A página de destino do app inclui as seguintes seções:
- Uma lista de filmes novos, ordenada por data de lançamento
- Um catálogo de todos os filmes, organizado por gênero
- Uma caixa de pesquisa em que os usuários podem pesquisar por título do filme, elenco etc.
App de filmes sem recomendações personalizadas
Você quer adicionar uma nova seção com recomendações de filmes para o usuário e acha que a IA pode ser uma boa opção para implementar esse recurso. Antes de qualquer implementação, faça o seguinte:
- Analise os fluxos de trabalho atuais: como os usuários interagem com o app atualmente e como você acha que a experiência deles pode ser melhorada?
- Determine se a IA pode agregar valor exclusivo: o problema pode ser resolvido com IA? A IA provavelmente vai melhorar a experiência do usuário do seu produto?
Usando o capítulo do guia PAIR Necessidades do usuário + Definição de sucesso, você analisa a lista de casos de uso em que a IA provavelmente é uma boa solução e descobre que a necessidade dos seus usuários se enquadra nos seguintes tipos de problemas:
- Recomendar conteúdo diferente para usuários diferentes
- A personalização melhora a experiência do usuário
- Mostrar conteúdo dinâmico é mais eficiente do que uma interface previsível
Não se esqueça de revisar a lista de casos em que a IA provavelmente não é a melhor solução.
Agora que você sabe que uma solução com tecnologia de IA parece ser uma boa opção para atender a essa necessidade do usuário, avalie se ela realmente vai proporcionar uma experiência melhor.
Padrão:
Antes de começar a criar com IA, verifique se o produto ou recurso que você tem em mente exige ou seria aprimorado com IA.
A IA é adequada para aplicativos como:
- Recomendar conteúdo diferente para usuários diferentes, como sugestões de filmes
- Prever eventos futuros, como mudanças climáticas ou de preços de voos
- Compreensão de linguagem natural
- Reconhecimento de imagem
Uma regra ou uma solução baseada em heurística pode ser melhor quando:
- É importante manter a previsibilidade
- Usuários, clientes ou desenvolvedores precisam de total transparência
- As pessoas não querem que uma tarefa seja automatizada
Consulte o capítulo Necessidades do usuário para saber mais sobre quando usar (ou não) a IA.
Link para o padrão completo: https://pair.withgoogle.com/guidebook/patterns#determine-if-ai-adds-value
Você pode agregar valor ao app destacando para cada usuário os filmes que ele provavelmente vai gostar, oferecendo uma experiência mais rica do que mostrar apenas os filmes mais recentes ou mais bem avaliados. Você também suspeita que pode economizar tempo para eles ao explorar um catálogo de filmes em rápido crescimento com esse recurso.
Agora que você decidiu usar uma solução com tecnologia de IA, é hora de começar a planejar as próximas etapas.
4. Criar um conjunto de dados para a tarefa
Para treinar um sistema de recomendação e oferecer sugestões de filmes aos usuários, você precisa criar um conjunto de dados para o modelo de IA aprender.
A primeira coisa que você precisa fazer é corresponder as necessidades do usuário com as necessidades de dados.
Usando o exercício de correspondência do capítulo Coleta e avaliação de dados do guia do PAIR, você determina o seguinte:
- Usuário: espectadores de filmes (usuários de apps de filmes)
- Necessidade do usuário: encontrar mais filmes que gostam com mais facilidade e rapidez
- Ação do usuário: selecionar e assistir filmes no app
- Saída do sistema de IA: quais filmes sugerir e por quê (rótulos ou tags de sentimento)
- Aprendizado do sistema de IA: padrões de comportamento relacionados a aceitar recomendações de filmes, assistir filmes inteiros, escrever avaliações e dar notas altas a eles.
- Conjuntos de dados necessários: dados de visualização de filmes do app, informações sobre filmes e notas e avaliações de filmes
- Principais recursos necessários no conjunto de dados: preferências de filmes e histórico de exibição do espectador, informações sobre filmes (por exemplo, gênero, elenco), classificações e avaliações de filmes
- Principais rótulos necessários no conjunto de dados: taxa de aceitação ou rejeição da sugestão de app pelo espectador, taxa de conclusão de filmes pelo espectador, notas e avaliações do espectador e feedback do espectador sobre o motivo da rejeição de uma sugestão.
Agora que você concluiu este exercício, é possível identificar várias fontes de dados em potencial:
- Dados do usuário no app (preferências especificadas e histórico de visualização)
- Informações do filme no app (título, ano, duração, elenco etc.)
- Avaliações de filmes e informações de classificação de outras fontes, como IMDB e MovieLens
Depois de ter uma ideia do tipo de dados que você vai precisar, considere os Princípios de IA do Google e as Práticas de IA responsável como exemplos de frameworks para ajudar a trabalhar com considerações importantes, como privacidade (por exemplo, dar oportunidades para aviso e consentimento) e justiça (por exemplo, "realizar testes iterativos de usuário para incorporar um conjunto diversificado das necessidades dos usuários aos ciclos de desenvolvimento")
Por fim, ao preparar o conjunto de dados de treinamento, colete dados realistas que reflitam os dados "ruidosos" que estão no mundo. Por exemplo, inclua resenhas de filmes com erros de ortografia, abreviações, emojis e caracteres incomuns ou inesperados. Assim, você garante que os usuários do app vão contribuir com avaliações semelhantes no futuro, em vez de resenhas perfeitamente formatadas.
Padrão:
Ao desenvolver seu conjunto de dados de treinamento, não busque algo perfeitamente selecionado. Em vez disso, permita algum "ruído" para tornar os dados o mais semelhantes possível aos dados do mundo real que você espera receber dos usuários. Isso pode ajudar a evitar erros e recomendações de baixa qualidade quando você lança seu modelo no mundo real.
Para isso, pense nos tipos de dados que você espera receber dos usuários e verifique se eles estão representados no conjunto de treinamento.
Por exemplo, para um sistema de reconhecimento de imagens, considere os dados que você pode receber dos usuários. Se for provável que eles não tenham tempo para tirar fotos de alta qualidade e seu modelo precise trabalhar com imagens desfocadas de smartphones, inclua imagens desfocadas nos dados de treinamento.
Link para o padrão completo: https://pair.withgoogle.com/guidebook/patterns#embrace-noisy-data
Com as necessidades do usuário mapeadas para um problema de IA e necessidades de conjunto de dados, você está pronto para treinar a IA para fornecer recomendações e rotular filmes para os usuários do seu app. Embora não abordemos essa parte do processo neste codelab, você pode saber mais sobre sistemas de recomendação e análise de sentimentos nos seguintes recursos:
- Curso de autoestudo Sistemas de recomendação no Google Developers
- Tutorial Classificação de texto para análise de sentimento com BERT em TensorFlow.org
5. Comunicar recursos e limitações do sistema
Ao criar a experiência do usuário para seu app, planeje a integração dos usuários ao novo recurso com tecnologia de IA e ajude-os a definir as expectativas de maneira adequada. Os usuários não devem confiar implicitamente no seu sistema de IA em todas as circunstâncias, mas sim calibrar a confiança corretamente.
Definir expectativas com os usuários é um processo deliberado que começa antes mesmo da primeira interação deles com seu produto. É importante fornecer explicações ao longo da experiência do produto e fora dela de várias maneiras:
- Explicar na hora. Quando apropriado, forneça motivos para uma determinada inferência, recomendação, sugestão etc.
- Forneça mais explicações no produto. Aproveite outros momentos no produto, como a integração, para explicar os sistemas de IA.
- Vá além da experiência do produto. As informações no produto podem não ser suficientes, mas você pode complementá-las com vários recursos adicionais, como campanhas de marketing para aumentar a conscientização e materiais educativos e campanhas de alfabetização para desenvolver modelos mentais.
Por exemplo, um usuário fez login no app e selecionou um filme recomendado na nova lista adicionada à página de destino. Além das informações comuns sobre o filme, você pode incluir uma explicação de por que ele aparece na lista de recomendações.
Usando a pesquisa por pergunta do guia PAIR e selecionando "Como explico meu sistema de IA aos usuários?", você encontra o seguinte padrão: explique para compreensão, não para completude.
Padrão:
Ao explicar as recomendações do seu sistema de IA, concentre-se em compartilhar as informações necessárias para que os usuários tomem decisões e avancem. Não tente explicar tudo o que está acontecendo no sistema.
Muitas vezes, a lógica por trás de uma previsão específica é desconhecida ou muito complexa para ser resumida em uma frase ou sentença simples. Os usuários também não querem se sentir sobrecarregados ou distraídos por explicações desnecessárias ao usar seu produto.
O capítulo Explicabilidade + Confiança oferece exemplos de diferentes abordagens para criar explicações concisas e fáceis de usar, que incluem explicações parciais, divulgação progressiva e indicadores de confiança do modelo.
Se você quiser compartilhar explicações mais longas ou detalhadas sobre como o sistema geral funciona, faça isso fora do fluxo de usuários ativos, por exemplo, em materiais de marketing ou conteúdo de integração.
Link para o padrão completo: https://pair.withgoogle.com/guidebook/patterns#explain-for-understanding
Aplicando as práticas recomendadas descritas neste padrão, você decide mostrar uma explicação assim:
Recomendação de filme, incluindo a justificativa
Neste exemplo, você está aplicando as orientações do guia do PAIR em Explicabilidade + Confiança e usando fontes de dados para fornecer uma explicação ao usuário com as três principais avaliações dos usuários.
Além disso, você destacou as palavras específicas que mais contribuíram para o sentimento positivo em relação ao filme, que são fatores importantes para o usuário na seleção de filmes. Saiba mais sobre como explorar um classificador de sentimentos nesta demonstração da Ferramenta de interpretabilidade de linguagem (LIT) do PAIR.
Captura de tela da Ferramenta de aprendizado de interpretabilidade (LIT)
A LIT ajuda a inspecionar o comportamento do modelo de processamento de linguagem natural (PLN) usando uma ferramenta visual, interativa e extensível. Com ela, é possível testar hipóteses e validá-las em um conjunto de dados com métricas relevantes e explicações locais (por exemplo, mapas de saliência e visualizações de previsão). As equipes de produtos podem usar a LIT nos seguintes exemplos de casos de uso:
- Antes de implantar um modelo
- Ao testar a imparcialidade
- Para depurar previsões individuais
- Ao comparar um modelo novo com um antigo
6. Determinar como mostrar confiança
Outra maneira de definir expectativas com os usuários é mostrar a confiança do modelo nas recomendações. Em vez de explicar por que ou como a IA chegou a uma determinada decisão, os níveis de confiança do modelo mostram o grau de certeza da IA na previsão e as alternativas consideradas. Como a maioria dos modelos pode gerar classificações n-best e pontuações de confiança, as exibições de confiança do modelo geralmente são uma explicação disponível.
Antes de adicionar confiança às páginas de filmes recomendados mostradas ao usuário, determine se essa confiança é útil para ele e, em caso afirmativo, qual é a melhor maneira de mostrá-la.
Padrão:
Em algumas situações, você pode ajudar os usuários a avaliar o nível de confiança na saída da IA com níveis de confiança do modelo que explicam o grau de certeza da IA na previsão e as alternativas consideradas.
No entanto, em outros contextos, os intervalos de confiança podem ser difíceis de entender para os usuários.
Se você decidir usá-los, teste diferentes tipos de telas no início do processo de desenvolvimento do produto para descobrir o que funciona melhor para seus usuários.
Link para o padrão completo: https://pair.withgoogle.com/guidebook/patterns#how-to-show-model-confidence
Ao analisar as abordagens recomendadas para mostrar confiança no capítulo do Guia do PAIR sobre Explicabilidade + Confiança, você encontra as seguintes opções:
- N classificações mais prováveis
- Nível de confiança numérica
Como você está apresentando uma lista de filmes recomendados ao usuário na página de destino do app, opte por uma lista ordenada, em que os filmes mais prováveis são mostrados em ordem.
Carrossel de filmes recomendados, com as recomendações mais prováveis exibidas primeiro
7. Oferecer ao usuário uma maneira de corrigir os erros
Nas últimas etapas, você aprendeu algumas práticas recomendadas para definir expectativas e dar explicações aos usuários, ajudando-os a criar e calibrar a confiança no produto.
Outra pergunta importante que você vai querer responder é: como é a experiência do usuário quando ocorre um erro? A forma como os usuários avançam também é importante. Ao se concentrar no que os usuários podem fazer depois que o sistema falha, você os capacita e mantém a utilidade do produto.
Conforme explicado no capítulo do guia do PAIR sobre Erros e falhas normais, comece definindo o que é um erro para seu produto e qual tipo de erro é (usuário, sistema ou contexto).
Confira estes exemplos:
- O usuário recebe uma recomendação de um filme que já assistiu no cinema. Embora essa recomendação não esteja errada, ela também não é muito útil para o usuário.
- O usuário recebe uma recomendação de um filme que já assistiu no cinema e não gostou. Essa recomendação pode ser considerada um erro para o usuário, com base nas preferências dele em filmes.
- O usuário recebe uma recomendação de um filme de um gênero que ele não costuma gostar. O usuário pode considerar isso um erro.
- O usuário recebe uma recomendação de um filme que não está mais hospedado no app. Isso é um erro claro do sistema.
Nos segundo e terceiro exemplos listados acima, a IA fez uma recomendação que não é útil para o usuário. Caso esses erros ocorram, ofereça ao usuário a oportunidade de dar feedback sobre a previsão e comunique o tempo até o impacto, conforme recomendado no capítulo Feedback + controle do guia do PAIR.
Padrão:
Quando o sistema com tecnologia de IA se comportar de uma maneira que o usuário não espera ou não quer, ofereça uma opção para compartilhar feedback. E, sempre que possível, use esse feedback para melhorar seu modelo.
O feedback em sistemas de IA pode assumir várias formas, incluindo:
- Dar um "Gostei" ou "Não gostei" em uma recomendação
- Ocultar recomendações indesejadas
- Sinalizar ou denunciar recomendações problemáticas
- Fluxos de feedback mais tradicionais, em que um usuário informa manualmente um problema usando um formulário ou outro mecanismo
Depois que um usuário enviar feedback, confirme que você o recebeu. Se possível, informe como o sistema vai responder ao feedback.
Link para o padrão completo: https://pair.withgoogle.com/guidebook/patterns#let-users-give-feedback
No caso do seu app, isso pode ser assim:
Os usuários podem dar feedback sobre as recomendações...
...e são notificados sobre o que vai acontecer em seguida
8. Parabéns
Parabéns! Você acabou de passar por um exemplo de fluxo de trabalho que mostra como usar alguns dos novos recursos do Guia do PAIR.
Resumo
Neste codelab, você aprendeu a:
- Traduzir necessidades do usuário em um problema de IA
- Criar um conjunto de dados para a tarefa
- Integrar usuários ao novo recurso
- Explicar o sistema e definir as expectativas do usuário
- Oferecer ao usuário uma maneira de corrigir os erros
- Coletar feedback para melhorar o produto
A seguir
Você encontra todos os recursos destacados neste codelab e muito mais nos links a seguir: