Notícias

Inteligência Artificial aplicada ao desenvolvimento de aplicações

2017 foi o ano que a Inteligência Artificial esteve no pódio das expectativas e reflexões. Vamos analisar o alcance desta tecnologia com o seguinte artigo do nosso gerente de Produto, Eugenio García. O foco é a relação íntima entre a IA e GeneXus para desenvolver soluções tecnológicas.

 "Todas as indústrias foram revolucionadas pela introdução do software, mas - paradoxalmente - a própria indústria de software continua construindo aplicativos de maneira “manual", artesanal, utilizando técnicas de mais de 30 ou 40 anos. Com GeneXus queremos revolucionar e mudar o paradigma de como as aplicações são criadas e, por esta razão, buscamos simplificar e automatizar o desenvolvimento de software baseado em algoritmos IA".

Eugenio García, Product Manager GeneXus.

Geralmente, quando pensamos no termo Inteligência Artificial (IA), nós o associamos a filmes de ficção científica onde máquinas inteligentes superam o homem. A realidade atual na indústria de software está longe dessa imagem. Se classificarmos os diferentes tipos de IA, podemos encontrar exemplos concretos em que avançamos. Por exemplo, em 1997, um computador chamado Deep Blue criado pela IBM, venceu o campeão de xadrez Garry Kasparov. Este computador cai na categoria de Inteligência Reativa. Uma máquina especializada em jogar xadrez que usa a informação contextual de como o jogo está nesse momento e com base nisso calcula as melhores opções de possíveis movimentos para tomar uma decisão. Nesse caso, não é uma máquina que aprende de experiências anteriores ou que pode ser treinada anteriormente.

Machine Learning e Deep Learning
Hoje estamos em outro nível de evolução da Inteligência Artificial. Surgiram técnicas de Machine Learning que nos permitem criar modelos que representam certos cenários. Com informações suficientes, podemos treinar esses modelos e fazer que efetivamente aprendam a resolver situações e fazer uso de experiências anteriores. Com este tipo de IA tem se avançado no desenvolvimento de veículos autônomos e no processamento da linguagem natural (o software para processar linguagem natural hoje nos permite ter assistentes virtuais em nossos smartphones com a capacidade de compreender comandos de voz e executar as tarefas que pedimos).
Nos últimos anos na área de Machine Learning foram consolidados técnicas de Deep Learning que, através do uso de redes neurais, dão a capacidade aos computadores de processar grandes quantidades de dados e aprender por si mesmos.

Aprendizagem supervisionada e aprendizagem não supervisionada
Geralmente, podemos dividir os problemas de Machine Learning em dois tipos, aqueles que precisam de aprendizagem supervisionada e outros em que nos deparamos com a aprendizagem sem supervisão. Um exemplo claro de aprendizagem supervisionada é o que fazemos no Facebook. Quando confirmamos que uma pessoa específica está em uma determinada foto, estamos informando o Facebook se a pessoa é ou não é aquela que nos sugere. Outro exemplo disto é o algoritmo do filtro Gmail SPAM, no qual indicamos quais e-mails são SPAM para nós. Desta forma, graças ao treinamento que milhões de usuários executam, esse filtro torna-se cada vez mais preciso na detecção de SPAM. Um exemplo de aprendizagem não supervisionada, onde a própria máquina se treinou é o caso de AlphaGo Zero, que aprendeu e melhorou seu jogo baseado em jogos reais Go, realizadas por profissionais e amadores. Com esse aprendizado, em 2016, AlphaGo derrotou o campeão de Go, Lee SEDOL por 4 partidas a 1. Como se isso não bastasse, em 2017, o Google criou uma versão melhorada, AlphaGo Zero, que teve a particularidade de se treinar jogando consigo mesma, com a única informação das regras do jogo. Levou três dias para se treinar sozinho - o tempo que ele leva para jogar cerca de 4,9 milhões de jogos - sem as limitações do conhecimento humano anterior. Quando a colocaram para competir com o antecessor, o resultado foi uma esmagadora vitória de 100 jogos do AlphaGo Zero sobre o AlphaGo. 

Ainda precisamos muito para alcançar máquinas que tenham a capacidade de criar suas próprias abstrações e a capacidade de entender que no mundo existem pessoas cujos pensamentos e sentimentos determinam seu comportamento, o que na psicologia é chamado de "teoria da mente". Enquanto isso, continuaremos a treinar modelos de IA que nos ajudem a fazer tarefas repetitivas, mas ao mesmo tempo cada vez mais complexas, como dirigir um carro, reconhecer tumores em tomografias ou identificar pessoas ou objetos em uma foto.

E GeneXus, como joga neste mundo?
GeneXus foi concebido como um sistema inteligente, que, a partir de uma Base de Conhecimento e com a inteligência de um mecanismo de inferência, pode gerar automaticamente uma solução de software, com seu banco de dados, código executável e a interface do usuário. É o que fizemos desde que GeneXus foi concebido, para tornar real a visão de automatizar as tarefas de desenvolvimento e mudar o paradigma com o qual desenvolvemos software. Então, em vez de se preocupar com a solução técnica (como programar algo), os usuários podem se concentrar na solução para o problema comercial (o que precisa ser programado), com base no conhecimento que os usuários de negócios já possuem. É a partir deste conhecimento que os modelos são construídos no GeneXus, de modo que o próprio GeneXus - usando técnicas de IA - pode gerar automaticamente o melhor código possível para a plataforma em que foi definido que o sistema precisa ser executado.

Inteligência artificial na nuvem e integração com as soluções GeneXus
Hoje estamos em uma era em que podemos acessar as diferentes plataformas que oferecem serviços de IA na nuvem. Essas plataformas estão permitindo o acesso a modelos de IA que nos permitem integrar o processamento de linguagem natural ou as capacidades de processamento de imagem e vídeo em nossas aplicações, o que de outra forma seria muito complicado e dispendioso.
Mais uma vez, encontramos uma variedade interessante de opções, o que nos obriga a aprender a interagir com cada um deles. GeneXus, após sua visão para simplificar o desenvolvimento de aplicativos, está criando um gerador de Chatbots que usa essas plataformas, mas simplifica as tarefas para criar um modelo e treiná-lo, para que esses Chatbots sejam integrados às aplicações criadas em GeneXus. Além disso, criamos SDKs para integrar os serviços de Machine Learning do SAP Leonardo e do IBM Watson e o mesmo será feito para outras plataformas, como a Microsoft Azure, Amazon Web Services, etc.

Conclusão, acreditamos que estamos em um estágio avançado no desenvolvimento e maturidade de Inteligência Artificial, particularmente de Machine Learning, e que devemos procurar maneiras de integrar esses recursos em nossas aplicações. GeneXus procura simplificar esta tarefa e, acima de tudo, integrar-se às plataformas mais relevantes do mercado, para que os usuários possam gerar as aplicações mais sofisticadas com o menor esforço possível.

Todas as indústrias foram revolucionadas pela introdução do software, mas - paradoxalmente - a própria indústria de software continua a construir aplicativos de forma manual, artesanal, utilizando técnicas de mais de 30 ou 40 anos. Com GeneXus queremos revolucionar e mudar o paradigma de como as aplicações são criadas e, por esse motivo, buscamos simplificar e automatizar o desenvolvimento de software baseado em algoritmos de IA.

Aqui você pode ler o artigo original e entrar em contato com seu autor