A Inteligência Artificial hoje: dados, treinamento e inferência

By | 7 minute read | 06/01/2020

Os grandes volumes de dados disponíveis para as organizações atualmente tornaram possíveis diversos recursos de inteligência artificial (IA) que antes pareciam ficção científica. Na área de TI, falamos durante anos sobre “big data” e os desafios que as empresas enfrentam para descobrir como processar e utilizar todos os seus dados. A maioria deles, cerca de 80%, não são estruturados, portanto, algoritmos tradicionais não são capazes de analisá-los.

Algumas décadas atrás, os pesquisadores descobriram as redes neurais, algoritmos deep learning, que podem revelar insights de dados e, muitas vezes, são insights que nunca poderíamos imaginar. Se pudermos executar esses algoritmos dentro de um cronograma viável, eles poderão ser utilizados para analisar nossos dados e revelar padrões dentro deles, o que, por sua vez, pode ajudar nas decisões de negócios. Entretanto, esses algoritmos exigem muita capacidade de computação.

Treinando redes neurais

O algoritmo de deep learning é aquele que utiliza rede neural para resolver um determinado problema. Uma rede neural é um tipo de algoritmo de IA que usa uma entrada, faz ela atravessar sua rede de neurônios, chamada de camadas, e apresenta uma saída. Quanto mais camadas de neurônios ela tiver, mais profunda será a rede. Se a saída estiver correta, ótimo. Se a saída estiver incorreta, é esperado que o algoritmo verá e “adaptará” as conexões dos neurônios de maneira que, da próxima vez que você fornecer essa entrada, ela apresentará a resposta correta.

 

 

Illustration of computer neural networks
Figura 1: Ilustração das redes neurais de computador

 

Essa capacidade de treinar uma rede neural até que ela aprenda a apresentar a resposta correta é um aspecto importante da computação cognitiva. As redes neurais aprendem com os dados aos quais elas são expostas e reorganizam a conexão entre os neurônios.

As conexões entre os neurônios são outro aspecto importante, e a intensidade da conexão entre eles pode variar (ou seja, a ligação pode ser forte, fraca ou ter uma intensidade intermediária). Portanto, quando uma rede neural se adapta, ela está de fato ajustando a intensidade das conexões entre seus neurônios e assim, da próxima vez, ela poderá fornecer uma resposta mais precisa. Para que uma rede neural forneça uma boa resposta para um problema, essas conexões precisam ser ajustadas fazendo o treinamento exaustivo e repetido da rede, ou seja, expondo-a a dados. Pode haver zilhões de neurônios envolvidos, e o ajuste de suas conexões é um procedimento matemático baseado em matriz que faz uso intensivo de computação.

Precisamos da força dos dados e da computação

De acordo com discussões atuais, a maioria das organizações tem grandes volumes de dados que podem ser utilizados para treinar essas redes neurais. Porém, ainda existe o problema de toda a matemática massiva e intensiva necessária para calcular as conexões de neurônios durante o treinamento. Tão poderosas quanto os processadores atuais, elas podem executar inúmeras operações matemáticas por segundo. Uma rede neural com zilhões de neurônios treinados por milhares de iterações de treinamento ainda exigirá um zilhão de operações para ser calculada. E agora?

Graças aos avanços no setor (e eu acredito que a indústria de jogos desempenhou um papel fundamental aqui), há algumas peças de hardware que são excelentes para lidar com operações baseadas em matriz chamadas Graphics Processing Unit (GPU). O GPU pode calcular zilhões de pixels em operações do tipo matriz para mostrar gráficos de alta qualidade em uma tela. E, ao que parece, o GPU pode trabalhar em operações matemáticas da rede neural da mesma maneira.

Deixe-me apresentar nosso melhor aluno de matemática da sala: o GPU!

An NVIDIA SMX2 GPU module
Figura 2: Um módulo NVIDIA SMX2 GPU

 

