🤖 Cl@udiata

Modelos de Lenguaje en la Analítica Deportiva

Python 3.10 Streamlit 1.36 Ollama 0.6 Jetson AGX Orin CC BY-NC-SA 4.0

📖 Descripción del Proyecto

Este trabajo presenta el diseño y desarrollo de Cl@ud-ia-data, un agente virtual privado basado en inteligencia artificial generativa, especializado en el análisis de datos deportivos. La finalidad del proyecto es ofrecer una herramienta de apoyo a la toma de decisiones mediante análisis avanzado de datos, garantizando la privacidad, el control de la información y un uso eficiente de los recursos computacionales.

🎓 Contexto Académico: Trabajo Final de Grado | Universitat Oberta de Catalunya (UOC) | Grado de Ciencia de Datos Aplicada| Autor: Pedro José García | Año: 2025

El sistema se despliega en un entorno completamente privado sobre una infraestructura local basada en una NVIDIA Jetson AGX Orin de 64 GB, una plataforma de computación acelerada de alto rendimiento y bajo consumo energético. Esta elección tecnológica contribuye a un enfoque de IA sostenible, reduciendo de forma significativa la huella energética frente a soluciones basadas en grandes centros de datos en la nube.

La metodología empleada se fundamenta en técnicas de Generación Aumentada por Recuperación (RAG), utilizando exclusivamente modelos de código abierto. Como resultado, se obtiene un agente funcional capaz de generar respuestas precisas y contextualizadas a partir de datos deportivos de la liga luxemburguesa.

~20W Consumo Promedio
4–5 Tokens/segundo (32B Q4)
119 Partidos Analizados
RAG Con trazabilidad
📦 Repositorio 🌐 Web 🎥 Demos

🏗️ Arquitectura del Sistema

Stack Tecnológico

Componente Tecnología Versión Propósito
LLM Qwen2.5 32B (Q4_K_M) Generación de respuestas y traducción
Embeddings multilingual-e5-large 1024 dims Representación semántica
Vector DB ChromaDB 1.3.7 Almacenamiento vectorial
Framework Streamlit + LangChain - Interface y orquestación
Storage MinIO - Arquitectura Medallion
Runtime Ollama 0.6+ Servidor LLM local
Hardware Jetson AGX Orin 64GB Plataforma de inferencia

Arquitectura Medallion (Bronze → Silver → Gold)

🥉 BRONZE

Raw Data

PDFs, HTML

🥈 SILVER

Cleaned Data

CSV/JSON

🥇 GOLD

Embeddings

ChromaDB
Arquitectura Medallion
Arquitectura Medallion basada en MinIO (Bronze / Silver / Gold).

Flujo RAG (Retrieval-Augmented Generation)

  1. Usuario → Consulta en lenguaje natural
  2. Embedding → Vectorización con e5-large
  3. Búsqueda → Recuperación semántica en ChromaDB (Top-K)
  4. Contexto → Construcción del prompt con eventos relevantes
  5. Generación → Respuesta con LLM (Qwen2.5 32B)
  6. Resultado → Respuesta contextualizada al usuario
Flujo RAG
Flujo RAG: recuperación semántica + generación controlada.

✅ Ventajas del enfoque RAG: respuestas basadas en datos reales, trazabilidad de fuentes, actualización sin reentrenamiento y reducción de alucinaciones.

🚀 Instalación y Despliegue

Requisitos Previos

1) Clonar Repositorio

git clone https://github.com/claudyata/claudyata.github.io
cd claudyata.github.io

2) Configurar Entorno Conda

# Crear entorno conda
conda env create -f environment.yml
conda activate tfg

3) Instalar Ollama y Modelos

# Instalar Ollama
curl -fsSL https://ollama.com/install.sh | sh

# Descargar modelos
ollama pull qwen2.5:32b
ollama pull mxbai-embed-large

# Verificar
ollama list

4) Configurar MinIO (opcional, vía Docker)

docker run -d \
  -p 9000:9000 \
  -p 9001:9001 \
  --name minio \
  -v ~/minio/data:/data \
  -e "MINIO_ROOT_USER=admin" \
  -e "MINIO_ROOT_PASSWORD=admin123" \
  quay.io/minio/minio server /data --console-address ":9001"

# Consola: http://localhost:9001 (admin / admin123)

5) Variables de entorno

# Crear archivo .env en artefactos/src/
cat > artefactos/src/.env << EOF
# MinIO
MINIO_ENDPOINT=localhost:9000
MINIO_ACCESS_KEY=admin
MINIO_SECRET_KEY=admin123
MINIO_SECURE=False

# Ollama
OLLAMA_HOST=http://localhost:11434
OLLAMA_MODEL=qwen2.5:32b

# ChromaDB
CHROMADB_PATH=../../chroma_db
EOF

6) Inicializar Base de Datos Vectorial

cd artefactos/src
python -c "from core.rag_client import RAGClient; RAGClient()"

7) Ejecutar Aplicación

cd artefactos/src
streamlit run app.py

✅ La aplicación estará disponible en: http://localhost:8501

