Pruebas de referencia (benchmarks)
Rubén Rodríguez Abril
Las pruebas de referencia o benchmarks son los exámenes estandarizados que miden las capacidades de los sistemas de machine learning (y, en general, de IA). En este artículo exploraremos las pruebas más conocidas para la evaluación del harware.
MLPerf
MLPerf es el benchmark más importante para medir el rendimiento del hardware de IA. Ha sido desarrollado por MLCommons, un consorcio de grandes empresas tecnológicas, entre las que se encuentran NVIDIA, Google, Baidu e instituciones como las Universidades de Harvard, Stanford y Berkeley. Sus pruebas se estructuran en tres grandes grupos:
a) Pruebas de entrenamiento (MLPerf Training 3.1), en las que la tarea a realizar viene acompañada de una base de datos que es utilizada para instruir a la máquina. Entre las tareas a realizar se incluyen la clasificación de imágenes (modelo ResNet 50, base de datos ImageNet), el reconocimiento de voz (modelo RNN-T, base LibriSpeech), procesamiento de lenguaje natural (modelo BERT-Large, dataset Wikipedia), la generación de imágenes (modelo Stable Difussion v2, base LAION 400-M) o las redes neuronales de grafos .
b) Las pruebas de inferencia (MLPerf Inference 3.1) se refieren a las mismas tareas que las del grupo anterior. Y se realizan a diversas escalas, a saber: centros de datos (Datacenter), computación en el borde (Edge) -es decir, la realizada en el propio equipo del usuario y no en la nube-, móviles (Mobile) y dispositivos diminutos de IoT (Tiny).
c) Las pruebas de HPC (High Performance Computing, computación de alto rendimiento) son utilizadas para medir la eficiencia en tareas como la identificación climática de huracanes corrientes atmosféricas (modelo DeepCAM, base CAM5 + TECA), la predicción de parámetros cosmológicos (modelo CosmoFLOW), el modelado molecular cuántico (modelo DimeNet++, base Open Catalyst 2020) o la predicción de la estructura tridimensional de proteínas (modelo OpenFold, base OpenProteinSet).
d) Por último, las pruebas de almacenamiento (MLPerf Storage 3.1) miden la eficiencia de los sistemas de hardware en el conservación y gestión de cantidades masivas de datos, asegurando que la velocidad y la capacidad de almacenamiento no generen cuellos de botella.
DeepBench
DeepBench ha sido desarrollado por el gigante chino Baidu y parece enfocarse más bien en los procesos de más bajo nivel, como por ejemplo, la multiplicación general de matrices, las operaciones de convolución, los procesos de comunicación entre los diferentes chips integrados en un mismo centro de datos o la reutilización de pesos sinápticos:
–Convolución. Las pruebas se realizan a tres niveles: Convolución hacia adelante (durante la fase de inferencia), cálculo del gradiente respecto al kernel y respecto a las entradas (ambas, en fase de retropropagación).
–Multiplicación de matrices. También puede realizarse a tres escalas: pequeña, grande y por lote (en el ámbito de los entrenamientos).
-Operaciones que requieren la comunicación entre múltiples procesadores (cada uno de los cuales se encarga de procesar parte de un lote o de un sector de los valores de entrada de una capa). Aquí se insertan las operaciones allreduce (globales), que involucran a todos los valores de una capa o de un lote (como el cálculo de su valor medio), las de transmisión (broadcasting) de datos de un procesador a los del resto de la red -en general, suele tratarse de los nuevos valores de pesos sinápticos-, o reducción (reduce) que combinan varios valores de una capa en uno sólo (como en el caso de las capas de pooling de la visión artificial).
–Reutilización de pesos sinápticos en nuevas entradas, sin necesidad de realizar nuevos cálculos (esto sucede, por ejemplo, en los modelos DeepDream de Google).
El conjunto de pruebas de referencia proporciona, pues, una métrica estándar para comparar GPUs, NPUs, TPUs y cualquier otro tipo de aceleradores de hardware.
AIXPRT
AIXPRT es la sección de IA de la suite de benchmarking XPRT creada por Principle Technologies, que mide el rendimiento de la tecnología en diferentes aspectos, escalas y dispositivos. Se evalúa el rendimiento de los navegadores (WebXPRT), los dispositivos móviles (MobileXPRT), la computación en la nube (CloudXPRT) o la duración de las baterías (BatteryXPRT), entre otros aspectos.
La prueba de XPRT especializada en aprendizaje profundo, AIXPRT, mide la eficiencia de los modelos, en fase de inferencia, en materias como la clasificación de imágenes, la detección de objetos, los sistemas de recomendación o el procesado de lenguaje natural.
Otras pruebas de referencia
Además de las grandes pruebas descritas en las secciones anteriores, también existen otros benchmarks secundarios relativamente populares. Podemos mencionar, a modo de ejemplo, los siguientes:
AIMark fue creada por el desarrollador chino Master Lu y es usada para comparar el rendimiento de los chips móviles de compañías como Qualcomm, HiSilicon, MediaTek o Huawei. El SoC debe utilizar un modelo predeterminado (MobileNet, DeepLab, etc..) para ejecutar una tarea, y su rendimiento es valorado utilizando criterios fijos. Es muy popular en los mercados asiáticos.
AiTuTu es una extensión para IA de AnTuTu Benchmark, una suite de pruebas utilizadas para medir la eficiencia de los dispositivos móviles.
Por último, Procyon AI, creado por UL Benchmarks, se enfoca en la eficiencia en fase de inferencia de múltiples dispositivos (no sólo smartphones) como portátiles u ordenadores personales. En lugar de limitarse a medir la velocidad de ejecución de un modelo, Procyon AI considera también otros factores como la latencia, la eficiencia energética o la precisión.