Fechar menu lateral

Geração de Código por Modelos de Linguagem (LLMs): potencialidades, riscos e responsabilidades éticas

Por Prof. Alexandre Cury

Outro dia, pedi a uma dessas IAs para escrever um pedaço de algoritmo para mim. Em segundos, apareceu na tela um código bem formatado, com comentários explicativos e tudo mais. Parecia perfeito. Mas, será que funcionava de verdade?

Essa dúvida, simples, porém importante, é a motivação deste texto. Nos últimos anos, ferramentas como ChatGPT, Claude e Gemini viraram rotina para quem programa. Qualquer pessoa, hoje, consegue descrever o que quer em português simples e receber um código pronto em segundos. Isso é incrível. E, também, claro, é um pouco assustador.

Escrever código não é só fazer a máquina obedecer: é tomar decisões que afetam pessoas. E quando a IA entra nessa equação, surgem perguntas que vão muito além da tecnologia, como autoria, responsabilidade, segurança e ética. É sobre isso que vamos conversar aqui.

Como os LLMs geram código

Os LLMs aprendem padrões a partir de enormes volumes de texto e código, tipicamente coletados de repositórios públicos como o GitHub, fóruns como Stack Overflow, documentações oficiais e livros técnicos. Durante o treinamento, o modelo não “entende” a lógica de conceitos e verdade no sentido humano: ele aprende distribuições estatísticas sobre quais tokens (palavras, símbolos, instruções) tendem a aparecer em sequência, dado um contexto.

Quando um desenvolvedor solicita, por exemplo, “escreva uma função em Python que implemente o algoritmo de classificação de dados utilizando k-means”, o modelo gera, token a token, a sequência mais provável de código que satisfaz aquela descrição. O algoritmo gerado costuma ser sintaticamente correto, ou seja, possui uma sequência lógica adequada e, em muitos casos, funcional, mas não há garantia de que vá produzir resultados corretos. O paper original do Codex (Chen et al., 2021), modelo que originou o GitHub Copilot, já apontava limitações importantes do modelo em tarefas que envolvem cadeias longas de operações ou ligação consistente entre variáveis.

Os prós: produtividade, acessibilidade e aprendizado

É fato que a geração automática de código apresenta benefícios visíveis:

  • Aceleração do desenvolvimento: tarefas repetitivas podem ser realizadas em segundos, liberando o(a) desenvolvedor(a) para problemas que necessitem maior reflexão e raciocínio.
  • Apoio ao aprendizado: estudantes podem usar LLMs como tutores interativos, pedindo explicações sobre estruturas de dados, refatorações (reescrever o código de forma mais limpa e eficiente) ou comparações entre abordagens.
  • Simulação rápida em pesquisa: em áreas como ciência de dados e engenharia, é comum usar LLMs para gerar rapidamente experimentos com bibliotecas como PyTorch, scikit-learn ou pandas, encurtando o ciclo entre hipótese e teste empírico.

Os contras: alucinações, segurança e dívida técnica

Apesar do entusiasmo, há limitações sérias que não podem ser ignoradas:

  • Alucinações: os LLMs podem inventar funções, parâmetros ou bibliotecas que simplesmente não existem. O código “parece certo”, mas não compila ou produz erros sutis em tempo de execução. Em boa verdade, a cada novo modelo, isso acontece com cada vez menos frequência.
  • Vulnerabilidades de segurança: o estudo de Pearce et al. (2022), apresentado no IEEE Symposium on Security and Privacy, gerou 1.689 programas com o GitHub Copilot em 89 cenários relacionados às principais fraquezas da lista CWE (Common Weakness Enumeration) da MITRE. Aproximadamente 40% dos programas gerados continham vulnerabilidades exploráveis, desde injeções de SQL até uso indevido de criptografia. Esse resultado evidencia que código gerado por IA, mesmo quando funcional, não é necessariamente seguro.
  • Banalização da programação: pessoas sem formação formal em computação ou engenharia conseguem “fazer” códigos, automatizar planilhas ou construir pequenas aplicações descrevendo o que desejam em português ou inglês simples. Isso, por um lado, é bom. Por outro, é perigoso, por que sem conhecimento técnico, como saber se o código está correto?

As questões éticas

