← Últimos artigos
💬 NLP

LLMSniffer: Detecting LLM-Generated Code via GraphCodeBERT and Supervised Contrastive Learning

O artigo apresenta o LLMSniffer, um framework de detecção que utiliza o GraphCodeBERT aprimorado com aprendizado contrastivo supervisionado e pré-processamento de remoção de comentários para distinguir com alta precisão código gerado por LLMs de código escrito por humanos, superando os métodos anteriores em conjuntos de dados de referência.

Autores originais: Mahir Labib Dihan, Abir Muhtasim

Publicado 2026-04-20
📖 4 min de leitura☕ Leitura rápida

Autores originais: Mahir Labib Dihan, Abir Muhtasim

Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo

Imagine que o mundo da programação virou uma grande cozinha. Antigamente, todos os pratos (códigos) eram feitos à mão por chefs humanos. Mas, de repente, surgiram "robôs cozinheiros" superinteligentes (as IAs, como o ChatGPT) que conseguem preparar receitas incríveis em segundos.

O problema? Às vezes, é impossível dizer se aquele prato foi feito por um humano ou pelo robô. Isso gera confusão: será que um aluno copiou a receita do robô para a prova? Será que aquele código tem uma "veneno" escondido criado pela máquina?

É aqui que entra o LLMSniffer, o "nariz de detetive" criado pelos pesquisadores Mahir Labib Dihan e Abir Muhtasim.

Aqui está como eles resolveram o mistério, explicado de forma simples:

1. O Problema: O Robô Esconde o Rastro

Antes, os detetives tentavam achar robôs olhando para a "caligrafia" do texto. Mas os robôs são mestres em escrever comentários explicativos (como "aqui eu somo dois números") que parecem muito humanos. É como se o robô vestisse um disfarce de chef humano.

A Solução Criativa: O LLMSniffer decide arrancar o disfarce.
Antes de analisar o código, o sistema remove todos os comentários e explicações. Ele olha apenas para a "estrutura do prato" (a lógica, onde as variáveis são usadas, como o código se conecta).

  • Analogia: É como se você tirasse a embalagem bonita de um produto para ver o que realmente está dentro. Se a estrutura interna for muito "perfeita" ou seguir um padrão estranho de máquina, o sistema sabe que é um robô.

2. A Técnica: O Treinamento de "Gêmeos e Estranhos"

O sistema usa uma inteligência artificial chamada GraphCodeBERT (que entende a estrutura do código como se fosse um mapa de conexões). Mas, para torná-la um detetive de elite, eles usaram uma técnica chamada Aprendizado Contrastivo Supervisionado.

  • Como funciona: Imagine que você está treinando um cachorro de guarda.
    • Você mostra 10 fotos de gatos (códigos humanos) e 10 fotos de cachorros (códigos de IA).
    • Em vez de apenas dizer "isso é gato", você diz ao cachorro: "Olhe, todos os gatos se parecem entre si (estão no mesmo grupo), mas são muito diferentes dos cachorros".
    • O objetivo é fazer com que os códigos humanos fiquem aglomerados em um canto da sala e os códigos de IA fiquem aglomerados no outro, bem separados.

O LLMSniffer faz isso duas vezes:

  1. Primeira Etapa: Ensina o modelo a separar os grupos (humanos vs. IA) usando essa técnica de "gêmeos e estranhos".
  2. Segunda Etapa: Adiciona um "chefe de cozinha" (um classificador) que olha para esses grupos separados e decide: "Isso aqui é humano ou IA?".

3. Os Resultados: O Detetive Acertou em Cheio

Os pesquisadores testaram o LLMSniffer em duas grandes competições de detetives (chamadas GPTSniffer e Whodunit).

  • O Antigo Detetive: Acertava cerca de 70% das vezes no primeiro teste e 91% no segundo. Muitas vezes, ele confundia um humano com um robô ou vice-versa.
  • O LLMSniffer:
    • No primeiro teste, subiu para 78% de acerto.
    • No segundo teste, subiu para 94,6% de acerto!

Visualização: Se você desenhasse os códigos em um mapa, o sistema antigo misturava tudo como uma salada. O LLMSniffer criou duas ilhas bem separadas: uma ilha só de humanos e outra só de robôs. É impossível se confundir.

4. Por que isso importa?

  • Escolas: Professores podem saber se um aluno realmente aprendeu a programar ou se apenas pediu para a IA fazer a lição de casa.
  • Segurança: Empresas podem verificar se o código que estão usando foi feito por humanos (que entendem o que fazem) ou por IAs (que podem cometer erros sutis ou criar vulnerabilidades).
  • Justiça: Evita que pessoas sejam punidas injustamente por terem um estilo de código que parece "muito perfeito".

Resumo da Ópera

O LLMSniffer é como um detetive que não se deixa enganar pela aparência. Ele remove as explicações superficiais (os comentários), olha para a estrutura profunda do código e usa um treinamento inteligente para separar claramente o que é feito por humanos do que é feito por máquinas.

Eles disponibilizaram o "nariz" do detetive, os dados e até um site onde você pode colar seu código e ver se ele parece ter sido feito por um robô. É uma ferramenta poderosa para garantir que, no mundo da programação, saibamos quem realmente está no comando da cozinha.

Afogado em artigos na sua área?

Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.

Experimentar Digest →