7 Algoritmos verdes

En este apartado se muestran dos algoritmos mejorados basados en IA que suponen un ejemplo común con valor didáctico, ejecutados siguiendo esta misma guía de adecuación, a efecto de proporcionar un ejemplo práctico de implantación del esquema de certificación para soluciones a problemas resueltos con IA ampliamente conocidos.

7.1 Distillbert

Introducción

El objetivo de este caso de uso es fine-tunear un modelo de clasificación de sentimiento en textos utilizando el dataset de reseñas de películas de IMDb y el modelo preentrenado DistilBERT, un transformer ligero optimizado para eficiencia.

Este caso de uso tiene varias características clave:

  • Es reproducible, ligero y ejecutable en un portátil estándar.
  • Utiliza un modelo ampliamente documentado y con implementaciones libres.
  • Permite demostrar técnicas de optimización que reducen consumo energético y costes computacionales.
  • Se alinea con un escenario realista: clasificación de texto para análisis de opiniones.

El flujo completo incluye:
Fine tuning → Pruning → Quantization → Evaluación comparativa, mostrando cómo cada técnica afecta al rendimiento y eficiencia del modelo.

Stack tecnológico

El desarrollo se ha realizado utilizando tecnologías abiertas, ampliamente adoptadas en proyectos de IA modernos:

Componente

Descripción

Python 3.11 + venv

Entorno limpio y aislado para reproducibilidad

Transformers (Hugging Face)

Carga de modelos preentrenados y utilidades para fine-tuning

Datasets (Hugging Face)

Descarga y gestión eficiente del dataset IMDb

PyTorch

Framework de entrenamiento, pruning y quantization

Evaluate

Librería para métricas estandarizadas (accuracy)

VS Code

Entorno de desarrollo principal

 

Este stack es ligero y totalmente open source.

Fine tuning 

Carga de datos

El proceso comienza con la carga del dataset de reseñas de películas de IMDb mediante Hugging Face Datasets:

Texto

El contenido generado por IA puede ser incorrecto.Posteriormente se aplica un reducción del dataset intencional:

A screen shot of a computer code

AI-generated content may be incorrect.Esta reducción del dataset:

  • Permite entrenar el modelo en un entorno local sin GPU.
  • Reduce el coste computacional (y por tanto el consumo energético).
  • Mantiene un volumen suficiente de datos para mostrar el proceso completo.

Esta es una de las técnicas recomendadas en el apartado Error! Reference source not found..

Tokenización y preparación de tensores

Se utiliza el tokenizer asociado a DistilBERT:

A black background with colorful text

AI-generated content may be incorrect.Posteriormente se define la función de tokenización:

Se aplica:

  • Padding a longitud fija para acelerar batching.
  • Truncation para evitar secuencias excesivamente largas.
  • max_length=256 como compromiso entre coste computacional y precisión.

Finalmente se convierten los datasets a formato PyTorch:

Texto

El contenido generado por IA puede ser incorrecto.

Configuración de métricas

Se utiliza la librería evaluate para ver el rendimiento del modelo:

A screen shot of a computer

AI-generated content may be incorrect.

Se define la función estándar:

A screen shot of text

AI-generated content may be incorrect.

 

Fine-tuning del modelo DistilBERT

Se configuran los parámetros de entrenamiento del modelo preentrenado:

Texto

El contenido generado por IA puede ser incorrecto.

Técnicas usadas:

  1. Batch size reducido → menos VRAM y CPU requerida.
  2. Entrenamiento breve (2 epochs) → ahorro energético sin comprometer resultados.
  3. Evaluación solo al final de cada epoch → menos forward passes, menor coste.
  4. load_best_model_at_end → evita repetir entrenamiento posterior.

Early stopping

El entrenamiento incorpora early stopping:

Texto

El contenido generado por IA puede ser incorrecto.

  • Detiene el entrenamiento si no mejora, evitando gasto computacional inútil.
  • En nuestro caso, evitó iteraciones adicionales innecesarias.

Entrenamiento, evaluación y guardado

A screen shot of a computer code

AI-generated content may be incorrect.

Tras completar el entrenamiento, se almacena:

A screen shot of a computer program

AI-generated content may be incorrect.

Resultado:

Tras completar el proceso de fine-tuning sobre el subconjunto reducido del dataset IMDb, el modelo DistilBERT ha alcanzado un rendimiento sólido, obteniendo una accuracy del 87,8% y una pérdida de evaluación de 0,458. Estos resultados indican que, pese al entrenamiento con un volumen limitado de datos y únicamente dos epochs, el modelo ha logrado una capacidad adecuada para distinguir entre reseñas positivas y negativas.

El tiempo total de evaluación (87,6 segundos) confirma además que el modelo es capaz de operar de forma eficiente en un entorno local sin GPU. Con este punto de partida, el modelo queda correctamente entrenado y preparado para aplicar las técnicas posteriores de pruning y quantization, que permitirán analizar cómo evolucionan el rendimiento, los tiempos de inferencia y el coste computacional.

 

