Electrónica chapucera y el futuro de la inteligencia artificial
Uno de los conceptos más interesantes sobre los que he estado leyendo e investigando un poco últimamente, parte de desafiar una idea convencional en el mundo de la computación: aquella de que los procesadores siempre deben ser exactos y precisos.
Uno de los conceptos más interesantes sobre los que he estado leyendo e investigando un poco últimamente, parte de desafiar una idea convencional en el mundo de la computación: aquella de que los procesadores siempre deben ser exactos y precisos.
Si alguien te dijera que el procesador de tu nuevo portátil cuando le pides sumar 3+2 no siempre diera 5, sino que a veces podría dar otros resultados (5,02 o 4,99 por ejemplo), dirías que no lo quieres y que lo devuelves a la tienda. Y tendrías toda la razón. Sin embargo existe una tendencia relativamente reciente dentro del mundo del hardware que se basa precisamente en hacer eso: en construir dispositivos especializados que son deliberadamente inexactos e imprecisos.
Se trata del "hardware inexacto" también conocido como dispositivos de "computación probabilística" o de "confiabilidad relajada" entre otros eufemismos. Hay incluso quien denomina abiertamente a esta tecnología como "procesadores chapuceros".
Pero, ¿para qué querríamos tener hardware que sabemos que falla? ¿qué aplicaciones podrían sacarle partido?
Los límites de la física y los procesadores actuales
Hace 50 años Gordon Moore uno de los fundadores de Intel enunció la famosa ley que lleva su nombre y que predecía que el número de transistores que se podía introducir en un procesador se duplicaba aproximadamente cada 2 años. Es decir, la Ley de Moore dice que aproximadamente cada 2 años se duplica la potencia de los procesadores, siguiendo por tanto un proceso exponencial que nos ha llevado a la enorme capacidad de la que disponemos en la actualidad.
Aunque esta "Ley" se ha venido cumpliendo hasta ahora, cada vez nos acercamos más a los límites que impone la física. En la actualidad los procesos de fabricación de los chips son capaces de introducir en obleas de silicio transistores que miden tan solo 14nm (nanómetros, la mil millonésima parte de un metro). Y con estas dimensiones se están alcanzando los límites físicos. Estamos hablando de que cada transistor tiene tan solo unos pocos átomos de ancho 😮 De hecho, por ejemplo, los nuevos procesadores de Intel que se esperaban para 2017 y que usarían tecnología de 10nm se están retrasando debido a las enormes dificultades que conlleva su fabricación.
A medida que se reduce el tamaño de los transistores y se aumenta su velocidad de proceso empiezan los problemas para mantenerlos fríos y para que conserven la exactitud en su funcionamiento. Si se baja el voltaje se calientan mucho menos, pero empiezan los problemas de precisión y exactitud. Es un equilibrio difícil. Superar estos límites requerirá seguramente un salto tecnológico.
La exactitud está sobrevalorada
Si nos fijamos en cómo funciona el mundo físico y nuestro cerebro, la exactitud y la precisión no son generalmente un valor importante. Piensa en cualquier tarea cotidiana, como reconocer a una persona que se acerca, agarrar un vaso para beber o pisar el freno de tu coche para pararte delante de un semáforo. Nuestro cerebro no realiza cálculos precisos para llevar a cabo esas acciones, sino que realiza aproximaciones "difusas" que se van corrigiendo sobre la marcha. Una computadora, sin embargo, solamente sabría realizar cálculos exactos para resolver esos problemas. Este concepto es la base de la lógica difusa, una disciplina formulada formalmente más o menos cuando Gordon Moore enunció su famosa ley, aunque se lleva investigando casi un siglo (tengo la suerte de conservar en mi casa el número 1 de la revista del IEEE dedicada a esta temática, de febrero de 1993: una pequeña joya friki).
Si llevamos este concepto de inexactitud de la realidad a aplicaciones prácticas de los actuales dispositivos electrónicos, vemos que muchísimos procesos no requieren de exactitud ni precisión a pesar de ser realizados por computadoras. En concreto, por ejemplo, todo lo que tenga que ver con gestión de datos de audio, vídeo o imágenes. Unos cuantos pixeles mal coloreados en una imagen de millones de ellos no suponen diferencia alguna, y se estima que una reproducción de audio no pierde calidad apreciablemente con una tasa de errores de hasta el 8%.
Si a esto le sumamos los grandes avances que ha habido en inteligencia artificial en los últimos 3 o 4 años de la mano del "Deep Learning" con nuevos algoritmos en los que la precisión y exactitud no son tan importantes ya que se basan en aprender sobre la marcha de manera independiente y con estructuras similares a las que subyacen en nuestro cerebro...
De repente tenemos un campo abonado para aplicaciones de "hardware inexacto".
Procesadores chapuceros
Lo interesante de este tipo de procesadores es que pueden ser más pequeños, más rápidos y usar mucho menos voltaje y por lo tanto consumir mucha menos energía.
Lo más importante es compensar los errores de un modo que resulte eficiente y útil, para lo cual existen diversas aproximaciones.
La más simple consiste en tener un funcionamiento normal y pasar al modo "con errores" cuando la energía escasee. Por ejemplo, imagina un auricular para personas sordas que cuando le quede poca batería pueda pasar a un modo "chapucero" en el que la calidad de audio disminuye pero la batería le va a durar mucho más. Lo mismo podría hacerse con conversaciones de audio o vídeo en un móvil.
Otra técnica que se denomina "podado" (pruning en inglés) consiste en repartir el voltaje por las diversas zonas del procesador de modo que ciertas áreas especializadas en tareas tolerantes a errores reciban menos potencia o no lo reciban hasta que sea necesario. Algunas pruebas con prototipos en el Centro Suizo de Electrónica y Micro-tecnología (CSEM) han demostrado que de esta forma son capaces de construir procesadores el doble de rápidos que consumen la mitad de energía y tienen la mitad del tamaño de uno convencional. Algo realmente interesante para informática móvil, pero que necesita sistemas muy complejos y todavía experimentales.
Quizá la forma más interesante de abordar el problema sea la denominada "confiabilidad asimétrica". Se trata de utilizar varios "procesadores chapuceros" para hacer el procesamiento más rápido y más eficiente en energía y devolver unos posibles resultados, para luego emplear un procesador convencional con el que se detectan errores inaceptables o se decide cuál de los posibles resultados es el mejor.
De hecho esta es la forma de trabajar del cerebro, cuyas neuronas transmiten información de unas a otras de manera imperfecta, procesando por tanto la información de manera "difusa", y pasando luego esos resultados al neo-cortex para ser procesados por las funciones mentales superiores, que valoran la coherencia y sacan las conclusiones.
Esta es la idea que están utilizando en Singular Computing, una empresa dirigida por el reputado científico Joseph Bates (ex-investigador del MIT y la Carnegie Mellon entre otras importantes instituciones) y financiada (lamentablemente) por el departamento de defensa de EEUU pero también por importantes empresas como Bosch, Intel, Samsung o Cisco.
Aparte del hardware especializado se necesita también software específico, pero que tiene la ventaja de poder escribirse en lenguajes convencionales como C o C++, y no en lenguajes oscuros y especializados para tareas de inteligencia artificial.
Puedes leer un artículo corto pero bastante detallado sobre esta tecnología aquí: Imperfect Processing: A Functionally Feasible (and Fiscally Attractive) Option. Los críticos de esta tecnología dicen que el problema actual para procesamiento eficiente de datos no es la velocidad de cómputo o la energía, sino la transmisión eficiente de datos (algo de lo que hablé hace unos años con los memristores, que parece que no llegan nunca). Sin embargo los resultados dicen otra cosa.
En la actualidad Singular está trabajando en un chip especializado en procesamiento de vídeo desde los drones militares que, por ejemplo, en el seguimiento de objetivos en movimiento es capaz de procesar frames de vídeo 100 veces más rápido y consumiendo tan solo un 2% de la energía (¡!) en comparación con un procesador convencional.
Para terminar
Como digo es una pena que se las primeras aplicaciones sean para tecnología militar, pero es algo que ha ocurrido muchas veces con desarrollos técnicos que luego han resultado de gran utilidad en el mundo civil (Internet, sin ir más lejos, es un gran ejemplo de ello).
No obstante me parece una tecnología prometedora, muy interesante y con grandes aplicaciones en inteligencia artificial, computación móvil, medicina...
No creo que anuncien un "chip chapucero" en la caja de nuestro móvil dentro de unos años. No queda bien desde el punto de vista del marketing. Pero considero muy probable que lleguemos a disponer de este tipo de tecnología dentro de mucha de la electrónica de consumo que utilizamos.
Si al procesamiento de audio y vídeo le sumamos el reconocimiento de voz y, sobre todo, las aplicaciones de inteligencia artificial combinadas con los sensores de móviles y otros dispositivos portátiles, esta tecnología puede tener un impacto importante en que éstos puedan ser más útiles y sean más "conscientes" de nosotros y el mundo que los rodea. Y si encima podemos ahorrar mucha batería, mucho mejor aún.
Espero que te parezca tan interesante como a mi.