Você está na página 1de 85

El

og
os i
de
Começando
com Artificial
Inteligência
Segunda edição

Um guia prático para construir


aplicativos corporativos

Tom Markiewicz e Josh Zheng

RELATÓRIO
Faça sua jornada para a IA ainda mais e integre a IA

ao seu próximo aplicativo hoje.

ibm.biz/buildwithAI
SEGUNDA EDIÇÃO

Começando com
Inteligência artificial
Um guia prático para construção
Aplicações Enterprise

TomMarkiewicz e Josh Zheng

BBeeiijjiinngg BBoossttoonn FFaarrnnhhaam


m SSeebbaassttooppooll TTookkyyoo
Introdução à Inteligência Artificial
por TomMarkiewicz e Josh Zheng

Copyright © 2020 O'Reilly Media, Inc. Todos os direitos reservados. Impresso nos

Estados Unidos da América.

Publicado por O'Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA
95472.

Os livros da O'Reilly podem ser adquiridos para uso educacional, comercial ou promocional de vendas. As edições online também

estão disponíveis para a maioria dos títulos ( http://oreilly.com ) Para obter mais informações, entre em contato com nosso

departamento de vendas corporativo / institucional: 800-998-9938 ou

corporate@oreilly.com.

Editor de aquisições: Rebecca Novack Designer de interiores: David Futato

Editor de Desenvolvimento: Melissa Potter Designer de capa: Randy Comer

Editor de produção: Kristen Brown Ilustrador: Kate Dullea


Editor de cópia: Penelope Perkins

Dezembro de 2017: Primeira edição

Setembro de 2020: Segunda edição

Histórico de revisão para a segunda edição

30-09-2020: primeiro lançamento

O logotipo O'Reilly é uma marca registrada da O'Reilly Media, Inc. Introdução à Inteligência Artificial, a imagem
da capa e a imagem comercial relacionada são marcas comerciais da O'Reilly Media, Inc.

As opiniões expressas neste trabalho são de responsabilidade dos autores e não representam as opiniões do
editor. Embora a editora e os autores tenham feito esforços de boa fé para garantir que as informações e
instruções contidas neste trabalho sejam precisas, a editora e os autores se isentam de qualquer
responsabilidade por erros ou omissões, incluindo, sem limitação, a responsabilidade por danos resultantes do
uso de ou confiança neste trabalho. O uso das informações e instruções contidas neste trabalho é por sua própria
conta e risco. Se qualquer amostra de código ou outra tecnologia que este trabalho contiver ou descrever estiver
sujeita a licenças de código aberto ou direitos de propriedade intelectual de terceiros, é sua responsabilidade
garantir que seu uso esteja em conformidade com tais licenças e / ou direitos.

Este trabalho é parte de uma colaboração entre O'Reilly e IBM. Veja nosso declaração de independência
editorial .

978-1-492-08341-2

[LSI]
Índice

1 Introdução à Inteligência Artificial. . . . . . . . . . . . . . . . . . . . . . . . . . . 1


O Mercado de Inteligência Artificial 2
Evitando um inverno com IA 3
Inteligência artificial, definida? 4
Aplicativos na empresa 7
Próximos passos 8

2 Processamento de linguagem natural. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11


Visão geral da PNL 12
Os componentes da PNL 13
Aplicativos Corporativos de PNL 15
Como usar a PNL 18
Desafios da PNL 20
Resumo 21

3 - Chatbots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
O que é um chatbot? 24
The Rise of Chatbots 24
Como construir um chatbot 26
Desafios de construir um chatbot de sucesso 29
Resumo 30

4 - Visão computacional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Capacidades de visão computacional para a empresa 32
Como usar a visão computacional 36
Visão computacional em dispositivos móveis 38
Melhores Práticas 39

iii
Casos de Uso 41
Desafios existentes na visão computacional ao implementar 43
um resumo da solução de visão computacional 44
45

5 Pipeline de dados de AI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47


Preparação para um pipeline de dados 49
Sourcing Big Data 50
Armazenamento: Apache Hadoop 50
Descoberta: Apache Spark 52
Automação 53
Resumo 57

6 Nuvens híbridas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Visão geral das nuvens 60
Usando IA em nuvens híbridas 63
Soluções Práticas 65
O futuro da IA em nuvens híbridas 67
Resumo 67

7 Ansioso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
O que torna as empresas únicas? 70
Desafios, tendências e oportunidades atuais 71
Escalabilidade 76
Implicações Sociais 77
Resumo 78

iv | Índice
CAPÍTULO 1

Introdução ao Artificial
Inteligência

No futuro, a IA será difundida em todos os aspectos da economia.


- Nils J. Nilsson, pesquisador fundador, Inteligência Artificial e Ciência da Computação,
Universidade de Stanford

Além dos chavões, cobertura da mídia e exageros, as técnicas de inteligência artificial estão
se tornando um componente fundamental de crescimento de negócios em uma ampla gama
de setores. E embora os vários termos (algoritmos, aprendizagem por transferência,
aprendizagem profunda, redes neurais, PNL, etc.) associados à IA sejam usados em
reuniões e sessões de planejamento de produto, é fácil ser cético quanto ao impacto
potencial dessas tecnologias.

A mídia de hoje representa a IA de muitas maneiras, boas e más - desde o medo de que as
máquinas assumam todos os empregos humanos e representações de IAs do mal por meio de
Hollywood até o potencial muito elogiado de curar o câncer e tornar nossas vidas mais fáceis.
Claro, a verdade está em algum lugar no meio.

Embora existam preocupações válidas sobre como será o futuro da inteligência


artificial (e as implicações sociais), a realidade é que a tecnologia é usada
atualmente em empresas de todos os setores.

A IA é usada em todos os lugares - IoT (Internet of Things) e dispositivos domésticos, robôs


comerciais e industriais, veículos autônomos, drones, assistentes digitais e até mesmo
vestíveis. E isso é apenas o começo. AI

1
proporcionará futuras experiências do usuário que são imersivas, contínuas, ambientais e
conversacionais. Esses serviços de conversação (por exemplo, chatbots e agentes virtuais)
estão atualmente explodindo, enquanto a IA continuará a melhorar essas experiências
contextuais.

Apesar de vários tropeços nos últimos 60-70 anos de esforço no desenvolvimento da


inteligência artificial, o futuro está aqui. Se o seu negócio não está incorporando IA, você
rapidamente descobrirá que está em desvantagem competitiva no mercado em rápida
evolução de hoje.

O que essas empresas estão fazendo com IA? Como eles estão garantindo que uma
implementação de IA seja bem-sucedida (e forneça um retorno positivo sobre o
investimento)? Essas são apenas algumas das questões que abordaremos neste livro. Da
compreensão da linguagem natural à visão do computador, este livro fornecerá uma
introdução de alto nível às ferramentas e técnicas para entender melhor o cenário de IA
na empresa e as etapas iniciais sobre como começar a usar IA em sua própria empresa.

Antigamente, a IA era bastante cara e um luxo reservado para setores específicos.


Agora está acessível para todos em todos os setores, incluindo você. Abordaremos
as modernas técnicas de IA de nível empresarial disponíveis que permitem criar
modelos de maneira eficiente e implementá-los em seu ambiente. Embora não seja
um guia técnico aprofundado, o livro pretende ser um ponto de partida para sua
jornada para aprender mais e construir aplicativos que implementam IA.

O Mercado de Inteligência Artificial


O mercado de inteligência artificial já é grande e está crescendo rapidamente, com vários
relatórios de pesquisa indicando uma demanda crescente por ferramentas que automatizam,
prevêem e analisam rapidamente. Estimativas do IDC A previsão é que a receita da
inteligência artificial chegará a US $ 98,4 bilhões em 2023, com uma taxa composta de
crescimento anual (CAGR) de 28,5% no período da previsão, com quase metade disso indo
para software. Além disso, o investimento em IA e empresas de aprendizado de máquina
aumentou dramaticamente— As startups de IA levantaram US $ 26,6 bilhões em financiamento
em 2019. Claramente, o futuro da inteligência artificial parece saudável.

2 | Capítulo 1: Introdução à Inteligência Artificial


Evitando um inverno com IA
A IA moderna, como a conhecemos, começou para valer na década de 1950. Embora
não seja necessário entender a história detalhada da IA, é útil entender um conceito
particular - o AI inverno —A medida que molda o ambiente atual.

Houve duas eras primárias de pesquisa de inteligência artificial em que altos níveis de
entusiasmo e entusiasmo pela tecnologia nunca corresponderam às expectativas, fazendo
com que o financiamento, o interesse e o desenvolvimento contínuo diminuíssem. O acúmulo
de entusiasmo seguido de decepção é o definição de um inverno AI .

Então, por que agora estamos vendo um ressurgimento do interesse pela IA? Qual é a
diferença hoje que está tornando a IA tão popular nas empresas, e devemos temer outro
inverno de IA? A resposta curta é provavelmente não - esperamos evitar um inverno de IA
desta vez devido principalmente a muito mais (ou grande) dados e ao advento de melhor poder
de processamento e unidades de processamento gráfico (GPUs). Dos minúsculos
supercomputadores que todos carregamos em nossos bolsos ao papel cada vez maior da IoT,
estamos gerando mais dados agora, a uma taxa cada vez maior. Por exemplo, Estimativas IDC
que 180 zetabytes de dados serão criados globalmente em 2025, contra menos de 10
zetabytes em 2015.

Andrew Ng , cofundador do Coursera e professor adjunto de Stanford, costuma apresentar Figura


1-1 em seus cursos sobre aprendizado de máquina e
aprendizado profundo .

Figura 1-1. Desempenho de aprendizado profundo (imagem cortesia de Andrew Ng, curso
Deeplearning.ai no Coursera)

Evitando um inverno AI | 3
Conceitualmente, este gráfico ilustra como o desempenho de algoritmos de aprendizado
profundo melhora com uma quantidade crescente de dados - dados que agora temos em
abundância e que estão crescendo a uma taxa exponencial.

Então, por que é importante entendermos o inverno da IA? Bem, se as empresas vão
investir em IA, é essencial evitar o hiperbole do passado e manter as expectativas
baseadas na realidade. Embora seja muito mais provável que a situação atual justifique
o entusiasmo, esse entusiasmo ainda precisa ser temperado com resultados do mundo
real para evitar outro inverno de IA. Como (futuros) praticantes de IA, isso é algo que
todos concordamos que desafiaria seus negócios.

Inteligência artificial, definida?


O mercado de inteligência artificial é imenso, mas o que estamos realmente discutindo?
Embora pareça ótimo dizer que você vai implementar IA em seu negócio, o que isso
significa em termos práticos? Inteligência artificial é um termo bastante amplo e é, na
realidade, um guarda-chuva sobre alguns conceitos diferentes.

Portanto, para começar e manter todos na mesma página, vamos discutir brevemente alguns
dos termos associados à IA que costumam ser confundidos ou trocados: inteligência artificial,
aprendizado de máquina e aprendizado profundo.

Inteligência artificial

Ao longo dos anos, houve inúmeras tentativas de definir com precisão a IA. Embora nunca
tenha havido uma definição oficial e aceita, alguns conceitos de alto nível moldam e definem o
que queremos dizer. As descrições variam de inteligência artificial meramente com o objetivo de
aumentar a inteligência humana até máquinas pensantes e a verdadeira inteligência de
computador. Para nossos propósitos, podemos pensar na IA como qualquer técnica que
permite aos computadores dar significado aos dados de maneira semelhante a um ser humano.

Embora a maioria da IA esteja focada em domínios de problemas específicos (processamento de


linguagem natural ou visão computacional, por exemplo), a ideia de inteligência geral artificial , ou ter
uma máquina realizando qualquer tarefa que um ser humano pudesse (também comumente referido
como "IA forte"), ainda está a mais de 10 anos de acordo com o Gartner .

4 Capítulo 1: Introdução à Inteligência Artificial


Aprendizado de Máquina

Em 1959, Arthur L. Samuel, pesquisador da IBM e professor de Stanford, teria afirmado


que o aprendizado de máquina é o "campo de estudo que dá aos computadores a
capacidade de aprender sem serem programados explicitamente", tornando-se o
originador do termo .

Essencialmente, o aprendizado de máquina é um subconjunto da IA focado em fazer com que os


computadores forneçam insights sobre os problemas sem programá-los explicitamente. A maioria
das ferramentas e técnicas que hoje se referem à IA são representativas do aprendizado de
máquina. Existem três tipos principais de aprendizado de máquina - aprendizado supervisionado,
aprendizado não supervisionado e aprendizado por reforço.

Observando muitos pontos de dados rotulados e exemplos de problemas históricos, os algoritmos de

aprendizado supervisionado podem ajudar a resolver problemas semelhantes em novas circunstâncias.

A aprendizagem supervisionada treina em grandes volumes de dados históricos e cria regras gerais a

serem aplicadas a problemas futuros. Quanto melhores forem os dados do conjunto de treinamento,

melhor será o resultado. No aprendizado supervisionado, o sistema aprende com esses exemplos

marcados por humanos.

Enquanto o aprendizado supervisionado depende de dados rotulados ou estruturados (pense em linhas

em um banco de dados), o aprendizado não supervisionado treina em dados não rotulados ou não

estruturados (o texto de um livro). Esses algoritmos exploram os dados e tentam encontrar a estrutura.

Aqui, algoritmos de aprendizado não supervisionado amplamente usados são análise de cluster e

análise de cesta de compras. Naturalmente, isso tende a ser mais difícil, pois os dados não têm rótulos

preexistentes para auxiliar os algoritmos na compreensão dos dados. Embora seja mais difícil de

processar, como discutiremos mais tarde, os dados não estruturados constituem a grande maioria dos

dados que as empresas precisam processar hoje.

Finalmente, existe o aprendizado por reforço como uma técnica de aprendizado de máquina. A
aprendizagem por reforço tem uma abordagem semelhante à psicologia comportamental. Em vez
de treinar um modelo com conjuntos de treinamento predefinidos (ou seja, onde você conhece as
respostas prescritas com antecedência) como no aprendizado supervisionado, aprendizagem por
reforço recompensa o algoritmo quando executa a ação correta (comportamento). O aprendizado
por reforço resiste a fornecer muito treinamento e permite que o algoritmo se otimize para
recompensas baseadas no desempenho.

O aprendizado por reforço foi inicialmente concebido em 1951 por Marvin Minsky. Ainda
assim, como era o caso com muitas implementações de IA, o

Inteligência artificial, definida? | 5


os algoritmos foram retidos tanto pela escala de dados quanto pelo poder de
processamento do computador necessário para a eficácia. Hoje, vemos muitos mais
exemplos de sucesso de aprendizagem por reforço no campo, com AlphaGo, subsidiária da
Alphabet, DeepMind, um dos mais proeminentes. Outra aplicação notável do aprendizado
por reforço é o desenvolvimento de carros autônomos.

Aprendizado Profundo

Nenhum livro sobre o desenvolvimento de aplicativos de IA na empresa estaria completo sem uma

discussão sobre aprendizado profundo. Uma maneira de entender o aprendizado profundo é pensar

nele como um subconjunto de IA que tenta desenvolver sistemas de computador que aprendem usando

redes neurais como as do cérebro humano. Enquanto o aprendizado de máquina é principalmente

sobre otimização, o aprendizado profundo se concentra na criação de algoritmos para simular como os

neurônios do cérebro humano funcionam.

Os algoritmos de aprendizado profundo são compostos por uma rede interconectada de nós
chamados neurônios e as bordas que os unem. Redes neurais recebem entradas, realizam cálculos
e, em seguida, usam essa saída para resolver determinados problemas .

Um dos objetivos finais da IA é fazer com que os computadores pensem e aprendam como seres
humanos. Usando redes neurais baseadas no processo de tomada de decisão do cérebro humano,
o aprendizado profundo é um conjunto de técnicas computacionais que nos aproxima desse
objetivo.

De acordo com o professor de Stanford Chris Manning, por volta do ano


2010, técnicas de aprendizado profundo começaram a superar outras técnicas de aprendizado de
máquina . Pouco depois disso, em 2012, Geoffrey Hinton, da Universidade de Toronto, liderou uma
equipe que criou uma rede neural que aprendeu a reconhecer imagens. Além disso, naquele ano,
Andrew Ng liderou uma equipe do Google que criou um sistema para reconhecer gatos em vídeos
do YouTube sem treiná-lo explicitamente em gatos.

Ao construir várias camadas de abstração, o aprendizado profundo também pode resolver problemas
complexos de linguagem onde é essencial discernir o significado. A IA tradicional segue uma estrutura
de programação linear, limitando a habilidade de um computador de aprender sem intervenção
humana. No entanto, o aprendizado profundo substitui essa abordagem existente por algoritmos de
autoaprendizagem e autoaprendizagem, permitindo uma interpretação de dados mais avançada. Por
exemplo, a IA tradicional pode ler um código postal e endereço de correspondência em um envelope,
mas o aprendizado profundo também pode inferir

6 Capítulo 1: Introdução à Inteligência Artificial


pela cor do envelope e data de envio que a carta contém um cartão de férias.

A maior aproximação do aprendizado profundo de como o cérebro humano processa as informações


por meio de redes neurais oferece inúmeros benefícios. Em primeiro lugar, a abordagem oferece uma
capacidade significativamente melhorada de processar grandes volumes de dados não estruturados,
encontrando padrões e ideias significativas. Em seguida, o aprendizado profundo oferece a
capacidade de desenvolver modelos em uma ampla variedade de dados, destacados por abordagens
avançadas para conteúdo de texto, imagens, áudio e vídeo. Finalmente, o grande paralelismo do
aprendizado profundo permite o uso de múltiplos núcleos de processamento / computadores para
maximizar o desempenho geral, bem como um treinamento mais rápido com o advento das GPUs.

Como acontece com todos os avanços em IA, o aprendizado profundo se beneficia de muito mais
dados de treinamento do que nunca, máquinas e GPUs mais rápidas e algoritmos aprimorados.
Essas redes neurais estão impulsionando avanços rápidos em reconhecimento de fala,
reconhecimento de imagem e tradução automática, com alguns sistemas funcionando tão bem ou
melhor do que os humanos.

Aplicativos na empresa
De finanças a cibersegurança e manufatura, não existe um setor que não seja
afetado pela IA. Mas antes de podermos discutir e examinar a construção de
aplicativos na empresa com IA, primeiro precisamos definir o que queremos dizer
com aplicativos corporativos. Existem duas definições comuns de "empresa":

• Uma empresa de tamanho e orçamento significativos

• Qualquer comércio business-to-business (ou seja, não um consumidor)

Portanto, Geico, Procter & Gamble, IBM e Verizon seriam todas empresas empresariais. E
por esta definição, qualquer software projetado e construído internamente seria considerado
software corporativo. Por outro lado, uma pequena empresa ou startup poderia desenvolver
aplicativos para serem usados por empresas (grandes ou pequenas), e isso ainda seria
considerado software corporativo. No entanto, um aplicativo de compartilhamento de fotos
para o consumidor médio não seria considerado um software empresarial.

Isso provavelmente é óbvio, mas uma vez que estamos discutindo aplicativos corporativos
com IA neste livro, é importante ser explícito sobre o que

Aplicativos na empresa | 7
queremos dizer quando falamos sobre a empresa. Para o restante do livro, o contexto de uma
empresa será que o usuário final seja um empresário ou funcionário de negócios.

Isso significa que, se você estiver criando o próximo grande aplicativo de compartilhamento de
fotos para o consumidor, este livro não terá utilidade? Absolutamente não! Muitos (senão a
maioria) dos conceitos discutidos ao longo do livro também podem ser aplicados diretamente a
aplicativos voltados para o consumidor. No entanto, os casos de uso e a discussão serão
centralizados na empresa.

Próximos passos
Este livro tem como objetivo fornecer uma ampla visão geral da inteligência artificial,
as várias tecnologias envolvidas, estudos de caso relevantes e exemplos de
implementação e o cenário atual. Também discutiremos o futuro da IA e onde vemos
sua evolução na empresa do ponto de vista de um praticante atual.

Embora o livro se concentre em um público mais técnico, especificamente os


desenvolvedores de aplicativos que procuram aplicar a IA em seus negócios, os tópicos
gerais e a discussão ajudarão qualquer pessoa interessada em como a inteligência artificial
afetará a empresa.

Observe que este livro não substitui um curso ou estudo profundo sobre esses tópicos,
mas esperamos que o material abordado aqui dê um salto inicial no processo de se
tornar um praticante proficiente de tecnologias de IA.

Embora existam muitas opções para implementar as várias técnicas de IA que discutiremos
neste livro - codificação interna a partir do zero, terceirização, o uso de bibliotecas de código
aberto, APIs de software como serviço de fornecedores líderes - nosso familiaridade e
profunda experiência giram em torno do IBMWatson, portanto, usaremos esses exemplos de
código para ilustrar os tópicos individuais conforme necessário.

É importante observar que, embora acreditemos que a IBM oferece uma ótima solução ponta a ponta
para aplicar IA na empresa, não é a única opção. Todos os principais provedores de computação em
nuvem oferecem soluções semelhantes. Além disso, existem inúmeras ferramentas de código aberto
que discutiremos mais tarde.

Nos próximos capítulos, discutiremos alguns dos usos mais comuns da IA na


empresa (processamento de linguagem natural, chatbots,

8 Capítulo 1: Introdução à Inteligência Artificial


e visão computacional). Em seguida, discutiremos a importância de um pipeline de
dados sólido, seguido por uma análise dos desafios e tendências da IA na empresa.

Próximas etapas | 9
CAPÍTULO 2

Processamento de linguagem natural

Nossa inteligência é o que nos torna humanos, e a IA é uma extensão dessa qualidade.

- Yann LeCun, professor, New York University

Os humanos têm criado a palavra escrita por milhares de anos e nos tornamos muito
bons em ler e interpretar o conteúdo rapidamente. Intenção, tom, gíria e abreviações - a
maioria dos falantes nativos de um idioma pode processar muito bem esse contexto tanto
na palavra escrita quanto falada. Mas as máquinas são outra história. Já na década de
1950, os cientistas da computação começaram a tentar usar software para processar e
analisar componentes textuais, sentimentos, classes gramaticais e as várias entidades
que compõem um corpo de texto. Até há relativamente pouco tempo, processar e
analisar a linguagem era um grande desafio.

Desde que Watson da IBM venceu no game show Perigo!, a promessa de máquinas serem
capazes de entender a linguagem lentamente se aproximou da realidade. No mundo de hoje,
onde as pessoas vivem suas vidas por meio da mídia social, a oportunidade de obter insights a
partir dos milhões de palavras de texto produzidos todos os dias levou a uma corrida
armamentista. Novas ferramentas permitem que os desenvolvedores criem facilmente modelos
que entendam as palavras usadas no contexto de seu setor. Isso leva a melhores decisões de
negócios e resultou em uma competição de alto risco em muitos setores para ser o primeiro a
entregar.

Um estudo de 2017 da IBM relatou que 90% dos dados do mundo foram criados nos
últimos dois anos, e que 80% desses dados não eram estruturados . Insights valiosos
para a empresa estão escondidos em

11
esses dados, que variam de e-mails a discussões de suporte ao cliente para relatórios de
pesquisa. Essas informações são extremamente úteis se puderem ser encontradas,
interpretadas e utilizadas. Quando uma empresa pode aproveitar essa enorme quantidade
de dados não estruturados e transformá-los em algo significativo, há infinitas possibilidades
para melhorar os processos de negócios, reduzir custos e aprimorar produtos e serviços.

Como alternativa, as empresas sem a capacidade de lidar com seus dados não estruturados
sofrem perda de receita, oportunidades de negócios perdidas e aumento de custos,
provavelmente sem seu conhecimento.

Interpretar esses dados não estruturados é bastante difícil. Na verdade, processar palavras (ou
linguagem natural) geradas por humanos (não por máquina) é considerado um AI-hard ou AI
completo problema. Em outras palavras, é um desafio que traz o esforço total da IA para lidar
com o problema e não é facilmente resolvido por um único algoritmo projetado para um
propósito específico.

Neste capítulo, daremos uma visão geral da PNL, discutiremos alguns exemplos da indústria e
casos de uso e examinaremos algumas estratégias para implementar a PNL em aplicativos
corporativos.

Visão geral da PNL


O processamento de linguagem natural é essencialmente a capacidade de pegar um corpo de texto e
extrair significado dele usando um computador. Enquanto a linguagem computacional é muito
estruturada (pense em XML ou JSON) e facilmente compreendida por uma máquina, palavras escritas
por humanos são bastante confusas e não estruturadas - ou seja, quando você escreve sobre uma
casa, amigo, animal de estimação ou telefone em um parágrafo, não há referência explícita que rotule
cada um deles como tal.

Por exemplo, pegue esta frase simples:

Eu levei minha amiga Mary ao parque no meu Tesla enquanto ouvia música no meu
iPhone.

Esta é uma frase facilmente compreensível para um leitor humano e pinta uma
imagem clara do que está acontecendo. Mas, para um computador, nem tanto. Para
uma máquina, a frase precisaria ser dividida em suas partes estruturadas. Em vez de
uma frase inteira, o computador precisaria ver as partes ou entidades individuais
junto com as relações entre essas entidades.

12 Capítulo 2: Processamento de linguagem natural


Os humanos entendem que Mary é uma amiga e que um Tesla provavelmente é um carro.
Como temos o contexto de trazer nosso amigo conosco, intuitivamente excluímos que
estamos dirigindo outra coisa, como uma bicicleta. Além disso, após muitos anos de
popularidade e referências culturais, todos sabemos que um iPhone é um smartphone.

Um computador não entende nenhuma das opções acima sem ajuda. Agora vamos ver
como essa frase pode ser escrita como dados estruturados desde o início. Se os
desenvolvedores tivessem tempo para estruturar os dados em nossa frase, em XML você
veria as seguintes entidades:

<amigo> Maria </ amigo>


<car> Tesla </ carro>
<phone> Iphone </ telefone>

Mas, obviamente, isso não pode acontecer na hora sem ajuda. Conforme mencionado
anteriormente, temos significativamente mais dados não estruturados do que estruturados. E, a
menos que demore tempo para aplicar a estrutura correta ao texto com antecedência, temos
um grande problema que precisa ser resolvido. É aqui que a PNL entra em cena.

O processamento de linguagem natural é necessário quando você deseja minerar dados não
estruturados e extrair percepções significativas do texto. As aplicações gerais da PNL tentam
identificar entidades comuns de um corpo de texto; mas quando você começa a trabalhar com
conteúdo específico de domínio, um modelo personalizado precisa de treinamento.

Os componentes da PNL
Para entender a PNL, primeiro precisamos entender os componentes de seu modelo.
Especificamente, o processamento de linguagem natural permite que você analise e extraia
metadados importantes do texto, incluindo entidades, relações, conceitos, sentimento e emoção.

Vamos discutir brevemente cada um desses aspectos que podem ser extraídos de um corpo de texto.

Entidades

Provavelmente o caso de uso mais comum para processamento de linguagem natural, as


entidades são as pessoas, lugares, organizações e coisas em seu texto. Em nossa frase de
exemplo inicial, identificamos várias entidades no texto - amigo, carro e telefone.

Os componentes da PNL | 13
Relações

Como as entidades estão relacionadas? O processamento de linguagem natural pode


identificar se há um relacionamento entre várias entidades e informar o tipo de relação entre
elas. Por exemplo, uma relação "createdBy" pode conectar as entidades "iPhone" e "Apple".

Conceitos

Um dos aspectos mais mágicos da PNL é extrair conceitos gerais do corpo do texto que
podem não aparecer explicitamente no corpus. Esta é uma ferramenta potente. Por exemplo,
uma análise de um artigo sobre Tesla pode retornar os conceitos “carros elétricos” ou “Elon
Musk”, mesmo que esses termos não sejam mencionados explicitamente no texto.

Palavras-chave

A PNL pode identificar as palavras-chave importantes e relevantes em seu conteúdo. Isso


permite que você crie uma base de palavras do corpus que são importantes para o valor
comercial que você está tentando gerar.

Funções Semânticas

Os papéis semânticos são os sujeitos, ações e os objetos sobre os quais atuam no


texto. Considere a frase: “A Intel comprou uma empresa”. Nesta frase, o assunto é
“Intel”, a ação é “comprada” e o objeto é “empresa”. A PNL pode analisar sentenças
nessas funções semânticas para vários usos comerciais - por exemplo, determinar quais
empresas foram adquiridas na semana passada ou receber notificações sempre que
uma determinada empresa lançar um produto.

Categorias

As categorias descrevem do que trata um conteúdo em alto nível. A PNL pode analisar texto
e, em seguida, colocá-lo em uma taxonomia hierárquica, fornecendo categorias para uso em
aplicativos. Dependendo do conteúdo, as categorias podem ser esportes, finanças, viagens,
computação e assim por diante. As aplicações possíveis incluem colocar anúncios relevantes
ao lado de conteúdo gerado pelo usuário em um site ou exibir todos os artigos que falam
sobre um determinado assunto.

14 Capítulo 2: Processamento de linguagem natural


Emoção

Esteja você tentando entender a emoção transmitida por uma postagem nas redes sociais
ou analisando tíquetes de suporte ao cliente recebidos, detectar emoções no texto é
extremamente valioso. O conteúdo está transmitindo raiva, nojo, medo, alegria ou tristeza?
A detecção de emoções na PNL ajudará a resolver esse problema.

Sentimento

Da mesma forma, qual é o sentimento geral no conteúdo? É positivo, neutro ou negativo?


A PNL pode fornecer uma pontuação quanto ao nível de sentimento positivo ou negativo
do texto. Novamente, isso prova ser extremamente valioso no contexto de suporte ao
cliente. Isso permite uma compreensão contínua e automática do sentimento relacionado
ao seu produto.

Agora que cobrimos o que constitui o processamento de linguagem natural, vamos


examinar alguns exemplos para ilustrar como a PNL é usada atualmente em vários
setores.

Aplicativos Corporativos de PNL


Embora existam vários exemplos de processamento de linguagem natural sendo usado em
aplicativos corporativos, a seguir estão algumas das melhores representações do poder da
PNL.

Análise de mídia social

Uma das aplicações corporativas mais comuns de processamento de linguagem natural é o


monitoramento, análise e análise de mídia social. Mais de 500 milhões de tweets são enviados por
dia . Como podemos extrair insights valiosos deles? Quais são os tópicos de tendência e hashtags
relevantes para uma empresa? O processamento de linguagem natural pode fornecer essas
informações e muito mais, analisando as mídias sociais. Não apenas o sentimento e as menções
podem ser explorados em todo esse conteúdo social gerado pelo usuário, mas também podem ser
encontradas conversas específicas para ajudar as empresas a interagir melhor com os clientes.

Além disso, quando um incidente ocorre em tempo real, a aplicação da PNL para monitorar a
mídia social oferece uma vantagem distinta para ajudar as empresas a reagir imediatamente
com o entendimento apropriado do problema em questão.

Aplicativos empresariais de PNL | 15


Suporte ao cliente

Um estudo recente mostrou que as empresas perdem mais de $ 62 bilhões anualmente


devido ao mau atendimento ao cliente, um aumento de 51% desde 2013 . Portanto, são
necessários métodos para melhorar o suporte ao cliente.

As empresas estão usando o processamento de linguagem natural de várias maneiras no


atendimento ao cliente. Para cada tíquete de suporte recebido, o conteúdo pode ser analisado
para obter seu sentimento, palavras-chave relevantes e categorização. Este processo pode ser
usado para encaminhar o tíquete de suporte mais rápido para o representante correto e, em
alguns casos, para responder automaticamente à solicitação (isso pode ser estendido com
chatbots, como veremos no próximo capítulo).

O processamento de linguagem natural também pode ajudar a garantir que os representantes de


suporte sejam consistentes e não agressivos (ou qualquer outra característica que a empresa
esteja tentando minimizar) em seu idioma. Ao preparar uma resposta a uma pergunta de suporte,
um aplicativo que incorpora a PNL pode fornecer um vocabulário sugerido para auxiliar neste
processo.

Essas abordagens de suporte ao cliente podem tornar o sistema geral muito mais rápido,
eficiente e fácil de manter e, subsequentemente, reduzir os custos em relação a um
sistema de tíquetes tradicional.

Business Intelligence

De acordo com o Gartner, o mercado de software de business intelligence (BI) atingiu US $ 24,8
bilhões em 2019 . Infelizmente, um dos problemas comuns associados ao BI é a confiança na
execução de consultas complexas para acessar os dados estruturados em sua maioria. Isso
apresenta dois problemas significativos. Primeiro, como uma empresa acessa o conjunto maior de
dados não estruturados e, segundo, como esses dados podem ser consultados em uma base mais
ad hoc, sem a necessidade dos desenvolvedores escreverem consultas complexas?

A incapacidade de usar dados não estruturados, internos e externos, para a tomada de decisões de
negócios é um problema crítico. O processamento de linguagem natural permite que todos os
usuários, especialmente especialistas não técnicos, façam perguntas sobre os dados em vez de
precisar escrever uma consulta complexa ao banco de dados. Isso permite que os usuários de
negócios façam perguntas sobre os dados sem ter que solicitar recursos do desenvolvedor para que
isso aconteça. Isso democratiza o BI dentro da empresa e libera tempo de desenvolvimento crucial
para desenvolvedores em outras áreas. Além disso, este

16 | Capítulo 2: Processamento de linguagem natural


melhora significativamente a produtividade geral da organização e permite uma redução
potencial de pessoal para um determinado projeto ou implementação de aplicativo.

Marketing de conteúdo e recomendação

À medida que se torna mais difícil alcançar os clientes com publicidade, as empresas agora procuram
o marketing de conteúdo para produzir histórias exclusivas que gerem tráfego e aumentem o
conhecimento da marca. Não apenas procuram por novos conteúdos para criar, mas as empresas
também querem maneiras melhores de recomendar conteúdos mais relevantes aos seus leitores.
Todo mundo está familiarizado com os artigos recomendados que são apenas clickbait com pouco
valor ou aplicabilidade aos seus interesses.

Além disso, à medida que mais pessoas usam bloqueadores de anúncios, o método tradicional de monetizar

conteúdo está diminuindo rapidamente. Em resposta, isso leva as empresas a se envolverem de maneiras

mais atraentes, principalmente por meio de um conteúdo melhor e de uma narrativa única.

O processamento de linguagem natural permite que as empresas que publicam conteúdo


analisem todos os artigos, postagens de blog e comentários e resenhas de clientes para
entender sobre o que escrever e produzir tópicos mais interessantes e relevantes para os
leitores. Além disso, grandes quantidades de dados de tendências também podem ser obtidas a
partir desse conteúdo recém-processado, fornecendo insights adicionais.

Tópicos Adicionais

Discutimos apenas alguns exemplos do setor, mas existem muitos mais. Por exemplo, o
processamento de linguagem natural é usado no gerenciamento de marcas. Os clientes
estão falando sobre marcas todos os dias em vários canais. Como uma empresa monitora o
que é dito sobre a marca e entende o conteúdo e sentimento? Da mesma forma, a
inteligência de mercado é outra área frequentemente aprimorada por meio do processamento
de linguagem natural.

Embora seja mais específico para um determinado domínio ou setor, também existem outros
exemplos que ilustram o poder do processamento de linguagem natural para melhorar os
resultados de negócios. Um exemplo disso é a indústria jurídica. A PNL está sendo usada por
várias empresas para revisar casos e outros documentos legais para aliviar a necessidade de
advogados e paralegais caros. Não só os profissionais jurídicos economizam tempo por não
terem que ler cada palavra pessoalmente, mas as empresas também reduzem as taxas de erro
por ter uma máquina processando muitos milhares de palavras

Aplicativos empresariais de PNL | 17


rapidamente em oposição a um leitor humano que logo se cansa. Curiosamente, embora se possa
pensar que isso leva a uma redução nos empregos (especialmente para os assistentes jurídicos e
paralegais de custo relativamente mais baixo), melhorou sua eficiência, permitindo que eles
gastassem seu tempo fazendo mais e com taxas mais altas trabalho faturável.

Dica Prática
Agora que você leu alguns exemplos de processamento de linguagem natural usado na
empresa, pare um minuto para pensar sobre sua indústria. Primeiro, em quais áreas você viu
a abordagem aplicada em seu campo? Em segundo lugar, faça um brainstorming de alguns
exemplos de como a PNL pode ser usada em sua empresa. Por fim, comece a pensar no que
você pode precisar para implementá-los como soluções. Discutiremos as opções no decorrer
do livro, mas desafie-se a pensar no que é necessário para melhorar suas aplicações com
PNL.

Como usar a PNL


Agora que fornecemos uma visão geral do processamento de linguagem natural e alguns
exemplos do setor, vamos examinar algumas das estratégias para implementar a PNL em
um aplicativo.

Existem muitas soluções para processamento de linguagem natural. Começando com


projetos de software de código aberto, alguns dos mais populares incluem Apache NLP,
Stanford CoreNLP, NLTK para Python e SyntaxNet.

Embora essas sejam algumas das opções mais populares, há uma coleção de bibliotecas de
código aberto para processamento de linguagem natural em quase todas as linguagens de
programação. Por exemplo, se você usa Ruby, pode encontrar uma coleção de pequenas
bibliotecas em http://rubynlp.org . O mesmo vale para PHP: http://php-nlp-tools.com . Nesse
ponto, normalmente não há necessidade de reinventar a roda ou, neste caso, o algoritmo!

No entanto, embora existam muitas opções para implementar o processamento de linguagem


natural usando código aberto como ponto de partida, de uma perspectiva de custo-benefício,
muitas vezes pode fazer sentido que os aplicativos corporativos utilizem um dos vários
serviços de terceiros.

Atualmente, várias empresas fornecem APIs oferecidas como software como serviço
(SaaS). Do IBMWatson Natural Language Understanding

18 Capítulo 2: Processamento de linguagem natural


(NLU) para Azure Text Analytics para Amazon Comprehend, utilizando uma API de serviço hospedado

pode reduzir o tempo do desenvolvedor e economizar esses recursos vitais para outros aspectos de

desenvolvimento de aplicativos.

Ao avaliar se deve construir internamente, terceirizar ou usar APIs hospedadas, faça a si


mesmo a seguinte pergunta importante: quanto de um componente central para o seu
negócio é a inteligência artificial? Sua resposta pode, então, direcionar o nível técnico de
conhecimento necessário para seu aplicativo empresarial. Por exemplo, se você é uma
empresa de comércio eletrônico que tenta adicionar inteligência ao seu sistema de suporte
ao cliente, seria mais apropriado começar com APIs hospedadas, já que um melhor suporte
ao cliente melhora o negócio, mas não é sua funcionalidade principal.

Alternativamente, empresas como Amazon e Netflix contam com motores de recomendação,


que auxiliam na criação de uma experiência personalizada para os usuários, como funções
centrais de seus negócios. De acordo com a McKinsey, esses algoritmos de recomendação
produzem 35% das compras da Amazon e 75% das visualizações da Netflix . Nesse caso, eles
empregariam engenheiros de aprendizado de máquina e cientistas de dados para melhorar
continuamente essa parte do aplicativo.

Dica Prática
Ao comparar ferramentas de PNL, tome cuidado para examinar o que o serviço inclui. A maioria
dos provedores terceirizados agrupa vários algoritmos para criar seu produto. Planeje combinar
e combinar para atender às suas necessidades ou examine cuidadosamente o que a API de
processamento de linguagem natural específica oferece e se atende às necessidades do seu
aplicativo.

Modelos de treinamento

Se você desenvolver o processamento de linguagem natural do zero em sua empresa, criará


modelos personalizados por padrão. Mas quando você está usando soluções de terceiros ou
opções de código aberto, a solução pronta para o uso cobrirá apenas a maioria dos casos e
será decididamente não específica para o domínio. Se você deseja melhorar a precisão e
confiabilidade de sua saída, você desejará criar e treinar um modelo personalizado. Isso é
especialmente verdadeiro se você estiver usando um serviço de terceiros.

Como usar a PNL | 19


Embora existam várias maneiras de realizar o treinamento de um modelo, os detalhes
estão além do escopo deste livro, pois variam dependendo da solução específica.

Usando o IBM Watson NLU como exemplo, você pode treinar um modelo customizado usando o

Watson Knowledge Studio (WKS). WKS é uma ferramenta baseada na web que permite aos

especialistas de domínio treinar um modelo de processamento de linguagem natural personalizado sem

programação. Tanto os desenvolvedores quanto os usuários finais não técnicos podem fazer upload de

documentos relevantes e, em seguida, anotá-los para suas entidades e relações específicas do

domínio. Eles podem usar esses dados para treinar um modelo customizado por meio de aprendizado

de máquina e publicá-lo nas APIs NLU do Watson para uso em seus aplicativos.

Desafios da PNL
Apesar de ser uma tecnologia robusta neste ponto, o processamento de linguagem natural nem
sempre é uma solução perfeita. Embora tenhamos discutido anteriormente os diversos benefícios
da PNL, duas áreas principais ainda se mostram um desafio para sua implementação em
aplicativos empresariais.

Primeiro, o processamento de linguagem natural funciona melhor com grandes conjuntos de dados:

quanto mais dados, melhor é a precisão. Embora o tamanho necessário do conjunto de dados dependa

da aplicação real, mais dados são melhores em geral.

Em segundo lugar, o processamento de linguagem natural não é uma solução mágica.


Depois de explorar e trabalhar um pouco com a PNL, é fácil pensar que obterá respostas
fáceis para as perguntas. Quando você está testando a PNL, os resultados tendem a ser
muito precisos, pois a tendência é inserir corpos de texto relativamente simples para teste.
Infelizmente, as línguas humanas têm muitas nuances. Pense em todas as frases e
palavras que podem ser interpretadas. Conceitos como sarcasmo ainda são muito difíceis
de entender por meio do processamento de linguagem natural. Gíria, jargão e humor
também são difíceis de processar. Existe uma enorme ambigüidade na linguagem que só é
compreendida a partir do contexto. Além disso, lidar com erros ortográficos e gramaticais é
especialmente complicado.

Qual é a melhor maneira de lidar com esses desafios então? Até que a tecnologia se atualize e
aumente a precisão nesses casos, a melhor abordagem é saber que eles existem e filtrar /
revisar o conteúdo que está passando pelo processamento de linguagem natural, tanto quanto
possível. Enquanto isso

20 Capítulo 2: Processamento de linguagem natural


não é uma solução ideal por si só, prestar atenção ao seu conteúdo pré-processado com
antecedência e filtrar qualquer conteúdo questionável com antecedência é a melhor
opção.

Dica Prática
Reserve um minuto e visite seus feeds do Twitter, Facebook ou LinkedIn. Leia as
postagens e imagine ser capaz de ler e compreender programaticamente cada
trecho de texto quase que instantaneamente. O que você faria com esse insight?
Como você poderia incorporar esse novo conhecimento em seu aplicativo
corporativo?

Resumo
O processamento de linguagem natural é uma ferramenta poderosa usada em uma ampla variedade de

aplicativos corporativos. Como o texto aparece em quase todos os lugares, a PNL fornece um bloco de

construção essencial para todos os aplicativos corporativos que utilizam inteligência artificial.

Nesse sentido, o processamento de linguagem natural também forma a espinha dorsal para a criação
de aplicativos de conversação, mais comumente conhecidos como chatbots. No próximo capítulo,
discutiremos isso com mais detalhes.

Resumo | 21
CAPÍTULO 3

Chatbots

AI é uma ferramenta. A escolha sobre como ele será implantado é nossa.

- Oren Etzioni, professor, Universidade de Washington

O Dr. Ashok Goel dá uma aula chamada Inteligência Artificial Baseada no


Conhecimento a cada semestre na Georgia Tech. É uma turma enorme com cerca de
300 alunos registrados. Compreensivelmente, ser um assistente de ensino (TA) para
este curso pode ser um grande desafio, já que 300 alunos postam aproximadamente
10.000 mensagens nos fóruns online. Mas durante o semestre da primavera de 2017,
uma TA em particular foi especialmente boa em seu trabalho. Ela respondeu às
perguntas dos alunos com excelente eficiência. Ela ficava disponível até tarde da noite
antes de um prazo. Naturalmente, os alunos a amavam e a elogiavam.

Você provavelmente pode adivinhar como a história termina. No final do semestre, a


maioria dos alunos ficou surpresa ao descobrir que a TA, chamada Jill Watson, era na
verdade um chatbot. O Dr. Goel e sua equipe criaram Jill rastreando todas as perguntas
que já haviam sido feitas no fórum online do curso (cerca de 40.000 postagens ao todo).
Em seguida, eles treinaram Jill para responder a essas perguntas usando o IBM Watson.
Jill não era muito boa no início, mas aprendeu com seus erros e acabou dando respostas
com 97% de certeza.

São histórias como essa que despertaram o interesse de desenvolvedores e empresários e


alimentaram o interesse por chatbots. Neste capítulo, exploraremos alguns aspectos deste
tópico. Falaremos sobre o que é um chatbot, por que agora é um excelente momento para
construir um e algumas considerações importantes para criar um chatbot de sucesso.

23
O que é um chatbot?
Então, o que exatamente é um chatbot? Um chatbot é uma forma de expor o serviço ou dados de
uma empresa por meio de uma interface de linguagem natural. É importante entender que, como
interface, o chatbot é tão bom quanto o serviço ou os dados subjacentes. Portanto, se você está
pensando em criar um chatbot, primeiro certifique-se de que seus serviços e dados sejam
sólidos. Como saber se eles estão em boa forma? Imagine que o serviço que você está
fornecendo tem uma interface web ou móvel tradicional. Isso ainda seria útil? Se a resposta for
“não”, seu serviço também não está pronto para uma interface de chatbot.

Se bem construídos, os chatbots podem ajudar sua empresa a cortar custos e estabelecer fontes de

receita adicionais. Um agente de suporte virtual ao cliente pode reduzir o número de funcionários e

escalar exponencialmente seus recursos de suporte ao cliente em tempo real. Um chatbot de comércio

de conversação oferece à sua empresa um canal totalmente novo no qual você pode interagir com seus

clientes por meio de plataformas de mensagens.

The Rise of Chatbots


Os chatbots já existem há muito tempo. Vinte anos atrás, eles procuravam apenas
algumas palavras em um conjunto altamente restrito de comandos: “Isso é correto?
Digite sim ou não. ” Mas, como você pode ver na história da Georgia Tech, os chatbots
de hoje parecem totalmente diferentes.

Existem alguns motivos pelos quais isso está acontecendo agora, especialmente na empresa:

• A disponibilidade de recursos de PNL discutidos no capítulo anterior, e


particularmente aqueles na nuvem

• A proliferação de plataformas de mensagens populares, como Slack e Facebook


Messenger

• O impulso para interfaces de linguagem natural As


próximas seções irão elaborar cada uma.

24 Capítulo 3: Chatbots
Processamento de linguagem natural na nuvem

A disponibilidade de recursos de processamento de linguagem natural na nuvem tem sido a


força mais potente por trás do surgimento dos chatbots. A PNL, especificamente
classificadores de texto e extratores de entidade, potencializa algumas das principais
funcionalidades de um chatbot. Se você leu o capítulo anterior ou tem experiência em
aprendizado de máquina, sabe que essas técnicas de PNL não são novas. O problema tem
sido a dificuldade de utilizá-los para pessoas fora da comunidade de pesquisa. Soluções de
código aberto tornaram esses métodos mais acessíveis, mas a chegada de APIs em nuvem,
com uma experiência de usuário superior, permitiu que muito mais empresas usassem essa
tecnologia.

Proliferação de plataformas de mensagens

Os aplicativos de mensagens passaram a dominar nosso uso de aplicativos móveis.

Dados recentes mostra que eles ultrapassaram as redes sociais em usuários ativos mensais. À medida
que mais usuários gastam tempo em aplicativos de mensagens, as empresas procuram maneiras de
alcançar os usuários por meio desses canais. Acontece que há uma grande quantidade de dados
contextuais enterrados nessas mensagens. Fazemos planos para o jantar, perguntamos sobre lojas e
procuramos comprar mercadorias. As empresas agora estão procurando ajudar os usuários
incorporando chatbots em canais de mensagens para responder a perguntas ou auxiliar em várias
tarefas.

Interface de linguagem natural

Na maioria das interações homem-máquina, os usuários traduzem suas intenções em uma série de
pressionamentos de teclas e cliques em botões. A máquina então responde por meio de pixels em
uma tela. Não seria bom falar com os computadores da mesma maneira que falamos uns com os
outros? Esse desejo por interfaces de linguagem naturais sempre existiu. Nos primórdios dos
mecanismos de pesquisa, as pessoas gostavam de Ask Jeeves porque ele permitia que seus
usuários pesquisassem na web usando uma linguagem natural. Agora, a proliferação de
dispositivos como o Amazon Echo atraiu os desenvolvedores para a ideia de uma casa controlada
por voz. Afinal, os eletrodomésticos são notórios por suas interfaces de usuário desajeitadas e
substituí-los por agentes inteligentes com os quais poderíamos conversar parece uma experiência
de usuário muito melhor.

The Rise of Chatbots | 25


Como construir um chatbot
Um chatbot tem um front-end e um back-end. O frontend é o canal de mensagens
onde o chatbot interage com o usuário. O back-end é a lógica do aplicativo, os
armazenamentos de persistência e os serviços de suporte.

O Canal de Mensagens

Existem muitos canais de mensagens disponíveis. Você pode aproveitar um já existente,


como o Slack ou o Facebook Messenger. Você também pode criar sua própria camada de
mensagens, como um site personalizado ou aplicativo móvel. A escolha do canal certo
depende de como você planeja envolver seus usuários. Se você é um banco com um
aplicativo móvel popular, deve expor seu chatbot lá. Se você é uma pequena empresa com
uma página ativa no Facebook, integrar o seu chatbot ao Facebook Messenger é uma boa
ideia.

O Backend
Vamos primeiro discutir e expandir uma tecnologia de PNL em particular - classificadores
de texto. Não foi até recentemente que os classificadores de texto tornaram-se fáceis de
usar e disponíveis na nuvem. Eles são uma parte importante dos chatbots. Se você fosse
criar um chatbot de suporte ao cliente do zero, a tarefa provavelmente pareceria
esmagadora. Afinal, mesmo em um domínio restrito, como suporte ao cliente, ainda pode
haver um número intratável de solicitações diferentes. Como você pode ter uma resposta
para cada uma delas? O principal insight é que, embora as solicitações dos clientes
possam ser expressas de um número quase infinito de maneiras, o espaço da solução é
muito menor. Aqui está um exemplo mais específico. Ao falar com um agente de
atendimento ao cliente, um cliente pode dizer qualquer um dos seguintes:

• “Por que não consigo mais entrar na minha conta?”

• "Esqueci a minha senha."

• “Diz que minha senha está incorreta.”

• “Estou sem acesso à minha conta.”

Felizmente, todas essas solicitações têm a mesma solução, que é redefinir a senha do
cliente. Portanto, a principal funcionalidade de um chatbot é

26 Capítulo 3: Chatbots
mapeie todas as entradas possíveis do usuário em um conjunto muito menor de respostas. Esse tipo de

reconhecimento de padrão é o que os classificadores de texto fazem melhor.

O Dr. Goel chegou à mesma conclusão ao construir Jill Watson: “Um dos segredos
das aulas online é que o número de perguntas aumenta se você tiver mais alunos,
mas o número de perguntas diferentes realmente não aumenta. Os alunos tendem a
fazer as mesmas perguntas repetidamente. ”

Usar uma estrutura em vez de construir sua própria

A primeira decisão significativa na construção de um back-end do chatbot é decidir se


deve aproveitar uma estrutura existente. Existem prós e contras em usar um, e se
escolhido corretamente, um framework pode fornecer uma grande parte da solução
com pouco esforço. Mas isso também significa abrir mão do controle da própria
estrutura. É simples construir um chatbot dentro dele, mas impossível personalizar ou
integrar o chatbot de uma maneira fora do design da estrutura. Existem muitos
frameworks de chatbot disponíveis, incluindo Google Cloud Dialflow, Wit.ai, Microsoft
Bot Framework, Amazon Lex e IBM Watson Assistant.

Anatomia de um back-end de chatbot

Se você decidir usar uma estrutura, o back-end do seu chatbot provavelmente consistirá em
três partes principais: intents, entidades e diálogo. Eles podem então ser integrados a um ou
mais canais de mensagens. Recursos extras como análise de sentimento, intervenção humana
ou personalidade também podem ser adicionados.

Intenção. Você geralmente começa a construir um chatbot com intenções. Uma intenção é a
finalidade da entrada de um usuário. Pode ser uma pergunta sobre seu horário comercial ou
uma reclamação sobre o processo de registro. A resposta do seu chatbot a essa intenção
depende inteiramente de você. Pode ser um parágrafo que responda à pergunta ou uma ação,
como iniciar o processo de redefinição de senha. Outra maneira de pensar sobre as intents é
que elas são os verbos para os seus chatbots agirem. Eles determinam o que seus chatbots
farão a seguir.

Para treinar seu chatbot a reconhecer uma intent, primeiro determine a ação que você
gostaria de mapear para esta intent - por exemplo, forneça informações sobre o horário
comercial. Em seguida, forneça à estrutura exemplos de entradas do usuário que
exigiriam essa ação. O cenário do horário comercial incluiria exemplos de entradas como
o seguinte:

Como construir um chatbot. 27


"Que horas você está aberto?" “Você abre nos finais de semana?” “Não consigo encontrar o seu horário de

funcionamento.” Normalmente, um mínimo de cinco entradas são necessárias, mas quanto mais, melhor.

Lembre-se de que pode ser tentador inventar esses exemplos, mas é sempre melhor usar dados

anteriores. Quanto mais semelhantes esses exemplos forem às solicitações de usuários do mundo real,

melhor será o desempenho do seu chatbot. Normalmente, um intent (na verdade, um classificador de texto)

é criado a partir desses exemplos, de modo que o serviço reconhecerá entradas semelhantes no futuro,

mesmo que não sejam correspondências exatas.

Entidades. Se intents são os verbos para um chatbot agir, então as entidades são os substantivos.
Eles são as palavras-chave na entrada de um usuário. Se uma palavra específica diferencia uma

entrada de outra, provavelmente deve ser uma entidade.

Por exemplo, se um usuário deseja encontrar o horário comercial da agência de um banco,


a localização do banco seria uma das entidades. Especificamente, se um usuário perguntar:
“Qual é o horário da filial de Austin?” fornecer horário comercial seria a intenção, e Austin seria
a entidade.

Diálogo. O diálogo é o fluxo da conversa. Geralmente é representado como um gráfico


direcionado onde cada nó representa uma troca na conversa. Juntos, é a estrutura combinada
de todas as suas conversas possíveis. Como isso pode se tornar bastante complexo, a maioria
das plataformas de chatbot fornecem uma IU para ajudá-lo a visualizar o processo.

Variável de contexto. Uma variável de contexto contém as informações compartilhadas


entre a estrutura e seu aplicativo. É a maneira de trocar informações entre sua lógica de
negócios e a estrutura. Por exemplo, o Watson Assistant fornece um objeto de contexto que
permite armazenar qualquer par chave / valor como variáveis de contexto.

Humano no circuito. Incorporar um humano em seu chatbot tem dois benefícios significativos.

Primeiro, os humanos são uma excelente maneira de inicializar seu chatbot antes que ele reúna
dados suficientes para operar de forma autônoma. Se o chatbot não estiver confiante sobre sua
resposta, ele pode solicitar a aprovação ou as edições do humano antes de enviá-lo ao usuário
final. Outra configuração é fazer com que o chatbot forneça várias respostas e que o humano
escolha a mais adequada.

28 Capítulo 3: Chatbots
O segundo benefício é que os humanos são a melhor maneira de evitar que o seu chatbot falhe
totalmente com os usuários. Existem algumas maneiras de detectar se a conversa precisa ser
encaminhada para um humano:

• O chatbot não entende a entrada do usuário - isso geralmente significa que a entrada do
usuário não corresponde a nenhum dos seus intents estabelecidos.

• A conversa está demorando muito ou um padrão circular foi detectado.

• O sentimento negativo é capturado na entrada do usuário.

• O usuário pede diretamente para falar com uma pessoa real.

Embora pareça contra-intuitivo ao discutir IA, adicionar um humano ao processo


do chatbot garante interações mais contínuas com seus usuários.

Desafios de construir um chatbot de sucesso


Há muitas coisas que precisam ser acertadas para que um chatbot seja útil. Um dos mais
importantes é definir o escopo do projeto corretamente. Ele precisa ser amplo o suficiente
para que o chatbot seja útil, mas estreito o suficiente para que você não perca tempo
construindo inteligência geral artificial. Especificamente, isso significa capturar o máximo
possível de solicitações do usuário, ainda reconciliando as diferenças de nuances entre cada
uma.

Este não é um problema fácil. Por exemplo, uma agência de viagens tentou implantar um
chatbot de planejamento de férias. Um componente crítico era uma base de vocabulário grande
o suficiente para reconhecer todos os destinos e suas variações diárias. Acontece que havia
mais de dez maneiras de as pessoas se referirem às Ilhas Cayman, mesmo supondo que todas
as grafias estivessem corretas. A empresa levou meses para construir uma lista que pudesse
capturar com segurança todas as variações desse destino.

Dica Prática
Leva pelo menos seis meses para criar um chatbot que seja útil, então certifique-se de dar
a você ou sua equipe de desenvolvimento uma pista suficiente.

Desafios de construir um chatbot de sucesso | 29


Infelizmente, não existe uma solução única para todos. Sua melhor opção é colocar o
chatbot na frente de clientes reais e iterar por meio do feedback do usuário. Se você é
gerente de produto ou desenvolvedor, isso deve soar familiar. Lembre-se de que os
chatbots ainda são um campo nascente na empresa, então você provavelmente será um
pioneiro. Nada além de tentativa e erro o ajudará a descobrir os problemas e casos
extremos específicos de seu domínio.

Resumo
Lembre-se de que é fácil começar a usar chatbots, mas é preciso paciência e muito trabalho
para criar um realmente bem-sucedido. Não tente desenvolver inteligência geral! Defina o
escopo correto para seu chatbot e tenha em mente que o contexto é vital, pois o meio tem muito
menos largura de banda para comunicação. Vamos deixar você com esta analogia de um de
nossos colegas. Construir um chatbot é muito parecido com treinar um novo contratado - eles
provavelmente sabem apenas um pouco no primeiro dia. Ainda assim, por meio de coaching e
supervisão, eles acabarão se tornando um funcionário produtivo. É essencial que seus usuários
vejam seu chatbot como um humano, mas é igualmente importante que você faça o mesmo. No
próximo capítulo, mudaremos de assunto e falaremos sobre visão computacional.

30 Capítulo 3: Chatbots
CAPÍTULO 4

Visão Computacional

Algumas pessoas chamam isso de inteligência artificial, mas a realidade é que essa tecnologia vai nos
aprimorar. Então, em vez de inteligência artificial, acho que vamos aumentar nossa inteligência.

- Ginni Rometty, presidente executivo da IBM

Reserve um momento e tire os olhos deste livro. Examine a sala ao seu redor e faça um
inventário rápido do que você vê. Talvez uma mesa, algumas cadeiras, estantes e talvez
até mesmo seu laptop. Identificar esses itens é um processo fácil para um ser humano,
mesmo uma criança pequena.

Falando em crianças, é muito fácil ensinar-lhes a diferença entre vários objetos. Com o
tempo, os pais mostram a eles itens ou fotos e depois repetem o nome ou a descrição.
Mostre a eles a imagem de uma maçã e, em seguida, repita a palavra maçã. Na cozinha,
entregue a eles uma maçã e repita a palavra maçã. Eventualmente, por meio de muitas
repetições, a criança aprende o que é uma maçã junto com suas muitas variações de cor
e forma - vermelha, verde, amarela. Com o tempo, fornecemos informações sobre o que
é um exemplo correto e o que não é. Mas como isso se traduz em máquinas? Como
podemos treinar computadores para reconhecer padrões visualmente, como o cérebro
humano faz?

O treinamento de modelos de visão computacional é feito da mesma maneira que


ensinar as crianças sobre objetos. Em vez de uma pessoa ver itens físicos e
identificá-los, no entanto, os algoritmos de visão por computador fornecem muitos
exemplos de imagens que foram marcadas com seus conteúdos. Além desses
positivos

31
exemplos, exemplos negativos também são adicionados ao treinamento. Por exemplo, se
estivermos treinando para imagens de carros, também podemos incluir exemplos negativos de
aviões, caminhões e até barcos.

Dar aos computadores a capacidade de ver abre um mundo de possibilidades para muitos
setores - desde o reconhecimento de rostos humanos para segurança até a automação de
processos que levariam dias humanos, senão semanas. Vamos dar um exemplo rápido de um
setor - seguros. Usar a visão do computador para receber de forma rápida, precisa e objetiva
uma análise automatizada de imagens - por exemplo, de um fender bender ou um telhado
danificado pelo tempo - permite que as seguradoras forneçam um serviço melhor aos seus
clientes.

O aprendizado de máquina é o reconhecimento de padrões por meio de exemplos aprendidos. Nada


exemplifica isso mais do que a visão computacional. Assim como a PNL fornece uma funcionalidade
central de IA na empresa, a visão computacional estende a capacidade da máquina de reconhecer e
processar imagens.

Capacidades de visão computacional


para a empresa
Então, o que a visão computacional pode fazer por nossos aplicativos? Antes de mergulhar nos
detalhes da visão computacional e como usá-la na empresa, vamos examinar alguns dos
recursos específicos que a visão computacional pode oferecer aos seus aplicativos.

Classificação e marcação de imagens

A funcionalidade mais central da visão computacional, marcação e classificação geral de imagens,


permite que os usuários entendam o conteúdo de uma imagem. Embora você frequentemente veja
imagens classificação e etiquetagem usado indistintamente, é melhor considerar a classificação
como atribuição de uma imagem a uma ou mais categorias. Em contraste, a marcação é uma
atribuição de uma única palavra (ou várias palavras) que descreve a imagem. Quando uma imagem
é processada, várias tags ou classes de palavras-chave são retornadas, descrevendo a imagem
com vários níveis de confiança. Com base nas necessidades de um aplicativo, eles podem ser
usados para identificar o conteúdo da imagem. Por exemplo, você pode precisar encontrar
imagens com o conteúdo “masculino jogando futebol ao ar livre” ou organizar imagens em temas
visuais como carros, esportes ou frutas.

32 Capítulo 4: Visão Computacional


Palavras, frases e outros textos freqüentemente fazem parte de imagens. No nosso dia-a-dia, nos
deparamos com placas de rua, documentos e anúncios. Os humanos veem, leem e compreendem
o texto com bastante facilidade. Para as máquinas, esse é um desafio totalmente diferente. Por
meio do reconhecimento óptico de caracteres (OCR), os computadores podem extrair texto de uma
imagem, permitindo uma ampla gama de aplicações potenciais. Da tradução da linguagem a
aplicativos móveis que auxiliam os deficientes visuais, os algoritmos de visão computacional
equipam os usuários para extrair palavras de uma imagem em texto prontamente utilizável em
aplicativos.

Além da marcação geral de imagens, a visão computacional pode ser usada para tarefas mais
específicas. Alguns dos mais comuns são a capacidade de detectar logotipos e itens alimentares em
imagens. Outra aplicação frequente da visão computacional é a detecção facial. Com o treinamento,
os algoritmos de visão computacional permitem que os desenvolvedores reconheçam rostos, às vezes
se tornando ainda mais especializados para detectar celebridades.

Localização de Objetos

Outra capacidade de visão computacional é localização de objeto . Às vezes, os requisitos de


seu aplicativo incluirão não apenas classificar o que está na imagem, mas também
compreender a posição de um objeto específico em relação a todo o resto. É aqui que a
localização do objeto entra em jogo. A localização encontra a localização de um objeto
específico dentro de uma imagem, exibindo os resultados como uma caixa delimitadora ao
redor do objeto especificado. Da mesma forma, a detecção de objetos identifica um número
variável de objetos na imagem. Um exemplo é a capacidade de reconhecer rostos ou
veículos em uma imagem. Figura 4-1 mostra um exemplo de detecção de objetos com cães.

Existem alguns desafios associados à localização de objetos, no entanto. Freqüentemente, os


objetos em uma imagem se sobrepõem, tornando difícil averiguar seus limites específicos. Outro
desafio são os itens visualmente semelhantes. Quando as cores ou padrões correspondem ao
plano de fundo em uma imagem, pode ser novamente difícil determinar os objetos.

Capacidades de visão computacional para a empresa | 33


Figura 4-1. Detecção de objetos

Classificadores personalizados

Na maioria das vezes, você não precisa reconhecer tudo. Se você está procurando identificar ou

classificar apenas um pequeno conjunto de objetos, classificadores personalizados podem ser a

ferramenta certa. A maioria das grandes plataformas de terceiros fornece algum mecanismo para a

construção de classifi‐ cadores visuais personalizados, permitindo que você treine os algoritmos de visão

por computador para reconhecer conteúdo específico em suas imagens. Os classificadores

personalizados estendem a marcação geral para atender às necessidades específicas de seu aplicativo

para identificar seu conteúdo visual. Eles existem principalmente para obter maior precisão, reduzindo o

espaço de pesquisa do seu classificador visual.

Em um alto nível, ao criar um classificador personalizado, você precisará ter uma coleção de
imagens que são identificadas como exemplos positivos e negativos. Por exemplo, se você
estivesse treinando um classificador personalizado em frutas, você gostaria de ter imagens de
treinamento positivas de maçãs, bananas e peras. Para exemplos negativos, você pode ter
fotos de vegetais, queijos ou carnes (consulte Figura 4-2 )

34 Capítulo 4: Visão Computacional


Figura 4-2. Criação de um classificador personalizado

A maioria da visão computacional usa algoritmos de aprendizagem profunda (discutidos em

“Aprendizado profundo” na página 6 ), especificamente redes neurais convolucionais


(CNNs) . Se você estiver interessado em criar CNNs do zero e aprofundar-se no
aprendizado profundo para visão computacional, há uma grande variedade de recursos
disponíveis. Recomendamos Andrew Ng's Aprendizado Profundo especialização em
Coursera, bem como
fast.ai . Além disso, os seguintes recursos mergulham mais profundamente em tópicos relevantes de

visão computacional:

• Programação de visão computacional com Python ( Jan Erik Solem, O'Reilly)

• Dominar a visão computacional com TensorFlow 2.x ( Krishnendu Kar, Packt


Publishing)

• Aprendendo OpenCV 3 ( Gary Bradski e Adrian Kaehler, O'Reilly)

Na próxima seção, começaremos a ver como usar a visão computacional em aplicativos


empresariais.

Capacidades de visão computacional para a empresa | 35


Como usar a visão computacional
Ao discutir como usar a visão computacional, veremos um exemplo da saída mais comum -
marcação geral. Conforme abordado anteriormente, a marcação geral na visão
computacional retorna ao usuário os itens gerais contidos na imagem do assunto.
Freqüentemente, dependendo do algoritmo ou serviço usado, os níveis de confiança
também são retornados. Com base em seus protótipos e testes, você pode usar essas
pontuações para definir seus próprios limites para aplicar as tags retornadas com base nas
necessidades de seu aplicativo.

Para demonstrar a marcação da visão computacional, usaremos o serviço IBMWatson


Visual Recognition. Vamos começar enviando a imagem em
Figura 4-3 para a API.

Figura 4-3. Fogos de artifício sobre um porto

Faremos uma solicitação simples usando ondulação à API, referenciando nossa imagem como o

parâmetro de URL da imagem:

ondulação "https://gateway-a.watsonplatform.net/visual-recognition/ api / v3 / classify?


api_key = YOURAPIKEY & amp; url =
https://visual-recognition-demo.ng.bluemix.net/images/samples/
7.jpg & amp; version = 2016-05-20 "

36 Capítulo 4: Visão Computacional


O envio desta solicitação de API retorna o seguinte JSON:

{
"Aulas" : [
{
"classe" : "Porto" ,
"Ponto" : 0,903 ,
"type_hierarchy" : "/ abrigo / porto"
},
{
"classe" : "abrigo" ,
"Ponto" : 0,903
},
{
"classe" : "Fogos de artifício" ,
"Ponto" : 0,558
},
{
"classe" : "beira-mar" ,
"Ponto" : 0,5
},
{
"classe" : "cor azul" ,
"Ponto" : 0.9
},
{
"classe" : "cor azul aço" ,
"Ponto" : 0,879
}
],
"classifier_id" : "padrão" ,
"nome" : "padrão"
}

Como você pode ver a partir desses resultados JSON, a API retorna classes variadas com
pontuações de confiança sobre o que pensa que a imagem contém. Se olharmos para a
imagem novamente e compará-la com as palavras-chave retornadas, os elementos essenciais
da imagem são retornados com alta confiança. Para melhorar essas pontuações para grupos de
imagens, você precisa treinar o modelo de visão computacional usando classificadores
personalizados. Abordaremos isso mais em uma seção futura, mas principalmente fornece ao
algoritmo muitas imagens de exemplos positivos e negativos para treinamento. Uma
demonstração útil deste serviço pode ser encontrada

conectados .

Como usar a visão computacional. 37


Visão computacional em dispositivos móveis
Outra aplicação fascinante da visão computacional é que algoritmos podem ser executados
localmente em dispositivos móveis e dispositivos IoT. O aprendizado de máquina agora pode ser
executado em dispositivos sem necessariamente ter que se conectar à nuvem. Sem enviar e
receber dados da nuvem, a velocidade de processamento aumenta e a segurança é aprimorada.

Existem alguns prós e contras associados a essa abordagem, no entanto. Vamos


começar com os aspectos positivos de administrar a visão computacional localmente.
Primeiro, a velocidade e a taxa de atualização da detecção de objetos são
significativamente mais rápidas do que enviar e receber dados da nuvem.
Especificamente, não precisar esperar que a nuvem responda a uma solicitação acelera
o processo consideravelmente. Isso é muito importante para produtos de consumo,
como realidade virtual (VR) e realidade aumentada (AR), onde nossos olhos estão muito
acostumados a uma reação imediata. Tempos de resposta rápidos para certas consultas
e perguntas tornam o processamento móvel mais natural para responder em aplicativos
específicos. A privacidade é outro benefício, pois todos os cálculos são feitos localmente
e nenhum dado pessoal ou privado é enviado para servidores remotos. Se o aplicativo
precisar de análise de dados,

Alguns exemplos de áreas onde executando visão de computador localmente são


vantajosos incluem tradução de idiomas, drones, veículos autônomos, o automonitoramento
de dispositivos IoT industriais e a capacidade de diagnosticar problemas de saúde sem
enviar dados privados para a nuvem.

Embora essas sejam algumas razões convincentes para usar a visão computacional localmente
em dispositivos móveis, também há algumas desvantagens a serem discutidas. Para aplicativos
móveis, a vida útil da bateria e a alocação de recursos são questões críticas. Executar a visão
computacional localmente usa muito mais poder de computação e requer otimização, portanto,
esse é um fator a ser levado em consideração ao criar seu aplicativo. Além disso, é mais
desafiador implantar aplicativos de visão computacional localmente, mas está rapidamente se
tornando muito mais fácil. Hoje em dia, você pode até executar um sistema de detecção e
classificação em um Raspberry Pi.

No entanto, há uma abordagem híbrida que resolve alguns dos problemas - usando um modelo
local para detecção de objeto simples, como "Isso é um cachorro?" E, em seguida, enviando o
objeto para a nuvem para determinar a raça do cachorro. Outro exemplo disso abordagem
híbrida está detectando

38 Capítulo 4: Visão Computacional


um produto enquanto o usuário está em uma mercearia, mas depois envia os dados para a nuvem
para recuperar as informações reais de preços.

A chave para executar modelos localmente é compressão do modelo . Você pode precisar de
um modelo grande na nuvem se estiver tentando reconhecer tudo no mundo, mas o modelo
pode ser muito menor se você estiver apenas interessado em reconhecer os rostos de seus
familiares. Há agora maneiras de reduzir os parâmetros dos modelos de reconhecimento
visual
por magnitudes e, portanto, efetivamente reduza o tamanho deles .

Melhores Práticas
A seguir, veremos algumas das melhores práticas no desenvolvimento de aplicativos com visão
computacional. Discutiremos o que torna boas imagens de treinamento em breve, mas uma regra
geral é que quanto mais imagens de alta qualidade você puder fornecer para treinamento, melhores
serão os resultados.

A precisão dos classificadores personalizados depende da qualidade dos seus dados de


treinamento, bem como do processo. Dados do IBM Watson mostrou que os clientes “que
controlaram de perto seus processos de treinamento observaram mais de 98% de precisão em
seus casos de uso”. Essa precisão foi baseada no verdade fundamental para seu problema de
classificação e conjunto de dados.

Imagens de treinamento de qualidade

Vamos agora dar uma olhada rápida em algumas diretrizes para boas imagens de treinamento. Existem

várias características de boas imagens de treinamento. Idealmente, as imagens em seus conjuntos de

treinamento e teste devem ser semelhantes umas às outras de tantas maneiras quanto possível. Por

exemplo, certifique-se de que são semelhantes, mas variam em relação ao ângulo, condições de

iluminação, distância do objeto e tamanho do objeto.

Além disso, certifique-se de que as imagens de treinamento representam o que a imagem de teste
mostrará. Por exemplo, se suas imagens de teste mostram cestas de maçãs, um close-up de uma
única maçã não seria uma boa imagem de treinamento (Figuras 4-4 e 4-5 ) Só porque há uma maçã
na foto não significa que ela atenda aos critérios. Em vez disso, você gostaria de muitas imagens
variadas de cestas de maçãs.

Melhores Práticas | 39
Figura 4-4. Uma única maçã em uma mesa (foto cortesia de Adrianbartel , Licença Creative
Commons 2.0)

Figura 4-5. Várias maçãs em uma cesta (foto cortesia de Mike Mozart , Licença
Creative Commons 2.0)

40 Capítulo 4: Visão Computacional


Casos de Uso
Agora que discutimos a visão computacional com alguns detalhes, vamos examinar alguns
exemplos do setor e casos de uso.

Imagens de satélite

Quando uma seca na Califórnia atingiu um nível de crise em abril de 2015, o governador Jerry
Brown emitiu as primeiras restrições de água obrigatórias do estado. Todas as cidades e vilas
foram instruídas a reduzir o uso de água em 25% em 10 meses. Alcançar isso requer medidas
mais eficazes do que apenas pedir aos residentes que usem menos água. Especificamente, o
estado precisava veicular campanhas publicitárias direcionadas a proprietários que usavam
mais água do que o necessário. Infelizmente, o governo nem mesmo tinha dados de consumo
de água em um nível tão granular.

Cientistas da OmniEarth tiveram a ideia de analisar imagens aéreas para identificar esses
proprietários. Eles primeiro treinaram o serviço de reconhecimento visual da IBM Watson em
um conjunto de imagens aéreas contendo casas individuais com diferentes características
topográficas, incluindo piscinas, grama, grama, arbustos e cascalho. Eles então forneceram
uma quantidade maciça de imagens aéreas semelhantes ao Watson para classificação. Em
parceria com distritos, cidades e condados de água, os cientistas da OmniEarth puderam
então identificar rapidamente com precisão quais parcelas de terra precisavam reduzir o
consumo de água e em quanto. Por exemplo, eles identificaram piscinas em 150.000 lotes
em apenas 12 minutos.

Armado com este conhecimento, OmniEarth ajudou distritos de água fazer recomendações
específicas aos proprietários e governos. Essas propostas incluíam a substituição de um
pedaço ou porcentagem de grama por cobertura morta, pedras ou uma espécie mais
tolerante à seca, ou drenar e encher uma piscina com menos frequência.

Pesquisa de vídeo em vigilância e entretenimento

A proliferação de câmeras nos últimos anos levou a uma explosão nos dados de vídeo. Embora os
vídeos contenham vários insights, eles são difíceis de extrair usando computadores. Em muitos
casos, como vídeos de vigilância doméstica, a única solução viável ainda é o monitoramento humano.
Ou seja, um ser humano fica sentado em um centro de operações 24 horas por dia, 7 dias por
semana, observando telas e alertando quando algo acontece, ou revisando dezenas ou até centenas
de horas de filmagens anteriores para identificar eventos importantes.

Casos de uso | 41
BlueChasm é uma empresa que procura resolver este problema usando a visão do computador. O
fundador, Ryan VanAlstine, acredita que, se for bem-sucedido, o vídeo pode ser uma nova forma
de sensor onde a detecção tradicional e a inspeção humana falham. O produto da BlueChasm,
VideoRecon, pode assistir e ouvir vídeos, identificando objetos, temas ou eventos importantes na
filmagem. Em seguida, ele marcará e marcará a data e hora desses eventos e, em seguida,
retornará os metadados ao usuário final.

A indústria em que a empresa planeja se concentrar primeiro é a aplicação da lei. Ryan


explica: “Imagine que você trabalha na aplicação da lei e sabia que havia uma câmera
de trânsito em uma rua onde ocorreu um roubo na noite passada. Você pode usar o
VideoRecon para revisar a filmagem daquela câmera e criar uma etiqueta sempre que
detecta uma pessoa entrando na casa roubada. Em alguns minutos, você poderá
revisar todas as seções do vídeo que foram marcadas e encontrar a filmagem da
invasão, em vez de ter que assistir horas de filmagem. ” Depois que um vídeo é
carregado, o reconhecimento visual do IBM Watson é usado para analisar a filmagem
do vídeo e identificar veículos, armas e outros objetos de interesse.

A BlueChasm também busca ajudar as empresas de mídia a analisar filmes e programas de TV. Ele
deseja rastrear os episódios, cenas e momentos em que um determinado ator aparece, um cenário é
mostrado ou uma linha de diálogo é falada. Esses metadados podem ajudar os espectadores a
encontrar uma cena clássica de um programa que gostariam de assistir novamente, simplesmente
digitando alguns termos de pesquisa e navegando direto para o episódio relevante. De modo mais
geral, para qualquer organização que gerencia um arquivo de vídeo extenso, a capacidade de
pesquisar e filtrar por conteúdo economiza muito tempo.

Exemplos adicionais: mídia social e seguro


Assim como a PNL foi considerada incrivelmente útil nas mídias sociais e descoberta de conteúdo, a
visão computacional também se mostra benéfica. Por exemplo, uma empresa chamada Ampsy usa a
visão computacional para capturar todas as imagens históricas compartilhadas por um público nas
mídias sociais para recuperar uma lista de atividades, interesses, pessoas e lugares para um
influenciador. Além disso, a Ampsy usa classificadores visuais personalizados para treinar em
logotipos corporativos específicos. Ele pode então detectar todas as imagens em um evento
específico onde os logotipos do anunciante são capturados. A empresa está, então, oferecendo a
seus usuários a capacidade de pesquisar seus logotipos nas imagens coletadas.

42 Capítulo 4: Visão Computacional


Da mesma forma, empresa de análise de mídia social iTrend usa tag‐ ging geral para
entender o conteúdo das imagens coletadas de mídias sociais, blogs e feeds de streaming
ao vivo. A empresa afirma que pode analisar de 20 a 50 vezes mais dados do que seus
concorrentes e, então, fornecer até 80% de seus resultados como insights acionáveis.

Por fim, outro setor que usa a visão computacional de maneiras inovadoras é o de seguros. Usado

principalmente no processamento de reivindicações, técnicas de reconhecimento visual e realidade

aumentada são usadas por companhias de seguros

para agilizar o processo de sinistro, diminuindo custos e aumentando a satisfação do cliente.


Eles estão conseguindo isso por meio de aplicativos que permitem aos clientes tirar várias
fotos de acidentes e danos em veículos e enviá-las aos servidores da seguradora para
processamento, eliminando grande parte do processamento manual que era necessário
anteriormente. De acordo com Accenture , 82% dos seguradores acreditam que a automação
baseada em IA será incorporada em todos os aspectos de seus negócios nos próximos
cinco anos. Além disso, 35% das seguradoras relatam mais de 15% em economia de custos
com essa automação nos últimos dois anos. Esta é uma indústria que usa IA e técnicas de
visão computacional em seu potencial máximo para melhorar seus negócios.

Desafios existentes na visão computacional


No Capítulo 2 na PNL, discutimos os desafios de extrair informações significativas do texto, e
fazer o mesmo com as imagens é igualmente desafiador. Vamos esquecer o reconhecimento de
dezenas de milhares de objetos, um problema de classificação complexo, e, em vez disso,
examinar um caso muito mais simples de apenas identificar gatos e cachorros em uma imagem.

Se você não tinha experiência em aprendizado de máquina antes de abordar este problema,
você pode começar escrevendo um algoritmo que separe os animais por cor. Mas e se as
fotos forem em preto e branco? Talvez você tente separá-los por cores e textura. Mas e se
for um Golden Retriever em vez de um Labrador? Você entendeu - construir um sistema de
classificação visual bem-sucedido requer mais do que uma lista mecânica de regras, porque
você sempre pode encontrar exceções que as quebram. A abordagem correta é
desenvolver um algoritmo que irá generalizar automaticamente para um conjunto de regras
com base em um conjunto de dados grande o suficiente. Com o tempo, à medida que você
treina o modelo de visão, fornecendo exemplos mais positivos e negativos para aprender, o
algoritmo melhora, fornecendo, em última análise, um método incrivelmente útil para
identificar objetos em imagens.

Desafios existentes na visão computacional | 43


Semelhante à nossa discussão sobre os desafios da PNL, várias aplicações da visão computacional
ainda apresentam desafios consideráveis para a implementação. O primeiro é o reconhecimento
facial. Embora a visão computacional seja muito capaz de detecção de rosto (detectando a presença
de rostos), o reconhecimento de rosto (identificando indivíduos) não sai facilmente da caixa.
Grandes conjuntos de dados para treinamento em faces individuais são necessários para que este
seja um processo eficaz.

Outra área de preocupação é a detecção de detalhes. Se você deseja classificar uma imagem com
base em uma pequena seção dela ou nos detalhes espalhados nela, isso tende a ser um desafio.
Alguns serviços analisam uma imagem inteira durante o treinamento, então eles podem ter
dificuldades em classificações que dependem de pequenos detalhes. Uma solução para este
problema é dividindo a imagem em pedaços menores ou ampliando as partes relevantes da
imagem.

Implementando uma solução de visão computacional


Assim como com as outras soluções de IA discutidas neste livro, você sempre enfrentará a
decisão de construir ou comprar ao determinar uma implementação. Como nos capítulos
anteriores, veremos brevemente algumas das opções populares de código-fonte aberto e os
serviços SaaS disponíveis.

Como sempre, você precisa experimentar por meio de testes e prototipagem para ver o que atende às
suas necessidades, incluindo, mas não se limitando a preço, precisão e as bibliotecas de código
disponíveis.

Com relação ao código aberto, duas das opções principais para criar aplicativos usando
visão computacional são OpenCV e SimpleCV. Ambos fornecem acesso a visão
computacional , com o OpenCV sendo uma biblioteca disponível para muitas linguagens de
programação e o SimpleCV uma estrutura que incorpora várias bibliotecas escritas em
Python.

Além do IBMWatson Visual Recognition, outras empresas estão fornecendo serviços de


visão computacional semelhantes como APIs. Isso inclui Clarifai, Google Cloud Vision, Azure
Cognitive Services e Ama zon Rekognition. Cada serviço tem seus prós e contras, portanto,
recomendamos testar e construir protótipos para aqueles que parecem atender às suas
necessidades para encontrar o ajuste adequado.

44 Capítulo 4: Visão Computacional


Resumo
Os computadores “veem” de maneira muito diferente dos humanos e quase sempre dentro
do contexto de como são treinados. Esperançosamente, os tópicos de visão computacional
cobertos neste capítulo o inspiraram a usar a visão como uma ferramenta poderosa para
aumentar a utilidade de seus aplicativos empresariais. Como já discutimos, vários setores já
estão aproveitando a visão computacional com grande sucesso. Como você pode incorporar
a visão computacional em seus aplicativos?

Agora que cobrimos alguns dos casos de uso significativos de IA na empresa (PNL, chatbots e
visão computacional), vamos dar uma olhada em nossos dados e como eles são processados
em pipelines de dados de IA.

Resumo | 45
CAPÍTULO 5

Pipeline de dados AI

Em Deus nós confiamos; todos os outros trazem dados.

- W. Edwards Deming

Há agora mais dispositivos móveis do que pessoas no planeta, e cada um está coletando dados
a cada segundo sobre nossos hábitos, atividades físicas, locais viajados e preferências diárias.
Diariamente, nós criamos 2,5 quintilhões de bytes de dados de uma ampla variedade de fontes. E
está vindo de todos os lugares. Pense em todas as fontes de coleta de dados - sensores de IoT
em casa, postagens de mídia social, fotos, vídeos, todas as nossas transações de compra, bem
como dados de localização GPS monitorando cada movimento nosso.

Os dados são até anunciados como sendo mais importante e valioso que o petróleo . Por esse motivo,
as empresas estão criando vastos repositórios de dados brutos (normalmente chamados de data
lakes) —Histórica e em tempo real. Ser capaz de aplicar IA a essa enorme quantidade de dados é o
sonho de muitas empresas de todos os setores. Para fazer isso, você deve escolher o conjunto certo
de ferramentas não apenas para armazenar os dados, mas também para acessá-los da forma mais
eficiente possível. As ferramentas atuais estão evoluindo e a maneira como você armazena e
apresenta seus dados deve mudar de acordo. Não fazer isso deixará você e seus dados para trás.
Para ilustrar este ponto, o professor do MIT Erik Brynjolfsson realizou um estude que descobriu que as
empresas que usam a tomada de decisão baseada em dados são 5% mais produtivas e lucrativas do
que os concorrentes. Adicional pesquisa mostra que as organizações que usam análises vêem um
retorno de $ 9,01 para cada dólar gasto.

47
Como vimos até agora, se grandes quantidades de dados de alta qualidade são um pré-requisito
para a implementação bem-sucedida de IA na empresa, então um processo para obter e
preparar os dados é igualmente crítico.

Nos capítulos anteriores, cobrimos algumas das principais aplicações da IA na


empresa, de PNL a chatbots e visão computacional. Também discutimos a
importância dos dados para todas essas implementações. O que sugerimos, mas
ainda não tocamos neste ponto, é o conceito de um pipeline de dados que forma o
backbone para todas essas implementações de IA.

Quer você use a tecnologia pronta ou construa a sua própria, essas soluções de
IA não podem ser eficazes sem um pipeline de dados. Com as inúmeras
soluções de terceiros no mercado, como IBM Watson, é fácil esquecer que você
precisa ter um pipeline de dados até mesmo com a implementação mais simples.
Por exemplo, em uma solução de visão por computador, você ainda precisa
encontrar imagens representativas, usá-las para treinar o algoritmo e, em
seguida, fornecer um mecanismo para repetir esse loop com dados novos e
melhores conforme o algoritmo melhora. Com o NLP, você ainda precisa
alimentar o texto de origem das APIs para processar e, em seguida, treinar
modelos personalizados com dados de seu domínio. Com chatbots, seu pipeline
de dados inicial se concentraria nas perguntas e respostas conhecidas de seus
registros de suporte ao cliente existentes e, em seguida, construiria um processo
para capturar novos dados para alimentar o chatbot.

O pipeline de dados não é apenas um componente crucial para a execução de IA, mas também
se aplica a outras partes da empresa - especificamente em análises e inteligência de negócios.
Embora as complexidades de criar um pipeline de dados de IA completo estejam fora do escopo
deste livro, a seguir forneceremos um guia de alto nível para começar.

Então, o que exatamente é um pipeline de dados para IA? Dataconomia define um pipeline de
dados como “uma combinação ideal de tecnologias de software que automatizam o
gerenciamento, análise e visualização de dados de várias fontes, tornando-os disponíveis para
uso estratégico”. A preparação de dados, uma plataforma de dados e descoberta são peças
significativas de um tubo eficaz. Infelizmente, um pipeline de dados pode ser uma das partes
mais caras da solução de IA corporativa.

48 Capítulo 5: Pipeline de dados AI


A chave para esse processo é garantir que os dados possam ser acessados de maneira
integrada, em vez de ficarem em silos diferentes, internos e externos à empresa. Essa
capacidade de acessar e analisar dados em tempo real, ou pelo menos recentes, é a chave
para um pipeline de dados de IA ( Figura 5-1 )

Figura 5-1. Pipeline de dados AI

Como discutiremos nas próximas seções, fora dos dados reais em si, os componentes
mais populares de um pipeline de dados de IA são Apache Hadoop, Apache Spark e
automação. Na verdade, um Estudo IBM de organizações em 90 países, cada uma com
mais de 1.000 funcionários, mostraram que 57% das empresas pesquisadas já tinham ou
planejavam implementar um pipeline baseado em Hadoop / Spark.

Preparação para um pipeline de dados


Em um alto nível, existem várias áreas nas quais as empresas devem se concentrar para
construir e manter um pipeline de dados com eficácia. Antes mesmo de iniciar o processo, a
consideração crítica é ter certeza de que todas as partes interessadas aceitaram a ideia de
ter um pipeline de dados. Aqui não existem atalhos, e as empresas devem ter a certeza do
seu preparo nas mais diversas áreas. Primeiro, suas práticas de armazenamento de dados e
nuvem são sólidas? Os funcionários estão treinados e cientes deles? Em seguida, onde os
dados são armazenados? Freqüentemente na empresa, os dados estão localizados em
vários silos, controlados e mantidos por diferentes grupos da empresa. Todos aderiram ao
projeto e estão preparados para quebrar esses silos de dados para construir o tubo de IA?
Finalmente, existe um processo para limpar dados e reparar quaisquer problemas com
metadados? É crucial que a empresa adote práticas modernas de ciência de dados e não
apenas reformule seus sistemas de inteligência de negócios existentes.

Preparação para um pipeline de dados | 49


Sourcing Big Data
Como a própria IA, o termo big data tem várias definições dependendo de com quem você fala.
Mas, de modo geral, uma vez que os dados que você está coletando são muito grandes para
armazenar na memória ou em seus sistemas de armazenamento existentes, você está
entrando no território de big data. Dependendo da infraestrutura da sua empresa, isso pode
variar consideravelmente. Como diz o ditado, você saberá quando vir! Para nossos objetivos,
definiremos big data como reunir dados estruturados e não estruturados em um só lugar para
fazer algumas análises com IA.

IBM descreve big data como tendo quatro dimensões principais : volume, velocidade, variedade e
veracidade. Volume refere-se à quantidade de dados necessários. Conforme discutido nos
capítulos anteriores, somos inundados com dados e isso não está diminuindo a velocidade. De
mais de 500 milhões de tweets por dia para o 350 bilhões de leituras anuais do medidor para
prever melhor o consumo de energia, as empresas geram grandes quantidades de informações.
Quão rápido você está armazenando e processando seus dados? Muitos aplicativos são
extremamente sensíveis ao tempo, então o velocidade dos dados em relação ao seu
armazenamento e processamento de aplicativos é crítica. Por exemplo, em áreas como detecção
de fraude e suporte ao cliente, acessar os dados rapidamente é essencial. Variedade refere-se à
diversidade dos dados coletados, de estruturados a não estruturados. Isso inclui texto, vídeo,
áudio, cliques, dados do sensor IoT, registros de pagamento e muito mais. Finalmente, big data
deve ter veracidade. Quão precisos ou confiáveis são os dados? Quando 1 em cada 3 líderes de
negócios não confia nos dados eles precisam tomar decisões, é claro que a grande maioria dos
dados tem problemas de precisão.

Voltando à nossa discussão anterior sobre invernos de IA e como a convergência de


várias tendências permitiu que a IA prosperasse novamente, um subtema disso é como a
tecnologia de big data veio à frente. Hardware de commodity, armazenamento barato,
software de código aberto e bancos de dados e a adoção de APIs, todos permitiram novas
estratégias para criar pipelines de dados .

Armazenamento: Apache Hadoop


Originalmente escrito em Java por Doug Cutting, o Hadoop é uma estrutura de código aberto
para processamento e computação distribuída de grandes conjuntos de dados usando
MapReduce para processamento paralelo. Incrivelmente popular e de crescimento rápido,
estima-se que o mercado global

50 Capítulo 5: Pipeline de dados AI


Ket para Hadoop chegará a US $ 340 bilhões em 2027. Então, o que é Hadoop? IBM Analytics o
define como “uma plataforma de código aberto que fornece processamento altamente confiável,
escalonável e distribuído de grandes conjuntos de dados usando modelos de programação
simples. O Hadoop é construído em clusters de computadores comuns, fornecendo uma solução
econômica para armazenar e processar grandes quantidades de dados estruturados, semi e não
estruturados, sem requisitos de formato. ”

O Hadoop pode armazenar dados de muitas fontes, servindo como um local centralizado para
armazenar dados necessários para aprendizado de máquina. O Apache Hadoop é em si um
ecossistema, que se tornou popular por sua capacidade de funcionar em hardware comum.
Discutiremos dois conceitos principais do Hadoop que são relevantes para um pipeline de dados AI
são HDFS e MapReduce . Construído para suportar MapReduce, o Hadoop Distributed File System
(HDFS) pode processar dados estruturados e não estruturados, permitindo resiliência o
armazenamento escalonável em vários computadores. HDFS é um sistema de arquivos criado para
o propósito de armazenar big data, enquanto MapReduce é um paradigma de programação que se
refere a duas tarefas distintas que são realizadas: mapear e reduzir . O trabalho de mapa pega um
conjunto de dados e os converte em pares chave / valor. A tarefa de redução, então, pega essa
saída da tarefa de mapa e a combina em um conjunto menor de pares chave / valor para operações
de resumo.

Como outras ferramentas de programação poderosas, MapReduce permite que os desenvolvedores

escrevam código sem a necessidade de entender a complexidade subjacente dos sistemas

distribuídos.

Hadoop como um Data Lake

Hadoop é frequentemente usado como um data lake. Mais uma vez, embora as definições variem, os data

lakes são normalmente considerados ambientes de armazenamento compartilhado para grandes

quantidades de diversos tipos de dados, tanto estruturados quanto não estruturados. Esses dados podem

ser usados para uma variedade de aplicativos, incluindo análises e aprendizado de máquina.

A principal característica de um data lake é o capacidade de armazenar e processar


centralmente dados brutos onde antes seria muito caro fazê-lo. Em contraste com data
warehouses, que armazenam dados estruturados e processados, data lakes armazene grandes
quantidades de dados brutos em seu formato nativo, incluindo dados estruturados,
semiestruturados e não estruturados. O Hadoop brilha no armazenamento de dados
estruturados e não estruturados, o que o torna uma excelente ferramenta para data lakes.

Armazenamento: Apache Hadoop | 51


Embora os data lakes tenham vários benefícios, desde o suporte à descoberta de dados até
análises e relatórios, eles vêm com uma ressalva. Como um Relatório IBM declarou: “Sem
gerenciamento e governança adequados, um data lake pode rapidamente se tornar um pântano
de dados.”

Descoberta: Apache Spark


Criado em 2009 na Universidade da Califórnia, Berkeley AMPLab, o Apache Spark é
uma estrutura de computação distribuída de código aberto que usa processamento na
memória para acelerar aplicativos analíticos . Escrito em Scala (embora também suporte
Java, Python, Clojure e R), Spark não é necessariamente um substituto para o Hadoop,
mas é complementar e pode funcionar em cima do Hadoop, aproveitando os benefícios
previamente discutidos do Hadoop.

Contribuindo para sua popularidade entre os cientistas de dados, a tecnologia é extremamente


rápida. De acordo com Databricks , O Apache Spark pode ser até 100 × mais rápido do que o Hadoop
MapReduce para processamento de dados em grande escala. Este aumento de velocidade permite
que resolver problemas de aprendizado de máquina em uma escala muito maior do que outras
soluções. Além disso, o Spark vem com bibliotecas integradas para trabalhar com dados
estruturados, processamento de streaming / stream, gráficos e aprendizado de máquina ( Figura 5-2 )
Numerosas projetos de terceiros também criaram um ecossistema próspero em torno do Spark.

Figura 5-2. Pilha Apache Spark

O próprio Spark não tem um armazenamento de dados persistente e, em vez disso, mantém os dados
na memória para processamento. É importante reiterar que o Spark não é um banco de dados. Em
vez disso, ele se conecta a fontes de dados externas, geralmente HDFS do Hadoop, mas também a
qualquer coisa comercial ou de código aberto que os desenvolvedores já estejam usando ou
familiarizados, como HBase, Casandra, MapR, MongoDB, Hive, Google Cloud e Amazon S3. A
seleção de um banco de dados para o seu aplicativo está fora do escopo deste

52 Capítulo 5: Pipeline de dados AI


livro, mas é útil saber que o Spark oferece suporte a uma ampla variedade de opções populares de banco

de dados.

Spark Versus MapReduce

Embora o uso do Spark não exclua necessariamente o uso do Map‐ Reduce, ele compete de
várias maneiras com o MapReduce. Para nossos objetivos, há duas diferenças principais a
serem consideradas.

A diferença mais significativa é onde os dados são armazenados durante o processamento.


MapReduce armazena os dados em disco, gravando continuamente I / O, enquanto O Spark
mantém os dados na memória . Gravar no disco é muito mais lento, então o Spark frequentemente
vê ganhos de desempenho de 100 × sobre Map‐ Reduce . Além disso, o desenvolvimento é
considerado mais fácil e expressivo com Spark , porque além de mapear e reduzir, o Spark também
tem funções de filtro, junção e agrupamento.

Aprendizado de máquina com Spark

Conforme mencionado anteriormente, o Spark tem um módulo integrado para aprendizado de


máquina chamado MLlib . Esta é uma biblioteca de aprendizado de máquina integrada e escalonável
que consiste em utilitários e algoritmos de aprendizado comuns, incluindo classificação, regressão,
agrupamento e filtragem colaborativa.

Ter essa biblioteca nativa do Spark torna o aprendizado de máquina muito mais acessível, fácil e

escalonável para os desenvolvedores. É fácil começar localmente a partir de uma linha de comando e,

em seguida, passar para implantações de cluster completas. Com o aprendizado de máquina integrado,

o Spark pode se tornar uma base para construir aplicativos centrados em dados em toda a organização.

Uma vez que grande parte do aprendizado de máquina se concentra em iterações repetidas para

treinamento, Habilidade do Spark armazenar dados na memória torna esse processo muito mais rápido

e eficiente.

Automação
Agora que entendemos os fundamentos de um pipeline de dados, vamos examinar outro
aspecto emergente - automação. Conforme discutimos anteriormente, os dados estão em toda
parte, e a quantidade bruta não é um problema. No entanto, muitas vezes faltam dados úteis e
úteis para IA.

Passamos pelas etapas de preparação, armazenamento, descoberta e agora estamos no


estágio de análise em nossa discussão de pipeline. Como parte desta etapa, precisamos olhar
para duas áreas - limpeza de dados e modelo

Automação | 53
preparação - e como os novos avanços no campo os impactam. Ao construir modelos de
aprendizado de máquina a partir de dados preparados, os profissionais de ciência de dados
frequentemente terão que voltar para limpar, modificar e atualizar os dados. Enquanto falamos
sobre isso como duas etapas separadas,
limpar um conjunto de dados e treinar um modelo estão frequentemente entrelaçados.

Infelizmente, construir modelos de aprendizado de máquina pode ser uma proposição cara.
Dados de Alteryx mostra que as implantações podem levar de seis a nove meses, com
apenas 13% dos modelos chegando à produção, e pode custar mais de US $ 250.000 para
implantar um único modelo. Por que criar e implantar modelos de aprendizado de máquina
é tão caro? De modo geral, tudo se resume a dois fatores de alto nível. Em primeiro lugar, a
construção de modelos leva tempo, sendo grande parte desse trabalho tedioso e
demorado. Em segundo lugar, o talento necessário para fazer esse trabalho é limitado e
caro. Embora muitas empresas estejam agora tentando expandir rapidamente sua base de
talentos nessa área, a realidade é que há uma falta de funcionários qualificados. Combine
esses dois fatores e você verá por que construir e implantar modelos pode levar um tempo
considerável. Então, como isso está sendo tratado na empresa? Uma das maneiras é por
meio do uso de aprendizado de máquina automatizado ou AutoML.

A maioria dos sistemas AutoML consiste em duas áreas principais: preparação de dados e previsão de

modelo. Cientistas de dados, desenvolvedores ou outros membros da equipe podem importar seus

dados, adicionar e identificar rótulos e, em seguida, apertar um botão para gerar um modelo treinado e

otimizado pronto para fazer previsões usando uma interface de usuário da web ou uma API REST para

uso em aplicativos.

Automatizar o aprendizado de máquina parece impressionante. Mas o que pode realmente ser
automatizado e quais são os benefícios da implementação do AutoML? Wikipedia define
aprendizado de máquina automatizado como “automatizar o processo de aplicação do
aprendizado de máquina a problemas do mundo real”. E KDnuggets descreve-o como “o
processo automatizado de seleção de algoritmo, hiperparâmetro ajuste, modelagem iterativa e
avaliação de modelo. ”

Para o AutoML, é melhor considerar a tecnologia como um conjunto de ferramentas para


ajudar o pipeline geral, democratizando muitas das funções anteriormente reservadas para
cientistas de dados, em vez de automação completa. Esses sistemas não estão prontos para
substituir completamente os humanos no processo, mas podem tornar seu trabalho mais fácil,
levando a

54 Capítulo 5: Pipeline de dados AI


produtividade. O AutoML auxilia no processo, liberando os humanos de tarefas repetitivas, menos

desafiadoras ou exigentes que são melhor executadas por máquinas.

Por que AI / ML automatizada?

Agora que temos uma compreensão geral do aprendizado de máquina automatizado, a


próxima pergunta é: por que precisamos disso? Existem três fatores significativos a favor da
automação, e eles são simplificados para talento, tempo e confiança.

Talento

Há uma grande demanda por cientistas de dados e profissionais de aprendizado de máquina, mas
não há habilidades suficientes para atender à necessidade. Além disso, o raro talento disponível é
caro. Para muitos projetos, não há pessoas suficientes com os conhecimentos necessários.

Os cientistas de dados costumavam ficar preocupados com a perda de empregos para a automação, mas

agora estão descobrindo que esses temores eram basicamente infundados. Sua experiência específica e

conhecimento de domínio são cruciais para projetos de aprendizado de máquina, e o AutoML libera tempo

para se concentrar nos aspectos desafiadores e específicos do domínio, deixando o trabalho mundano

para sistemas automatizados.

Além disso, as soluções AutoML podem permitir que cientistas que não sejam cientistas de dados

participem do processo. Onde antes, a maioria, senão todas, as tarefas do ciclo de vida da IA eram

realizadas por cientistas de dados e especialistas, o AutoML agora permite que funcionários não

especializados ajudem. Desde a importação e limpeza de dados até a seleção de modelos otimizados

gerados pelo AutoML, os cientistas que não trabalham com dados podem contribuir e liberar os

especialistas para trabalhar em problemas mais desafiadores que se adaptem a seus conjuntos de

habilidades.

Tempo

Criar e otimizar modelos consome muito tempo. Além disso, algumas tarefas são bastante
mundanas - precisamente os tipos de funções em que as máquinas são melhores do que os
humanos. O AutoML pode economizar tempo e ajudar as pessoas a serem mais eficientes no
processo geral. Ele pode remover os processos manuais, demorados e tediosos que existem
como parte do ciclo de vida da IA.

Mesmo para cientistas de dados experientes, leva muito tempo para ajustar e treinar os
modelos. E como os dados se tornam cada vez mais

Automação | 55
complexo , o progresso fica mais lento e os fluxos de trabalho de dados de IA tornam-se maiores e mais

complexos. O uso do AutoML pode reduzir os erros associados à realização de grande parte desse

trabalho, economizando uma quantidade considerável de tempo geral.

Confiar em

Como discutiremos mais em Capítulo 7 , a questão da confiança em nossas previsões de IA e


modelos de aprendizado de máquina está se tornando fundamental. Quando esses sistemas são
uma caixa preta e cegamente cuspem respostas, é razoável perguntar como a IA chegou a uma
decisão. As perguntas incluem: quais fatores entraram no sistema e podemos determinar qualquer
viés nos dados, processo ou modelo? Essas são perguntas fundamentais a serem feitas, já que a
IA está cada vez mais se integrando às áreas mais críticas de nossas vidas. Está crescendo ceticismo
em relação aos sistemas e processos de IA . O software AutoML pode ajudar a abrir essa caixa
preta com monitoramento, fornecendo, assim, o gerenciamento de risco necessário para muitos
setores regulamentados.

Limitações do AutoML

Conforme discutido acima, as tecnologias de automação são excelentes para auxiliar o


processo, mas não para substituir pessoas. Portanto, se você estiver usando uma
solução AutoML com a expectativa de que ela substitua um operador humano, você está
configurando sua organização para decepções e possivelmente falhas. Se, por outro lado,
a meta é aumentar seus cientistas de dados, tornar suas vidas mais fáceis e melhorar a
eficácia e a produtividade, você terá mais sucesso na implementação de um projeto
AutoML.

Duas áreas adicionais provam ser limitações. O primeiro é conhecimento de domínio , que é difícil
de automatizar porque é um dos principais aspectos que os cientistas de dados trazem para a
solução. A compreensão profunda de um conjunto de problemas de negócios é inestimável e
exclusivamente humano neste ponto. É um desafio automatizar o conhecimento do domínio,
então os profissionais podem se concentrar nisso enquanto a automação começa um nível
acima. Finalmente, uma vez que o sistema produziu resultados, sua interpretação ainda
depende de uma pessoa. Por exemplo, o sistema AutoML pode retornar vários modelos com
valores de precisão associados para avaliação. Os resultados podem ser classificados, mas
ainda cabe a uma pessoa tomar a decisão final sobre qual escolher com base em sua
experiência. Essas limitações provam que o AutoML é excelente para auxiliar cientistas de
dados, mas não pode substituir seus insights e experiência.

56 Capítulo 5: Pipeline de dados AI


Soluções de aprendizado de máquina automatizadas existentes

Os desenvolvedores, tanto de software livre quanto de produtos comerciais, têm


trabalhado em soluções para criar e melhorar o AutoML. As soluções de fornecedores
corporativos incluem IBM AutoAI, Microsoft Azure AutoML, H2O.ai, Google Cloud AutoML
e Amazon SageMaker. As inúmeras soluções de software de código aberto incluem TPOT ,
AutoKeras , NNI , Auto-sklearn , e AdaNet . Ao simplificar o ciclo de gerenciamento do ciclo
de vida da IA, esses sistemas podem automatizar a preparação de dados, o
desenvolvimento e a seleção de modelos, a engenharia de recursos e a otimização de
hiperparâmetros.

Resumo
Big data está sendo capturado em todos os lugares e aumentando rapidamente. Onde seus dados
são armazenados e o que você pode fazer agora para prepará-los para o futuro no aprendizado de
máquina? Enquanto a empresa normalmente adota o testado e comprovado - neste caso, Hadoop
e Spark - outras tecnologias mostram uma grande promessa e estão sendo adotadas em
pesquisas, bem como em empresas iniciantes. Alguns desses projetos de código aberto incluem
TensorFlow, Caffe, Torch, Chainer e Theano.

E o aprendizado de máquina automatizado é uma tendência crescente - o Gartner prevê


que até 2021, O aumento da IA irá recuperar 6,2 bilhões de horas de produtividade do
trabalhador . Veremos mais aplicações de automação e assistência no futuro e
antecipamos que essas ferramentas continuarão a melhorar, oferecendo mais recursos
para empresas e seus cientistas de dados.

Agora que aprendemos sobre o pipeline de dados necessário para o trabalho de AI / ML, vamos
dar uma olhada em uma consideração cada vez mais importante ao trabalhar com AI corporativa
- híbrida e multiclouds.

Resumo | 57
CAPÍTULO 6

Nuvens Híbridas

Nuvem é sobre como você faz computação, não onde você faz computação.

- Paul Maritz, CEO da VMware

A esta altura, você provavelmente já tem um bom conhecimento da nuvem (e da computação


em nuvem). Tendemos a igualar todas as tecnologias relacionadas à nuvem que usamos em
nossas vidas diárias à versão pública - do Netflix ao Gmail à Amazon, quase tudo que nós
fazer ou lidar com o diário tem raízes na nuvem pública. Mas, na verdade, usamos mais do
que apenas a nuvem pública. Nos capítulos anteriores, a maioria dos tópicos girou em torno
do uso de APIs públicas e computação em nuvem pública para realizar tarefas de IA. Mas o
que acontece quando isso não se encaixa nos requisitos da organização? Discutiremos
várias situações em que utilizar apenas um único tipo de nuvem não faz sentido, e
precisamos buscar soluções híbridas e multicloud, especialmente para IA.

Muitos leitores ficarão surpresos ao saber como o híbrido e o multicloud predominam na


empresa. De acordo com um estudo de Flexera , 93% das empresas têm uma estratégia de
nuvem múltipla e 87% uma estratégia de nuvem híbrida. Destes, eles usam em média 2,2
nuvens públicas e 2,2 nuvens privadas cada. E Dados Gartner mostra que 81% dos usuários de
nuvem pública escolhem dois ou mais provedores. Mas, embora a maioria das empresas esteja
usando a nuvem, ainda não a abraçou totalmente. Estimativas da McKinsey que menos de 20%
das cargas de trabalho corporativas foram migradas para a nuvem, apresentando uma grande
oportunidade. Os números podem variar um pouco, mas a direção é um uso crescente de
ambientes híbridos e com várias nuvens para a maioria das empresas.

59
Nas próximas seções, discutiremos essas tendências junto com os diferentes tipos de
nuvem e seu uso em IA.

Visão geral das nuvens


Por que a porcentagem de cargas de trabalho usando a nuvem ainda é baixa? O que
impede essas empresas? Historicamente, houve três considerações principais, que
discutiremos na próxima seção: segurança, conformidade e custo.

Preocupações com a nuvem

A segurança é crítica para quase todas as empresas. Muitas empresas estão preocupadas (com
razão) em armazenar seus dados na nuvem pública. O que acontecerá se houver uma violação e
como eles lidarão com as questões de responsabilidade subsequentes?

Em seguida está a questão relacionada de conformidade. Certos setores precisam aderir a

regulamentações específicas sobre o uso e armazenamento de dados. Na maioria das vezes, isso se

aplica aos dados do cliente. Por exemplo, a organização pode ter dados de identificação pessoal que

não podem ser armazenados em bancos de dados de nuvem pública. Os requisitos sobre privacidade

de dados ou regulamentos do setor frequentemente impedem o armazenamento, processamento e

manipulação de dados na nuvem pública. Especificamente, existem regulamentações consideráveis

em torno dos dados do cliente nos setores financeiro e de saúde.

Finalmente, existem questões de custo. Freqüentemente, presumimos que usar a nuvem pública é mais

barato (especialmente no aspecto de computação sob demanda), e pode ser, mas nem sempre é o

caso. Suponha que você inclua os custos totais envolvidos com a movimentação de cargas de trabalho

para a nuvem pública interna e inclua os custos de transferência de dados. Nesse caso, muitas vezes

pode ser consideravelmente mais caro, especialmente para cargas de trabalho de IA. Dependendo dos

requisitos da organização, a nuvem pública pode não ser uma opção completa. E, como veremos mais

adiante neste capítulo, embora esses fatores se apliquem à maioria das aplicações comuns, eles

provam ser problemas agudos em aplicações relacionadas à IA.

E o desafio não é apenas gerenciar várias nuvens com um único fornecedor. As necessidades de
computação de hoje também ditam a capacidade de computação entre diferentes fornecedores e
seus recursos de nuvem. Isso cria vários desafios. Como uma empresa pode gerenciar essas
cargas de trabalho em vários fornecedores, armazenamentos de dados e nuvens? Como
discutiremos em breve, a resposta é uma nuvem híbrida (geralmente gerenciada com

60 Capítulo 6: Nuvens Híbridas


Kubernetes.) Antes de discuti-los, no entanto, vamos voltar e examinar os principais tipos de
nuvem e os blocos de construção necessários para seu uso, começando com os contêineres.

Existem vários tipos diferentes de nuvens de computação: pública, privada, híbrida e


multicloud. Às vezes, eles também são chamados de modelos de implantação versus tipos
de nuvem genéricos. Vamos cobrir brevemente as quatro nuvens significativas que você
encontrará, especialmente ao considerar a IA. Então, quais são essas diferentes opções de
nuvem? Como eles são semelhantes, além de diferentes? E o que eles significam para a
inteligência artificial?

Público e privado

No início deste capítulo, mencionamos nuvens públicas . Sua principal vantagem é que as
organizações não pagam pelo hardware, software e infraestrutura relacionada, que são mantidos
pelo provedor de nuvem. A computação em nuvem pública pode fornecer economia de custos,
mas, mais importante, oferece flexibilidade para executar cargas de trabalho conforme
necessário, pagando apenas pelos recursos necessários e usados. Infelizmente, você também
está pagando por toda a transferência de dados na nuvem pública, o que é particularmente
crucial em IA e ciência de dados. A nuvem pública pode ficar cara, compensando qualquer
economia de custo potencial.

Por outro lado, uma nuvem privada é um conjunto de infraestrutura de computação


pertencente e administrada por uma única organização. A localização não é um requisito
para a definição de nuvem privada e pode ser operada dentro ou fora da empresa,
interna ou externamente por um fornecedor. A chave é que tudo é para uma única
empresa, sem nada compartilhado entre as organizações. As nuvens privadas oferecem
as vantagens de mais controle, conformidade e governança aprimoradas e maior
segurança.

Híbrido

Tentando oferecer os melhores recursos de ambos, nuvens híbridas use uma mistura de privado e
público mais orquestração para coordenar tudo. Dependendo dos requisitos, as cargas de trabalho
podem ser distribuídas em uma combinação de ambos para aproveitar os benefícios individuais. Por
exemplo, dados confidenciais podem ser mantidos na nuvem privada, enquanto aplicativos e cargas
de trabalho que precisam de dimensionamento elástico podem ser executados na nuvem pública.
Como alternativa, uma organização pode considerar suas cargas de trabalho críticas versus não
críticas. Onde cada um deve ser executado?

Visão geral das nuvens | 61


Por exemplo, os críticos podem ser movidos para um modelo híbrido para garantir a disponibilidade e continuidade
em crises emergentes. Novamente, as nuvens híbridas fornecem a opção de tomar a melhor decisão
para cada uma.

Além disso, nuvens híbridas oferecem uma série de outros benefícios. Normalmente, eles fornecem
maior segurança, integrada no nível do contêiner, e oferecem melhor flexibilidade para cargas de
trabalho corporativas. Ao usar o híbrido, a organização pode implantar e executar seus aplicativos
onde eles têm melhor desempenho, em vez de depender apenas da infraestrutura disponível. Os
recursos podem ser usados onde necessário para gerenciar cargas de trabalho, colocando aqueles
que precisam ser escalonados nos ambientes corretos. Isso fornece um nível mais alto de agilidade
conforme a infraestrutura corporativa cresce.

Multicloud

Finalmente, temos multiclouds. Elas parecem mais ou menos como nuvens híbridas em um nível alto,
e parece que simplesmente usam muitas nuvens diferentes - e isso é parcialmente verdade. Embora
esses dois termos às vezes sejam usados intercambiavelmente Em termos mais simples, as nuvens
híbridas são uma combinação do uso de nuvens públicas e privadas, enquanto multicloud é o uso de
nuvens de diferentes fornecedores para executar uma combinação de cargas de trabalho variadas. As
multiclouds permitem que as organizações aproveitem as diversas propostas de valor de cada nuvem
e personalizem o ambiente de computação de acordo com suas necessidades específicas. Além
disso, o aprisionamento do fornecedor é uma preocupação genuína para muitas empresas. O uso de
um ambiente com várias nuvens diminui o risco de depender demais de um único fornecedor para
todas as suas necessidades de computação. Conforme os requisitos se tornam mais sofisticados,
podemos esperar que as implantações de várias nuvens se tornem mais prevalentes.

Apesar dos benefícios, o gerenciamento de várias nuvens ainda é um problema. Depois que uma
organização começa a adicionar nuvens de diferentes fornecedores, além daquelas já existentes
em um ambiente de nuvem híbrida, como ela gerencia todas as partes móveis? Como veremos
em uma seção a seguir, os principais fornecedores de nuvem fornecem serviços de software que
resolvem efetivamente esse desafio para a empresa.

Cloud Construction

Agora que discutimos os diferentes tipos de nuvens, vamos examinar sua construção.
Uma vez que entendemos esse aspecto, podemos olhar para o uso de inteligência
artificial nessas diferentes nuvens e, expressamente, em nuvens híbridas.

62 Capítulo 6: Nuvens Híbridas


Os contêineres se tornaram rapidamente a unidade básica de computação em nuvem, com Docker
sendo o mais familiar para os desenvolvedores e, portanto, sinônimo de contêineres. Com a
virtualização e as máquinas virtuais, o hardware é replicado, incluindo seu sistema
operacional, exigindo uma sobrecarga considerável. No entanto, com a conteinerização, você
está virtualizando os processos em vez de. O contêiner envolve tudo que é necessário para
um aplicativo, incluindo código e quaisquer dependências. A área ocupada é menor e os
contêineres podem ser distribuídos pela infraestrutura geral com muito mais facilidade,
funcionando de maneira consistente em qualquer ambiente. Esses fatores popularizaram os
contêineres em relação às máquinas virtuais, e de acordo com 451 Research , o mercado de
tecnologias de contêiner deve chegar a US $ 4,3 bilhões até 2022.

Mas, como você pode imaginar, conforme aumenta o uso do contêiner, coordená-los em
cada implantação ou atualização torna-se cada vez mais complicado. Muitos dos benefícios
são perdidos devido ao aumento da complexidade de gerenciamento de tantos contêineres,
frequentemente milhares deles. Kubernetes, uma plataforma de código aberto lançada pelo
Google em 2014 , fornece uma orquestração fácil de muitos contêineres em um ambiente e
se tornou uma opção popular. E embora o Docker seja o contêiner mais popular usado com
o Kubernetes, você não está restrito a usá-lo (outros incluem rkt, containerd e LXD). O
Kubernetes torna seus aplicativos muito mais portáteis em várias nuvens com
escalonamento aprimorado, tornando-se o backbone para implementações híbridas e em
várias nuvens. Os aplicativos podem ser implantados e atualizados com muito mais rapidez,
sem tempo de inatividade.

Usando IA em nuvens híbridas


Particularmente úteis para IA, as nuvens híbridas oferecem a oportunidade de utilizar os melhores
aspectos das nuvens públicas e privadas para aplicativos e cargas de trabalho para fornecer IA em
escala. Usar uma nuvem híbrida para esses projetos pode fornecer alguns benefícios importantes, que
abordaremos nas próximas seções.

Privacidade e segurança

Uma das principais vantagens de um ambiente híbrido para IA é a privacidade dos dados.
Conforme mencionado no início deste capítulo, existem inúmeras regulamentações do setor
relacionadas ao trabalho com dados em nuvens públicas. Antes das nuvens híbridas, esses
dados podem ter ficado presos atrás de um firewall e indisponíveis para qualquer
implementação de IA

Usando IA em nuvens híbridas | 63


ções. Executar IA em nuvens híbridas oferece a oportunidade de manter dados privados, ou
dados com restrições, separados de outros dados na nuvem pública. Ao utilizar os melhores
recursos de ambos, com dados em nuvens públicas e privadas, as empresas agora podem
expandir suas iniciativas de IA de maneiras antes inacessíveis, com maior controle sobre os
dados e privacidade.

Portabilidade e escalabilidade

Em um ambiente híbrido e com várias nuvens, as organizações têm controle total sobre onde
desejam que seus aplicativos sejam implantados e os dados armazenados. Utilizando os benefícios
dos contêineres com o Kubernetes, a nuvem híbrida permite que eles implantem facilmente um
aplicativo quando e onde necessário. Isso é especialmente importante ao realizar o trabalho de IA,
pois as cargas de trabalho podem não ser consistentes. Pode haver momentos em que os modelos
precisam ser executados e o dimensionamento de recursos é necessário. Quando não estão sendo
usados, os recursos podem ser reduzidos. Uma nuvem híbrida também torna os dados mais
acessíveis aos membros da equipe. Os dados podem ser armazenados em locais diferentes, mas se
torna muito mais simples coletar e organizá-los, tornando a análise mais colaborativa.

Processamento e poder computacional

Por que fazer um investimento considerável em poderosos processadores de GPU para todos os seus

aplicativos quando você só precisa ocasionalmente executar cargas de trabalho de computação

intensiva, como AI / ML? As nuvens híbridas permitem que você use o poder de computação

necessário quando e onde for necessário, economizando custos e recursos. Eles podem escalar em

resposta a uma carga e, em seguida, ser desprovisionados conforme necessário, como após um

evento sazonal como uma liquidação de feriado. O uso apropriado de recursos de computação agora

pode acontecer em toda a infraestrutura da empresa.

Exemplo de IA em nuvens híbridas

Vejamos agora um exemplo de IA efetivamente implementada usando nuvens


híbridas. Aqui, veremos uma empresa hipotecária fictícia que precisa de um aplicativo
de suporte ao cliente.

Durante o processo de hipoteca, os clientes vão e vêm com diferentes funcionários, incluindo o
originador e o processador do empréstimo. Especialmente na compra de uma casa, o cliente
normalmente está com o tempo apertado, e seu arquivo de empréstimo precisa ser processado
imediatamente. Muitos registros são coletados - especialmente PDFs de documentos de
hipotecas e

64 Capítulo 6: Nuvens Híbridas


as demonstrações financeiras do cliente. O cliente freqüentemente entra em contato com a
empresa com perguntas que podem ser respondidas de maneira razoável, mas tiram tempo
dos funcionários e podem ser tratadas com mais eficiência com automação. Como os dados
do cliente são informações financeiras privadas, é necessária uma solução segura, privada e
integrada. Devido à natureza sensível dos dados, neste cenário não seria recomendável
usar uma solução de nuvem exclusivamente pública.

A empresa poderia usar inteligência artificial em algumas áreas: PNL para


processar as perguntas, chatbots para ajudar na comunicação e na interface para
responder às perguntas do cliente e pesquisa inteligente nos documentos, para
citar alguns dos mais óbvios.

Este é um caso de uso ideal para uma nuvem híbrida. Os dados confidenciais do cliente podem ser

armazenados atrás do firewall em uma nuvem privada e segura. O aplicativo de suporte ao cliente,

aproveitando um chatbot, pode ser implantado na nuvem pública e ampliado ou reduzido rapidamente,

conforme necessário. Então, ele ainda pode interagir com dados na nuvem privada. Assim, uma nuvem

híbrida poderia habilitar genuinamente uma nova solução para esta empresa hipotecária, proporcionando

economia significativa de custo e tempo e, ao mesmo tempo, tornando seus agentes de suporte ao

cliente mais eficientes.

Soluções Práticas
Como você pode ver nesta discussão, embora soluções como o Kubernetes tornem o
gerenciamento mais direto, ainda há uma quantidade considerável de trabalho necessária para
executar e manter soluções híbridas. Freqüentemente, uma empresa precisará de uma equipe
dedicada para gerenciar tudo. É aqui que as soluções de vários fornecedores entram em jogo.
Para fazer todo o trabalho sozinho, são necessários talentos e recursos que sua organização
pode não ter.

Felizmente, muitas empresas oferecem soluções híbridas projetadas para dados e trabalho
de IA, incluindo Google Anthos, Microsoft Azure Stack, IBM Cloud Pak for Data e AWS
Outposts. Todos eles têm recursos diferentes para a execução bem-sucedida de aplicativos
em nuvens híbridas. Cada um fornece recursos híbridos e a funcionalidade de manter seus
dados seguros. Eles variam principalmente em sua tecnologia básica e nos serviços
específicos que incluem. Ainda assim, cada um oferece os principais recursos que discutimos
em relação à portabilidade, escalabilidade e privacidade de dados.

Soluções práticas | 65
Como fizemos ao longo deste livro, veremos um exemplo da IBM para ilustrar os conceitos. O
IBM Cloud Pak for Data fornece uma plataforma integrada que consiste em um conjunto de
dados unificados e serviços de IA executados em Red Hat OpenShift . Construído para
desenvolver e gerenciar aplicativos em contêineres, o Cloud Pak for Data também permite
interações com ferramentas populares de código aberto.

Os principais recursos incluem a capacidade de implantar em qualquer nuvem e fornecer uma


solução completa para coletar, organizar e analisar dados, especialmente incorporando AI / ML.
Por exemplo, uma organização pode ter a maior parte de sua infraestrutura na AWS, mas deseja
usar o IBM Watson para seus recursos de AI / ML. O Cloud Pak for Data permitiria isso como
uma opção. Produtos como este ajudam a evitar o aprisionamento do fornecedor e podem ser
executados em qualquer lugar. Como discutimos anteriormente, um dos principais benefícios dos
ambientes híbridos e multicloud é a opção de escolher os serviços que melhor atendem às
necessidades da organização e, em seguida, implantá-los em sistemas de qualquer fornecedor.
Uma organização pode preferir uma solução de software de um fornecedor, mas executar a maior
parte de sua infraestrutura no software de outro. Esses tipos de soluções híbridas e multicloud
fornecem a capacidade de fazer isso. Recursos adicionais incluem virtualização e
armazenamento de dados, bem como recursos de descoberta, pesquisa e análise de dados. Uma
plataforma integrada permite que desenvolvedores, cientistas de dados e outros usuários de
negócios colaborem e trabalhem com dados mais facilmente, economizando custos e
aumentando a eficiência. Ajuda a agilizar o trabalho criando um pipeline para coletar, organizar,
analisar e consumir dados.

Além disso, há benefícios distintos para desenvolvedores corporativos ao trabalhar com soluções de
software híbrido. Em vez de ter que alternar entre diferentes ferramentas de desenvolvedor para
realizar seus trabalhos, soluções como o Cloud Pak for Data oferecem a integração de utilitários
necessária. Uma única plataforma para gerenciamento e análise de dados permite que eles
gerenciem facilmente conexões de dados e ferramentas de análise de acesso. Por fim, os
desenvolvedores geralmente não gostam de perder tempo se preocupando com DevOps e
monitoramento. Essas plataformas oferecem recursos integrados para os principais serviços
operacionais, incluindo registro, monitoramento e segurança, para que os desenvolvedores possam
gastar mais de seu precioso tempo concentrando-se em seus aplicativos e código.

Podemos esperar mais foco nessas soluções dos principais fornecedores. Como vimos, os
benefícios são grandes demais para serem ignorados no ambiente atual, e a capacidade
de aproveitar a força de cada solução será fundamental no futuro.

66 Capítulo 6: Nuvens Híbridas


O futuro da IA em nuvens híbridas
O que devemos esperar das nuvens híbridas avançando? Uma tendência que vemos atualmente
é o uso crescente de código aberto em nuvens híbridas. Projetos como Abra o hub de dados provam
ser uma excelente alternativa às soluções comerciais quando os cientistas de dados desejam
uma plataforma integrada para realizar seus trabalhos. Baseado no Red Hat Open‐ Shift, o Open
Data Hub é uma plataforma completa de ciência de dados e IA. A integração com Jupyter
Notebook, TensorFlow, Apache Spark e scikit-learn permitem a construção e desenvolvimento de
modelos. Um dos melhores recursos do Open Data Hub é que ele só precisa de um cluster Red
Hat OpenShift em execução e um armazenamento de objeto S3 como o Ceph. Com apenas
alguns cliques, uma instalação básica pode ser instalada e executada em cima do OpenShift para
os usuários começarem a trabalhar em seus projetos. Seguindo em frente, provavelmente
veremos mais tentativas de tornar mais fácil o trabalho de ciência de dados e IA em plataformas
de código aberto.

Finalmente, muitas empresas usarão cada vez mais estratégias de nuvem híbrida e multicloud
juntas. À medida que eles continuam a modernizar os aplicativos que ainda estão
principalmente no local, os casos de uso híbrido e multicloud aumentarão drasticamente.

Resumo
Como vimos ao longo deste capítulo, as nuvens híbridas estão impulsionando o futuro da IA
corporativa. Resolvendo muitos problemas de dados enfrentados pelas empresas, eles abrirão o
caminho para casos de uso anteriormente inatingíveis. Existem oportunidades potenciais em sua
organização que o uso de uma nuvem híbrida para IA abrirá?

No próximo capítulo, encerraremos a discussão sobre IA na empresa com uma visão


de como seguir em frente e começar sua jornada.

O futuro da IA em nuvens híbridas | 67


CAPÍTULO 7

Ansioso

Na próxima década, a IA não substituirá os gerentes, mas os gerentes que usam IA substituirão
os que não o fazem.

- Erik Brynjolfsson e AndrewMcAfee, Harvard Business Review

Ao longo deste livro, discutimos técnicas práticas para implementar IA na empresa.


Variando de PNL a chatbots e visão computacional, essas tecnologias fornecem às
empresas não apenas economias significativas de custos em longo prazo, mas
também a capacidade de resolver problemas que antes não podiam.

Embora tenhamos discutido os benefícios e métodos de implementação de IA na


empresa, existem alguns aspectos adicionais que qualquer praticante de IA deve ter em
mente para o futuro. As próximas seções discutem algumas dessas áreas voltadas para
o futuro na empresa que a inteligência artificial terá impacto.

Primeiro, vamos recapitular nossa discussão inicial sobre IA no primeiro capítulo. Apesar do
que vemos na mídia, é importante lembrar que não estamos falando sobre a construção de
inteligência artificial geral na empresa (pelo menos em um prazo relativamente curto, pelo
menos!). Em vez disso, estamos falando sobre criar aumentado inteligência para a empresa.
Aumentar a inteligência humana é mais sobre como dimensionar nossas capacidades
humanas e ajudar os funcionários a tomar melhores decisões, em vez de criar uma nova
forma de vida inteligente.

As tecnologias empresariais que automatizam e detectam padrões agora podem aconselhar e


aprimorar a experiência humana, capacitando ambos os funcionários

69
e aplicativos para tomar decisões mais ricas e baseadas em dados. Esta é apenas uma
extensão do que já temos feito com computadores, mas ajudar os humanos a tomar essas
decisões melhores agora é o verdadeiro problema que estamos tentando resolver na
empresa.

A maioria das máquinas não consegue ler a maioria dos dados criados, pois eles não são
estruturados. Conforme discutido em Capítulo 2 , 90% dos dados mundiais foram criados nos últimos
dois anos e 80% desses dados não foram estruturados. Portanto, novamente, lidar com dados
confusos e não estruturados se torna o foco principal para desenvolvedores de aplicativos
corporativos que usam IA.

A seguir, discutiremos alguns aspectos das empresas que as tornam particularmente


exclusivas em comparação com outros tipos de empresas. Em seguida, examinaremos
alguns desafios, tendências e oportunidades atuais para trazer a IA para a empresa.
Concluiremos o capítulo explorando a escalabilidade e o impacto social da IA em uma
organização.

O que torna as empresas únicas?


No Capítulo 1 , apresentamos uma definição básica de empresa para garantir que todos
estivéssemos na mesma página. Para relembrar, definimos uma empresa como uma empresa
cujos usuários finais eram outras empresas ou funcionários de negócios. Nesta seção,
expandiremos isso examinando alguns dos recursos exclusivos das empresas.

Primeiro, vamos voltar aos dados. Para empresas corporativas, seus dados são da maior
importância. Os dados corporativos não são uma mercadoria a ser monetizada ou
comercializada. Não há apenas questões de privacidade e dados pessoais com que se
preocupar, mas também uma preocupação principal em proteger os dados que se tornam
propriedade intelectual (PI) valiosa. Além disso, as empresas devem ter controle e escolha sobre
como esses dados, agora IP crítico, são tratados. Mesmo que eles deixem os dados se moverem
para outro lugar, não há pessoas suficientes (provavelmente no mundo) com a habilidade
necessária para rotular seus dados específicos. Todos esses motivos tornam o gerenciamento de
dados na empresa um esforço muito mais complicado do que para as contrapartes voltadas para
o consumidor.

Outra área específica da empresa é sua pilha de tecnologia geral e como a IA se integra a
ela. A tecnologia na empresa é tipicamente focada na solução de problemas complexos,
mas mundanos. Portanto, embora a adição de IA aos aplicativos pareça atraente, existem
muitos estágios pelos quais os desenvolvedores devem passar para integrar a tecnologia.
Qualquer nova implementação de IA em aplicativos deve se adaptar ao

70 Capítulo 7: Olhando para o Futuro


numerosos processos empresariais existentes. O lado positivo desse empreendimento mais extenso
é que a implementação de IA muitas vezes pode ser customizada para problemas específicos do
negócio, fornecendo, assim, ordens de valor mais altas para a empresa.

Finalmente, a maioria das empresas precisa de domínio e experiência no setor. Para a maioria dos

problemas de aprendizado de máquina, eles exigem conjuntos de dados exclusivos e pré-treinados.

Além disso, muitas vezes há preocupações específicas do setor a serem consideradas. Por exemplo,

conforme mencionado no capítulo da nuvem híbrida, o financeiro , cuidados de saúde , e recursos

humanos todos os setores têm conjuntos distintos de regulamentos que devem ser tratados e

seguidos. Outros setores, como cibersegurança, IoT e atendimento / suporte ao cliente, todos têm

requisitos especiais para gerenciamento de dados. Embora cada empresa seja única em muitos

aspectos, a chave é construir um conjunto de ferramentas de personalização que permita a cada

empresa definir a solução para suas necessidades.

Desafios, tendências e oportunidades atuais


No futuro, os desenvolvedores enfrentarão vários desafios para implementar a IA
corporativa, os quais felizmente refletem algumas das tendências futuras do setor.
Discutiremos isso nas próximas seções.

Little Data

As empresas têm dados menores ou menos em comparação com os aplicativos do consumidor.


Falamos muito sobre big data nos capítulos anteriores, mas a verdade é que, embora haja big
data na empresa, ele costuma ser em uma escala muito menor do que para aplicativos voltados
para o consumidor. Além de menos dados, as informações que existem são frequentemente
bloqueadas, inacessíveis e não podem ser compartilhadas por vários motivos (incluindo IP e
regulamentos). Portanto, a questão crucial aqui é como obter alta precisão nos algoritmos
usando muito menos dados. A solução típica para trabalhar de forma eficiente com uma
pequena quantidade de dados é uma técnica chamada transferir aprendizagem.

O aprendizado de transferência é uma abordagem que pode usar quantidades muito menores de dados,

em oposição ao aprendizado profundo, que precisa de muitos dados. Aprendizagem de transferência permite

o aproveitamento de dados rotulados existentes de um domínio diferente (embora intimamente

relacionado) daquele em que estamos tentando resolver o problema de negócios. O que é interessante

sobre essa abordagem é que mesmo como humanos, aprendemos com quantidades relativamente

pequenas de dados - não aprendemos do zero, nem aprendemos com

Desafios, tendências e oportunidades atuais | 71


grandes quantidades de dados. Podemos aprender com a coleção de experiências que ganhamos
em outro lugar. A aprendizagem por transferência é uma abordagem que imita esse processo
humano, que se assemelha à relação do aprendizado profundo com o funcionamento do cérebro.

Na empresa, existem diferentes áreas de trabalho ou áreas de domínio, então como


usamos o que aprendemos em uma área de trabalho para informar outra de maneira
eficiente? É aqui que a aprendizagem por transferência entra em ação e será uma força
motriz no futuro.

Além disso, um disparo aprendizagem é a capacidade de resolver problemas usando uma quantidade ainda

menor de dados de treinamento. Mais frequentemente usado em problemas de visão computacional, o

aprendizado de uma tentativa tenta classificar imagens usando uma única ou muito poucas imagens de

treinamento.

Formatos de dados inacessíveis

Embora a indústria de IA coletiva tenha feito um progresso prodigioso, ainda existem


áreas, especialmente em PNL, que se mostram um desafio específico para a empresa.
Especificamente, muito conhecimento em empresas está contido em PDFs, documentos
do Word e outros formatos proprietários. Nestes documentos, tabelas e gráficos são
extremamente difíceis de entender para algoritmos de PNL.

Ser capaz de entender essas tabelas e gráficos é um problema desafiador. É muito mais fácil
reconhecer imagens com dados de alta qualidade suficientes. Dada uma tabela estruturada em
um PDF, existem infinitas combinações. Empresas como a IBM estão trabalhando ativamente em
soluções para este problema e acham que estão perto de uma solução. Novamente, na empresa,
essas são algumas das questões nada glamorosas com as quais você tem que lidar e que são
essenciais para o negócio. Você não pode simplesmente jogar fora esses documentos, pois
geralmente eles são metade dos seus dados.

Garantindo Responsabilidade e Interpretabilidade

Mesmo se usarmos algoritmos de aprendizado de máquina (desenvolvidos internamente ou


por terceiros) que consideramos eficazes, muitas vezes há a questão de explicar os
resultados e defender o algoritmo para as partes interessadas. Uma pergunta frequente aos
desenvolvedores é: como você chegou a essas conclusões? O aprendizado profundo, em
particular, não oferece muita transparência no modelo e isso pode representar problemas
em algumas situações.

72 Capítulo 7: Olhando para o Futuro


Muitos desses algoritmos são caixas pretas. Podemos entender como o algoritmo funciona
tecnicamente. Ainda assim, as etapas necessárias desde a iteração dos dados de treinamento
até os resultados preditivos finais geralmente não são definidas para que alguém analise e
interprete. O problema é que a interpretabilidade, por definição, é subjetiva para humanos.

Tentar equilibrar os algoritmos quantitativos com os processos interpretativos qualitativos é


exacerbado por mais melhorias algorítmicas. É ótimo ser inovador com nossos algoritmos de
aprendizado de máquina, mas a que custo? Independentemente da precisão, qualquer coisa
abaixo de 100% pode fazer com que as partes interessadas se concentrem na taxa de erro
em vez do sucesso da alta precisão. Aqui está uma expressão familiar: “80% de precisão,
parece ótimo, mas por que havia uma taxa de erro de 20%?” É necessário haver uma
compensação entre precisão e interpretabilidade. Mas o que vimos é que muitas vezes mais
precisão significa menos interpretabilidade . Essa falta de interpretabilidade de dados, então,
coloca problemas para empresas em muitos setores, especialmente aquelas com requisitos
regulatórios, e quaisquer erros nesses setores altamente regulamentados são muito mais
caros.

Portanto, a questão para um desenvolvedor corporativo agora é: como posso explicar os dados
para equipes internas e reguladores externos? Novamente, as previsões dos modelos de
aprendizado de máquina são opacas e difíceis de entender. Como nossos algoritmos chegaram a
essa conclusão? E quão reproduzíveis são os resultados? Quando são uma caixa preta, isso se
torna um problema bastante desafiador. Trilhas de auditoria são vitais para lidar com esse
problema. Rastrear uma previsão para a herança única de cada modelo é fundamental para a
conformidade regulatória. Além disso, a aplicação de controles de acesso para compartilhamento
e implantação de modelos garante a segurança dos dados e estabilidade do aplicativo.

Fora das necessidades da empresa (executivos e outros funcionários), forças externas


estão entrando em ação. Em maio de 2018, o Regulamento Geral de Proteção de Dados
(GDPR) da UE entrou em vigor, concedendo aos consumidores um “direito de explicação”
legal limitado de organizações que usam a tomada de decisão algorítmica. o GDPR aplica-se
a qualquer empresa “se coletar ou processar dados pessoais de residentes da UE”. E
embora muitos especialistas acreditem que este tipo de legislação pode potencialmente desacelerar
o desenvolvimento e uso de IA , a tendência política é clara e podemos esperar ver mais
dessas iniciativas no futuro. Por exemplo, existem nove outros países com leis
semelhantes , existentes ou a serem adotados em breve. Embora as ramificações dessas
leis ainda estejam em questão, o fato é que os governos

Desafios, tendências e oportunidades atuais | 73


demonstraram sua disposição de legislar maneiras para que as empresas esclareçam suas
decisões algorítmicas. Para obter mais informações sobre possíveis soluções, consulte
Patrick Hall's excelente visão geral de encontrar um equilíbrio entre precisão e
interpretabilidade.

Diretamente relacionado à questão das questões de regulação está o viés nos dados e
algoritmos. É fundamental entender qualquer parcialidade nos dados ou algoritmos. Houve
algum destaque exemplos de preconceito
de grandes empresas. A preocupação é se os desenvolvedores não são responsáveis por
garantir que o preconceito seja removido desde o início - tanto de seus algoritmos de aprendizado
de máquina quanto dos dados - então os governos irão regular isso para eles. É muito melhor
autorregular-se, não apenas do ponto de vista legal, mas também do ponto de vista da
responsabilidade social, pois resultados tendenciosos têm impactos no mundo real.

Este é um problema espinhoso, já que a maioria dos desenvolvedores e cientistas de dados

provavelmente não planeja criar preconceitos inicialmente. Infelizmente, é difícil identificar nossos próprios

preconceitos, quanto mais aqueles que se insinuam em nossos modelos ao longo do tempo. E como

discutimos, isso é ainda mais difícil de detectar quando os algoritmos são, em sua maioria, caixas pretas.

Enquanto os humanos podem auto-reflexão e tentar identificar o viés, nossos algoritmos não têm esse

mecanismo integrado. O trabalho futuro nesta área provavelmente proporcionará enormes ganhos gerais

para todas as partes interessadas.

Justiça, confiança e transparência

Como a maioria das indústrias depende cada vez mais da IA, devemos garantir que ela seja
justa e produza resultados transparentes e confiáveis. Infelizmente, é mais fácil falar do que
fazer. Já vimos muitos casos de alto perfil em que foi demonstrado que a IA perpetua o
preconceito e a injustiça. Embora a maioria desses resultados não intencionais e
tendenciosos sejam produto de preconceito inconsciente , que muitas vezes torna o combate
mais difícil. Quando o preconceito não é explícito, é mais difícil de identificar e, portanto,
eliminar.

Quando falamos sobre preconceito em IA, exatamente o que queremos dizer? Vamos dar uma olhada

em alguns exemplos específicos que iluminam as questões. Pesquisa de Laboratório de Políticas de

Computação em Stanford mostra que as ferramentas de reconhecimento de voz interpretam mal falantes

negros duas vezes mais que brancos, provavelmente devido à falta de diversidade nos dados de

treinamento, e seu desempenho é particularmente ruim para homens negros. O reconhecimento facial

também tem mostrado consistentemente fraco desempenho na identificação de rostos não brancos . Em

contraste, pesquisas publicadas em Ciência mostrou o

74 Capítulo 7: Olhando para o Futuro


inadvertido transferência de recursos médicos para brancos mais saudáveis em vez de
pacientes negros mais doentes. Outros exemplos incluem o Cartão Apple atribuir limites de crédito
mais baixos para mulheres, Mídia social do Google Algoritmo de IA para monitorar discurso de
ódio sendo racialmente preconceituoso contra afro-americanos e a questão notória de imagem e
vídeo
deepfakes . Esse problema acaba sendo um loop de feedback de viés e afeta tudo, desde o
sistema de justiça criminal até pontuação de crédito e entrevistas de emprego. A lista continua
quanto mais você pesquisa.

Como as empresas podem controlar a IA durante o dimensionamento? Como podemos aumentar a

explicabilidade e transparência da IA para garantir justiça para todos? Da mesma forma, o que acontece

se você não puder confiar em seus modelos de IA? E se eles não forem justos, éticos ou imparciais?

A chave para qualquer solução incluirá recursos para melhorar a explicabilidade, justiça,
rastreabilidade e detecção de viés para entender e explicar como um modelo faz suas
previsões. Além disso, podemos examinar se é aberto e aceita contribuições da
comunidade para melhorar continuamente. Por exemplo, nos setores de serviços
financeiros ou de seguros, esses sistemas seriam cruciais ao tomar decisões sobre a
qualidade de crédito do cliente. Essas empresas precisariam articular como e por que um
cliente recusou um empréstimo em vez de apenas apresentar uma decisão simples.
Dessa forma, a empresa pode mostrar que não houve viés nos resultados. Caso
contrário, está aberto a interpretação e debate (e responsabilidade potencial).

Os serviços estão trabalhando para resolver esse problema e criar modelos desviados. Um exemplo
é o IBM Watson OpenScale, uma plataforma que oferece aos desenvolvedores uma visão clara de
seus sistemas de IA e a capacidade de agregar confiança a seus modelos. Em todo o ciclo de vida
da IA, um produto como o Open Scale rastreia e mede os resultados, automatizando mais o
processo. Além disso, ferramentas como o AI Fairness 360 Toolkit fornecem uma biblioteca de código
aberto para desenvolvedores e cientistas de dados identificarem, relatarem e, em seguida, mitigar a
discriminação e o preconceito em seus modelos. Para discriminação mitigadora e viés em modelos de
aprendizado de máquina, o kit de ferramentas contém métricas de justiça e algoritmos de mitigação
de viés e está disponível em Python e R.

Embora esse problema seja preocupante, há uma promessa no horizonte. Além das soluções dos
fornecedores de software, há uma consciência cada vez maior do problema, o que provavelmente
levará a mudanças. As melhores práticas para evitar preconceitos estão sendo desenvolvidas e
compartilhadas. Por exemplo, o FTC oferece recomendações em dados e práticas recomendadas de
IA para

Desafios, tendências e oportunidades atuais | 75


prevenir o preconceito. Portanto, embora essa seja uma questão urgente, é principalmente uma que criamos

como praticantes de IA, o que significa que também pode ser resolvida por nós, primeiro por meio de

reconhecimento e, em seguida, melhores implementações. No futuro, será fundamental que melhoremos

nossos modelos de aprendizado de máquina e reduzamos os riscos. A chave para isso será uma IA

explicável e livre de preconceitos.

Escalabilidade
Conforme as demandas de IA corporativa aumentam, a capacidade de treinar grandes quantidades de
dados é crítica. Mas, na maioria dos casos, os tempos de treinamento para aprendizado profundo são
incrivelmente longos. Modelos grandes podem levar dias ou até semanas para treinar com os níveis
desejados de precisão. O principal culpado por trás desse atraso de desempenho é geralmente uma
limitação de hardware. Muitas bibliotecas de aprendizado profundo de software livre populares não
têm um desempenho eficiente em vários servidores (nós). Até agora, a solução tem sido escalar o
número de GPUs em um único nó, mas os ganhos de desempenho foram limitados a este ponto.
Curiosamente, a chave para a melhoria futura será essa capacidade de treinar grandes quantidades
de dados e dimensionar o esforço de acordo em muitos nós.

IBM Research recentemente mostrou resultados promissores na área de aprendizagem


profunda distribuída ( Figura 7-1 ) Os pesquisadores conseguiram dimensionar estruturas de
aprendizado profundo em até 256 GPUs com até 95% de eficiência, criando uma biblioteca
que se conecta a estruturas de código aberto como TensorFlow, Caffe, Torch e Chainer.

Figura 7-1. Biblioteca “Distributed Deep Learning” da IBM Research

76 Capítulo 7: Olhando para o Futuro


Implicações Sociais
Embora não seja necessariamente um aspecto técnico da construção de aplicativos de IA na
empresa, as implicações sociais da IA também são essenciais para discutir. Apesar das
interrupções e recomeços ao longo dos anos, bem como das preocupações sobre o impacto da
automação nos empregos e na sociedade, o potencial da IA na empresa só está aumentando - os
benefícios são muito significativos. Por exemplo, McKinsey Global Institute descobriram que “45%
das atividades de trabalho podem ser potencialmente automatizadas pelas tecnologias atuais, e
80% disso é habilitado pelo aprendizado de máquina”.

Além disso, 10% de todos os empregos na América estão relacionados ao trânsito. O que acontece
quando os veículos autônomos movidos a IA e automatizados são onipresentes e 30 milhões de
empregos foram eliminados ou amplamente reduzidos em capacidade? Isso levanta a questão: se
alguma tecnologia elimina empregos, ela também pode criar novos? Como podemos treinar
efetivamente os trabalhadores, especialmente os deslocados pela tecnologia moderna, para trabalhar
nessas novas indústrias?

As soluções para esse problema são discutíveis, mas uma coisa é certa - ao longo da
história, os avanços da tecnologia criaram uma turbulência em todos os setores e
eliminaram empregos. No entanto, eles sempre gerou novos em seu lugar. A chave
provavelmente será a reciclagem e a educação continuada dos trabalhadores para
aproveitar os novos cargos que serão criados. De acordo com Fórum Econômico Mundial ,
enquanto 75 milhões de empregos serão perdidos, 133 milhões de novos empregos serão
gerados pela IA até 2022.

Embora nos preocupemos com a perda de empregos, o outro lado da moeda é que há uma
necessidade desesperada e imediata de mais engenheiros e cientistas de dados treinados na
aplicação de IA, especialmente na empresa.

Embora não seja necessariamente provável que reduza o progresso tecnológico e as


inovações, essa crescente escassez de talentos em engenharia afetará o modo como as
empresas criam aplicativos. Sem a capacidade de contratar ou treinar conhecimento interno
rápido o suficiente, as empresas serão forçadas a terceirizar esses recursos para terceiros (se
não estiverem enfrentando a mesma escassez) ou confiar mais em soluções SaaS para essas
habilidades.

Implicações Sociais | 77
Resumo
Construir aplicativos de IA empresarial é mais sobre aumentar do que substituir a
inteligência humana. Neste capítulo, examinamos esse tópico e também o que torna as
empresas únicas, especialmente seus dados. Também discutimos alguns dos desafios na
IA corporativa, incluindo confinamento de dados, dados poucos e inacessíveis e
responsabilidade social. Embora cada um coloque problemas, eles também são
oportunidades para fazer melhores aplicativos e melhorar o processo de desenvolvimento
empresarial.

Cobrimos muito neste livro, mas esperamos ter fornecido a você um ponto de partida
para aplicar a IA em seus aplicativos corporativos. O futuro é sempre nebuloso, mas
uma coisa é certa: a IA veio para ficar e será necessária para que seus aplicativos
empresariais permaneçam relevantes hoje e no futuro. Boa sorte com seus esforços
de desenvolvimento!

78 Capítulo 7: Olhando para o Futuro


sobre os autores

Tom Markiewicz é um defensor do desenvolvedor da IBM. Ele tem um BS em engenharia


aeroespacial e um MBA. Antes de ingressar na IBM, Tom foi o fundador de várias startups.
Suas linguagens de programação preferidas são Ruby e Swift. Em seu tempo livre, Tom é
um ávido alpinista, corredor em trilhas e esquiador.

Josh Zheng é um defensor do desenvolvedor da IBM. Antes de ingressar na IBM, ele era um
desenvolvedor full-stack em uma empresa de mineração de dados política em Washington, DC.
Sua linguagem favorita é Python, seguida de Java Script. Como Josh tem experiência em
robótica, ele ainda gosta de se envolver com hardware também. Fora do trabalho, gosta de
construir robôs e jogar futebol.

Você também pode gostar