Programadores en la Era de los Modelos Grandes

Programmers in the Age of Large Models

El siguiente video muestra un fragmento del flujo de trabajo diario del desarrollador de Apache SeaTunnel, ayudado por Co-Pilot. Si aún no has adoptado herramientas como Co-Pilot, ChatGPT o modelos a gran escala privados para la asistencia en el desarrollo, es posible que te encuentres rápidamente superado por la industria en los próximos cinco años. Aquellos que tienen habilidades para aprovechar la programación impulsada por la IA pueden acelerar su velocidad de desarrollo diez veces en comparación con aquellos que no poseen esta habilidad. No es una exageración: después de leer esto, es probable que tengas una perspectiva completamente nueva sobre cómo la IA mejora la eficiencia del desarrollo.

Disrupción de la formación tradicional de programadores junior con modelos a gran escala: habilidades y experiencia potenciadas

En el pasado, a los programadores junior se les asignaban tareas por parte de mentores, se les enseñaban enfoques básicos y luego se les guiaba y corregía a medida que escribían código. Aprendían a través de la experiencia y la orientación, adquiriendo gradualmente habilidades.

Sin embargo, la llegada de los modelos a gran escala ha transformado por completo este proceso. Los modelos a gran escala poseen un amplio conocimiento e incluso algunas capacidades rudimentarias de razonamiento. Han pasado por innumerables prácticas, aprendiendo diversos códigos y definiciones empresariales dentro de una empresa. Los escenarios que han enfrentado superan con creces los enfrentados por los mentores en su momento. Proporcionan respuestas potenciales basadas en los requisitos y objetivos de los desarrolladores.

Es como tener un “mentor” omnisciente disponible a tu disposición, capaz de generar código instantáneamente para tu referencia y aprendizaje. Después de aprender y ajustar, un programador junior puede enviar código que supere su nivel de habilidad individual, listo para su revisión por pares.

Entonces, ¿por qué no utilizar modelos a gran escala para aumentar nuestra eficiencia de desarrollo?

Cómo utilizar modelos a gran escala para la programación asistida

Las herramientas comunes incluyen ChatGPT, Co-Pilot y modelos a gran escala privados.

Métodos diferentes son aplicables según el escenario de programación:

Es evidente que los humanos son los más adecuados para la arquitectura desafiante e innovadora o el código de nuevos escenarios empresariales. Para algoritmos reutilizados o similares, el uso de Co-Pilot puede mejorar rápidamente la eficiencia. ChatGPT se puede emplear para generar código en escenarios similares con modificaciones menores. Los modelos a gran escala privados son adecuados para escenarios donde la seguridad de los datos y el código es crucial, y donde es importante la familiaridad del modelo con el conocimiento empresarial, lo que requiere un ajuste fino.

Uno podría argumentar que no todas las empresas pueden permitirse modelos a gran escala privados. Sin embargo, esto es un error. No necesariamente tienes que entrenar un modelo privado completamente nuevo. Para la mayoría de las empresas, optimizar (ajustar) un modelo a gran escala de código abierto existente para comprender el contexto de tu negocio es suficiente. Este proceso solo requiere 1-2 tarjetas gráficas (por ejemplo, 3090/4090) y unas pocas horas de configuración.

El uso de modelos a gran escala privados puede facilitar directamente lo siguiente:

  • Fácil acceso a las características de software deseadas.
  • Navegación eficiente de manuales y reglas de usuario complejos.
  • Programación asistida, Txt2SQL, mejora de la eficiencia de los programadores de datos.

Aprovechar los modelos a gran escala privados para la asistencia en la programación está más cerca de lo que crees. Si aún tienes dudas sobre la era de la automatización impulsada por la IA en la programación, considera el siguiente ejemplo de cómo un proyecto de código abierto utiliza la IA para mejorar la eficiencia de desarrollo.

Ejemplo de programación automatizada impulsada por modelos a gran escala: Apache SeaTunnel

