DeepMind de Google ahora es capaz de escribir y mejorar el código por sí mismo. ¿Cómo afectará a los futuros expertos en informática / SWE?

Frenar un poco. Todo lo que hemos visto hasta ahora es una inteligencia artificial cuidadosamente elaborada que tiene éxito en algunos problemas muy particulares, todos los cuales tienen funciones objetivas muy agradables. Eso está muy lejos de reemplazar a los programadores en tareas generales. Es más como una prueba de estudio de concepto.

De hecho, dudo mucho que cualquier éxito final en el desarrollo de un programador de inteligencia artificial utilice técnicas similares. Los ingenieros de software están seguros por mucho tiempo.

La mayor parte de la investigación ha generado un código ML, lo que significa que usaron el aprendizaje automático para construir un código de aprendizaje automático. ML es solo una pequeña parte de lo que hacen los ingenieros de software (y solo algunos lo hacen), por lo que tienen muy poco de qué preocuparse.

¿Qué pasa con los científicos de datos y los ingenieros de ML?

Todavía hay un largo camino por recorrer antes de que AI se encargue del aprendizaje automático para nosotros. Cuando lo haga, esos trabajos cambiarán, pero no desaparecerán. Los ingenieros de ML se centrarán más en la infraestructura, lo que necesitaremos en gran medida porque las IA de creación de AI son muy computacionales y controlan la AI. Los científicos de datos se centrarán en dirigir la IA e interpretar los resultados.

Podría pensar que necesitamos menos científicos de datos e ingenieros de ML ahora, pero la variedad de problemas a los que podemos aplicar ML está creciendo con la rapidez que estos avances son necesarios para mantenerse al día. Sí, puede ralentizar el crecimiento de los trabajos, pero no detenerlo. Además, solo las instituciones muy grandes serán capaces de esto en un futuro próximo. Eso significa que la mayoría de la gente hará el trabajo más tradicional en el futuro previsible.

TLDR:

No abandone su programa de CS todavía.

Creo que la declaración es un poco engañosa:

DeepMind de Google ahora es capaz de escribir y mejorar el código por sí mismo.

Estamos hablando de una nueva dirección de investigación, no de un logro. Por supuesto, es un logro, pero no necesariamente un problema resuelto. Actualmente están lidiando con problemas de juguetes, sí, algunos son problemas de juguetes de lujo.

¿Puede codificar un sistema operativo? No.

La fuente a la que señala esta pregunta en realidad está hablando sobre el potencial de tal tecnología. Yo cito:

Si las técnicas de IA de arranque automático se vuelven prácticas, podrían aumentar el ritmo al que se implementa el software de aprendizaje automático en toda la economía.

También DeepMind ve potencial en este enfoque, ya que no pretende haber resuelto el problema:

El grupo DeepMind sugiere que lo que los investigadores denominan “aprender a aprender” también podría ayudar a disminuir el problema de que el software de aprendizaje automático necesite consumir grandes cantidades de datos en una tarea específica para poder realizarlo correctamente.

Sobre la base de que dichas tecnologías están muy lejos, la programación o la codificación es un proceso muy creativo que requiere planificación, ejecución y refinamiento a largo plazo. Actualmente, las máquinas carecen de pensamiento creativo y planificación a largo plazo.

Así que esta es una buena dirección de investigación por ahora. SWE / informáticos probablemente se están riendo de esto ahora.

Espero que esto ayude.

Algunas grandes respuestas aquí. Todavía no estoy renunciando al desarrollo de software como un campo. El año pasado, un estudiante me llamó la atención sobre el trabajo de Anthony Liu con la generación de código basada en GA (Programa que escribe Brainf ** k). Es una linda idea y eventualmente llegó a Hello, World. Sin embargo, la complejidad aumentó dramáticamente, lo cual no es sorprendente, ya que incluso probar un programa conduce al problema de la detención. Los algoritmos de propósito general probablemente no se pueden escribir. Lo que se puede escribir son herramientas de metanálisis que pueden revisar las funciones de acondicionamiento físico, y eso es genial, pero en última instancia, esto es un agujero de conejo. Como lo señalan Anand Sampat y Greg Young, la tarea más crítica es definir y comprender las necesidades del sistema que se debe construir; Esto no se puede hacer automáticamente.

La creación de tal algoritmo requiere una comprensión clara del objetivo que la computadora debe lograr. Por ejemplo, en una tarea de clasificación de imágenes, quiero tener el error más bajo entre la verdad básica y la predicción. Al escribir código, la definición de esa función objetivo es la parte más difícil. Presumiblemente, si pudiera transmitir la intención del código, asegurarse de que la computadora reúna un fragmento de código que sea sintácticamente correcto no sería tan difícil, pero estamos muy lejos de eso.

Recientemente me hicieron esta pregunta en un panel.

El problema del desarrollo de software es normalmente comunicar lo que se desea del software. Podemos imaginar, dado un software de creación de AI decente, que necesitaríamos alguna forma de describir el software a la IA. Probablemente crearíamos un lenguaje de especificación que consistiera en algunas descripciones lógicas y matemáticas básicas. También queremos nombrar las cosas bien, ya que las especificaciones pueden complicarse y necesitamos que los humanos las mantengamos manejables.

Los desarrolladores no se van a ir pronto.

Sí, puede afectar el futuro.