Pruning

Una vez obtenido el modelo final entrenado, se aplicó pruning para reducir el número de parámetros efectivos.
La técnica utilizada fue L1 unstructured pruning, que elimina el 30% de los pesos menos significativos de las capas lineales.

Pantalla de computadora con letras

El contenido generado por IA puede ser incorrecto.

El pruning:

  • Reduce el número de parámetros sin modificar la arquitectura.
  • Disminuye ligeramente el tamaño del modelo en memoria RAM.
  • Permite acelerar inferencia en hardware especializado o si se combina con weight packing o graph optimization.

Inconvenientes:

  • Pequeña pérdida de accuracy.
  • Los beneficios en tiempo no siempre se reflejan en CPUs estándar, ya que PyTorch no compacta automáticamente matrices dispersas.

     

    Cuantización

La segunda técnica de optimización aplicada fue cuantización dinámica:

  • Convierte pesos de capas lineales de float32 → int8 (8 bits)
  • Reduce drásticamente el tamaño del modelo en disco.
  • Reduce el coste computacional durante la inferencia gracias al uso de instrucciones optimizadas.

Texto

El contenido generado por IA puede ser incorrecto.

Ventajas de esta técnica:

  • Reducción de tamaño considerable (hasta un 30–50%).
  • Inferencias más rápidas en CPU x86 sin necesidad de GPU.
  • Reducido impacto sobre la accuracy.

     

    Evaluación de resultados

Se llevaron a cabo benchmarks homogéneos sobre un subconjunto de 300 muestras:

  • Accuracy
  • Tiempo de inferencia (CPU)
  • Tamaño en disco

Método de evaluación:

Texto

El contenido generado por IA puede ser incorrecto.

Y otra para evaluar el tamaño en disco:

A computer code on a black background

AI-generated content may be incorrect.

Los resultados fueron los siguientes:

Modelo base (fine-tuned)

  • Accuracy: 0.8633
  • Tiempo: 49.78 s
  • Tamaño: 256.33 MB

Este es el modelo de referencia: equilibrio estándar entre precisión, coste computacional y tamaño.

Modelo pruned

  • Accuracy: 0.8567
  • Tiempo: 54.47 s
  • Tamaño: 256.33 MB

El pruning reduce el número de parámetros activos, pero en CPU sin optimización específica no reduce el tiempo, incluso puede aumentarlo por el acceso disperso a memoria.
La precisión baja ligeramente, lo esperado, pero el tamaño final del modelo no cambia porque el pruning aplicado no es estructural a nivel de matrices completas.

Modelo cuantizado

  • Accuracy: 0.8733 (mejor incluso que el modelo base)
  • Tiempo: 36.33 s (≈27% más rápido que el modelo base)
  • Tamaño: 265.48 MB (ligero aumento por serialización completa)

El cuantizado dinámico ha sido la técnica más efectiva, logrando:

  • Mejor precisión que el modelo original (esto puede ocurrir por efecto “regularizador”: el ruido de redondeo actúa como smoothing).
  • Aceleración notable de inferencia en CPU (–27%).
  • Aunque el tamaño en disco aumenta ligeramente, la representación en memoria e inferencia sí se optimiza, que es donde importa para eficiencia energética.

     

Conclusión general

Las técnicas aplicadas han demostrado diferentes beneficios:

1. Reducción de coste computacional en entrenamiento

  • Submuestreo del dataset
  • Modelo base ligero (DistilBERT)
  • Limitar longitud máxima
  • Early stopping

Todo ello permitió un entrenamiento eficiente en entorno local sin GPU, minimizando energía y tiempo.

2. Optimización del modelo

Pruning (30% L1 unstructured)

  • Suaviza el modelo y reduce parámetros.
  • Ligera caída en accuracy.
  • No reduce el tiempo de inferencia en CPU al no ser pruning estructural.

Beneficio moderado, pero útil como paso previo en pipelines más grandes.

Cuantization dinámica (INT8 sobre capas lineales)

  • Mejor técnica en este experimento.
  • Aumenta la precisión respecto al modelo base.
  • Reduce el tiempo de inferencia en ~27%.
  • Optimiza cómputo al usar operaciones INT8 más baratas.

Mayor impacto directo en eficiencia energética real.

3. Conclusión final

El proceso completo demuestra que:

  • Es posible aumentar la eficiencia energética y computacional de un modelo NLP sin necesidad de GPUs ni infraestructuras complejas.
  • La combinación de reducción del dataset, optimizaciones del pipeline, fine-tuning ligero, y sobre todo cuantizacion ofrece beneficios inmediatos y medibles.
  • El modelo cuantizado se posiciona como la mejor opción para despliegue en producción eficiente (especialmente en CPU y edge devices).