← Últimos artículos
💬 NLP

Fine-Tuning Pre-Trained Code Models for AI-Generated Code Detection

El artículo presenta el sistema del equipo "Archaeology" para la Tarea 13 de SemEval-2026, que aprovecha modelos de código preentrenados ajustados finamente y estrategias especializadas como la validación cruzada dejando fuera un idioma y el empaquetado de tokens tipo sándwich para lograr un rendimiento de primer nivel en la detección de código generado por IA y la atribución de su origen.

Autores originales: Jany-Gabriel Ispas, Sergiu Nisioi

Publicado 2026-05-05
📖 5 min de lectura🧠 Análisis profundo

Autores originales: Jany-Gabriel Ispas, Sergiu Nisioi

Artículo original bajo licencia CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta es una explicación generada por IA del artículo a continuación. No ha sido escrita ni avalada por los autores. Para mayor precisión técnica, consulte el artículo original. Leer descargo de responsabilidad completo

Imagina una agencia de detectives digitales llamada Arqueología. Su trabajo no es excavar cerámica antigua, sino tamizar montones de código informático para responder a dos grandes preguntas:

  1. ¿Quién escribió esto? ¿Fue un programador humano o un robot (IA)?
  2. ¿Qué robot lo escribió? Si fue un robot, ¿qué modelo de IA específico lo creó?

Este equipo participó en una competencia de alto riesgo llamada SemEval-2026 Tarea 13 para demostrar sus habilidades. Así es como lo hicieron, explicado de forma sencilla.

El Reto: Un Misterio de Dos Partes

La competencia tenía dos acertijos distintos, cada uno requiriendo una estrategia de detective diferente.

Acertijo A: La Prueba "Humano vs. Robot" (Clasificación Binaria)

  • El Objetivo: Observar un fragmento de código y decir "Humano" o "IA".
  • La Trampa: El equipo se entrenó principalmente con código en Python (el 91% de sus datos de práctica), pero la prueba final incluyó idiomas que nunca habían visto antes, como JavaScript, Go y C#. Es como enseñar a un chef a cocinar solo comida italiana y luego pedirle que identifique si un plato es casero o fabricado en serie cuando en realidad es un curry tailandés.
  • La Pista: El código de la IA tiende a ser más largo y uniforme, mientras que el código humano es más corto y caótico. Sin embargo, esta regla cambia según el idioma (por ejemplo, en C++, los humanos en realidad escriben código más largo que la IA).

Acertijo B: La Prueba "¿Qué Robot?" (Atribución Multiclase)

  • El Objetivo: Si el código fue generado por IA, identificar exactamente cuál de los 11 modelos de IA diferentes lo escribió.
  • La Trampa: Los datos estaban desequilibrados de forma salvaje. Una categoría (código escrito por humanos) constituía el 88% de los datos, mientras que algunos modelos de IA específicos tenían menos de 2.000 ejemplos. Es como intentar encontrar una aguja en un pajar, donde el pajar es 99% paja y las agujas son de diferentes colores, pero solo tienes una aguja roja y un millón de azules.
  • La Pista: Los diferentes modelos de IA tienen estilos de "escritura" sutiles, pero estos estilos son difíciles de detectar en código largo y complejo.

El Arsenal del Detective

El equipo no solo adivinó; utilizaron cuatro "super-ojos" diferentes (modelos de IA preentrenados) y les dio técnicas de entrenamiento especiales para cada acertijo.

Para el Acertijo A (Humano vs. Robot)

  1. El Ejercicio "Cambio de Idioma": Para prepararse para los idiomas sorpresa en la prueba, entrenaron a los modelos ocultando un idioma a la vez. Enseñaron al modelo a reconocer patrones sin depender de trucos específicos del idioma (como el uso de # para comentarios en Python).
  2. El Entrenamiento "Limpieza y Máscara": Eliminaron los comentarios y reemplazaron los números con marcadores durante el entrenamiento. Esto obligó a los modelos a observar la lógica del código, no solo los adornos superficiales.
  3. La Estrategia de "Fragmentación": Dado que el código de prueba a menudo era demasiado largo para leer de una sola vez, lo cortaron en trozos superpuestos (como leer un libro largo leyendo unas pocas páginas a la vez). Luego tomaron el promedio de estos trozos, ignorando las predicciones más extremas y "ruidosas", para tomar una decisión final.
  4. La Calibración de "Casos Difíciles": Crearon una "prueba especial difícil" utilizando ejemplos que un programa informático simple había fallado. Ajustaron su umbral de decisión (la línea entre "Humano" y "IA") basándose en estos casos complicados para asegurar que no fueran engañados por los datos de prueba.

Para el Acertijo B (¿Qué Robot?)

  1. La Técnica del "Sándwich": Dado que el código era demasiado largo para caber en la memoria del modelo, no simplemente cortaron el medio. En su lugar, mantuvieron la Cabeza (inicio) y la Cola (final) del código y los metieron juntos como un sándwich, con un marcador especial en el medio. Esto preservó el estilo al principio y al final, que es a menudo donde se esconde la "firma del robot".
  2. El Peso de "Equidad": Debido de que algunos modelos de IA eran raros en los datos, el equipo le dijo al modelo: "¡No adivines solo el más común! Presta atención extra a los raros". Ajustaron el sistema de puntuación para que el modelo aprendiera a detectar los robots raros, no solo los populares.
  3. La Votación de la "Sabiduría de la Multitud": Ejecutaron el mismo código a través del modelo varias veces con ligeras variaciones y dejaron que los modelos votaran por la respuesta. Esto redujo los errores y aumentó la confianza.

Los Resultados

El equipo de "Arqueología" lo hizo muy bien:

  • Acertijo A: Obtuvieron una puntuación de 0.737, colocándose 6º de 81 equipos. Su mejor herramienta fue CodeBERT, que parecía entender la "lógica" del código mejor que los demás.
  • Acertijo B: Obtuvieron una puntuación de 0.422, colocándose 7º de 34 equipos. Su mejor herramienta aquí fue UniXcoder, que se benefició de observar trozos de código más largos y de utilizar la estrategia de "votación".

La Gran Conclusión

El equipo descubrió que cómo se entrenó un modelo importa más que su tamaño.

  • Los modelos más pequeños (125 millones de parámetros) que fueron entrenados específicamente para entender la lógica del código funcionaron mejor para detectar la IA.
  • El modelo gigante (220 millones de parámetros) no ganó, lo que sugiere que para este trabajo específico, ser un "especialista" es mejor que ser un "generalista".

En resumen, el equipo demostró que con los trucos de entrenamiento adecuados —como cortar el código largo, ignorar el ruido superficial y votar por las respuestas— se puede construir un sistema sorprendentemente bueno para detectar código generado por IA, incluso cuando intenta disfrazarse en nuevos idiomas.

¿Ahogado en artículos de tu campo?

Recibe resúmenes diarios de los artículos más novedosos que coincidan con tus palabras clave de investigación — con resúmenes técnicos, en tu idioma.

Probar Digest →