ChatGPT, el peor pasante de verano de todos los tiempos
Cuando trabajaba en la industria farmacéutica, tuve la oportunidad de contratar pasantes de verano. Esto fue hace mucho tiempo, lo suficiente como para que los jóvenes estudiantes universitarios que solicitaron el puesto probablemente ahora estén acercándose a la edad de jubilación. La idea, tal como la entendí, era conseguir que alguien me ayudara con mi proyecto, que en ese momento consistía en montar un sistema de captura de datos distribuido con una gran cantidad de nodos, todos ejecutando software personalizado que escribí, informando a una central. servidor ejecutando más de mi código. Era más trabajo del que podía manejar por mi cuenta, así que la gerencia pensó que se apiadarían de mí y me conseguirían ayuda.
La experiencia no resultó como esperaba. Los dos pasantes eran chicos fantásticos, muy inteligentes y aprendí mucho de ellos. Pero dos meses es un plazo muy ajustado y ponerlos al día tomó la mayor parte de ese tiempo. Agregue el hecho de que se esperaba que hicieran una presentación sobre su proyecto específico al final del verano, y todo terminó siendo mucho más trabajo para mí que si hubiera hecho todo el proyecto yo mismo.
Pensé en mi breve experiencia con pasantes recientemente con un proyecto en el que necesitaba un poco de ayuda. No es nada que tenga sentido contratar a alguien, pero aún así, tener a alguien a quien subcontratar trabajos específicos sería una bendición, especialmente ahora que es verano y hay mucho más que hacer. Pero este es el futuro, y la experiencia y la sabiduría combinadas de Internet están a sólo unas pocas teclas de distancia, ¿verdad? Bueno, tal vez, pero como verás, incluso el poder de los grandes modelos de lenguaje tiene su límite, y tratar de incorporar ChatGPT como pasante de verano de bajo esfuerzo deja mucho que desear.
La tarea específica para la que necesitaba ayuda era simple: un pestillo en la puerta automática de mi gallinero. Es mejor no decir los detalles de por qué necesito esto, pero diré que el pestillo es mi intento de lidiar con la cruel ecuación "11 pollos + 1 mapache = 8 pollos". La primera parte del pestillo que tenía en mente era un soporte simple, algo con dos brazos que se elevaban desde una base y que podía fijarse a la puerta del gallinero (una lámina de aluminio de 2 mm). Este soporte soportará un brazo con resorte para enganchar una barra transversal en el marco de la puerta del gallinero y, con suerte, evitará que cualquier cosa con pequeñas garras inteligentes y gusto por el pollo para llevar trabaje debajo del borde inferior de la puerta corrediza y entre. la cooperativa.
Por mi experiencia con Fusion 360, sabía que sería bastante fácil crear un par de bocetos, extruir los brazos desde la base, perforar algunos agujeros y ordenar las cosas con los chaflanes y filetes adecuados. El problema con esto es que me mudé a Linux hace bastantes años, por lo que Fusion 360 no es realmente una opción viable. Sí, sé que existen soluciones alternativas que utilizan Wine o VM, pero tampoco me interesa jugar en la nube de Autodesk. Por supuesto, también existe FreeCAD; de hecho, justo antes de este proyecto había empezado a jugar con él, pero todavía estoy en la primera parte de la curva de aprendizaje y todavía no soy muy productivo con él.
Sin embargo, este último punto llega al meollo de la cuestión. Cuando estaba aprendiendo Fusion 360, descubrí que rápidamente me di cuenta de que perfeccionar el modelo 3D era mentalmente más importante para mí que lo que estaba diseñando. Pasaba horas haciendo que todo estuviera bien, sólo para descubrir que algo no encajaba del todo o que tenía alguna restricción incorrecta y tenía que empezar todo de nuevo. Tengo todas las expectativas de que mi mente tratará a FreeCAD exactamente de la misma manera, no como un medio para un fin sino como el fin mismo. Es una pendiente resbaladiza, especialmente cuando hay tantas cosas más que tengo que hacer.
Fue entonces cuando se me ocurrió la idea de subcontratar mi diseño a alguien (o algo) más. Crédito donde corresponde; Se me ocurrió la idea de contratar ChatGPT después de ver el proyecto La-Tecnologia.io de [ROFLhoff] sobre la reparación de un velocímetro Toyota roto. El proyecto requería una perilla para hacer girar fácilmente el sensor de velocidad que impulsa el velocímetro para realizar pruebas en banco. Con solo una breve descripción de la pieza necesaria, [ROFLhoff] pudo solicitar a ChatGPT que generara código OpenSCAD para crear un modelo de perilla.
Pensé que era bastante hábil y decidí hacer lo mismo. El grupo parecía el mejor lugar para comenzar, así que le di a ChatGPT el siguiente mensaje:
Sé que no fui muy específico (no dije a qué distancia de las esquinas deberían estar los orificios de montaje, por ejemplo), pero pensé que era algo que podría modificar más adelante. Y además, cuando le entregas un trabajo a un subordinado, deberías poder describir vagamente lo que quieres y dejar que lo haga. ¿Bien?
Quizás no, porque esto es lo que obtuve de ChatGPT:
Ahora bien, es importante señalar que en ese momento tenía incluso menos experiencia con OpenSCAD que con FreeCAD. Y por menos me refiero a cero: nunca antes había usado OpenSCAD. Entonces, el código que creó ChatGPT no significó mucho para mí. Pero seguro que parecía razonable, especialmente para alguien que se ganaba la vida codificando: podía ver todos los parámetros en la parte superior como constantes, los cálculos utilizados para determinar dónde colocar los brazos y la creación de los agujeros cilíndricos. Pero no tenía idea de qué era la traducción y realmente no podía ver cómo se perforarían los agujeros en la base.
Aunque, estrictamente hablando, ese no era mi problema. En el mundo ideal, simplemente copiaría el código generado por IA en OpenSCAD y obtendría un modelo 3D listo para modificar, ¿verdad? Quizás, pero en el mundo basado en la realidad no tuve tanta suerte. El código que generó ChatGPT no funcionó en OpenSCAD; simplemente arrojó un error de sintaxis en la línea 21. Le conté a ChatGPT sobre el error y pedí que lo arreglaran, pero el código que me devolvieron fue esencialmente el mismo y arrojó el mismo error. Decepcionante.
En este punto, pensé que tenía dos opciones: seguir jugando con el mensaje de ChatGPT o comenzar a aprender lo suficiente sobre OpenSCAD para descubrir qué estaba haciendo mal ChatGPT. A fin de cuentas, esta última parecía la ruta más inteligente, así que esa fue la forma en que seguí. Rápidamente se hizo evidente que ChatGPT no tenía la más mínima idea de cómo programar OpenSCAD; por ejemplo, observe la completa falta de comandos de diferencia(), que son necesarios para hacer los agujeros, a partir del código generado por IA. Esto me llevó al mismo agujero que estaba tratando de evitar, y pasé algunas horas aprendiendo suficiente OpenSCAD para hacer el trabajo yo mismo:
Por supuesto, mi código OpenSCAD tiene tanto el soporte como el pestillo, pero incluso teniendo en cuenta la complejidad adicional, siento que el primer paso de ChatGPT para hacer lo que quería fue, en el mejor de los casos, mediocre. Este es el punto en el que me di cuenta de que ChatGPT se estaba comportando como un pasante de verano serio y ansioso por complacer, pero algo despistado. Dadas las mismas instrucciones, un pasante de este tipo podría pasar unas horas buscando en Google cómo hacer el trabajo, tal vez presionando StackExchange o r/openscad para obtener ayuda y creando algún código que pensó que haría el trabajo. Que ni siquiera se molestaron en ver si OpenSCAD interpretaría el código sería motivo para una Stern Talking-To™ con un pasante de Meatspace; pero con un pasante virtual ¿qué recurso tenía?
Honestamente, aunque no recibí la ayuda mágica de ChatGPT que esperaba, este experimento de diseño asistido por IA no fue una pérdida total. El código original puede haber sido una mierda, pero al menos me dio la impresión de que la programación OpenSCAD no era un territorio completamente desconocido para mí; Por muy defectuoso que fuera, pude ver que es solo una combinación de codificación y modelado 3D, y lo suficientemente intuitivo como para intentarlo. Así que ahora sé lo suficiente sobre OpenSCAD como para que sea peligroso, todo gracias a ChatGPT, el peor pasante de verano de todos los tiempos.
Y en cuanto al pestillo de la puerta del gallinero, ese proyecto tomó una dirección completamente diferente una vez que me di cuenta de que podía hacer el soporte y el pestillo con láminas de aluminio dobladas, lo que me obligó a aprender no solo FreeCAD sino también el banco de trabajo de chapa metálica. Entonces ChatGPT en realidad me obligó a caer en dos madrigueras que esperaba evitar.