Social Data Consulting

Github Copilot – 😮 ¿Remplazara a los promadores? 💻

Ya habras escuchado de esta nueva IA de OpenAI llamada GitHub Copilot que puede generar lineas y hasta funciones de codigo en muchos lenguajes de programación. Esto esta causando un poco de preocupación en la industria, pero ¿Llegara esto a remplazar a los programadores 😮? ¿Qúe tan poderosa es esta herramienta? y ¿cómo funciona? Es lo que se resolvera en este post.

OpenAI

Primero comezaremos brevemente por describir la compañia. OpenAI es una compañia de investigación en inteligencia artificial sin fines de lucro(por el momento). A lo largo de su historia ha estado anunciando tecnologia muy sorpredente basada en IA como el controlador de caracteres de rosotros(Glow), el completado de imagenes(Image GPT), el generador de imagenes por texto(Dall-e), GPT-3 y muchos otros más los puedes revisar en la pagina de proyectos de OpenAI.

OpenAI es una compañía de investigación de inteligencia artificial sin fines de lucro que tiene como objetivo promover y desarrollar inteligencia artificial amigable de tal manera que beneficie a la humanidad en su conjunto.

Wikipedia

Es una tecnologia muy interesante las mencionadas anteriormente y más aun, la penultima, GPT-3 que genera texto a partir de otro texto ingresado por el usuario. Lo sorprendente es que el texto generado es muy parecido a lo que un humano hubiera producido. Puede generar texto comprensible, servir de chatbot, traductor, buscador y parecidos. Y si deseas asombrarte conversando con GPT-3 puedes instalarte AIChanells App.

Github Copilot

La pregunta qué pasaria ¿si entrenamos una IA con «todo» del conocimiento de la web? pues obtenemos GPT-3 una sorprendete IA, que tambien puede generar codigo, pero no es tan aceptable. Y ¿si entrenamos un modelo con «todo» el codigo disponible en internet? Pues en colaboracion con Github, empresa de Microsoft, OpenAI pudo entrenar a OpenAI Codex con cientos o talvez miles de repositorios publicos para que sea capaz de generar codigo apartir de un comentario, nombre de funcion, doc string o nombre de variables. Este modelo entiende el contexto del codigo para generar lineas y hasta funciones completas de codigo para un amplio conjunto de lenguajes de programación, en especial Python, JavaScript, TypeScript, Ruby y Go. ¡Es facinante! Funciona muy bien en ingles, debido al set de entrenamiento y aunque no es muy efectivo en español tambien puede generar codigo ¿Porque es más efectivo en ingles? Pues debido a la cantidad de proyectos de codigo en ingles en el dataset de entrenamiento.

OpenAI Codex tiene un amplio conocimiento de cómo las personas usan el código y es significativamente más capaz que GPT-3 en la generación de código, en parte porque fue entrenado en un conjunto de datos que incluye una concentración mucho mayor de código fuente público. GitHub Copilot funciona con un amplio conjunto de marcos y lenguajes, pero esta vista previa técnica funciona especialmente bien para Python, JavaScript, TypeScript, Ruby y Go.

Nat Friedman , CEO de Github

No vueles solo

¿Cómo funciona?

Para la fecha se puede probar como extesion de visual studio code y esta limitado a una lista de espera. Una vez instalada y habilitada desde el editor de Visual Studio Code se puede escribir un comentario o el nombre de la funcion, por ejemplo, queremos obtener los tweets de Twitter de un usuario, y definimos el nombre de la funcion «fetch_tweets_from_user» Github Copilot analizara el codigo y dara sugerencias de codigo de acuerdo, en este caso, al nombre de la funcion. Como si fuera un autocompletado muchisimo más inteligente.

Cuando hacemos la consulta a Github Copilot este recibe parte de nuestro codigo para ser analizado y devuelve las sugerencias, si usted usa el codigo generado Github Copilot entendera que esa sugerencia fue util, de esta manera mejorara la «lista» de sugerencias que pueda hacer. ¿El codigo generado es un copia y pega del conjunto de entrenamiento (archivos de codigo)? Realmente el codigo sugerido es una creacion adaptado apartir de lo que aprendio, tan solo el 0.1% de veces la sugerencia es codigo textualmente del conjunto de entrenamiento, y esto ocurre por dos razones: No se dio suficiente contexto para que Copilot pueda hacer una buena sugerencia o en muchos archivos diferentes de entrenamiento se utilizo ese mismo codigo. Imaginate que escuchas una canción, a la primera vez no te la aprenderas de memoria, pero si escuchas la misma canción lo haras. De forma similar OpenAI Codex si en distintos archivos aparece el mismo codigo entonces se le considerara relevante o «standart», por ejemplo la licencia de GNU contenida en muchos proyectos de codigo. Cabe mencionar que cuando se entreno a OpenAI Codex se le mostro el archivo de codigo una unica vez.

how it works
Flujo del funcionamiento de Github Copilot

Realmente Github Copilot funciona muy bien generando codigo, a pesar de estar en modo beta. ¿Esto puede ser la proxima revolución de la tecnología? ¿Remplazara a los programadores? Son muy buenas preguntas. A partir de los buenos resultados de la versión beta, OpenAI Codex da la impresion que hara el trabajo más rapido, lo que podria reducir el número de programadores requeridos para un proyecto y probablemente los programadores novatos van a tener que saber mucho más de lo habitual para postular a su primer trabajo (apresiacion personal). Mencionar tambien, que el codigo sugerido por Github Copilot debe ser revisado como culaquier otro codigo (no es magia), la misma documentación lo sugiere, tanto para validar funcionamiento o bugs. Es verdad que GithubCopilot tiene la idea de ayudarte como copiloto, pero no sera qué nosotros somos el copiloto y OpenAI Codex el piloto? ¿Si GithubCopilot me sugiere el codigo…el credito es de él? Segun la documentación el credito es tuyo. Otra preocupación seria ¿Cómo sabre si mis alumnos estan presentando codigo que ellos hicieron? y pueden haber otras cuestiones validas. Finalmente, la tecnologia avanza y eso es normal. Hacer un copia y pega brusco sin entender el codigo, no sera suficiente en un corto plazo. Si estamos en constante aprendizaje el trabajo no te va a faltar. ¿Qué tan bueno sera la mejora de OpenAI Codex en posteriores versiones?

Share via
Copy link