El problema con este enfoque es que, para describir lo que desea, con suficiente detalle para que la IA lo ensamble a partir de fragmentos, básicamente está programando.
Del segundo artículo:
“La IA, que se llama DeepCoder, toma una entrada y una salida esperada y luego llena los vacíos, usando un código pre-creado que cree que creará la salida deseada. Este enfoque se llama ‘síntesis de programa’ “.
Imagine las especificaciones de entrada y salida para una página web simple, que muestra una lista de productos y le permite hacer clic en ellos para obtener más información. Parece una tarea de nivel de entrada.
- En redes neuronales artificiales, ¿cómo se eligen conexiones específicas entre nodos para fortalecerlas durante el entrenamiento?
- Características de wit.ai vs API.ai?
- ¿Qué es lo más impresionante que hace la Inteligencia Artificial?
- ¿Cómo crearán los investigadores inteligencia artificial general?
- ¿La inteligencia artificial se dirige en la dirección correcta?
Tendría que encontrar una forma de parametrizar (describir con una lista de números) la página. Por ejemplo, “posición de la lista de productos (x, y)”, “tamaño de la lista de productos (ancho, alto)”, etc.
Entonces necesitaría que el usuario de esta IA complete la lista de parámetros para darle a la IA un objetivo para trabajar.
Cuantos más números use, más onerosa será la especificación: cuanto menos use, más ambigüedad habrá en la especificación, lo que lleva a que la IA no haga lo que necesita.
Además, las personas realmente no saben con qué quieren comenzar: si ves a un diseñador de interfaz de usuario en el trabajo, iteran rápidamente para encontrar un aspecto con el que estén felices. Lo que significa que su usuario necesitaría poder ajustar fácilmente los parámetros sobre la marcha, y luego regenerar el código, que es esencialmente lo que es editar HTML manualmente. La generación de código realmente no agrega mucho a menos que de alguna manera pueda evitar lo que se ve bien.
Ok, la interfaz de usuario es un poco difícil. ¿Qué pasa con el código de fondo?
Aquí se aplica el mismo desafío: para evitar errores, el usuario necesitaría presentar una especificación de entrada / salida que fuera tan rigurosa como el programa que de otro modo tendrían que escribir.
Digamos que quiero una función que clasifique una lista de personas por su apellido y luego devuelva la edad de la tercera persona en la lista. Necesitaría definir:
Un objeto persona
El hecho de que la lista resultante de objetos personales se debe ordenar por apellido
Cómo tratar a personas sin datos de apellido
Cómo tratar a personas sin datos de edad
Qué hacer si la lista tiene menos de tres personas.
La habilidad principal de la codificación no es saber qué teclas presionar. Es saber cómo expresar lo que quiere que suceda en términos suficientemente claros para que una computadora se ejecute. Creo que los trabajos de nivel de entrada están a salvo de bots como los anteriores, sin importar cuán rápido se vuelvan las computadoras que los ejecutan.