Simple Science

Ciencia de vanguardia explicada de forma sencilla

# Informática# Aprendizaje automático# Arquitectura de hardware# Redes sociales y de información

Mejorando el rendimiento del aprendizaje automático con TpuGraphs

Un conjunto de datos para predecir el rendimiento de la computación tensorial en hardware especializado.

― 8 minilectura


TpuGraphs: Acelerando MLTpuGraphs: Acelerando MLmachine learning.la predicción del rendimiento enUn nuevo conjunto de datos para mejorar
Tabla de contenidos

En el mundo del aprendizaje automático, a menudo necesitamos optimizar cómo se ejecutan nuestros programas en el hardware. Esto puede ser bastante complicado porque cada programa tiene diferentes necesidades, y el hardware que usamos tiene sus peculiaridades. Para ayudarnos a hacer que nuestros programas se ejecuten más rápido, los investigadores han creado un conjunto de datos especial llamado TpuGraphs, que se centra en grandes gráficos computacionales de tensores. Este conjunto de datos está diseñado para predecir qué tan bien funcionarán diferentes configuraciones de un programa cuando se ejecuten en hardware especializado llamado Unidades de Procesamiento de Tensores (TPUs).

La Importancia de la Predicción de rendimiento

La predicción de rendimiento es crucial por muchas razones. Por un lado, saber qué tan bien funcionará un programa puede ahorrar tiempo y recursos durante el desarrollo. Cuando tenemos una idea clara de qué tan rápido o lento probablemente será un programa, podemos tomar mejores decisiones sobre cómo optimizarlo. Esto es especialmente importante en industrias donde la velocidad es crítica, como las finanzas y el análisis de datos en tiempo real.

Tradicionalmente, se han utilizado modelos de rendimiento para ayudar a los compiladores a optimizar el código. Estos modelos ayudan a identificar las mejores configuraciones para que un programa se ejecute de manera eficiente. Sin embargo, los conjuntos de datos de predicción de rendimiento existentes a menudo se centran en piezas de código más pequeñas, llamadas sub-programas o kernels, en lugar de cargas de trabajo completas de aprendizaje automático.

¿Qué es TpuGraphs?

TpuGraphs es un conjunto de datos que contiene datos de rendimiento para cálculos tensoriales más grandes. Es único porque incluye gráficos completos de computación de tensores, que representan tareas completas de aprendizaje automático. Cada gráfico en este conjunto de datos corresponde a un cálculo significativo, como una sesión de entrenamiento o un solo paso de inferencia. Esto hace que TpuGraphs sea diferente de otros conjuntos de datos que pueden cubrir solo porciones más pequeñas de programas de aprendizaje automático.

Cada muestra de datos en TpuGraphs tiene tres partes: un Gráfico Computacional, una configuración para compilarlo y el tiempo de ejecución para esa configuración. Los gráficos provienen de programas y modelos de aprendizaje automático comúnmente utilizados, como ResNet y modelos Transformer. El conjunto de datos está diseñado para tener significativamente más gráficos que los conjuntos de datos anteriores, lo que lo convierte en un recurso valioso para investigadores y desarrolladores.

Los Componentes de TpuGraphs

El conjunto de datos TpuGraphs se compone de dos partes principales: configuraciones de diseño y configuraciones de bloques.

Configuraciones de Diseño

Las configuraciones de diseño determinan cómo se organiza la data en la memoria. Especifican las dimensiones de las entradas y salidas de la manera que mejor se adapte a las operaciones realizadas. El conjunto de datos cuenta con 31 millones de pares de diseños y gráficos computacionales, promediando 7,700 nodos por gráfico. Estos diseños juegan un papel significativo en el rendimiento porque pueden afectar mucho la eficiencia con la que se ejecuta un programa.

Configuraciones de Bloques

Las configuraciones de bloques se ocupan de unidades de trabajo más pequeñas dentro de un gráfico. Especifican el tamaño de cada subgráfico, o kernel, lo que puede llevar a mejorar los tiempos de ejecución. Hay 13 millones de pares de configuraciones de bloques y kernels en el conjunto de datos, promediando alrededor de 40 nodos por kernel.

Desafíos en la Predicción de Rendimiento

Trabajar con gráficos grandes presenta desafíos únicos:

  1. Limitaciones de Memoria: Entrenar modelos en gráficos grandes es difícil porque pueden usar toda la memoria disponible. Esto es especialmente cierto cuando se entrena en un solo dispositivo.

  2. Diversidad de Gráficos: El conjunto de datos contiene una variedad de gráficos para diferentes tareas de aprendizaje automático. Sin embargo, si ciertos tipos de gráficos están sobre-representados, puede llevar a modelos que no funcionan bien con tipos menos comunes.

  3. Redundancia: Muchas muestras en el conjunto de datos comparten el mismo gráfico pero tienen diferentes configuraciones. Esta redundancia se puede aprovechar para mejorar la eficiencia del entrenamiento, pero también hace que sea crucial reducir los cálculos innecesarios.

Recopilación de Datos para TpuGraphs

Los datos para TpuGraphs se recopilan de modelos de aprendizaje automático de código abierto populares. Los investigadores realizaron experimentos para reunir grandes gráficos computacionales que representan los cálculos principales en estos modelos. El proceso de recopilación de datos también incluyó ajustar configuraciones para ver cómo diferentes configuraciones afectaban el rendimiento.

Hay dos maneras en las que el autotuner recopila datos:

  • Modo de Algoritmo Genético: Este método comienza con una configuración predeterminada y la evoluciona para encontrar mejores configuraciones.
  • Modo de Búsqueda Aleatoria: Este método explora configuraciones aleatorias sin suposiciones previas.