O GPU é uma parte do hardware capaz de executar cálculos matemáticos em um enorme volume de dados ao mesmo tempo. Ele não é tão rápido quanto uma unidade central de processamento (CPU), mas se alguém tiver uma tonelada de dados para processar, ele o fará massivamente em paralelo e, mesmo que cada operação seja executada de maneira mais lenta, a aplicação simultânea de operações matemáticas para muitos dados de uma vez superará o desempenho da CPU, permitindo obter respostas muito mais rápido.

O big data e o GPU trouxeram os avanços necessários para colocar as redes neurais em prática. E isso determinou os avanços em IA dos dias de hoje. Agora, as organizações podem aplicar essa combinação em seus negócios e descobrir insights a partir de seu amplo universo de dados, treinando uma rede neural para isso.

Para aplicar a IA com sucesso em sua empresa, o primeiro passo é garantir que você tenha muitos dados. A rede neural apresenta baixa performance quando treinada com poucos dados ou com dados inadequados. O segundo passo é preparar os dados. Se você estiver criando um modelo capaz de detectar isoladores com mau funcionamento em cabos de energia, será necessário fornecer dados sobre aqueles que estão funcionando normalmente e sobre todos os tipos que apresentam mau funcionamento. O terceiro passo é treinar uma rede neural, o que requer muita potência computacional. Após você treinar a rede neural, e comprovar que sua performance está satisfatória, ela poderá ser colocada em produção para que seja feita a inferência.

Inferência

Inferência é o termo que descreve o ato de utilizar uma rede neural para fornecer insights após ela ter sido treinada. É como se alguém que estudou algum assunto (passou por treinamento) e se formou, estivesse indo trabalhar em um cenário da vida real (inferência). Uma pessoa precisa estudar anos para se tornar médica, assim como precisamos de muita potência de processamento para treinar uma rede neural. Porém, médicos não levam anos para realizar uma cirurgia em um paciente e, da mesma forma, redes neurais levam menos de um segundo para fornecer uma resposta sobre dados do mundo real. Isso acontece porque a fase de inferência de uma solução baseada em rede neural não requer muita potência de processamento. Ela requer apenas uma fração da potência de processamento necessária para o treinamento. Desse modo, não é necessário ter uma peça de hardware potente para colocar uma rede neural em produção, mas é possível usar um servidor mais modesto, chamado servidor de inferência, cujo único propósito é executar um modelo de IA treinado.

Como é o ciclo de vida da IA

Os projetos de deep learning têm um ciclo de vida específico devido à maneira como o processo de treinamento funciona.

A deep learning project’s lifecycle

Figura 3: Ciclo de vida do projeto de deep learning

 

Atualmente, as organizações estão enfrentando o desafio de como aplicar deep learning para analisar seus dados e obter insights a partir deles. Elas precisam ter dados suficientes para treinar um modelo de rede neural. Os dados têm que ser uma representação do problema que eles estão tentando resolver, caso contrário, os resultados serão imprecisos. E também é necessário ter uma infraestrutura robusta de TI composta por clusters de servidores ricos em GPU para treinar seus modelos de IA. A fase de treinamento pode continuar em diversas iterações, até que os resultados sejam satisfatórios e precisos. Quando isso acontecer, a rede neural treinada é colocada em produção com um hardware bem menos potente.  Os dados processados durante a fase de inferência podem retroalimentar o modelo de rede neural para corrigi-lo ou aprimorá-lo, de acordo com as tendências mais recentes criadas a partir dos dados recém-adquiridos. Portanto, esse processo de treinamento e reeducação acontece iterativamente ao longo do tempo. Uma rede neural que nunca foi treinada envelhecerá e, potencialmente, se tornará imprecisa com os novos dados.

Este post oferece uma visão de alto nível de como dados, treinamento e inferência são aspectos fundamentais das soluções de deep learning. Há muita coisa para ser dita sobre o hardware, o software e os serviços que podem ajudar as empresas a alcançarem o sucesso em implementações de IA, e nos próximos artigos apresentarei uma visão mais detalhada dessas áreas. Não importa onde você esteja na sua jornada de IA com o IBM Power Systems, a IBM pode ajudá-lo. Agende uma conversa com o especialista e traga mais negócios para sua empresa.