El éxito del aprendizaje automático se basa en la escalabilidad

Proporcionado por Brazo





Steve Roddy es vicepresidente del grupo de aprendizaje automático de Arm.

El cambio es constante, y la inteligencia artificial (IA) y el aprendizaje automático (ML) lo están cambiando todo, una vez más. Para los desarrolladores que intentan lanzar al mercado nuevos productos y servicios que aprovechen la IA y el ML, los desafíos se ven agravados por el hecho de que el panorama tecnológico aún se está desarrollando.



A diferencia del sector integrado tradicional, que muestra una relación lineal entre la necesidad de un mayor rendimiento de procesamiento y la forma en que se utiliza ese rendimiento, existe una disparidad entre la IA y el ML, y las plataformas de hardware en las que se ejecutarán: el ML cambia constantemente.

Visite el centro de contenido

  • Aprendizaje automático escalable

El alejamiento del pensamiento secuencial

Es probable que ML se use en todas partes, tal como se usa hoy en día el software integrado tradicional. Sin embargo, a diferencia del código tradicional, que se escribe línea por línea en un patrón secuencial (incluso si se usa la generación automática), ML se implementará como modelos, creados por marcos que aprenden. Los modelos, en un sentido muy real, nacerán. Y como cualquier forma de descendencia, nunca puedes estar realmente seguro de lo que obtendrás hasta que llegue.

Entonces, para los desarrolladores, la naturaleza predecible del software integrado desaparecerá o cambiará significativamente. Se están desarrollando herramientas que ayudan a predecir cómo funcionará un modelo, o impondrán ciertas restricciones en la forma en que se forma el modelo para cumplir con la plataforma, pero estas son incipientes y de ninguna manera una panacea. Es probable que la adaptación a las limitaciones del sistema conduzca a una pérdida de precisión. La naturaleza de ML es que ofrece la precisión necesaria en el hardware proporcionado. De ello se deduce, entonces, que si el hardware es capaz de adaptarse, puede evitar comprometer la precisión.



Logotipo del brazo del MIT

No hay una talla única para el aprendizaje automático. Los ingenieros deben diseñar sistemas que ofrezcan un rendimiento escalable y puedan ajustar el tipo de recurso de procesamiento que entregan en función de la tarea en cuestión.

La forma en que un modelo se desempeña en una plataforma de hardware fijo también cambiará. La naturaleza predecible del software integrado ha sido durante mucho tiempo un pilar del diseño; de hecho, la idea de que las características del código cambiarán después de que se haya implementado es una de las pesadillas de los ingenieros. Los sistemas integrados se desarrollan dentro de los parámetros de rendimiento, una envolvente basada en la potencia, el costo, la disipación de calor, el tamaño, el peso y cualquier número de medibles que se pueden compensar entre sí para cumplir con los objetivos definidos. Básicamente, así es como siempre se ha hecho el desarrollo integrado, pero no es la forma en que se hará en el futuro.

La escalabilidad es la nueva norma

En cambio, los ingenieros deberán diseñar sistemas que ofrezcan un rendimiento escalable, que puedan ajustar dinámicamente el tipo de recurso de procesamiento que entregan en función de la tarea en cuestión. Esto es diferente a lo que los ingenieros integrados pueden sentirse cómodos en este momento. Durante algunos años, los procesadores integrados han tenido la capacidad de variar su frecuencia operativa y voltaje de suministro en función de la carga de trabajo. Esencialmente, el núcleo de un procesador puede funcionar más lento cuando no está ocupado; reducir la frecuencia del reloj principal se traduce directamente en menos transistores encendiéndose y apagándose por segundo, lo que ahorra energía. Cuando el núcleo realmente necesita estar ocupado, la frecuencia del reloj aumenta, lo que aumenta el rendimiento. Existe una relación entre la tensión de alimentación y la frecuencia del reloj; al reducir ambos, se amplifica la cantidad de energía conservada. Este tipo de escalado no será suficiente para brindar la potencia y el rendimiento necesarios en los dispositivos integrados que ahora se están desarrollando para ejecutar modelos ML.



Eso es porque la forma en que medimos el rendimiento va a cambiar. En este momento, los procesadores generalmente se miden en términos de operaciones por segundo; ahora estamos midiendo eso en teraops, o billones de operaciones por segundo (TOPS). Usar TOPS para medir el rendimiento de un procesador que ejecuta inferencias no tendrá tanto sentido como cuando se ejecuta código secuencial, porque la forma en que se ejecuta el modelo no es directamente comparable con el software integrado normal. Los procesadores de ML se medirán en función de la precisión que alcancen al entregar un número determinado de inferencias por segundo para una cantidad determinada de energía. Todavía no tenemos una métrica estándar para eso, pero podemos decir que simplemente aumentar la frecuencia del reloj para cumplir con el objetivo de las inferencias no está garantizado y probablemente romperá el presupuesto de energía, sin mejorar la precisión.

