Qué esperar del motor neuronal de Apple en el A11 Bionic SoC

A11-Característica

En el evento de presentación de Apple para el iPhone X y el iPhone 8 esta semana, la compañía anunció el A11 Bionic, un SoC con una CPU de seis núcleos, la primera GPU personalizada de Apple, y lo que la compañía llama Neural Engine. Apple no está hablando mucho sobre el hardware, más allá de decir esto:



El nuevo motor neuronal A11 Bionic tiene un diseño de doble núcleo y realiza hasta 600 mil millones de operaciones por segundo para procesamiento en tiempo real. El motor neuronal A11 Bionic está diseñado para algoritmos específicos de aprendizaje automático y permite Face ID, Animoji y otras funciones.

La mayor parte de lo anterior está relacionado con el marketing. Reclamar 600 mil millones de operaciones por segundo es lo más insignificante posible. Si bien estoy seguro de que es un número real, no nos dice nada sobre la arquitectura subyacente o su rendimiento, porque no sabemos qué define Apple como una 'operación'. Cuando una GPU da su calificación de rendimiento en TFLOP, por ejemplo, informa el número teórico de operaciones de punto flotante que la GPU puede realizar en un escenario ideal. Lo que la GPU puede sostener prácticamente en una carga de trabajo determinada siempre es diferente de lo que puede hacer en teoría, y es seguro que una limitación similar está en juego aquí.



Si bien no sabemos mucho sobre las características específicas del hardware de Apple, podemos intuir algunas cosas sobre su función si consideramos la esencia del aprendizaje automático en sí y las otras soluciones que otras empresas están desarrollando para impulsar estas cargas de trabajo.

¿Qué es el aprendizaje automático?



El aprendizaje automático es una rama de la IA que se ocupa de la creación de algoritmos que puedan 'aprender' de los datos, en lugar de estar programados explícitamente sobre dónde buscarlos. Existen varios tipos de aprendizaje automático. Los dos que reciben más atención son el aprendizaje supervisado y no supervisado.

En el aprendizaje supervisado, los datos que se procesan ya han sido etiquetados y categorizados. Imagine, por ejemplo, que tiene un conjunto de datos para una ciudad determinada que muestra la cantidad de alquiler de un apartamento en comparación con la superficie de cada apartamento. Si introdujo esos datos en un algoritmo como parte de un escenario de aprendizaje supervisado, podría graficar la relación entre el espacio de piso y el alquiler, luego usar ese algoritmo para predecir el alquiler de cualquier apartamento con un espacio de piso determinado sin escribir un programa específico para realizar la misma tarea. En este caso, puede pedirle al modelo que prediga cuánto debería costar un apartamento a 1,000 pies cuadrados y luego comparar la predicción con la cantidad de 1,000 pies cuadrados. los apartamentos del pie realmente cuestan. Cuantos más datos conecte al modelo, mejor será el modelo para predecir sus resultados.

En el aprendizaje no supervisado, los datos utilizados para entrenar el algoritmo no están etiquetados. En el aprendizaje supervisado, sabe que está buscando una relación entre los pies cuadrados y el alquiler mensual. En el aprendizaje no supervisado, no sabe a qué se refieren los valores de los datos. En estos escenarios, el algoritmo busca relaciones dentro los datos, buscando características descriptivas.



Ampliemos nuestro ejemplo. Imagine que tiene un conjunto de datos más grande que solo pies cuadrados y alquiler de apartamento. Imagine que también tiene datos sobre el valor de las propiedades locales, las tasas de criminalidad, la demografía, la calidad de la escuela, el alquiler mensual y las calificaciones crediticias. Todos estos son factores de sentido común que pueden afectar cuánto cuesta alquilar un apartamento, pero saber cómo mucho tienen un impacto en el alquiler es difícil de determinar. En este escenario, es posible que desee un algoritmo que pueda buscar relaciones entre estos factores y agrupar los resultados similares para mostrar su relación. Esto se conoce como agrupación en clústeres y es uno de los tipos fundamentales de algoritmos de aprendizaje no supervisados.

