Bienvenido al repositorio oficial para el reto de Fine-Tuning de un LLM as a judge. En este proyecto, exploraremos cómo utilizar y adaptar modelos de lenguaje especializados en evaluación (LLM-as-a-Judge) para detectar comportamientos inadecuados en interacciones de IA.
El propósito principal es entrenar un modelo Juez capaz de discernir de manera precisa si una interacción entre un usuario y un modelo de lenguaje es adecuada o inadecuada. Por defecto, se ha puesto Prometheus-7b-v2.0 como modelo base, pero como participante eres libre de usar cualquier otro.
Los datos provienen de un reto previo donde usuarios intentaron "romper" modelos de lenguaje (Jailbreaking).
Tu misión es ajustar el LLM as a judge para que actúe como un evaluador crítico y robusto, capaz de identificar estos fallos incluso ante variaciones en el input. Para más detalles técnicos, consulta la descripción detallada del dataset en docs/dataset.md. Deberá responder de la manera más exacta, si un texto es inadecuado o adecuado en base a los datos compartidos.
├── data/ # Datasets de entrenamiento y evaluación.
├── docs/ # Documentación detallada. Revisa dataset.md para entender el formato.
├── notebooks/ # Pipeline completo del reto:
│ ├── 01_eda.ipynb # Análisis Exploratorio (¡Empieza aquí!)
│ ├── 02_finetuning.ipynb # Entrenamiento con LoRA/QLoRA.
│ ├── 03_robustness.ipynb # Pruebas de resistencia ante ruido/typos.
│ └── 04_submission.ipynb # Generación de resultados finales.
├── src/ # Código fuente (Utilidades, métricas, preprocesamiento).
└── output/ # Modelos guardados y predicciones.
Sigue estos pasos para preparar tu entorno de trabajo de manera eficiente:
Preparar el espacio:
mkdir hackathon && cd hackathon
git clone https://github.com/desafio-ALIA/2026-hackathon-talent-arena
Organizar directorios:
cd .. && mv hackathon/2026-hackathon-talent-arena /home/ec2-user/SageMaker/
cd /home/ec2-user/SageMaker/2026-hackathon-talent-arena
Variables de Entorno:
Copia el archivo de ejemplo y configura tu HUGGINGFACE_TOKEN si deseas acelerar la descarga de modelos.
cp .env-example .env
Entorno Virtual: Creamos y activamos un entorno Conda optimizado para el reto.
conda env create -f conda.yaml
source activate sft_hackathon_alia_env
python -m ipykernel install --user --name sft_hackathon_alia_env --display-name "Python 3.11 (Hackathon ALIA)"
[!IMPORTANT] Asegúrate de seleccionar el kernel "Python 3.11 (Hackathon ALIA)" al abrir cualquier Notebook.
Para alcanzar la máxima puntuación, te recomendamos seguir este flujo de trabajo:
Todos los criterios tienen el mismo peso (20%).
| Criterio | Tipo | Indicador | Descripción | Peso (%) |
|---|---|---|---|---|
| Correlación con humanos en escenario normal | Cuantitativo | Acc | Coincidencia etiquetas judge con etiquetas humanas | 20 |
| Robustez entre escenarios | Cuantitativo | Acc | Estabilidad frente a perturbaciones | 20 |
| Rigor metodológico y eficiencia técnica | Cualitativo | Likert 1-5 | Solidez experimental y uso eficiente de recursos | 20 |
| Uso estratégico de datos | Cualitativo | Likert 1-5 | Calidad y justificación en la selección y composición de datos | 20 |
| Contribución al dataset base | Cualitativo | Likert 1-5 | Mejora, análisis o curación del dataset original | 20 |
Total = 100%
Para la perte cuantitativa, poco antes de finalizar el tiempo de la Hakathon, se proporcionará un Dataset de Test. Deberás procesarlo con tu modelo y entregar un archivo submission.json con el formato especificado en los notebooks.
Para la parte cualitativa, cada equipo debe entregar un resumen de una página explicando su contribución en relación a los tres puntos cualitativos.
| Puntuación | Descripción |
|---|---|
| 1 | Enfoque poco claro o improvisado. No se justifica el uso del modelo ni los recursos. |
| 2 | Metodología básica con justificación limitada. Uso de recursos poco optimizado. |
| 3 | Enfoque correcto y bien explicado. Uso razonable de recursos. |
| 4 | Metodología sólida con controles claros y decisiones justificadas. Buena relación coste-rendimiento. |
| 5 | Diseño experimental riguroso y altamente eficiente. Reflexión técnica profunda. |
| Puntuación | Descripción |
|---|---|
| 1 | Uso directo sin análisis ni selección. |
| 2 | Uso directo sin análisis ni selección. |
| 3 | Selección razonada y curación básica. |
| 4 | Composición bien pensada y estratégica. |
| 5 | Uso sofisticado y alineado con resultados. |
| Puntuación | Descripción |
|---|---|
| 1 | Sin contribución relevante. |
| 2 | Observaciones superficiales. |
| 3 | Identificación estructurada de mejoras. |
| 4 | Mejora tangible del dataset. |
| 5 | Contribución sustancial y reutilizable. |
Cada criterio se convierte a porcentaje y se multiplica por su peso correspondiente:
$$ \text{Puntuación Final} = (\text{Score}{\text{corr}} \times 0.20) + (\text{Score}{\text{robust}} \times 0.20) + (\text{Score}{\text{rigor}} \times 0.20) + (\text{Score}{\text{datos}} \times 0.20) + (\text{Score}_{\text{contribución}} \times 0.20) $$
prometheus-eval/prometheus-7b-v2.0, aunque es posible cambiar el modelo a otro juez de libre elección, siempre y cuando sea un modelo open-source.Difamación, Asesoramiento especializado, Privacidad, Odio, Delitos no violentos, Sesgo de género.¡Felicidades por llegar hasta aquí! El modelo base es un gran punto de partida, pero para destacar en el hackathon te sugerimos explorar estas vías:
El Juez es tan bueno como su rúbrica.
src/prompts.py. Asegúrate de que Prometheus (o el modelo seleccionado) entienda exactamente qué constituye un fallo de seguridad.r) a 32 o 64 para capturar matices más complejos.5e-5). Si la pérdida fluctúa mucho, redúcela.Este proyecto se distribuye bajo la Licencia MIT. Consulta el archivo LICENSE para más información.
Organizado por ALIA - Talent Arena 2026
Jupyter Notebook
79.1%
Python
20.9%
Bienvenido al repositorio oficial para el reto de Fine-Tuning de un LLM as a judge. En este proyecto, exploraremos cómo utilizar y adaptar modelos de lenguaje especializados en evaluación (LLM-as-a-Judge) para detectar comportamientos inadecuados en interacciones de IA.
El propósito principal es entrenar un modelo Juez capaz de discernir de manera precisa si una interacción entre un usuario y un modelo de lenguaje es adecuada o inadecuada. Por defecto, se ha puesto Prometheus-7b-v2.0 como modelo base, pero como participante eres libre de usar cualquier otro.
Los datos provienen de un reto previo donde usuarios intentaron "romper" modelos de lenguaje (Jailbreaking).
Tu misión es ajustar el LLM as a judge para que actúe como un evaluador crítico y robusto, capaz de identificar estos fallos incluso ante variaciones en el input. Para más detalles técnicos, consulta la descripción detallada del dataset en docs/dataset.md. Deberá responder de la manera más exacta, si un texto es inadecuado o adecuado en base a los datos compartidos.
├── data/ # Datasets de entrenamiento y evaluación.
├── docs/ # Documentación detallada. Revisa dataset.md para entender el formato.
├── notebooks/ # Pipeline completo del reto:
│ ├── 01_eda.ipynb # Análisis Exploratorio (¡Empieza aquí!)
│ ├── 02_finetuning.ipynb # Entrenamiento con LoRA/QLoRA.
│ ├── 03_robustness.ipynb # Pruebas de resistencia ante ruido/typos.
│ └── 04_submission.ipynb # Generación de resultados finales.
├── src/ # Código fuente (Utilidades, métricas, preprocesamiento).
└── output/ # Modelos guardados y predicciones.
Sigue estos pasos para preparar tu entorno de trabajo de manera eficiente:
Preparar el espacio:
mkdir hackathon && cd hackathon
git clone https://github.com/desafio-ALIA/2026-hackathon-talent-arena
Organizar directorios:
cd .. && mv hackathon/2026-hackathon-talent-arena /home/ec2-user/SageMaker/
cd /home/ec2-user/SageMaker/2026-hackathon-talent-arena
Variables de Entorno:
Copia el archivo de ejemplo y configura tu HUGGINGFACE_TOKEN si deseas acelerar la descarga de modelos.
cp .env-example .env
Entorno Virtual: Creamos y activamos un entorno Conda optimizado para el reto.
conda env create -f conda.yaml
source activate sft_hackathon_alia_env
python -m ipykernel install --user --name sft_hackathon_alia_env --display-name "Python 3.11 (Hackathon ALIA)"
[!IMPORTANT] Asegúrate de seleccionar el kernel "Python 3.11 (Hackathon ALIA)" al abrir cualquier Notebook.
Para alcanzar la máxima puntuación, te recomendamos seguir este flujo de trabajo:
Todos los criterios tienen el mismo peso (20%).
| Criterio | Tipo | Indicador | Descripción | Peso (%) |
|---|---|---|---|---|
| Correlación con humanos en escenario normal | Cuantitativo | Acc | Coincidencia etiquetas judge con etiquetas humanas | 20 |
| Robustez entre escenarios | Cuantitativo | Acc | Estabilidad frente a perturbaciones | 20 |
| Rigor metodológico y eficiencia técnica | Cualitativo | Likert 1-5 | Solidez experimental y uso eficiente de recursos | 20 |
| Uso estratégico de datos | Cualitativo | Likert 1-5 | Calidad y justificación en la selección y composición de datos | 20 |
| Contribución al dataset base | Cualitativo | Likert 1-5 | Mejora, análisis o curación del dataset original | 20 |
Total = 100%
Para la perte cuantitativa, poco antes de finalizar el tiempo de la Hakathon, se proporcionará un Dataset de Test. Deberás procesarlo con tu modelo y entregar un archivo submission.json con el formato especificado en los notebooks.
Para la parte cualitativa, cada equipo debe entregar un resumen de una página explicando su contribución en relación a los tres puntos cualitativos.
| Puntuación | Descripción |
|---|---|
| 1 | Enfoque poco claro o improvisado. No se justifica el uso del modelo ni los recursos. |
| 2 | Metodología básica con justificación limitada. Uso de recursos poco optimizado. |
| 3 | Enfoque correcto y bien explicado. Uso razonable de recursos. |
| 4 | Metodología sólida con controles claros y decisiones justificadas. Buena relación coste-rendimiento. |
| 5 | Diseño experimental riguroso y altamente eficiente. Reflexión técnica profunda. |
| Puntuación | Descripción |
|---|---|
| 1 | Uso directo sin análisis ni selección. |
| 2 | Uso directo sin análisis ni selección. |
| 3 | Selección razonada y curación básica. |
| 4 | Composición bien pensada y estratégica. |
| 5 | Uso sofisticado y alineado con resultados. |
| Puntuación | Descripción |
|---|---|
| 1 | Sin contribución relevante. |
| 2 | Observaciones superficiales. |
| 3 | Identificación estructurada de mejoras. |
| 4 | Mejora tangible del dataset. |
| 5 | Contribución sustancial y reutilizable. |
Cada criterio se convierte a porcentaje y se multiplica por su peso correspondiente:
$$ \text{Puntuación Final} = (\text{Score}{\text{corr}} \times 0.20) + (\text{Score}{\text{robust}} \times 0.20) + (\text{Score}{\text{rigor}} \times 0.20) + (\text{Score}{\text{datos}} \times 0.20) + (\text{Score}_{\text{contribución}} \times 0.20) $$
prometheus-eval/prometheus-7b-v2.0, aunque es posible cambiar el modelo a otro juez de libre elección, siempre y cuando sea un modelo open-source.Difamación, Asesoramiento especializado, Privacidad, Odio, Delitos no violentos, Sesgo de género.¡Felicidades por llegar hasta aquí! El modelo base es un gran punto de partida, pero para destacar en el hackathon te sugerimos explorar estas vías:
El Juez es tan bueno como su rúbrica.
src/prompts.py. Asegúrate de que Prometheus (o el modelo seleccionado) entienda exactamente qué constituye un fallo de seguridad.r) a 32 o 64 para capturar matices más complejos.5e-5). Si la pérdida fluctúa mucho, redúcela.Este proyecto se distribuye bajo la Licencia MIT. Consulta el archivo LICENSE para más información.
Organizado por ALIA - Talent Arena 2026
Jupyter Notebook
79.1%
Python
20.9%