La experiencia de nuestro director de tecnología con la IA generativa para la codificación

Evan Davis, nuestro Director Técnico, ha aprovechado lo último en tecnología de IA para resolver problemas del mundo real. Recientemente habló de su experiencia con IA generativa por su trabajo de codificación con el equipo de Skim AI, aportando algunas de sus ideas personales sobre las aplicaciones prácticas de la tecnología y sus posibles escollos. Con esta conversación y el blog resultante, pretendemos ofrecer una visión interna de este entorno en rápida evolución y, en concreto, de por qué la codificación nunca volverá a ser lo mismo en esta era de la IA generativa fácil de usar.


Potencial y limitaciones de la IA generativa en la codificación

La IA generativa, un subconjunto de la inteligencia artificial, se centra en la creación de nuevos contenidos, desde obras de arte hasta código, mediante el aprendizaje a partir de ejemplos existentes. En la experiencia reciente de Evan con los mejores modelos de IA generativa, como ChatGPT-3.5, GPT-4, Github CoPilot, Amazon CodeWhisperer, Bard y más, la tecnología ha demostrado ser un valioso aliado en las tareas de codificación. Esta es una nota importante antes de entrar en algunas de sus limitaciones. En su estado actual, la IA generativa está teniendo un gran impacto en la codificación, y seguirá evolucionando y mejorando con el tiempo.


Para quienes tengan conocimientos de programación, la tecnología puede suponer una ventaja significativa, ya que puede encargarse de alrededor del 80% de la tarea y hacer que el proceso de depuración sea más manejable. Esto coincide con los expertos del sector, que creen que la IA generativa revolucionará la forma en que abordamos la codificación, acelerando el proceso y reduciendo los errores humanos.

Sin embargo, como ocurre con cualquier tecnología emergente, la IA generativa no está exenta de limitaciones. En su experiencia personal, Evan observó que, en ocasiones, la tecnología generaba código que carecía de lógica, sobre todo con las bibliotecas menos comunes. La IA llamaba a funciones fantasma (funciones que no existían en la biblioteca), lo que provocaba confusión y tiempo adicional para descifrar los resultados. Se trata de un problema conocido en este campo, y los investigadores siguen perfeccionando los algoritmos de IA para resolverlo.


El papel de GitHub Copilot y su impacto potencial

Evan también compartió su experiencia con GitHub Copilot, un asistente de codificación basado en IA que sugiere código línea por línea. En su opinión, es menos probable que se descarrile, ya que funciona dentro de los límites del código existente del usuario.

Desarrollado por GitHub y OpenAI, Copilot sugiere código línea por línea basándose en el contexto proporcionado por el usuario, por lo que es menos probable que produzca resultados erróneos.


El próximo lanzamiento de Copilot X, que integra GPT-4 en Visual Studio Code y cuenta con control por voz, supone un gran avance en este campo. Esta herramienta actuará como un asistente de codificación activado por voz, lo que supone un paso importante hacia una mayor integración de la IA en nuestros flujos de trabajo de codificación, una tendencia que está ganando terreno en todo el sector tecnológico.

Inteligencia artificial generativa: la piedra Rosetta de hoy

Durante la conversación del equipo sobre la IA generativa, el Director General Greggory Elias trazó una interesante analogía entre el código generado por IA y la Piedra Rosetta, ilustrando las capacidades y limitaciones de la tecnología. Al igual que la Piedra de Rosetta servía de mecanismo de traducción para las lenguas antiguas, la IA generativa puede considerarse un traductor para los lenguajes de codificación.

En el contexto de la codificación, la IA generativa funciona como un traductor. Trabaja para comprender la sintaxis, las convenciones y los modismos de un lenguaje y recrearlos en otro. Va más allá de una simple traducción palabra por palabra y trata de captar la intención, la lógica y la estructura del código original.