El camino a la inferencia está plagado de variables

¿Por qué? La razón radica en la forma en que funcionan los modelos ML. Con muchas capas de probabilidad por atravesar, hay tantas variables que pueden cambiar el camino a través de esas capas. El mundo real tendrá un impacto mucho mayor en la forma en que se ejecutan los modelos ML, con mucha más variabilidad que el código incrustado secuencial lineal. Tomemos como ejemplo el procesamiento del lenguaje natural y el reconocimiento del habla: la voz y la cadencia del hablante jugarán un papel en la eficacia del modelo; sin embargo, también puede haber una interacción entre estos parámetros que resulte en una experiencia diferente bajo diversas condiciones. El simple aumento de la velocidad del procesador en este caso puede no devolver el resultado deseado.

Además, una de las características definitorias de ML es su capacidad de aprender. Incluso si el aprendizaje por refuerzo no se aplica en el dispositivo en sí, es posible que los datos se envíen de vuelta a un mainframe donde el modelo puede modificarse en función de los resultados observados. Incluso sin esta retroalimentación, es probable que el modelo mejore con el tiempo, simplemente debido a la forma en que ML aún está evolucionando. Esto conduciría a la creación e implementación de un nuevo modelo (utilizando actualizaciones inalámbricas, por ejemplo), que luego tendrá requisitos de procesamiento potencialmente completamente diferentes, funcionando de manera diferente en las mismas condiciones o en condiciones similares.



La naturaleza cambiante de los modelos de ML significa que, si bien las arquitecturas de CPU actuales pueden usarse y se usan para ML, es casi seguro que las arquitecturas actuales no pueden proporcionar la forma más óptima de ejecutarlas. Sí, los modelos pueden ejecutarse en CPU utilizando todas las características habituales de ALU que se encuentran en la mayoría de los procesadores. También pueden beneficiarse de arquitecturas altamente paralelas que cuentan con múltiples instancias masivas de estas características, como GPU, pero ya está claro que las GPU no son la mejor manera de ejecutar modelos ML. De hecho, ya tenemos ejemplos de unidades de procesamiento neuronal, y la industria de los semiconductores está trabajando arduamente para desarrollar arquitecturas completamente nuevas para ejecutar modelos ML de manera más eficiente. En algún momento, el hardware o el software se fijan para permitir que el otro avance. La forma correcta de abordar esto es comprometerse con un marco de software común que se pueda usar en plataformas de hardware compatibles pero escalables, para que ambos evolucionen juntos.

Arquitecturas heterogéneas flexibles

Al hacer esto, la escalabilidad necesaria para admitir AI y ML se puede extender desde el núcleo de la red hasta el borde, sin bloquear la arquitectura en una plataforma fija. Project Trillium es la plataforma de cómputo ML heterogénea de Arm compuesta por núcleos y software. Arm está ampliando el Proyecto Trillium para abordar el ML en todos los puntos de la red. La plataforma de software común aquí son las bibliotecas de software de redes neuronales de Arm, Arm NN, que pueden ejecutarse en plataformas de procesadores Arm y también son compatibles con marcos de redes neuronales de terceros líderes. El hardware incluye los procesadores de GPU Arm Cortex-A y Arm Mali existentes que se están mejorando para AI y ML, así como procesadores totalmente nuevos para la aceleración de ML.

En términos de escalabilidad, ML puede ejecutarse y se ejecuta en procesadores tan pequeños y con recursos limitados en la clase Cortex-M, y tan ricos en funciones como las GPU Mali. Sin embargo, se necesita una verdadera escalabilidad para satisfacer todas las necesidades de ML desde el núcleo hasta el borde, que es donde entra el siguiente paso en la evolución del procesador. Las unidades de procesamiento neuronal, o NPU, representan la nueva generación de arquitectura de procesador que admitirá ML. en más aplicaciones.

Solo Arm ofrece este nivel de escalabilidad en todo el panorama de ML. La elección de arquitecturas escalables que puedan estar compuestas por MCU, CPU, GPU y NPU ayudará a preparar las plataformas de hardware para el futuro frente a las nuevas aplicaciones de software que aún no se han concebido.

Hay muchas incógnitas, en términos de qué modelos de ML crearemos en el futuro, cuánta potencia informática necesitarán para ofrecer la precisión deseada, qué tan rápido los informáticos podrán mejorar los modelos para que necesiten menos potencia, todo de estas consideraciones tienen un impacto directo en el hardware subyacente. Lo único que sabemos es que satisfacer las expectativas cambiantes de los usuarios finales requiere una plataforma flexible y escalable.

esconder