• Home
  • Química
  • Astronomía
  • Energía
  • Naturaleza
  • Biología
  • Física
  • Electrónica
  • Por qué se necesita más desarrollo de software para las máquinas

    Justin Gottschlich de Intel Labs dirige un equipo de investigadores de programación de máquinas. Su objetivo es automatizar el desarrollo de software para reducir los errores de codificación y abordar la escasez de programadores expertos capacitados. Crédito:Walden Kirsch / Intel Corporation

    Nuestro experto:Justin Gottschlich dirige el equipo de Investigación de programación de máquinas (MPR) en el Laboratorio de investigación de sistemas y software. El grupo de investigación recién formado de Justin se centra en la promesa pionera de la programación de máquinas, que es una fusión de aprendizaje automático, métodos formales, lenguajes de programación, compiladores y sistemas informáticos.

    Su sencilla explicación de la programación de máquinas:MPR utiliza formas de aprendizaje automático y otros métodos automáticos para crear software capaz de crear su propio software. Se llama programación de máquinas y se trata fundamentalmente de automatizar el desarrollo y el mantenimiento de software. Cuando se realiza completamente, La programación de máquinas permitirá a todos expresar su creatividad y desarrollar su propio software sin escribir una sola línea de código.

    La promesa de la programación de máquinas:en el panorama tecnológico actual, el software está integrado en casi todo lo que hacemos. Controla muchos aspectos de nuestros dispositivos móviles:computadoras portátiles, tabletas, Los telefonos. Nos conecta a Internet e impulsa nuestras redes sociales. Virtualiza nuestros centros de datos y hace que nuestros hogares sean más inteligentes. Pero desarrollar y mantener software es un proceso que requiere mucho tiempo y es propenso a errores, Dice Justin. "Creo que podemos crear una sociedad en la que todos puedan crear software, pero las máquinas se encargarán de la parte de 'programación', ", dice." Por lo tanto, 'programación de la máquina' ".

    Escasez de programadores humanos:un problema central para Intel y otras empresas tecnológicas líderes, según Justin, es que se están quedando sin desarrolladores senior, una escasez que limita la cantidad de programación en todas las industrias. Según code.org, hay 500, 000 puestos de programación abiertos disponibles solo en los EE. UU., En comparación con una cosecha anual de 50, 000 graduados en ciencias de la computación. Se puede encontrar una escasez similar en toda la Unión Europea. En el mercado de trabajo de programación, Justin dice, en el mejor de los casos, solo el 10% de las personas que ocupan esos puestos tienen la capacitación en informática para convertirse en desarrolladores avanzados de alto nivel. Con el hardware heterogéneo actual:CPU, GPU FPGA, ASIC, neuromórfico y, pronto, chips cuánticos:será difícil, quizás imposible, para encontrar desarrolladores que puedan correctamente eficientemente, y programe de forma segura en todo ese hardware.

    Ahora es el momento:la programación de máquinas es una fusión de diferentes campos. Utiliza la técnica de programación automática, de precisa (p. ej., síntesis formal del programa) a probabilístico (por ejemplo, programación diferenciable) métodos. También usa y aprende de todo lo que hemos construido en hardware y software hasta la fecha. Los investigadores han incursionado en la programación de máquinas desde la década de 1950, Dice Justin. "Pero hoy es diferente. Estamos en un punto de inflexión con nuevos algoritmos de aprendizaje automático, hardware nuevo y mejorado, y datos de programación ricos y densos. Estos son los tres ingredientes esenciales que creemos que permiten la programación de máquinas ". Un ejemplo lo ilustra la investigación reciente sobre algoritmos genéticos (GA) del equipo de Justin, que ilustra cómo se puede automatizar la función de aptitud de un algoritmo genético, una complicada heurística de aprendizaje automático desarrollada por programadores expertos. Justin dice que este trabajo probablemente no hubiera sido posible hace solo unos años.

    Negarse a aceptar errores:casi todo el software a gran escala actual (p. Ej., sistemas operativos, navegadores, plataformas de redes sociales) incluye precisión, errores de rendimiento o seguridad. "Nuestro último artículo de NeurIPS '19 proporciona evidencia temprana de que ciertos tipos de errores que históricamente han evadido incluso la detección de programadores expertos pueden detectarse automáticamente con la programación de la máquina, requiriendo cero intervención humana, "Dice Justin." El siguiente paso es arreglarlos automáticamente ".

    Desde 500, 000 líneas de código hasta 500:Justin señala un ejemplo bien conocido de los beneficios de la programación de máquinas. Traductor de google, un servicio que traduce automáticamente entre idiomas, fue construido por ingenieros que codificaron a mano alrededor de 500, 000 líneas utilizando técnicas de programación clásicas. Con la llegada de la programación de máquinas, Google reescribió su código, parcialmente usando programación diferenciable (una pequeña porción del pastel de programación de la máquina en general). Esa reescritura redujo la base del código de 500, 000 líneas a 500 líneas, un 1, Reducción de 000x. "No solo el tamaño del código se redujo en 1, 000 veces, "Justin dice, "la precisión del sistema realmente mejoró, es increíble".

    Más trabajos de programación, no menos:la programación de la máquina no eliminará trabajos, Justin sostiene, sino crearlos, posiblemente millones de ellos. Los aspectos más serviles de la programación se automatizarán, él dice, cual es la meta. Con programación de máquina, él añade, "Nuestra visión de cielo azul es siempre que puedas expresar tus ideas (como lo llamamos, intención) de alguna manera que la máquina pueda reconocer, ya sea en lenguaje natural, diagramas visuales o gestos:la programación de máquinas crea un camino para que usted cree su propio software ". Para comenzar a construir estos sistemas avanzados de programación de máquinas, Justin dice, confiaremos en gran medida en una comunidad de programadores y científicos:aquellos que pueden trabajar en distintas plataformas, aprendizaje automático y técnicas formales, hardware heterogéneo, y muchos lenguajes de programación. Justin y su equipo describen su visión futura de la programación de máquinas en un artículo publicado conjuntamente con los investigadores del MIT, "Los tres pilares de la programación de máquinas".


    © Ciencia https://es.scienceaq.com