Machine Learning e Inteligencia artificial: la revolución desde el smartphone
Inteligencia Artificial (IA), Artificial Intelligence (AI) en inglés, o Aprendizaje Automático, Machine Learning (ML) en inlgés: estas palabras clave resuenan ahora en cada presentación de un nuevo smartphone a bombo y platillo, y son probablemente la gran tendencia de los próximos años. Algunos smartphones incluso tienen su propio chip AI, lo que hacer que los teléfonos sean especialmente inteligentes, según los fabricantes. Pero, ¿qué es realmente algo que cambiará nuestras vidas? Vamos a examinaremos más de cerca sus campos de aplicación y los chips con AI para separar los hechos de la ficción.
Cuando Huawei presentó el primer procesador para smartphones con una unidad de inteligencia artificial en el IFA de 2017, el famoso Hisilicon Kirin 970, los chinos captaron la atención del público. La Unidad de Procesamiento Neural (NPU) en el SoC es la responsable de llevar a cabo más rápidamente las funciones con AI que un procesador tradicional. Por el momento, esto incluye principalmente aspectos relacionados con la fotografía, el reconocimiento de imágenes y el procesamiento de las mismas.
Pero el término de inteligencia artificial no se ajusta demasiado a lo que hacen nuestros smartphones. En realidad el concepto clave en este tipo de procesadores es el de Machine Learning, el aprendizaje automático. La llamada red neuronal convolucional, Convolutional Neural Network (CNN) en inglés, utiliza una gran cantidad de datos en bruto para aprender a reconocer patrones, todo por su cuenta y sin que nadie intervenga. Por lo general, esta capacidad se lleva a cabo en grandes servidores, ya que requiere una gran cantidad de datos y poder de cálculo. Una herramienta de aprendizaje automático puede aplicar los patrones entrenados o aprendidos en el primer paso para seguir obteniendo más datos e información; este paso también se describe como inferencia de términos técnicos. Para los smartphones el último paso es el más relevante. Por ejemplo, una red neuronal artificial entrenada puede reconocer objetos o caras en una imagen.
En general, estos cálculos también se pueden llevar a cabo con una CPU clásica. Las operaciones aritméticas individuales son bastante simples, pero tan numerosas que exigen la capacidad de un procesador octa-core. Más núcleos son la clave del éxito. Por lo tanto, un chip con una gran cantidad de unidades aritméticas (pequeñas) puede realizar aplicaciones de aprendizaje automático de manera más eficiente que un procesador estándar.
Las GPUs están hechas para el Machine Learning
¿Y dónde encontramos muchos núcleos? Correcto, en el chip gráfico, es decir, en la GPU. Por supuesto, esta parte también se requiere para desempeñar sus tareas en la vida cotidiana de un smartphone. Es por ello ahora las NPU se construyen como una GPU adicional: un gran número de núcleos computacionales que manejan muchas operaciones en paralelo, el rendimiento necesario para las aplicaciones de aprendizaje automático.
¿Y por qué lo necesitas en un smartphone? Esos cálculos se pueden hacer en servidores potentes de un centro de datos y luego intercambiar la información a través de la nube. Claro, pero la nube tiene desventajas, depende de una conexión a Internet estable y la transmisión de datos podría provocar retrasos o pérdida de datos. Por ejemplo, la aplicación de la cámara debería cargar constantemente fotos en el servidor para reconocer el contenido de las imágenes. Y eso es otra gran desventaja sobre la protección de datos.
Por lo tanto para muchas aplicaciones de aprendizaje automático es mejor llevarlas a cabo en el propio dispositivo.
¿Qué pasa dentro del procesador de los smartphones actuales?
Actualmente hay varios teléfonos que ya tienen una NPU integrada. Incluso puede que tengas uno en tus manos ahora mismo. Por ejemplo, en muchos chipsets Qualcomm actuales, se utiliza la denominada informática heterogénea.
Con esta tecnología los SoCs incorporan muchas piezas. Dentro de un procesador actual de smartphone encontramos muchas piezas: la CPU clásica, la GPU y el procesador de señal, etc. Todas estas unidades aritméticas tienen diferentes puntos fuertes. La CPU se encarga sobre todo de cálculos complicados que no se pueden ejecutar en paralelo, mientras que la GPU puede acelerar los cálculos que se pueden realizar simultáneamente. Y el procesador de señal está optimizado para cálculos en tiempo real.
Ya hemos mencionado el Kirin 970 con su NPU. Poco después de este procesador, Apple presentó los nuevos iPhones con el chip A11, por supuesto también con NPU. La NPU del A11 se usa, por ejemplo, para el reconocimiento facial o FaceID. No se conocen más campos específicos de aplicación aparte de FaceID, pero a mediano plazo es probable que esto cambie rápidamente. La imagen de arriba muestra la NPU en el Kirin 970 y es bastante pequeña (centro inferior), mientras que la de Apple reserva una buena parte del chip para la este componente (arriba a la derecha).
En los Google Pixel 2 y Pixel 2 XL encotramos el Pixel Visual Core, que supuestamente puede realizar tres billones de operaciones aritméticas por segundo. El Visual Core es una NPU clásica, que al principio estaba desactivada y solo con Android 8.1 empezó a funcionar para que aplicaciones de terceros pudieran utilizar el modo HDR+. La aplicación de cámara predeterminada no usa Visual Core.
A partir de Android 8.1 está disponible la interfaz de la API Neural Networks (NN-API), lo que permite a los desarrolladores de aplicaciones acceder a las NPU sin conocer las especificaciones técnicas de cada implementación. Como alternativa, incluso se usa la CPU, si el teléfono no incorpora una NPU. Hasta este punto, el acceso a una NPU en Android solo era posible a través de rutinas específicas del fabricante. Aunque por el momenot la NN API solo es soportada por los Pixel ya que el resto no tiene algo parecido al Pixel Visual Core. Google ha presentado una biblioteca totalmente compatible con la NN API: Tensorflow Lite. Esta biblioteca hace posible el uso de redes neuronales capacitadas en smartphone. Pronto podría convertirse en estándar en muchas aplicaciones de Android.
Huawei utiliza el aprendizaje automático para cuatro funciones
En el Huawei Mate 10 Pro y en el Honor View 10, en gran medida idénticos, el fabricante chino utiliza la NPU para tres funciones y una cuarta en estudio.
Primero y más visible para los usuarios, la NPU se usa para el reconocimiento de la escena cuando se toman fotografías. Se ajustan los parámetros de la cámara para resaltar las personas en primer plano. Un pequeño icono en la aplicación de cámara muestra que se ha detectado una persona en frente de la cámara, todo gracias al aprendizaje automático.
En segundo lugar, Huawei usa la NPU en el Kirin 970 para comprender mejor y predecir el comportamiento del usuario. Esto ayuda a asignar mejor los recursos y mejorar la eficiencia energética, al menos e lo que el fabricante declara. Estas promesas difícilmente pueden validarse o comprobar. Requeriría dos dispositivos idénticos con el mismo procesador pero uno de ellos con NPU y otro sin NPU.
La tercera función se basa en una cooperación con Microsoft, en concreto con su aplicación de traducción que está preinstalada en ambos smartphones. Se usa la NPU para traducciones más rápidas, que en principio incluso funcionan sin conexión.
Se ha demostrado que los CNN son particularmente adecuados para la reducción de ruido de las señales de audio. Por ejemplo, una red neuronal entrenada funciona muy bien como un filtro en entornos ruidosos, lo que mejora el reconocimiento de comandos de voz. Hisilicon asegura que la detección puede aumentar del 80 al 92 por ciento en entornos con muchas perturbaciones. Los cálculos necesarios solo pueden llevarse a cabo razonablemente en una NPU.
Chips con inteligencia artificual, comparación de rendimiento
Hemos hablado de los tres smartphones disponibles con una Unidad de Procesamiento Neural a bordo, pero posiblemente llegarán muchos más a través del enfoque de computación heterogénea de Qualcomm. En este punto hay pregunta que salta a la vista: ¿Qué NPU es más rápida? O ¿Cuál de ellas tiene mejor rendimiento? En cierto modo, esto va de la mano con la cuestión de qué NPU tiene el menor consumo de energía para la misma tarea.
Estas preguntas no son tan fáciles de responder debido a la naturaleza de las NPU. En la suite china de Benchmark Master Lu tenemos las primeras comparaciones. En Anandtech han analizado un Mate 10 Pro, un Google Pixel 2 XL y un LG V30.
En el Mate 10 Pro, la NPU se usó con bastante regularidad y el LG V30 fue capaz de realizar computación heterogénea en un Snapdragon 835. El Pixel 2 XL, por otro lado, no es compatible con la tecnología de Qualcomm, mientras que el benchmark no es compatible con la NN API. Por lo tanto, el Pixel 2 solo proporciona valores para aplicaciones de aprendizaje automático basadas en su CPU.
Master Lu puntú en fotogramas por segundo. El Pixel 2 solo con su CPU procesando llega a 0.7 fotogramas por segundo. El LG V30 con la informática heterogénea de Qualcomm alcanza al menos 5.3 fps. El Mate 10 Pro con su NPU dedicada sube aún más hasta los 15.1 fps.
El enfoque con NPU y el de Qualcomm llegan a niveles similares en consumo de energía: el Mate 10 Pro requiere 106 milijulios (mJ) por inferencia, el V30 un poco más de 130 mJ. El Pixel 2 sin aceleración de aprendizaje automático consume 5.847 mJ. Los tres valores según las mediciones de Anandtech. Si tienes más curiosidad en el tema echa un vistazo en Anandtech.
Esta relación muestra que los chips especializados para el aprendizaje automático marcan la diferencia cuando se usan. Reconocimiento de imagen, reducción de ruido, reconocimiento de voz ,etc. Todas estas son funciones que potencialmente se benefician de una NPU. Aunque la aproximación de Qualcomm es inferior a la NPU del Kirin 970. Es probable que esto cambie con el Snapdragon 845. Su procesador debería actuar tres veces más rápido y así superar la NPU de Huawei.
¿Necesitamos una NPU?
Reconozcámoslo: en el estado que están las aplicaciones de Machine Learning disponibles actualmente, puedes vivir muy bien sin ellas. Las funciones que requieren de una NPU todavía son manejables por la CPU o la arquitectura heterogénea de los nuevos procesadores Snapdragon.
Pero eso puede cambiar más rápido de lo que piensas, porque todas estas funciones no son más que software. El código puede ser fácilmente modificado y distribuido solo para los smartphones que ya están equipados en términos de hardware en consecuencia. Los desarrolladores de aplicaciones pronto podrán acceder a los motores aritméticos estilo NPU utilizando NN-API y Tensorflow Lite. Cualquiera que ya posea un smartphone con NPU, debe estar entre los primeros que pueden usar estas nuevas características: el sueño de un beta tester.
¿Te gusta el aprendizaje automático en un smartphone? ¿Ya le prestas atención a la NPU? ¿O las funciones de aprendizaje automático no son importantes para ti? Cuéntanos tu opinión en los comentarios.
Este artículo fue creado como un trabajo conjunto de Hans-Georg y Steffen.
Fuente: Anandtech, TechInsights, TechInsights
Contenido editorial recomendado
Con su consentimiento, aquí se cargan contenidos externos.
Al hacer clic en el botón anterior, acepta que se le muestren contenidos externos. En el proceso pueden transmitirse datos personales a terceros proveedores. Encontrará más información al respecto en nuestro Política de privacidad.