La visión de Apache SeaTunnel es “Conectar todo, sincronizar tan rápido como un rayo.” Este ambicioso objetivo tiene como objetivo conectar todas las fuentes de datos en el mercado, incluidas bases de datos, software como servicio (SaaS), middleware y BinLogs, logrando una sincronización óptima. Esto es una tarea imposible para cualquier empresa individual y, incluso, los humanos luchan por lograrlo en medio de miles de opciones de software SaaS y interfaces en constante cambio. Entonces, ¿cómo diseñó el equipo principal detrás de Apache SeaTunnel este software en la era de la IA? La estructura general se muestra en el siguiente diagrama:

En primer lugar, el motor computacional principal está diseñado específicamente para la sincronización. A diferencia de Flink o Spark, se centra en la utilización eficiente de la memoria, la CPU y el ancho de banda, y garantiza la consistencia de los datos, aspectos que carecen de referencias existentes. En consecuencia, la mayor parte del código no se toma prestado, sino que es desarrollado directamente por los ingenieros principales, con aportes y mejoras continuas de expertos de todo el mundo para mantenerse al día con la tecnología de vanguardia.

En segundo lugar, los conectores principales de la base de datos, como el Conector Iceberg, son implementaciones complejas que priorizan tanto la precisión como la eficiencia de transmisión de datos. Si bien aún dependen principalmente de la experiencia humana, pueden aprovechar códigos existentes y prácticas basadas en la nube, con Co-Pilot como herramienta de apoyo. Los modelos a gran escala ayudan complementando los algoritmos convencionales y reutilizando fragmentos de código, como se muestra en el video introductorio.

Ante un vasto mar de interfaces SaaS, con más de 5000 solo en el sector de MarTech, la integración manual no es factible. El equipo principal de SeaTunnel ideó una estrategia: abstraer más de una docena de interfaces que los humanos habían codificado previamente, colaborando con ChatGPT para convertirlas en dos interfaces capaces de producir un código elegante. ChatGPT puede comprender la documentación de las interfaces SaaS y generar directamente fragmentos de código relevantes. Dentro de SeaTunnel, esta característica se conoce como “Compatibilidad de IA”, facilitando la colaboración entre la IA y los humanos. Es una especie de “conciliación” entre programadores e IA, asegurando que cada uno contribuya en lo que el otro sobresale.

Esta característica fue lanzada en Apache SeaTunnel 2.3.1. Sin embargo, como proyecto de código abierto en constante evolución, aún tiene margen de mejora. Dada la naturaleza abierta del código, es probable que más entusiastas ajusten y automatizen esta característica. Por ejemplo, he oído hablar de un desarrollador que planea crear un GPT Coder que monitorea problemas de SaaS en GitHub, utiliza ChatGPT para generar código y envía solicitudes de extracción automáticamente, llevando la colaboración humano-bot al extremo.

Desafíos de la programación automatizada impulsada por modelos grandes

Aunque ChatGPT, Co-Pilot y otras herramientas similares mejoran la programación, no son invencibles. Hay varios desafíos a considerar al generar código con modelos grandes:

  • Preocupaciones de precisión.
  • Incapacidad para realizar revisiones de código.
  • Capacidad limitada para pruebas automatizadas.
  • Falta de responsabilidad.

Los modelos grandes aún pueden cometer errores y esto probablemente seguirá siendo lo normal por algún tiempo, incluso ChatGPT4 puede generar código con un 90% de precisión. Por lo tanto, es crucial simplificar el proceso de generación de código, ya que generar código incorrecto es un peligro potencial. Después de la generación rápida de código por parte de modelos grandes, la revisión de código humano puede tener dificultades para mantenerse al día, ya que las máquinas no pueden verificar si el código final implementa correctamente la lógica empresarial. Intentar realizar revisiones de código utilizando modelos grandes revela una multitud de mejoras aparentemente importantes pero, en última instancia, triviales, lo que dificulta la evaluación de la corrección lógica.

Además, las pruebas automatizadas y la generación de casos de prueba siguen siendo aspectos desafiantes para los modelos grandes. Si bien TestPilot se discute activamente en círculos académicos (consulte los artículos de Cornell sobre el tema), su aplicación a nivel de ingeniería sigue siendo distante.

