Inteligência Artificial veio para otimizar ou automatizar? (1)

por em 23/02/2023

Muito se tem falado nos últimos meses sobre inteligência artificial (IA) e o seu potencial. Uma tecnologia que se apresenta muito promissora em várias áreas, já que permite não só automatizar tarefas repetitivas, mas também fazê-las aparentemente tão bem ou melhor que nós humanos. No entanto, apresenta algumas questões éticas que devem ser repensadas, como a substituição de atuais postos de trabalho e o enviesamento de resposta.

 

Desenvolvimento de Software e AI

O desenvolvimento de software não escapa a estas transformações e com certeza a utilização de ferramentas que recorrem a IA irão alterar a forma como criamos novos produtos e até mesmo como os usamos. Nos media da especialidade e nas redes sociais, até bastante fora da bolha comum de entusiastas pela inteligência artificial, muito se tem escrito sobre os avanços nos modelos de processamento da linguagem, nomeadamente no já famoso ChatGPT. É uma tecnologia sem dúvida disruptiva. Quem investe 10 minutos do seu dia entende porquê: esta ferramenta consegue aparentemente responder a qualquer pergunta, manter um diálogo coerente sem nunca perder contexto e ainda gerar código-fonte.

 

Capacidades dos modelos no desenvolvimento

Esta última característica interessa-me particularmente porque dos vários testes que fiz, o código parece-me bastante coerente e estruturado, apesar de nem sempre compilar de imediato ou executar de forma exata o pedido sem quaisquer erros.

Esta característica promete, sem dúvida, alterar a forma como os programadores desenvolvem, documentam e testam. Se pensarmos nas principais atividades do desenvolvimento de software, esta ferramenta permite que um programador possa explicar uma funcionalidade à mesma e gerir o código referente também. Claro que pode não ser 100% correto, mas poderá ser um excelente ponto de partida para começar a desenvolver e criar funcionalidades.

Na ótica de documentação, é também possível providenciar ao modelo o código-fonte e este responder com a documentação do código, já formatada e preparada para ser utilizada, o que poderá representar uma otimização de esforço nesta tarefa.

Finalmente, e numa tarefa fundamental para o desenvolvimento, o ChatGPT e os seus sucessores podem ser uma ferramenta muito boa para testar e depurar código. Como temos visto anteriormente, estas ferramentas são capazes de interpretar código, logo podem, por exemplo, ajudar na resolução de bugs, na criação de baterias de testes unitários para blocos específicos de código ou até na criação de guiões de testes exploratórios e de aceitação de soluções mais complicadas.

Na vertente de segurança, este tipo de modelos apresentam-se ainda como promissores, já que é possível, à medida que estão a ser integrados em ambientes de desenvolvimento, detetarem código inseguro ou recomendarem alterações que possam mais facilmente aderir a determinada norma de segurança, possibilitando a criação de código mais seguro de forma mais eficiente.

Ética e AI no desenvolvimento

É também ligado ao tema da privacidade que vejo um dos maiores desafios que a ferramenta tem atualmente: a privacidade na utilização do ChatGPT. Atualmente, na versão disponível ao público e de acordo com os termos de utilização do mesmo, o ChatGPT pode utilizar todas as suas conversas como dados de treino para melhorar o modelo. Isto significa que, tudo o que é partilhado com o modelo, incluindo dados privados e propriedade intelectual, serão utilizados no treino de novas versões da ferramenta, podendo assim esta, por exemplo, gerar código com base em propriedade intelectual privada.

Esta questão tem sido levantada cada vez mais nas ferramentas que recorrem a AI, como exemplo temos o processo judicial que a Getty Image abriu contra a Stability AI, uma ferramenta que gera imagem com base num conjunto de dados retirados da internet. Neste processo, a empresa alega que o modelo foi treinado utilizando a sua propriedade intelectual sem a sua autorização.

Paralelamente a esta questão de privacidade e direitos autorais surgem ainda questões éticas, e que se estendem para lá da engenharia de software: irá a utilização deste tipo de ferramentas automatizar trabalhos e conduzir à extinção de certos postos de trabalho?

Tendo em conta o passado, a minha resposta seria sim, principalmente tarefas repetitivas e que requerem pouca necessidade de juízo humano. Mas é nesta noção de “juízo” que acredito que possam estar os maiores desafios éticos.

Este modelo, até mesmo admitido pela própria criadora, pode dar respostas falsas, até porque como é treinado com base num conjunto de dados, poderá ser tão confiável como a confiança que se atribua a estes dados de treino, o que levanta ainda questões de viés e discriminação, já que poderão inferir conceitos que não são aceitáveis. Havendo esta possibilidade de viés, qualquer ferramenta que integre este tipo de modelos para a tomada de decisão, irá fazê-lo segundo os mesmos conceitos.

A IA apresenta um enorme potencial em várias áreas de atuação mas, também, desafios éticos que necessitam de ser pesados. A Engenharia de Software irá sem dúvida ser afetada por estes novos modelos e várias ferramentas de IA irão alterar a forma como criamos e utilizamos novos produtos. Atualmente, o maior exemplo é o ChatGPT, capaz de manter diálogos coerentes e gerar código-fonte. Outras ferramentas não irão ficar atrás, já que a Google apresentou ao mundo o Bard, um concorrente do ChatGPT e acredito que mais alternativas surgirão. Estas ferramentas irão ainda possibilitar a depuração de código e deteção e correção em tempo real de código inseguro.

Contudo, a privacidade e viés são os principais desafios atuais, já que todo o conteúdo das conversas pode ser utilizado para o próprio treino do modelo. A IA promete, sem dúvida, revolucionar a maneira como trabalhamos e em específico como o software é desenvolvido, mas precisamos de ter em conta os aspetos éticos e de privacidade que a utilização destas ferramentas apresenta.

Notícias Relacionadas