Desde hace unos días estoy usando GitHub Copilot en el trabajo diario. Lo uso fundamentalmente con Dart, el lenguaje usado para Flutter. No es, ni remotamente el más recomendado por GitHub. Según la empresa, los mejores resultados se obtienen con Python y con Javascript, probablemente porque son los que más abundan en los repos de GitHub. Es decir, hay muchos más datos de los que aprender. Aun así, los resultados no te dejan indiferente.

Primera cita con GitHub Copilot: mal.

La primera impresión, era que tenía al lado a Clippy, interrumpiendo constantemente con sugerencias majaderas y fuera de lugar. A menudo el código que proponía ni siquiera era sintácticamente válido.

A los pocos minutos lo desconecté, porque me tenía negro. 

Segunda cita con Github Copilot

Opté por darle una segunda oportunidad, y lo cierto es que la calidad de las sugerencias fue mejorando enormemente. Ya no parece que tengas a Clippy a tu lado, sino a Rainman: alguien capaz de decir tonterías espantosas, para a veces suelta una genialidad que te deja patidifuso.

Sospecho que tiene un modelo propio para ti que hace que las recomendaciones se vayan afinando. En un caso, ha escrito el test que yo quería (una variación de uno que había escrito antes) él solito. En ese momento, tuve la impresión que alguien me hubiese leído la mente.

Mi impresión hasta ahora, es que se trata de una herramienta fantástica, que ahorra mucho tiempo en pequeñas tareas repetitivas. No escribe el código por tí, de la misma forma que el corrector de Google Docs no ha escrito este post para mí, pero me ha ahorrado algo de tiempo.

No es oro todo lo que reluce…

Github Copilot ha recibido muchas críticas durísimas por haber usado todo el código de GitHub en la fase de entrenamiento, sin importar la licencia del mismo. Si el repo era público, se usó. Las repercusiones son claras y apuntan tal vez a un vacío legal: si se usó código bajo una licencia concreta, ¿cual debe de ser la licencia del código que genera la herramienta?

Esto es especialmente importante en el caso de la licencia GNU, por ser viral. Si se usó código bajo esa licencia, ¿debería Github Copilot y el código que produce estar bajo la licencia GNU? ¿Puedo usarlo en proyectos privados? ¿Tengo que cambiar mis licencias?

Vaya ud a saber, y seguro que habrá trifulcas legales al respecto, porque la ley no contempla código generado por un software basado en código cuyo copyright pertenece a un humano o una empresa.

Pero lo que sí es oro, no es para todos

Aquí es donde está la clave de todo esto, y que va más allá de cualquier trifulca legal con licencias: la centralización y desdemocratización de la inteligencia artificial.

El approach actual a la inteligencia artificial, y que tan buenos resultados nos está dando, es estadístico.

Peter Norvig, uno de los pioneros de la IA ha sido un proponente temprano de esta nueva forma de crear comportamiento inteligente: en vez de centrarse en algoritmos complejos, usemos muchos datos e infiramos de ellos el comportamiento deseado. En su presentación “The Unreasonable Effectiveness of Data” (¡de hace diez años!), lo deja muy claro:

Si un problema sigue siendo difícil de resolver, no malgastes neuronas en intentar mejorar los algoritmos, simplemente dale más datos.

Es decir, su presentación se tendría que haber titulado: “The unreasonable effectiveness of brute force”.

No importa lo bueno que seas con esa lanza, la fuerza bruta, cuando aplastante, puede con todo.

Cuando lo que determina la calidad de la IA que generas es la cantidad de datos de los que dispones y de los recursos computacionales para procesarlos, eso se constituye en una barrera infranqueable para quien no dispone de esos recursos desmedidos.

¿Qué startup puede competir con GitHub Copilot, si no dispone de los datos que tiene esa empresa y los recursos de MS (propietaria de Github)?

Con este modelo, la IA está reservada para las grandes empresas y algunos gobiernos. La libre competencia y dinamismo que aportan nuevas empresas y startups no llegará ahí jamás.

En este caso concreto, parece irrelevante, al fin y al cabo se trata de una herramienta para programadores, pero ¿qué pasa cuando se trate de inversión automatizada (algotrading), diagnóstico médico o aplicaciones militares?

El que la IA verdaderamente eficaz esté solo al alcance de unos pocos, es algo que debe de empezar a preocupar y mucho.

Conoce nuestros Bootcamps

Aprende a Programar desde Cero Full Stack Jr. Bootcamp
Desarrollo Web Full Stack Bootcamp
Desarrollo de Apps Móviles Full Stack Bootcamp
Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp
DevOps & Cloud Computing Full Stack Bootcamp
Ciberseguridad Full Stack Bootcamp 
Máster en Tecnologías Exponenciales de la Computación
Marketing Digital y Análisis de Datos Bootcamp

¡Pide más información! Nosotros te llamamos