Conozca MLPerf, un punto de referencia para medir el rendimiento del aprendizaje automático

Gráfico en blanco y negro lleno de datos.

Cuando quiera ver si una CPU es más rápida que otra, tiene PassMark. Para las GPU, existe la superposición Unigine. Pero, ¿qué hace cuando necesita averiguar la velocidad de su plataforma de aprendizaje automático o la velocidad de la plataforma de aprendizaje automático en la que está considerando invertir?

El especialista en aprendizaje automático David Kanter, junto con científicos e ingenieros de organizaciones como Google, Intel y Microsoft, tiene la intención de responder esa pregunta con MLPerf, una suite de referencia de aprendizaje automático. Medir la velocidad de las plataformas de aprendizaje automático es un problema que se vuelve más complejo cuanto más se examina, ya que tanto los conjuntos de problemas como las arquitecturas varían ampliamente en el campo del aprendizaje automático y, además del rendimiento, el lado de inferencia de MLPerf también debe medir la precisión. .

Entrenamiento e inferencia

Si no trabaja directamente con el aprendizaje automático, es fácil confundirse con los términos. Lo primero que debe comprender es que las redes neuronales no están realmente programadas: reciben (con suerte) un gran conjunto de datos relacionados y se liberan para encontrar patrones. Esta fase de la existencia de una red neuronal se denomina entrenamiento. Cuanto más entrenamiento reciba una red neuronal, mejor podrá aprender a identificar patrones y deducir reglas para ayudarla a resolver problemas.

El costo computacional de la fase de entrenamiento es enorme (no bromeamos sobre la parte «grande» del conjunto de datos). Como ejemplo, Google entrenó la función SmartReply de Gmail en 238 millones de muestras de correo electrónico, y Google Translate se entrenó en billones de muestras. Los sistemas diseñados para la capacitación son generalmente enormes y poderosos, y su trabajo es masticar datos lo más rápido posible, lo que requiere subsistemas de almacenamiento sorprendentemente robustos, así como procesamiento, para mantener el flujo de inteligencia artificial en funcionamiento.

Publicidad

Una vez entrenada la red neuronal, la obtención de información y operaciones útiles a partir de ella se denomina inferencia. La inferencia, a diferencia del entrenamiento, suele ser bastante eficaz. Si tiene más peso en la informática tradicional que en el aprendizaje automático, esto puede considerarse similar a la relación entre la creación de un árbol b u otro índice eficiente a partir de datos no estructurados y luego encontrar los resultados que desea romper el índice completo.

El rendimiento ciertamente sigue siendo importante cuando se ejecutan cargas de trabajo de inferencia, pero las métricas y la arquitectura son diferentes. La misma red neuronal se puede entrenar en enormes supercomputadoras y luego hacer inferencias en teléfonos inteligentes baratos. La fase de entrenamiento requiere tantas operaciones por segundo como sea posible, con poca preocupación por la latencia de cualquier operación. La fase de inferencia a menudo es al revés: hay un humano esperando los resultados de esa consulta de inferencia, y ese humano se impacienta muy rápidamente mientras espera saber cuántas jirafas hay en su foto.

Los grandes espacios de problemas requieren respuestas complejas

Si esperaba obtener una sola puntuación MLPerf para su PC, no tiene suerte. Los puntos de referencia holísticos simples como PassMark pueden permitirse asumir que las CPU que prueban son aproximadamente similares en arquitectura y diseño. Claro, Epyc de AMD y Scalable Xeon de Intel tienen fortalezas y debilidades individuales, pero ambas son CPU x86_64 y hay algunas suposiciones relativamente seguras que puede hacer sobre las relaciones de rendimiento general entre una tarea y la siguiente en cualquier CPU. Es poco probable que el rendimiento de coma flotante sea órdenes de magnitud más rápido que el rendimiento de números enteros en la misma CPU, por ejemplo.

Dado que Kanter y sus colegas querían que MLPerf fuera aplicable no solo a una amplia gama de cargas de trabajo, sino también a un número realmente impresionante de arquitecturas, no pudieron hacer suposiciones similares y, por lo tanto, no pueden darle a su máquina de hardware de aprendizaje una sola puntuación. Las puntuaciones se dividen primero en cargas de trabajo de entrenamiento y cargas de trabajo de inferencia antes de dividirse en tareas, modelos, conjuntos de datos y escenarios. Por lo tanto, la salida de MLPerf no es tanto una puntuación, sino una línea particularmente amplia en una hoja de cálculo.

Publicidad

Las tareas son clasificación de imágenes, detección de objetos y traducción al lenguaje natural. Cada tarea se mide en cuatro escenarios:

  • Flujo único—Rendimiento medido en latencia
    Ejemplo: una aplicación de cámara de teléfono inteligente que trabaja con una sola imagen a la vez
  • Flujo múltiple—Rendimiento medido en número de transmisiones posibles (sujeto al límite de latencia)
    Ejemplo: un algoritmo de asistencia para conducir el muestreo de varias cámaras y sensores
  • Servidor—Rendimiento medido en consultas por segundo (sujeto al límite de latencia)
    Ejemplo: sitios de traducción de idiomas u otras aplicaciones que son masivamente paralelas, pero en tiempo real
  • apagado—Rendimiento medido en ingresos brutos
    Ejemplo: tareas como la clasificación de fotos y la creación automática de álbumes, que no son iniciadas por el usuario y no se presentan al usuario hasta que se completan.

MLPerf también separa los conjuntos de resultados de referencia en «divisiones» abiertas y cerradas, con requisitos más estrictos definidos para la división cerrada; a partir de ahí, el hardware también se separa en las categorías de sistema Disponible, Visualización y RDO (Investigación, Desarrollo, Otro). Esto les da a los lectores de referencia una idea de qué tan cerca de la producción real están los sistemas que se están probando y si se puede comprar uno de inmediato.

Puede encontrar más información sobre tareas, modelos, conjuntos de datos y restricciones para el paquete de referencia de inferencia aquí.

Resultados iniciales

Hasta ahora, los proveedores de la nube, los fabricantes de equipos originales de sistemas, los proveedores de chips y software y las universidades han enviado al proyecto alrededor de 600 evaluaciones comparativas. Si bien interpretar los resultados aún requiere una buena cantidad de conocimiento del mundo real, es impresionante encontrar un único sistema completo que pueda comparar un teléfono inteligente, una supercomputadora y un clúster de hiperescala uno al lado del otro de una manera significativa.

La suite de referencia de capacitación MLPerf se lanzó en mayo de 2018, con los resultados iniciales publicados en diciembre de 2018. La suite de inferencia se lanzó el 24 de junio de 2019 y los resultados iniciales se emitieron ayer, 6 de noviembre.