Por último, está el problema de la responsabilidad, un desafío filosófico más que técnico. Incluso con una tasa de precisión del 90% para ChatGPT, y mucho menos una hipotética del 99.9999%, ¿confiarías en él para calcular automáticamente la nómina de toda la empresa e iniciar transferencias salariales directas con los bancos? Si surge un problema, ¿quién es responsable? No todos los desafíos empresariales se pueden resolver con tecnología, y lo mismo se aplica a los modelos grandes.

Perspectivas futuras

Actualmente nos encontramos en las primeras etapas de la programación automatizada impulsada por modelos grandes. Muchos desarrolladores todavía están experimentando con Co-Pilot y ChatGPT, y la mayoría de los programadores aún no han utilizado modelos grandes privados para aumentar la eficiencia de la codificación en función del contexto de su empresa. Sin embargo, en los próximos 3-5 años, la asistencia automatizada en la programación sin duda se convertirá en una herramienta fundamental para nuestra generación de desarrolladores:

  • Los modelos grandes fundamentales reducirán la brecha con ChatGPT, mejorando la usabilidad.
  • Los modelos grandes de código abierto mejorarán la precisión y el rendimiento, lo que resultará en un ROI mejorado para más empresas que adopten modelos grandes privados.
  • El umbral para la automatización impulsada por modelos grandes disminuirá, con la aparición de más herramientas para el entrenamiento democratizado de modelos grandes, más allá de Apache DolphinScheduler.
  • La conciencia sobre la programación automatizada impulsada por modelos grandes aumentará entre los gerentes técnicos, lo que llevará a adaptaciones en los procesos de gestión técnica.
  • En medio del ciclo económico actual, aprovechar los modelos grandes para mejorar la eficiencia se vuelve imperativo.

Por lo tanto, en los próximos años, si tu proceso de desarrollo se limita a operaciones CRUD y no puedes aprovechar los modelos grandes para amplificar tu experiencia y comprensión empresarial en 10 o 100 veces, es posible que no necesites esperar hasta los 35 años para ser reemplazado por programadores expertos en la programación con modelos grandes. Una vez que hayan escalado por un factor de 10, es posible que te encuentres entre los nueve que se quedan atrás.

Aunque esto puede sonar un poco alarmista, la tendencia hacia la automatización impulsada por modelos grandes en la programación es una fuerza imparable. Soy solo un explorador novato en el ámbito de la programación automatizada impulsada por modelos grandes, y creo que muchos gerentes técnicos y arquitectos se unirán a la ola de automatización impulsada por modelos grandes, iterando y optimizando continuamente la relación entre humanos y modelos grandes dentro del campo del desarrollo. En última instancia, esta sinergia hará que los programadores, la IA y los procesos de desarrollo técnico sean más efectivos al servicio de las empresas.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

IA Generativa en la Salud

Introducción La inteligencia artificial generativa ha ganado repentinamente tracción en los últimos años. No es sorpr...

Aprendizaje Automático

AI Ve lo que tú Ves Mind's Eye es un Modelo de IA que Puede Reconstruir Escaneos Cerebrales en Imágenes.

Desde hace tiempo, nos ha intrigado el desafío de entender cómo funciona nuestro cerebro. El campo de la neurociencia...

Inteligencia Artificial

Generación mejorada por recuperación (RAG) De la teoría a la implementación de LangChain

Ejemplo de implementación de Generación con Recuperación Aumentada (RAG) en Python con LangChain, OpenAI y Weaviate

Inteligencia Artificial

Investigación en Stanford presenta PointOdyssey un conjunto de datos sintético a gran escala para el seguimiento de puntos a largo plazo

Los conjuntos de datos anotados a gran escala han servido como una autopista para crear modelos precisos en varias ta...

Inteligencia Artificial

Descifrando la regulación génica con Deep Learning Un nuevo enfoque de IA para entender el empalme alternativo

El empalme alternativo es un proceso fundamental en la regulación génica, que permite que un solo gen produzca múltip...

Ciencias de la Computación

Algoritmo encuentra esperma en hombres infértiles más rápido y con mayor precisión que los médicos.

La herramienta identifica instantáneamente el esperma, luego deja al embriólogo decidir si el esperma está realmente ...