Agrupación

El gráfico anterior muestra el mismo conjunto de datos, antes y después de la agrupación. La agrupación en clústeres es solo un tipo de algoritmo de aprendizaje no supervisado y no hay garantía de que todos los patrones sean buenos; a veces, un algoritmo detectará una relación que en realidad es solo ruido de fondo. Pero estos tipos de algoritmos son la base de muchos de los motores predictivos 'recomendados' que impulsan varios sitios web como Netflix o Amazon.



Por ejemplo, ¿cómo 'sabe' Netflix que podría disfrutar Agentes de proteccion si tu tambien miraste Star Trek ? Es porque los propios datos de Netflix sobre sus espectadores muestran este tipo de relaciones. Si conoce el 90 por ciento de su Star Trek Los fanáticos también ven programas de Marvel TV, sabes que debes recomendar encarecidamente un programa de Marvel TV. Esto nuevamente parece evidente con solo uno o dos puntos de datos para jugar. Pero esa es otra fortaleza del aprendizaje automático: puede encontrar relaciones en los datos incluso cuando hay cientos o miles de puntos de datos para elegir.

El reconocimiento facial es un área de investigación importante para el aprendizaje profundo, el aprendizaje automático y la IA. Por lo tanto, no es sorprendente que Apple afirme que su motor neuronal se usa en Face ID o que está diseñado explícitamente para implementar ciertos algoritmos. No está tan claro qué tienen que ver los Animojis con todo, pero lo ignoraremos por ahora.

Un punto que Apple señaló durante su presentación es que su servicio Face ID no solo usa una cámara convencional. Según Apple, utiliza un mapa de 30.000 puntos de luz para mapear su rostro con luz infrarroja, luego compara el mapa que 've' cuando intenta desbloquear su dispositivo con el mapa que almacenó de su rostro. Se trata de una gran cantidad de datos que se procesan rápidamente y probablemente con poca energía.

¿Por qué construir hardware especializado?

No se puede balancear a un gato muerto más de quince centímetros sin golpear a otra empresa que trabaja en una solución de inteligencia artificial, aprendizaje profundo o aprendizaje automático en hardware en estos días. Google tiene Tensorflow , Intel tiene PEQUEÑO , Nvidia tiene Hora , Fujitsu está trabajando en su propia solución, e incluso AMD quiere entrar en acción con su Instinto Radeon productos. No quiero ocultar las diferencias reales entre estas soluciones de hardware, y no son diferencias reales. Las cargas de trabajo utilizadas para la inferencia de aprendizaje profundo y el entrenamiento de modelos de aprendizaje profundo no son las mismas, las capacidades de estas plataformas no son las mismas y no encajan en el mismo hardware, no resuelven los mismos problemas o se especializan en el mismo tipos de procesamiento.

Eso no quiere decir que no haya similitudes. En términos generales, cada una de estas iniciativas implementa capacidades especializadas en hardware, con el objetivo de reducir tanto el tiempo que se tarda en calcular las cargas de trabajo como el consumo total de energía necesario para hacerlo. Obviamente, el A11 Bionic de Apple tiene un TDP diferente al de Nvidia Volta o AMD Radeon Instinct, pero reducir el consumo de energía por operación es fundamental. El siguiente gráfico muestra cuánta energía se requiere para realizar ciertas operaciones. Si se ha preguntado por qué AMD y Nvidia han puesto tanto énfasis en el uso de operaciones de 16 bits, por ejemplo, el cuadro a continuación muestra el costo de área para ciertas funciones, así como el consumo de energía asociado con una tarea.

CostofOps

Una GPU convencional sin rendimiento de 16 bits o mejoras de eficiencia energética realiza operaciones de 32 bits. En este gráfico, FP significa punto flotante.

Se está trabajando mucho para encontrar la forma más eficiente desde el punto de vista energético de construir estas redes. Esto encaja con el propio deseo de Apple de implementar inteligencia artificial y aprendizaje automático en el borde, donde los envolventes de energía son limitados y la alta eficiencia es fundamental, pero también tiene ramificaciones para la inteligencia artificial e incluso la HPC. Las redes energéticamente eficientes tienen más margen para escalar físicamente a dispositivos más grandes o para funcionar a velocidades más altas sin generar un exceso de calor.

