¿AI podría escribir código?

Supongo que tienes que preguntarte qué significa para una computadora “escribir código”. Vamos a definirlo así:

Dado un objetivo, generar instrucciones legibles por máquina para lograr ese objetivo.

Si tomamos eso como la definición de escribir código, entonces ya estamos en un lugar donde las computadoras pueden hacer eso. Técnicamente, hemos estado allí desde (justo después) del comienzo.

Comenzamos teniendo que comunicarnos con el procesador en 1s y 0s (que ya era una abstracción de los altos y bajos voltajes que una computadora realmente usa). Finalmente, inventamos lenguajes de ensamblaje de bajo nivel, que nos permitieron hacer declaraciones más abstractas que la computadora convirtió en código binario para nosotros. Si nuestro “objetivo” era agregar dos números, entonces podríamos pedirle a la computadora que genere un código que haga eso, aunque tuvimos que escribir esa solicitud en un lenguaje bastante arcano.

La progresión ha sido crear más y más lenguajes abstractos, de modo que ahora pueda escribir algo como lo siguiente (suponiendo que se hayan establecido variables, etc.):

si manzana en la canasta:
obtener (manzana)

y la computadora generará el código necesario para verificar el contenido de la canasta y conseguirme una manzana.

Hablando de manzanas, puedo decir casualmente en voz alta : “Siri, llama a mamá” y mi teléfono generará el código binario necesario para conectar mi teléfono con el teléfono de mi madre en el otro lado del país.

Todo lo anterior supone que soy el agente generador de objetivos. Para evitar la pelea filosófica sobre si mi orden a Siri es diferente del texto que recibí de mi hermano antes diciéndome que llamara a mamá, supongamos que es el futuro y hemos resuelto ese dilema y le hemos dado a las computadoras la capacidad de ser agentes generadores de objetivos (que es lo que las personas quieren decir cuando hablan de IA fuerte o IA general). En ese caso, lo primero que una IA podría hacer es generar código para lograr los objetivos. [Si estamos hablando de algo más que una IA fuerte, entonces ya tenemos esta habilidad en cualquier compilador]

Absolutamente…

Los sistemas que he desarrollado ya están haciendo esto. Por ejemplo, mi plataforma fpgaARCHITECT le permite al usuario definir gráficamente un sistema (piense en pizarra digital y diagramas de bloques), anote nodos y bordes con requisitos, y el sistema genera el código FPGA Verilog necesario para realizar el sistema.

Voy a decir que no todavía, e iré más allá y diré que no es tan importante, pero si fuera posible, sería incompatible con los requisitos.

¿Por qué?

Porque siempre hay una barrera de comunicación entre quienes hacen los requisitos y quienes deben cumplirlos.

Dicho esto, esto no es nuevo. El proceso de extracción de los requisitos exactos del cliente nunca es perfecto y, en algunos casos, los usuarios tendrán que involucrarse porque serán ellos los que tengan dificultades para intentar ejecutar 2 aplicaciones a la vez, incluida la nueva aplicación de base de datos que usted es crear y el problema es la falta de RAM en la máquina y los pasos que ese usuario tuvo que atravesar para poder hacer que las cosas funcionen para que no bloqueen su máquina es sorprendente.

Ahora nos enfrentamos a requisitos no funcionales: necesita un mejor terminal (PC), que la gerencia no está dispuesta a comprar.

Ahora la aplicación de desarrollador está funcionando bien en su plataforma de prueba, y el usuario tiene problemas y el desarrollador tiene que entrar en la oficina del cliente y hablar con el usuario, eliminando a los ejecutivos, al consultor s / w y al ingeniero interno quien se supone que debe decirle a la empresa de desarrollo que la administración apesta, ya que recortaron el presupuesto de la PC una vez más. Y ni siquiera quiero comprar RAM.

¡AHORA! El desarrollador tiene que comenzar un proceso para encontrar formas de reducir los requisitos de memoria de la aplicación, al no cargar demasiadas ventanas en la pantalla y usar un diálogo menos colorido (o lo que sea). Él está tratando de no decir que necesita actualizar los terminales, ya que la empresa para la que trabaja ya firmó un contrato, parte del cual indicaba que las especificaciones de la PC eran adecuadas, pero nadie realmente lo comprobó.

De acuerdo, el punto es que no creo que AI esté en el punto en el que tendrá que lidiar con toda esta locura.

Colin B Maharaj

Desarrollador.

¿Qué quieres decir con escribir código? AI es realmente un código de escritura. Lo que AI está haciendo es escribir instrucciones invisibles establecidas a partir de la especificación de entrada y salida que de otro modo habría sido muy complicado y habría tomado millones (o tal vez más) de líneas si los humanos hubieran codificado esas cajas de uso a mano. El código que escribimos para entrenar los datos y consumir el modelo es en realidad una parte muy pequeña del código. El código real está oculto dentro del modelo entrenado que probablemente habría tomado millones de líneas si los humanos hubieran escrito con métodos de programación convencionales. Do Check es lo que dice Andrej Karpathy [1].

