Objetivo

Este proyecto parte de la motivación de desarrollar un algoritmo capaz de mejorar los prompts generados por los usuarios, con el objetivo de obtener respuestas de mayor calidad por parte del modelo. Se enmarca dentro del ámbito del Prompt Engineering, una disciplina que se centra en diseñar estrategias para optimizar los prompts que se le proporcionan a un modelo de lenguaje.

Entre las técnicas más conocidas en este campo se encuentran el few-shot prompting, que consiste en proporcionar ejemplos de la tarea que se desea resolver; el zero-shot prompting, donde solo se ofrece una descripción del contexto o la tarea sin ejemplos previos; y la estrategia de asignación de roles, en la que se define explícitamente el papel que debe asumir el modelo (Large Language Model, LLM) durante la interacción.

Aunque todas estas aproximaciones pueden combinarse con distintas técnicas de aprendizaje automático, en este proyecto se explora el uso de algoritmos genéticos. Esta elección se debe a su capacidad para explorar eficientemente espacios de búsqueda complejos y extensos, como lo es el de los posibles prompts, con el fin de encontrar aquellos que generen los mejores resultados en tareas concretas.

Las tareas que pueden abordarse mediante esta técnica son muy diversas, como lo demuestran conjuntos de datos ampliamente utilizados como BIG-bench. En la mayoría de los casos, estas tareas implican la clasificación de textos, o bien la resolución de preguntas con múltiples respuestas posibles, donde el modelo debe determinar la opción más adecuada. En este trabajo nos centramos específicamente en tareas de clasificación binaria de textos.

Si bien actualmente existen métodos de clasificación basados en embeddings, estos requieren un proceso previo de entrenamiento y ajuste del sistema de clasificación. En contraste, el enfoque propuesto en este proyecto permite clasificar textos en un número indefinido de clases sin necesidad de entrenar un modelo adicional. Esto es posible gracias a que los LLMs conservan el contexto de cada frase y no requieren modificación de sus parámetros internos, tratándose así como cajas negras. En este marco, se ha investigado cómo aplicar de forma eficaz un algoritmo genético para este propósito.

El resultado es un sistema que, partiendo de una población inicial aleatoria, logra evolucionar prompts capaces de clasificar con éxito los textos que se le presentan, mostrando así el potencial de esta combinación de técnicas para mejorar la interacción con modelos de lenguaje avanzados.

TRABAJO FIN DE GRADO DE:

RUBÉN DE ARRIBA VIEJO

Experiencia Académica

  • Grado en Ingeniería Informática, Universidad Carlos III de Madrid (septiembre 2021 – septiembre 2025)
  • Máster en Ciberseguridad, Universidad Internacional de La Rioja (octubre 2025 – actualidad)

     

    Experiencia Laboral

    • Machine Learning Researcher – Universidad Carlos III de Madrid en colaboración con Grupo MasOrange (septiembre 2024 — junio 2025)


    Habilidades técnicas

    • Lenguajes de programación: Python, C/C++, Go, C#, SQL, HTML/CSS, JavaScript.
    • Librerías de desarrollo: Pandas, Numpy, PyTorch, Keras, Sci-kit Learn.
    • Plataformas Cloud: Google Cloud.
    • Frameworks: GitHub, GitLab.