A programação de pares de IA tem armadilhas

As ferramentas de programação de inteligência artificial, concebidas para acelerar o desenvolvimento, oferecem benefícios que vão desde simples sugestões de código à capacidade de construir e implementar aplicações inteiras, mas também apresentam armadilhas significativas.

De acordo com um inquérito de 2.000 programadores no GitHub, os programadores que utilizam ferramentas de programação acopladas à IA não só melhoram a sua produtividade, como também se sentem menos frustrados e podem concentrar-se num trabalho mais gratificante. Muitas dessas ferramentas existem, incluindo os lançamentos deste ano de GitHub Copilot, Amazon CodeWhisperer e Tabnine. Juntam-se a uma longa lista de robôs AI como Kite Team Server, DeepMind’s AlphaCode e Project CodeNet da IBM.

Embora a programação de pares de IA prometa gerar código previsível, tipo padrão – trechos de código reutilizáveis, tais como frases condicionais ou loops – os programadores precisam de questionar a qualidade e relevância das sugestões de código, diz Ronald Schmelzer, parceiro principal do CPMAI Artificial Intelligence Project Management Certification na Cognilytica.

“Uma pessoa é confrontada com muitas questões sobre se o código é ou não utilizável, buracos e bugs de segurança, e muitas questões de direitos de autor”, disse ele.

Gargalos na programação de pares de inteligência artificial

Apesar das vantagens óbvias, muitas das quais foram descritas num estudo da GitHub, os programadores devem desconfiar das sugestões de inteligência artificial para adições de código porque a sua precisão não é garantida, disse Chris Riley, director sénior de relações de desenvolvimento na empresa de tecnologia de marketing HubSpot. Os programadores devem ter cuidado com as sugestões que possam arruinar as pesquisas salvas em sítios de programadores para obterem trechos de código.

Outro problema, de acordo com Riley, é a portabilidade. Se uma parte significativa do código for inteligência artificial, os programadores podem não a apoiar se causar problemas de produção.

Para além de questões de implementação e apoio, os robôs de determinação de código também apresentam problemas de segurança únicos. Enquanto algumas ferramentas de compilação de código, como o Kite Team Server, podem operar por detrás da firewall corporativa, outras dependem de artefactos públicos que podem ser inseguros, disse Riley. Por exemplo, os atacantes poderiam utilizar este esquema para se infiltrarem numa vulnerabilidade de dia-zero.

O código fornecido pela comunidade apresenta outro obstáculo potencialmente significativo: as questões de direitos de autor. Como as ferramentas de programação de pares de inteligência artificial são treinadas em código a partir de uma variedade de acordos de licenciamento, é difícil determinar quem é o seu proprietário, disse Schmelzer da Cognilytica. Além disso, se um gerador de códigos for treinado em dados de repositórios de códigos partilhados, particularmente o GitHub, os programadores podem misturar código protegido por direitos de autor e código público sem identificar a fonte.

A ascensão da programação de pares com inteligência artificial

Muitos dos problemas das actuais ferramentas de programação de pares com inteligência artificial não estavam presentes nos produtos de conclusão de código anteriores, tais como o IntelliSense da Microsoft, introduzido em 1996. Estas ferramentas ofereciam aos programadores um preenchimento fácil do tipo num compilador ou IDE, sem as vulnerabilidades ou problemas de suporte associados a repositórios públicos. De acordo com Riley, os programadores podem ir mais longe com esta base de código utilizando linters, ferramentas que evitam erros de sintaxe simples, para verificar o código fornecido.

“Penso que os criadores não tinham outras expectativas na altura, e na altura em que escrevemos ficámos satisfeitos com as sugestões ao estilo do Google”, disse Riley. “Foi concebido para melhorar a eficiência, não para ser o primeiro código”.

De acordo com Riley, os modernos programadores de pares de inteligência artificial vão além de simplesmente completar e imprimir código, propondo blocos completos de código. As ferramentas podem fornecer completamento de código sensível ao contexto ou escrever funções completas; os geradores de texto avançados GPT-3 do OpenAI, tais como o Copilot, podem criar e implementar aplicações completas e transformar consultas simples em instruções SQL que podem ser executadas em bases de dados.

“Há muito que sou céptico quanto à credibilidade das ferramentas de compilação de códigos baseados em IA, mas devo admitir que da primeira vez que experimentei uma, senti-me surrealista. [Anthony Chavez, fundador e CEO do Codelab303, diz: “Por vezes senti que estavam a ler a minha mente.

Apesar dos avanços tecnológicos, os problemas associados às modernas ferramentas de compilação de código AI limitam a sua utilidade, diz Riley.

“Penso que ainda não chegámos ao ponto em que possamos utilizar estas ferramentas para além da prototipagem rápida, formação e propostas”, disse ele.

Leave a Comment