- A comunidade do QEMU revisou recentemente sua política. O uso de geradores de código por IA (por exemplo, Copilot, ChatGPT etc.) e o envio de código produzido por essas ferramentas estão proibidos
define policy forbidding use of AI code generators
- O interesse no uso de geradores de código por IA aumentou rapidamente recentemente, mas a interpretação de licenças sobre os resultados gerados por essas ferramentas ainda não é amplamente aceita no setor
- Os principais fornecedores afirmam que não há problema e que é possível escolher livremente a licença, mas existe conflito de interesses por parte deles
- Como os geradores de código por IA são criados a partir de dados treinados sob várias licenças, ainda não há consenso no setor sobre as questões de licença dos resultados gerados
- O QEMU exige, no DCO (Developer Certificate of Origin), que o colaborador tenha claramente o direito de contribuir com o código sob a licença do projeto
- Também menciona explicitamente que, no caso de código usando geradores de código por IA, é difícil comprovar conformidade com as cláusulas b/c do DCO
- Portanto, foi adotada uma política de não permitir contribuições de código ao projeto QEMU quando o uso de geradores de código por IA for evidente ou houver suspeita clara
Flexibilidade da política e tratamento de exceções
- Como o desenvolvimento de software assistido por IA ainda está em estágio inicial, há grande possibilidade de que as questões legais sejam resolvidas no futuro
- Com a evolução das ferramentas, espera-se que no futuro algumas delas possam ser usadas com segurança em projetos open source
- Por enquanto, aplica-se primeiro uma política rígida e segura, que poderá ser flexibilizada no futuro conforme necessário
- Pedidos de exceção serão analisados individualmente para decidir se serão permitidos
1 comentários
Comentários no Hacker News
CONTRIBUTING.mdPolítica para Contribuições Geradas por LLM
A biblioteca Color é uma biblioteca cheia de matemática complexa e decisões sutis. Todo issue ou PR deve ser escrito com profundo entendimento por parte de quem submete e, especialmente no caso de PRs, o desenvolvedor deve atestar DCO para cada commit. Se um PR foi escrito com ajuda de LLM, isso deve ser declarado na mensagem de commit e no PR. Se for detectada ajuda de LLM sem evidência declarada, o PR será rejeitado. Conteúdo gerado por LLM enviado sem revisão será rejeitado em qualquer caso
Também pretendo colocar no
Como alguém que carrega sozinho a responsabilidade por um projeto, tento equilibrar as coisas, mas pessoalmente não gosto de contribuições de código com LLMSECURITY.mduma LLM-Generated Security Report Policy, para deixar claro que relatórios de segurança gerados por LLM não serão aceitos em hipótese algumaTenho muita dificuldade de imaginar outra pessoa enviando um PR sem entender o próprio código. Por isso fico um pouco incomodado com o fato de políticas como essa poderem restringir até meu uso de LLM no nível de autocompletar, por causa desse tipo de gente.
Eu até gostaria de pedir ao Copilot tarefas de refatoração automática, mas quando testo normalmente ele quebra tudo e costuma gerar blocos inteiros do zero, o que no fim fica mais lento do que fazer manualmente.
Curiosamente, se eu estiver escrevendo um bug, o Copilot muitas vezes completa o bug também. Ele até autocompleta erros contextuais óbvios, como nome de variável digitado errado
Eu jamais delegaria meu trabalho de alto nível para AI, mas tarefas repetitivas e menos importantes eu passo para ela para ganhar velocidade. Por exemplo, posso entregar ao Claude Code um CSV com resultados de benchmark de banco de dados e pedir para ligar isso a vários gráficos e análise de outliers; conceitualmente é simples, mas encontrar bibliotecas e configurar tudo consome tempo, e ele acelera bastante
Tenho pensado no que exatamente significa “entender” código. Num projeto em que estou trabalhando, estou adicionando um backend de storage totalmente novo a um sistema existente de orquestração de VMs. Não conheço bem o código atual e não tenho tempo de implementar tudo sozinho, mas monto clusters de teste, executo cenários variados e consigo compreender o panorama geral em termos de design e testes
Eu também sou mantenedor de open source e consigo imaginar o estresse enorme de receber PRs ruins de “slop” de LLM. No fim, o mantenedor precisa revisar o código de qualquer jeito, independentemente de o autor entendê-lo ou não.
Acho que daqui para frente será preciso descobrir maneiras de usar essas ferramentas adequadamente e também de sinalizar a outros desenvolvedores o nível de qualidade do código enviado. Uma lição que tirei de um bug sutil encontrado no port inicial do ZFS para Linux é que testes rigorosos são extremamente importantes, tanto quanto revisão linha por linha e autoria humana
O Dotnet Runtime está adotando AI ativamente. Muita gente de fora pode rir, mas vale notar que engenheiros brilhantes como Stephen Toub e David Fowler apoiam isso.
Às empresas, eu recomendaria procurar parceiros realmente voltados para o futuro quando a próxima IBM aparecer para vender serviços de AI.
Como alguém da Carolina do Norte, torço para que IBM e RedHat consigam acertar a direção
Entendo quem evita AI por risco legal, mas também tenho dúvidas sobre se isso não está sendo exagerado. Quem acha que realmente zerou alguma possibilidade ainda não pensou o suficiente sobre o assunto
case, o Copilot pode detectar o padrão e reduzir bastante a digitaçãoMeu cérebro também foi treinado com muito código closed source, então ironizo que a discussão de copyright em torno de AI tem algo de NIMBY ocidental. Se continuarmos rejeitando tecnologia incrível por causa desses “e se” jurídicos, isso pode enfraquecer a própria civilização ocidental
Separadamente de proibir contribuições com AI, acho que também seria preciso deixar claro “nestas áreas pode usar AI”. Por exemplo, o setup de CI do QEMU não é uma área central de segurança. Contribuições para casos de teste interessantes ou novos ambientes poderiam muito bem permitir AI sob certas condições
No fim, “por enquanto não aceitar” é a decisão menos complexa e menos dramática para todos
Como material relacionado, anexa links para a licença do QEMU e a lista de licenças não livres
Mas eu me pergunto se há alguma forma prática de distinguir código gerado por AI de código que um humano copiou de algum lugar. No open source, qualquer pessoa pode contribuir, e humanos também podem ser influenciados por outros códigos
Do ponto de vista atual, acho que código gerado por AI não tem exatamente uma identidade própria independente; ele está mais para uma ferramenta nas mãos de humanos
Mas já sinto que essa metáfora foi esticada demais e nem precisa mais ser usada
Seria como eu desenhar um boneco de palito e alguém dizer “talvez esse desenho tenha copiado o boneco de palito de outra pessoa, então você não tem direito de submetê-lo”
O verdadeiro objetivo da política, no fim das contas, é criar uma justificativa para dizer “não havia o que fazer” quando inevitavelmente alguém enviar algo misturado com código de AI. Acho impossível que quem escreveu a política não saiba que ela é sem sentido
Além da questão legal, claramente existem vários outros problemas no uso de código de AI