Segundo o AI Competency Framework for Teachers da UNESCO (Miao & Cukurova, 2024), o uso de IA em qualquer domínio deve ser orientado por princípios de transparência, justiça e responsabilidade. Talvez mais importantes que os aspectos técnicos sejam as questões éticas envolvidas na geração de código por LLMs:

  • Origem dos dados de treinamento: Boa parte do código usado no treinamento foi coletada de repositórios públicos, mas nem todo código público é livre de licenças restritivas. Há discussões jurídicas em curso, em diferentes países, sobre o uso de código sob licenças como GPL ou MIT em modelos comerciais que não preservam atribuições.
  • Autoria e propriedade intelectual: Quem é o autor de um código gerado por IA? O desenvolvedor que escreveu o prompt? A empresa que treinou o modelo? E se o trecho gerado for praticamente idêntico a um código autoral existente?
  • Responsabilidade por falhas: Quando um sistema em produção falha por causa de um trecho gerado por LLM e não revisado, a responsabilidade é do desenvolvedor, da empresa que adotou a ferramenta ou do fornecedor do modelo? A literatura jurídica e ética ainda está construindo essas respostas.
  • Vieses incorporados: O código reflete escolhas humanas. Modelos treinados majoritariamente em código escrito por determinados grupos podem perpetuar convenções, padrões e até preconceitos embutidos em comentários, nomes de variáveis e suposições implícitas. Um artigo da profa. Julia Mendes, “Ética e inteligência artificial: desafios e melhores práticas”, traz vários exemplos de vieses de programadores que levaram ao prejuízo real de pessoas.
  • Impacto ambiental: Treinar e operar LLMs consome quantidades substanciais de energia e água. Cada consulta tem um custo computacional que, em escala global, não é trivial.
  • Desigualdade de acesso: Ferramentas mais avançadas frequentemente exigem assinaturas pagas (cada vez mais caras :/), criando uma assimetria entre quem tem acesso a assistentes de ponta e quem não tem.

O papel do julgamento humano

Todo código gerado precisa ser lido, compreendido, testado e validado pelo desenvolvedor que o escreve. Em áreas sensíveis (como saúde, infraestrutura, finanças, sistemas de segurança) a revisão humana não é uma recomendação, é uma exigência ética. O dado de 40% de vulnerabilidades reportado por Pearce et al. (2022) deixa claro que aceitar sugestões de um LLM sem revisão crítica é, na prática, permitir falhas.

Mais do que saber acionar um LLM, é fundamental compreender:

  • De onde vêm os dados que treinaram o modelo?
  • Quais são suas limitações conhecidas (alucinações, vieses, gaps de conhecimento)?
  • Que riscos o código gerado pode introduzir, especialmente em segurança e privacidade?
  • Quais são as implicações legais e éticas de incorporar esse código em produtos e pesquisas?

A geração de código por IA não substitui o raciocínio humano, o domínio das estruturas de dados, a compreensão de complexidade computacional, nem a responsabilidade pelo software entregue. Ela amplifica quem já sabe programar e pode confundir quem ainda está aprendendo, se usada sem consciência crítica.

Conclusão

A geração de código por LLMs é uma das transformações mais significativas da engenharia e da computação desde o surgimento dos compiladores de alto nível. Ignorá-la seria um erro; aceitá-la sem reflexão também. O caminho responsável passa por integrar a ferramenta ao fluxo de trabalho com discernimento, mantendo o ser humano no centro das decisões técnicas e éticas. Mais do que automatizar a escrita de código, o desafio é garantir que a programação assistida por IA continue sendo uma prática justa, transparente, segura e tecnicamente sólida.

Referências:

  • Chen, M. et al. Evaluating Large Language Models Trained on Code. arXiv:2107.03374, 2021. Disponível em: https://arxiv.org/abs/2107.03374.
  • Pearce, H.; Ahmad, B.; Tan, B.; Dolan-Gavitt, B.; Karri, R. Asleep at the Keyboard? Assessing the Security of GitHub Copilot’s Code Contributions. In: Proceedings of the 43rd IEEE Symposium on Security and Privacy (SP 2022), p. 754–768. DOI: https://doi.org/10.1109/SP46214.2022.9833571.
  • Miao, F.; Cukurova, M. AI Competency Framework for Teachers. Paris: UNESCO, 2024. ISBN 978-92-3-100707-1. DOI: https://doi.org/10.54675/ZJTE2084.
  • Ética e inteligência artificial: desafios e melhores práticas. Revista da Universidade Federal de Minas Gerais, Belo Horizonte, v. 30, n. fluxo contínuo, 2023. DOI: 10.35699/2965-6931.2023.47673. Disponível em: https://periodicos.ufmg.br/index.php/revistadaufmg/article/view/47673.