Encontrar formas de mantener los datos locales es otro componente clave para mejorar el rendimiento y la eficiencia del aprendizaje automático. Cuantos menos datos tenga para mover a través de un bus, menos energía quemará al hacerlo. Y aunque probablemente no se diga, las diversas arquitecturas que hemos visto hasta la fecha son todas muy paralelas y están diseñadas para operar en grandes conjuntos de datos simultáneamente, en lugar de ejecutar menos subprocesos en relojes más altos.

¿Por qué está sucediendo este impulso ahora?

En los últimos años, como se mencionó anteriormente, hemos visto un gran giro hacia estas cargas de trabajo de aprendizaje profundo, aprendizaje automático e inteligencia artificial. Parte de eso está siendo impulsado por aplicaciones de tareas específicas, como los autos autónomos. Sin embargo, sospecho que la mayor parte es una respuesta a la falla a largo plazo del escalado de silicio para reavivar las viejas tendencias de rendimiento que perdimos en 2004. Desde 2004 hasta 2011, agregar más núcleos de CPU y mejorar las arquitecturas mantuvo las cosas funcionando bastante bien. Desde 2011, las mejoras en el rendimiento de un solo subproceso de la CPU de gama alta se han ralentizado a un ritmo lento. (El Ryzen de AMD ha hecho un gran trabajo al devolverle la vida al mercado de consumo, pero AMD aún tiene que presentar un chip que pueda vencer a Intel en rendimiento puro de un solo hilo).

Han sucedido tres cosas para que estos impulsos sean más probables. Primero, ha quedado claro que la única forma de mejorar el rendimiento informático es desarrollar nuevos modelos de software y nuevos núcleos especializados para ejecutar esos modelos de software. Si los núcleos de CPU de propósito general no van a reanudar el rápido ciclo de mejora que alguna vez disfrutaron, tal vez los núcleos especializados y específicos para tareas puedan compensar parte de la holgura.

En segundo lugar, las continuas mejoras en la densidad de transistores y el funcionamiento con menor potencia hicieron posible recopilar más datos y procesar esos datos más rápidamente, en escenarios que antes estaban limitados por el consumo de energía o el hardware de procesamiento disponible.

En tercer lugar, el movimiento hacia el procesamiento centralizado en los centros de datos en la nube, en lugar de tratar las PC de los consumidores como el 'centro' del modelo de procesamiento, ha alentado a empresas como Microsoft o Google a desarrollar su propio hardware especializado para el procesamiento de cargas de trabajo específicas de tareas. Intel no va a construir una CPU que esté específicamente optimizada para el procesamiento de back-end del motor de búsqueda; no hay mercado para ellos en la construcción de tal solución. Microsoft, por otro lado, comenzó a usar FPGA para mejorar el rendimiento de Bing en 2015 .

El énfasis de Apple en implementar estas capacidades en el borde en lugar de en el centro de datos es un poco inusual, pero no único. Qualcomm ha hablado previamente del Snapdragon 835 como una plataforma con capacidades de cómputo que los desarrolladores también podrían aprovechar. Sin embargo, será interesante ver cómo la empresa de Cupertino desarrolla estas capacidades en el futuro. Apple se ha alejado del negocio de los periféricos, pero no hay ninguna razón por la que la compañía no pueda hacer una devolución, posiblemente con una versión de mayor velocidad de su A11 Bionic en un gabinete que no se limitaría al sobre TDP de un teléfono o factor de forma.

En este momento, las empresas y los investigadores todavía están tratando de descubrir en qué son mejores estas capacidades de aprendizaje automático y cuáles son los casos de uso de los consumidores. Espere ver una gran cantidad de lodo arrojado a esta pared en particular a medida que evolucionan las plataformas de software y hardware.

Copyright © Todos Los Derechos Reservados | 2007es.com