Sin embargo, la precisión y eficacia de este proceso de traducción dependen en gran medida de la disponibilidad y riqueza del lenguaje de codificación o biblioteca específicos en los datos de entrenamiento de la IA. Por ejemplo, si la IA ha sido entrenada ampliamente en Python y Java, pero ha visto muy poco de un lenguaje menos común como Erlang, puede tener dificultades para generar o traducir con precisión código Erlang.

La calidad de los datos de formación: Un factor crítico

Evan también destacó la importancia de la calidad de los datos de entrenamiento que alimentan los modelos de IA. En Internet abunda el código de calidad variable, y garantizar que el modelo de IA se entrene con código de alta calidad es un reto importante. Se ha observado que pueden producirse soluciones subóptimas: funcionan, pero son demasiado simplistas.

Por ejemplo, pensemos en un modelo de IA generativa entrenado para ayudar a los usuarios a generar consultas SQL. En el pasado, elaborar la consulta SQL correcta requería años de conocimientos especializados, pero ahora, con la ayuda de la IA generativa, cientos de miles de usuarios pueden conseguirlo en cuestión de segundos. Se trata de un avance monumental en la democratización del conocimiento y la capacidad. Este principio puede extenderse más allá de SQL y llegar a herramientas más cotidianas, como Microsoft Excel, o incluso herramientas de Business Intelligence. Se puede ayudar a los usuarios a crear hojas de cálculo, gráficos y cuadros de mando complejos con facilidad y precisión, algo que normalmente exigiría conocimientos y experiencia avanzados.


Sin embargo, si una biblioteca está mal documentada o los datos de entrenamiento de la IA no incluyen ejemplos completos de esa biblioteca, la IA puede producir un código menos preciso o menos funcional. Esta idea es paralela a observaciones más generales realizadas por investigadores de IA: el rendimiento de un modelo de IA depende en gran medida de la riqueza, diversidad y calidad de los datos con los que se ha entrenado.


En esencia, la IA generativa, al igual que los programadores humanos, trabaja mejor con lenguajes y bibliotecas con los que está más familiarizada. Esto subraya la importancia de contar con datos de entrenamiento exhaustivos y de alta calidad para el desarrollo de modelos de IA, además de hacer hincapié en la importancia del entrenamiento y el perfeccionamiento continuos de la IA a medida que surgen nuevos lenguajes y evolucionan los ya existentes. En el gran esquema de las cosas, esto ayuda a mejorar continuamente la capacidad de la IA para ayudar a los usuarios en diversas tareas, mejorando su eficiencia y productividad.

Una nueva era

Las experiencias de Evan con la IA generativa revelan una visión fascinante del inmenso potencial y de los retos inherentes a esta tecnología. A medida que el campo de la IA siga evolucionando, experiencias como estas guiarán su desarrollo, garantizando que se convierta en una herramienta aún más eficaz para resolver problemas del mundo real.

Los modelos generativos de IA, como ChatGPT, han empezado a reducir significativamente la necesidad de cientos de miles de horas de codificación y años de especialización dentro de las bibliotecas tanto para los programadores como para los usuarios finales. Esta transformación representa un salto monumental en la accesibilidad y usabilidad de las aplicaciones de programación.


Un vistazo a las conclusiones de nuestro artículo "ChatGPT y Bard suponen un peligro para los programadores"subraya este punto. Ambos modelos de IA demostraron su capacidad para generar código de forma eficaz, eliminando potencialmente incontables horas de esfuerzo humano de codificación y ofreciendo resultados notables. A medida que estas tecnologías sigan mejorando, podemos esperar un impacto aún mayor en la facilidad y rapidez de las tareas de programación.


La aparición y el desarrollo continuo de la IA generativa podrían marcar el comienzo de una nueva era en el mundo de la programación, caracterizada por la aceleración de la innovación y la inclusión. Al reducir las barreras de entrada y simplificar el proceso de codificación, estos modelos avanzados de IA prometen un futuro en el que la experiencia en codificación ya no sea un requisito previo para crear soluciones digitales. Mientras navegamos por este apasionante futuro, debemos mantenernos al tanto de la rápida evolución de esta tecnología y seguir aprovechando su potencial transformador.

es_ESEspañol