📥 Ver en GitHub 📖 Guía Completa

📂 Estructura del Proyecto

Nota: Las rutas pueden variar si reorganizas carpetas, pero el repositorio mantiene separación clara entre experiments, docs y el artefacto (Streamlit).

claudyata.github.io/
├── artefactos/
│   └── src/
│       ├── app.py
│       ├── core/
│       ├── tabs/
│       └── utils/
├── docs/
│   ├── 02-setup-jetson-orin.md
│   ├── 03-setup-docker.md
│   ├── 04-arquitectura-medallion.md
│   └── 09-benchmark_qwen_quantization.md
├── experiments/
│   ├── 01-comparativa-gpu.ipynb
│   ├── 05-comparativa-gestor-llm.ipynb
│   ├── 06-comparativa-embeddings.ipynb
│   ├── 07-comparativa-modelos-llm.ipynb
│   └── 08-etl-bronze-to-silver-to-gold.ipynb
├── environment.yml
├── Modelfile.claudiata
├── index.html
└── README.md

📊 Características Principales

🔍

Búsqueda RAG

Consultas en lenguaje natural sobre partidos con recuperación semántica de eventos relevantes y respuestas contextualizadas por LLM.

Idiomas: Español, Francés, Luxemburgués, Alemán

📝

Generación de Resúmenes

Crónicas automáticas de partidos con análisis táctico y narrativa natural, adaptada al idioma.

Exportación: TXT, MD, PDF (según configuración)

📈

Análisis Estadístico

Clasificación de equipos, top goleadores y métricas de rendimiento con visualizaciones en Streamlit.

🌐

Traducción Multiidioma

Traducción automática preservando el contexto deportivo y terminología (especial foco en luxemburgués).

💻

Monitoreo de Recursos

Consumo energético, temperatura y uso de RAM/VRAM en tiempo real (integración con tegrastats).

🔒

Privacidad Total

Despliegue local: datos y modelos permanecen dentro de infraestructura propia sin servicios cloud.

🧪 Experimentos y Benchmarks

Importante: Los resultados detallados y reproducibles se encuentran en la carpeta experiments/.

1. Comparativa de Infraestructuras (Edge vs Datacenter)

Comparativa GPUs / Infraestructuras
Comparativa multicriterio de infraestructuras evaluadas.
Opción Enfoque Objetivo Resultado
Jetson AGX Orin ✅ Edge / Local Viabilidad (coste/consumo/privacidad) Opción seleccionada
NVIDIA H100 NVL Datacenter Máximo rendimiento Descartada por coste/consumo
RTX 5090 Workstation Alto rendimiento local Alternativa evaluada

✅ Conclusión: Jetson AGX Orin ofrece el mejor balance rendimiento/coste/consumo para el caso de uso (edge computing).

2. Comparativa de Embeddings

Comparativa Embeddings
Resultado de la comparativa de modelos de embeddings multilingües.

✅ Conclusión: intfloat/multilingual-e5-large es óptimo para búsqueda semántica multilingüe en el contexto del proyecto.

3. Comparativa de Modelos LLM

Comparativa LLMs
Resultado de la comparativa de modelos generativos (selección Qwen2.5 32B).

✅ Conclusión: Qwen2.5 32B (Q4) ofrece el mejor balance calidad/viabilidad en Jetson 64GB para traducción + RAG.

4. Análisis de Costes

Análisis de Costes
Desglose de costes: hardware + operativo (OPEX).

📄 Licencia

CC BY-NC-SA 4.0

Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International

Usted es libre de:

  • Compartir — copiar y redistribuir el material en cualquier medio o formato
  • Adaptar — remezclar, transformar y construir a partir del material

Bajo los siguientes términos:

  • 👤 Atribución — Debe dar crédito apropiado, proporcionar un enlace a la licencia e indicar si se realizaron cambios.
  • 🚫 No Comercial — No puede utilizar el material con fines comerciales.
  • 🔄 Compartir Igual — Si remezcla, transforma o construye sobre el material, debe distribuir sus contribuciones bajo la misma licencia.

Texto completo de la licencia: https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode

📊 Citación Académica

Si utilizas este proyecto en investigación académica, por favor cita:

@mastersthesis{perisperis,
  author  = {García, Pedro José},
  title   = {Cl@udiata: Modelos de Lenguaje en la Analítica Deportiva},
  school  = {Universitat Oberta de Catalunya},
  year    = {2025},
  type    = {Trabajo Final de Grado},
  note    = {Grado de Ciencia de Datos Aplicada},
  url     = {https://github.com/claudyata/claudyata.github.io}
}

📧 Contacto

Autor: Pedro José García

Institución: Universitat Oberta de Catalunya (UOC)

Email: perisperis@uoc.edu

GitHub: @claudyata

⭐ Star en GitHub 💬 Reportar Issue 📖 Documentación Completa

🙏 Agradecimientos

🎓 UOC

Universitat Oberta de Catalunya

⚽ FC Bissen

Club de fútbol luxemburgués

🤖 Ollama

Runtime LLM open-source

💚 NVIDIA

Plataforma Jetson