Al comparar los resultados de estos dos modos, los investigadores pudieron reunir un conjunto diverso de muestras de datos.

Usando el Conjunto de Datos

El conjunto de datos TpuGraphs se puede usar para entrenar modelos de rendimiento que predicen tiempos de ejecución basándose en diferentes configuraciones de gráficos. Estos modelos pueden ayudar a identificar qué configuraciones son más propensas a ofrecer el mejor rendimiento, reduciendo el tiempo necesario para la sintonización.

Los investigadores han implementado diferentes tipos de modelos, incluidos aquellos basados en Redes Neuronales de Grafos (GNNs), que son adecuados para trabajar con datos de gráficos. Los modelos GNN aprenden de la estructura de los gráficos y las características de los nodos para hacer predicciones.

Evaluación del Rendimiento

La efectividad de un modelo de predicción de rendimiento a menudo se evalúa por su capacidad para clasificar diferentes configuraciones según sus tiempos de ejecución probables. Un modelo que funcione bien debería ser capaz de identificar las mejores configuraciones con más precisión que una selección aleatoria.

Se utilizan diferentes métricas para evaluar el rendimiento del modelo, incluyendo:

  • Error Top-K: Esto mide qué tan cerca están las mejores predicciones del modelo de la mejor configuración conocida.
  • Precisión de Parejas Ordenadas (OPA): Esto refleja la capacidad del modelo para clasificar correctamente configuraciones para una tarea dada.

Resultados de TpuGraphs

En pruebas realizadas usando TpuGraphs, los modelos mostraron tasas de éxito variables según las configuraciones con las que fueron entrenados. Los conjuntos de datos etiquetados como "Aleatorios" fueron generalmente más desafiantes, ya que las configuraciones derivadas de búsquedas aleatorias variaban mucho.

Si bien algunos modelos funcionaron bien con errores menores en configuraciones derivadas de un algoritmo genético específico, tuvieron más dificultades con configuraciones aleatorias. A pesar de esto, los investigadores encontraron que los modelos aprendidos seguían siendo mejores que un enfoque de selección aleatoria.

Direcciones Futuras

Hay muchas vías para mejorar y expandir el conjunto de datos TpuGraphs. Algunas de las mejoras potenciales incluyen:

  1. Mayor Diversidad: Los investigadores buscan agregar aún más tipos de gráficos para asegurar que el modelo pueda generalizar a través de diferentes cargas de trabajo y arquitecturas.

  2. Expansión de Plataformas de Hardware: El conjunto de datos actual se centra principalmente en el rendimiento con TPUs. Incluir datos para el entrenamiento en CPUs y GPUs podría ampliar la aplicabilidad del conjunto de datos.

  3. Aprovechamiento de Estructuras Repetidas: Muchos modelos de aprendizaje automático presentan patrones o subgráficos repetidos. Encontrar formas de usar estos elementos repetidos para un entrenamiento de modelo más efectivo podría mejorar la precisión de las predicciones.

Conclusión

TpuGraphs representa un avance significativo en el ámbito de la predicción de rendimiento en aprendizaje automático. Al proporcionar un conjunto de datos completo que incluye gráficos computacionales tensoriales y sus métricas de rendimiento, abre nuevas oportunidades para la optimización en programas de aprendizaje automático. A medida que los investigadores continúan refinando y ampliando este conjunto de datos, podemos esperar mejoras en la eficiencia con la que se ejecutan los modelos de aprendizaje automático, beneficiando en última instancia a diversas aplicaciones en tecnología e industria.

Fuente original

Título: TpuGraphs: A Performance Prediction Dataset on Large Tensor Computational Graphs

Resumen: Precise hardware performance models play a crucial role in code optimizations. They can assist compilers in making heuristic decisions or aid autotuners in identifying the optimal configuration for a given program. For example, the autotuner for XLA, a machine learning compiler, discovered 10-20% speedup on state-of-the-art models serving substantial production traffic at Google. Although there exist a few datasets for program performance prediction, they target small sub-programs such as basic blocks or kernels. This paper introduces TpuGraphs, a performance prediction dataset on full tensor programs, represented as computational graphs, running on Tensor Processing Units (TPUs). Each graph in the dataset represents the main computation of a machine learning workload, e.g., a training epoch or an inference step. Each data sample contains a computational graph, a compilation configuration, and the execution time of the graph when compiled with the configuration. The graphs in the dataset are collected from open-source machine learning programs, featuring popular model architectures, e.g., ResNet, EfficientNet, Mask R-CNN, and Transformer. TpuGraphs provides 25x more graphs than the largest graph property prediction dataset (with comparable graph sizes), and 770x larger graphs on average compared to existing performance prediction datasets on machine learning programs. This graph-level prediction task on large graphs introduces new challenges in learning, ranging from scalability, training efficiency, to model quality.

Autores: Phitchaya Mangpo Phothilimthana, Sami Abu-El-Haija, Kaidi Cao, Bahare Fatemi, Mike Burrows, Charith Mendis, Bryan Perozzi

Última actualización: 2023-12-05 00:00:00

Idioma: English

Fuente URL: https://arxiv.org/abs/2308.13490

Fuente PDF: https://arxiv.org/pdf/2308.13490

Licencia: https://creativecommons.org/licenses/by/4.0/

Cambios: Este resumen se ha elaborado con la ayuda de AI y puede contener imprecisiones. Para obtener información precisa, consulte los documentos originales enlazados aquí.

Gracias a arxiv por el uso de su interoperabilidad de acceso abierto.

Más de autores

Artículos similares