Por: Roberto Juárez
Última actualización:
Ésta versión del Generative Pre-trained Transformer (GPT) desarrollada por OpenAI con el enfoque a ser un chatbot, es una herramienta basada en una inteligencia artificial que ha asombrado a bastantes, y no es para menos, es una herramienta increíble pero no es más que eso, una herramienta y aquí veremos el porqué.
Ya había otro, GitHub Copilot.
GitHub Copilot se puede decir que es el primo cercano de chatGPT, ambos son productos de la adaptación de la versión 3 de GPT, sin embargo el primero estaba orientado a generar código a través de comentarios en nuestro programa o completar funciones con base en el nombre y un poco de documentación y el segundo es un chatbot.
GitHub Copilot lanzada oficialmente el 21 de Junio de 2022, cuando dejó de estar en pruebas y se hizo un servicio de suscripción aunque desde que estaba en etapas de testing hay quienes vieron el nacimiento de ésta herramienta como que los desarrolladores iban a realizar menos tareas o incluso empezar a desaparecer… lo cierto es que no hay nada más lejano a la realidad y las posiciones del área de tecnología sin cubrir va en aumento.
¿Qué hacía mal GitHub Copilot?
Aunque ayuda en muchas cosas rutinarias como complementar bloques y agregar test unitarios (quien no haga ésto rutina, pues debería), a veces el código que generaba eran cosas que simplemente no eran posibles tecnológicamente o eran un sinsentido, y cuando era código útil, resultaba ser inseguro según este documento publicado en el IEEE del 2022.
En fin, a la hora de resolver el problema pues simplemente no era capaz de resolverlo.
Otras herramientas
También hay otras herramientas no tan ambiciosas como lo es chatGPT, por ejemplo excelformulabot que casi como su nombre lo dice, crea una fórmula de excel a partir de lo que le pides o AI2sql que genera consultas (o queries) a bases de datos con algún lenguaje de consulta, sin embargo también tienen sus problemas y es que los resultados son lo que le pides y no necesariamente esa es la solución o la implementación no es la adecuada o eficiente.
Los problemas de ChatGPT
Las inteligencias artificiales, por construcción, están diseñadas para generalizar y te dan la respuesta que estadísticamente es la más probable, sin embargo, aunque cada negocio tiene sus reglas generales también puedo decir que cada negocio es único y por consiguiente también tiene sus problemas particulares, y así como cuando tu vas al estacionamiento y buscas un auto, aunque todos tienen 4 ruedas y volante, solo tú sabes cual es tu auto. Algo similar le pasa a éste tipo de algoritmos: pueden dar con una visión general de la solución, pero probablemente nunca den con la solución específica.
ChatGPT fue baneado de Stackoverflow
La tasa de aciertos para los problemas que se planteaban en la red social más grande para solucionar problemas de programación es tan baja que los mismos de Stackoverflow decidieron prohibir las respuestas generadas por ChatGPT, pues atenta contra la reputación del sitio al no ofrecer solución real a los usuarios que dia con dia los buscan. Hubo quienes postearon soluciones autogeneradas con el fin de obtener interacciones son sus posts que aparentemente eran correctas pero al ponerse a prueba por otro usuario en realidad no lo eran causando descontento.
¿Por qué la necesidad de seguir contando con personas especializadas?
A pesar de plantear algunos de los problemas más evidentes que cometen este tipo de inteligencias artificiales, ahora dejaremos algunas cosas que generalmente no pueden resolver ni entender por sí mismas:
No saben la implementación final
Si a alguien le ha parecido lógico que si el compilador ya sabe dónde está el error, pues de paso que lo soluciones por sí mismo, pues están en un error y es porque el compilador no sabe la implementación final de lo que será una vez sin ese error y a la vez estará modificando el intento real de lo que se quiere lograr, puedes leer esta entrada en quora al respecto. Así mismo, la inteligencia artificial no sabe qué fin tendrá lo que se le pide y no lo puede optimizar para tal.
Falta de contexto
Al igual que un Jr cuando propone que hay que migrar todo a microservicios o que una nueva feature queda en 4 horas, quizá tenga la habilidad de resolver el problema, pero su visión es tan acotada que no ve hasta donde impacta o todo lo que en realidad está relacionado para llegar a la solución real o la implementación de lo que se está proponiendo.
Por suerte conforme pasa el tiempo las personas pueden aprender del negocio y que además, no solo dependes de tu infraestructura tecnológica sino también de las personas involucradas, ya sean empleados o usuarios.
Falta de especialización
Quizá a una persona inexperta le pueda parecer que hace cosas increíbles, pero para alguien con mayor experiencia se puede dar cuenta que el código generado resulta altamente riesgoso que acabe en producción.
Así como existen generadores de páginas como wix.com, éstos no son utilizados en aplicaciones de alta demanda por tener un desempeño realmente bajo, además, querer reutilizar plantillas generadas en alguna herramienta de éste estilo resulta poco eficiente pues generalmente hay que realizar una refactorización completa de todo, por lo que a veces solo es usan para maquetados de mediana fidelidad. Lo mismo con ChatGCP, su falta de expertise y sensibilidad crea soluciones no muy viables.
No es escalable
Como ya mencioné antes, poner código de esa calidad es peligroso en producción por falta de eficiencia y seguridad. Suele no seguir un estándar específico por lo que dar mantenimiento será una ardua tarea pues la mayoría de variables que genera están hardcodeadas imposibilitando crear más funciones alrededor de dicho código. Además que el análisis de tiempo de ejecución, estructura de datos y los patrones de diseño a implementar se pasan de largo.
Difícil de corregir
Quizá el mayor miedo de un dev es quedarse con la app legacy, pues puede que haya algo peor: quedarse la app legacy generada por inteligencia artificial. Muchas veces corregir o mejorar aplicaciones mal desarrolladas es complicado, pero al menos funcionan correctamente y aunque hay manos inexpertas en general se trata de seguir un standard interno. Pues bueno, como su alimento proviene de fuentes públicas pues en realidad no se sigue un solo estándar lo que complica aún más las cosas.
Nadie entiende al cliente
Dicen que lo difícil de programar es que la computadora hace lo que le pides y no lo que quieres.
Ahora imagina que no saben ni lo que quieren… Si alguna vez tuviste que lidiar con algún cliente sabrás que a veces es complicada la interacción por la falta de entendimiento entre ambas partes, pues los lenguajes a veces no son compatibles.
Si no te ha tocado interactuar directamente con el cliente, imagina cuán difícil puede llegar a ser entenderlos que existen posiciones como Product Manager que están para entender las necesidades del cliente y traducirlas en tareas que los desarrolladores puedan realizar.
Conclusiones
Aunque ChatGPT es una herramienta genial el código que produce es altamente inseguro e ineficiente y que difícilmente logra dar con alguna solución exacta a un problema complejo, además que ésta herramienta carece de la mayor parte del contexto en que el código terminará y es tarea de alguien especializado refinar todos esos detalles.
Así que buenas noticias, no es el fin de los devs así como tampoco lo fue GitHub Copilot, ni Wix el fin de los Desarrolladores web, ni AutoML fue el fin de los data scientist, ni WolframAlpha el fin de los matemáticos e ingenieros.
Todas son herramientas de apoyo o alternativas tecnológicas que pueden ayudarnos (o no) con algunos enfoques en nuestras tareas rutinarias y a dar norte en alguno que otro problema sencillo.
Roberto Juárez
Software and Data Engineer
He tomado proyectos end-to-end tanto centrados en datos como de desarrollo web, me gusta siempre estar estudiando de todo que hasta me involucro en cosas de UX y una que otra negociacion con los clientes. En la parte de datos estoy presente en todas las etapas del proceso entre ellos la extracción, procesamiento, limpieza y análisis de datos hasta la presentación y representación de éstos hasta lograr ofrecer una historia o tableros que den insights relevantes a áreas de marketing, catálogo y precios y así facilitar la toma decisiones basadas en datos. En la parte web estoy desde que se gesta la idea hasta que termina (o no) en producción.