Probablemente lo que quisiste decir es que AI podrá generar fragmentos de código legibles por humanos en lenguajes de programación de alto nivel que escribimos para construir aplicaciones hoy. Para responder a esa parte, sí, también hay esfuerzos de algunas startups en esa dirección. Hay esfuerzos en los que AI está generando una aplicación completa. Puede haber dos enfoques, o hacer que el código sea invisible (es decir, en forma de modelo entrenado) que solo puede generar la aplicación final o el modelo entrenado puede generar código legible por humanos en un lenguaje de alto nivel que a su vez se compila en una aplicación.

Mi opinión personal es que no tomaría más de una década o dos antes de que pueda crear una aplicación o sitio web o servicio web totalmente personalizado según sus requisitos exactos simplemente con una reunión con un agente de voz como apple siri o google home o amazon alexa.

Notas al pie

[1] Software 2.0 – Andrej Karpathy – Medio

Se dice que las hiperheurísticas constructivas generan sus propios algoritmos. Pero lo que realmente hacen es tomar fragmentos de otros algoritmos heurísticos y juntarlos.

Imagine que está tratando de resolver un problema de optimización combinatoria, como un vendedor ambulante. Tiene una matriz con 200 algoritmos heurísticos diferentes que puede elegir. Luego usa algo como el aprendizaje automático de refuerzo para determinar a qué heurística llamar y cuándo y por cuánto tiempo.

Termina con una lista de instrucciones ejecutando el algoritmo 55 durante 5 segundos seguido del algoritmo 42 durante 3 segundos y luego el algoritmo 105 durante 10 segundos. Su hiperheurística luego devuelve esa lista de instrucciones como su salida y puede ejecutarla contra su instancia de datos.

Un algoritmo de vendedor ambulante fue construido por un algoritmo de aprendizaje automático, aunque uno podría argumentar que el hiperheurístico no ha escrito ningún código.

Buena pregunta pero llena de respuestas filosóficas. Si tratamos a la IA como ciencia y no como ingeniería, podríamos escribir códigos hoy que escribirán códigos. Pero simplemente todavía no sabemos qué es la inteligencia. Sí, entendemos algo de wiki, pero esto es casi todo. Estoy profundamente seguro de que el núcleo de la IA es la posibilidad de escribir código. En nuestro cerebro existen características que crean procedimientos para nuestro comportamiento. Es un tipo de motor de inferencia que no solo pregunta por hechos y conocimiento cognitivo, sino que también hace procedimientos y los escribe en nuestro cerebro. Otro motor lee estos procedimientos, otro los ejecuta, etc. Es interesante que por ahora nadie esté hablando de esto.

Hola, esta es mi primera respuesta, así que no daré una gran explicación como la de los demás, pero me gustaría compartir este excelente enlace web que encontré en Google.

Uso de la inteligencia artificial para escribir programas de auto-modificación / mejora

Y su código fuente también está disponible en GitHub (GitHub – primaryobjects / AI-Programmer: Uso de inteligencia artificial y algoritmos genéticos para escribir automáticamente un programa, en el lenguaje de programación BrainF. Lea el tutorial en http://www.primaryobjects.com/ cms / artículo149 )

Puede usar intérpretes en línea para probar la salida usted mismo.

Será, creo. Simplemente escribir un código que sea gramaticalmente correcto y que simplemente funcione puede no ser difícil. Supongo que usar las tecnologías de chatbot con alguna función de corrección gramatical basada en reglas lo hará posible.

Lo más difícil es decirle a AI que escriba uno para su propósito; tienes que dejar que AI entienda tus requisitos verbalmente sin carecer de nada. Otra cosa que preocupa es que el programa actual está hecho para que los humanos escriban y lean fácilmente, no para la IA. Quizás pueda parecer que en algún futuro futuro, se podría introducir un programa para IA.

More Interesting

¿Los robots y la IA respetarán la confidencialidad?

¿Qué idioma está relacionado con la IA?

¿Una combinación humano-computadora supera a una computadora en ajedrez?

¿Por qué la gente cree que la inteligencia artificial nunca desarrollará una capacidad general independiente de aprender?

Si las células 'tontas' individuales independientes pueden agruparse para desarrollar la conciencia y la vida inteligente (es decir, nosotros), ¿por qué los grupos de hormigas ya inteligentes (que ya exhiben un comportamiento grupal inteligente) se convierten en un 'enjambre' inteligente con conciencia cuya inteligencia enana incluso el nuestro?

¿Podemos entrenar una red neuronal para comprender / interpretar otra red neuronal?

¿Lloyd Pye aborda el hecho de que una civilización avanzada podría extraer su propio oro sin esclavos utilizando Ai y equipos industriales?

¿Jack Ma tiene razón al decir que la IA causará más dolor social que beneficios en los próximos 30 años?

Quiero investigar para un laboratorio de IA del calibre de Deep Mind o Google Brain. ¿Estoy condenado si no entro en un programa de doctorado mejor clasificado?

¿Se automatizará el trabajo de ingeniero de software debido a las máquinas de tural neural y el aprendizaje profundo?

¿Cómo funciona la hipótesis para una red neuronal simple (MLP con activación logística, salida única) en forma simplificada?

¿Cuál es el estado del arte con respecto a la IA y la simulación para un juego de estrategia?

¿Dónde puedo aprender sobre la inteligencia artificial y cómo aplicarla, y cómo puedo entenderla mejor?

¿Es probable que Trump pueda hacer que Apple invierta mucho en la fabricación en los Estados Unidos? ¿Por qué o por qué no?

¿Por qué uno de estos está mal?