Cómo la IA está cambiando la forma en que programamos

La IA cambia nuestra forma de programar

Evidencia de ChatGPT y Stack Overflow

Foto de Pavel Danilyuk de Pexels

En resumen: En este artículo, encontrarás un resumen de mi última investigación sobre IA y trabajo (explorando el efecto de la IA en la productividad mientras abro la discusión sobre los efectos a largo plazo), un ejemplo de un método cuasi-experimental (Diferencia en Diferencia) ilustrado con ChatGPT y Stack Overflow, y verás cómo puedes extraer datos de Stack Overflow con una simple consulta SQL.

Enlace al artículo científico completo (por favor, cita): https://arxiv.org/abs/2308.11302

Como ocurre con la mayoría de las revoluciones tecnológicas, el lanzamiento de ChatGPT fue acompañado de fascinación y miedo. Por un lado, en tan solo dos meses, con 100 millones de usuarios activos mensuales, la aplicación rompió el récord de la aplicación de consumo de mayor crecimiento en la historia. Por otro lado, un informe de Goldman Sachs afirmó que dicha tecnología podría reemplazar más de 300 millones de empleos en todo el mundo [1]. Además, Elon Musk, junto con más de 1,000 líderes y expertos en tecnología, firmaron una carta abierta instando a una pausa en los desarrollos de IA más avanzados [2].

“Solo podemos ver una corta distancia hacia adelante, pero podemos ver mucho que debe hacerse.” Alan Turing

En línea con la cita de Alan Turing, este artículo no pretende predecir de manera heroica el futuro lejano de la IA y sus impactos. Sin embargo, me enfoco en una de las principales consecuencias observables que nos afecta: cómo la IA está cambiando la forma en que programamos.

El mundo cambió con el nacimiento de ChatGPT. Al menos, como alguien que programa todos los días, mi mundo cambió de la noche a la mañana. En lugar de pasar horas en Google buscando la solución correcta o adentrarme en las respuestas en Stack Overflow y traducir la solución a mi problema exacto con los nombres de variables correctos y las dimensiones de las matrices, simplemente podía preguntarle a ChatGPT. El chatbot no solo me daba una respuesta en un abrir y cerrar de ojos, sino que la respuesta se ajustaba a mi situación exacta (por ejemplo, nombres correctos, dimensiones de los dataframes, tipos de variables, etc.). Quedé impresionado y mi productividad aumentó de repente.

Por lo tanto, decidí explorar el efecto a gran escala del lanzamiento de ChatGPT y su posible efecto en la productividad y, en última instancia, en la forma en que trabajamos. Definí tres hipótesis (Hs) que probé utilizando datos de Stack Overflow.

H1: ChatGPT disminuye el número de preguntas realizadas en Stack Overflow. Si ChatGPT puede resolver problemas de programación en segundos, podemos esperar una disminución de las preguntas en las plataformas de comunidades de programación, donde hacer una pregunta y obtener una respuesta lleva tiempo.

H2: ChatGPT aumenta la calidad de las preguntas realizadas. Si ChatGPT se utiliza ampliamente, las preguntas restantes en Stack Overflow deben estar mejor documentadas, ya que ChatGPT podría haber ayudado previamente.

H3: Las preguntas restantes son más complejas. Podemos esperar que las preguntas restantes sean más desafiantes, ya que potencialmente no podrían ser respondidas por ChatGPT. Por lo tanto, para probar esto, estamos evaluando si aumenta la proporción de preguntas sin respuesta. Además, también estoy probando si cambia el número de visitas por pregunta. Si el número de visitas por pregunta es estable, sería una señal adicional de que la complejidad de las preguntas restantes ha aumentado y que este hallazgo no se debe solo a la actividad reducida en la plataforma.

Para probar esas hipótesis, aprovecharé el lanzamiento repentino de ChatGPT en Stack Overflow. En noviembre de 2022, cuando OpenAI lanzó públicamente su chatbot, no había otras alternativas disponibles (por ejemplo, Google Bard) y el acceso era gratuito (no limitado a suscripción paga como OpenAI ChatGPT 4 o Code Interpreter). Por lo tanto, es posible observar cómo cambió la actividad en la comunidad de programación en línea antes y después del impacto. Sin embargo, a pesar de cuán “limpio” sea este impacto, otros efectos podrían ser confusos y, por lo tanto, cuestionar la causalidad. En particular, la estacionalidad (por ejemplo, las vacaciones de fin de año después del lanzamiento) y el hecho de que cuanto más reciente sea la pregunta, menor será el número de visitas y la probabilidad de encontrar una respuesta.

Idealmente, para mitigar la influencia de posibles variables de confusión persistentes, como la estacionalidad y medir un efecto causal, nos gustaría observar el mundo sin el lanzamiento de ChatGPT, lo cual es imposible (por ejemplo, el problema fundamental de la inferencia causal). Sin embargo, abordaré este desafío aprovechando el hecho de que la calidad de las respuestas de ChatGPT para problemas relacionados con la programación varía de un idioma a otro y utilizaré métodos cuasi-experimentales para limitar el riesgo de otros factores que confundan el efecto (Diferencia en Diferencia).

Para hacerlo, compararé la actividad en Stack Overflow entre Python y R. Python es una elección obvia ya que, posiblemente, es uno de los lenguajes de programación más populares utilizados (por ejemplo, clasificado en primer lugar en el índice de la comunidad de programación de TIOBE). El amplio conjunto de recursos en línea para Python proporciona un conjunto de entrenamiento rico para chatbots como ChatGPT. Ahora, para comparar con Python, elegí R. Python a menudo se cita como el mejor reemplazo para R y ambos están disponibles de forma gratuita. Sin embargo, R es algo menos popular (por ejemplo, en el puesto 16 en el índice de la comunidad de programación de TIOBE) y, por lo tanto, los datos de entrenamiento podrían ser más pequeños, lo que implica un rendimiento inferior por parte de ChatGPT. La evidencia anecdótica confirmó esta diferencia (más detalles sobre el método en la sección de Método). Por lo tanto, R representa un contrafáctico válido para Python (está afectado por la estacionalidad, pero podemos esperar un efecto insignificante de ChatGPT).

Figura 1: El efecto de ChatGPT en el número semanal de preguntas en StackOverflow (figura del autor)

La figura de arriba presenta los datos semanales en bruto. Podemos observar la caída repentina e importante (21,2%) en el número de preguntas realizadas semanalmente en Stack Overflow sobre Python después del lanzamiento de ChatGPT 3.5, mientras que el efecto en R es algo menor (caída del 15,8%).

Estas observaciones ‘cualitativas’ se confirman mediante el modelo estadístico. El modelo econométrico descrito más adelante encuentra una caída estadísticamente significativa de 937,7 (95% CI: [-1232.8,-642.55]; p-value = 0.000) preguntas semanales en promedio para Python en Stack Overflow. El análisis posterior, utilizando el método Diff-in-Diff, revela además una mejora en la calidad de las preguntas (medida en la plataforma mediante una puntuación), junto con un aumento en la proporción de preguntas sin respuesta (mientras que el número promedio de vistas por pregunta parece no haber cambiado). En consecuencia, este estudio proporciona evidencia para las tres hipótesis definidas anteriormente.

Estos hallazgos destacan el papel profundo de la inteligencia artificial en la forma en que trabajamos. Al abordar las consultas rutinarias, la IA generativa permite a las personas canalizar sus esfuerzos hacia tareas más complejas al tiempo que aumenta su productividad. Sin embargo, también se analizan importantes efectos adversos potenciales a largo plazo en la sección de Discusión.

El resto del artículo presentará los Datos y Métodos, luego los Resultados, y cerrará con la Discusión.

Datos

Los datos se han extraído utilizando una consulta SQL en el portal del explorador de datos de Stack Overflow (licencia: CC BY-SA). Aquí está el comando SQL utilizado:

SELECT Id, CreationDate, Score, ViewCount, AnswerCountFROM PostsWHERE Tags LIKE '%<python>%'AND CreationDate BETWEEN '2022–10–01' AND '2023–04–30'AND PostTypeId = 1;

Luego, agregué los datos por semana para reducir el ruido y, por lo tanto, obtuve un conjunto de datos desde el lunes 17 de octubre de 2022 hasta el 19 de marzo de 2023 con información sobre el número de publicaciones semanales, el número de vistas, el número de vistas por preguntas, el puntaje promedio por pregunta y la proporción de preguntas sin respuesta. El puntaje está definido por los usuarios de la plataforma, quienes pueden votar a favor o en contra para indicar si la pregunta muestra “esfuerzo de investigación; es útil y clara” o no.

Método

Para medir un efecto causal, utilizo un modelo de Diferencia en Diferencias, que es un método econométrico que aprovecha generalmente un cambio a lo largo del tiempo y compara una unidad(s) tratada con un grupo no tratado. Para obtener más información sobre este método, puedo recomendarte que leas el capítulo que se refiere a este método en dos libros electrónicos gratuitos: Causal Inference Inference for the Brave and True y Causal Inference: The Mixtape.

En términos simples, el modelo Diff-in-Diff calcula una doble diferencia para identificar un efecto causal. Aquí hay una explicación simplificada. Primero, la idea es calcular dos diferencias simples: la diferencia ‘promedio’ entre el período anterior (antes del lanzamiento de ChatGPT) y posterior para los dos grupos tratados y no tratados (aquí respectivamente preguntas de Python y R). Lo que nos importa es el efecto del tratamiento en las unidades tratadas (aquí es el efecto del lanzamiento de ChatGPT en las preguntas de Python). Sin embargo, como se mencionó anteriormente, podría haber otro efecto aún confundido con el tratamiento (por ejemplo, la estacionalidad). Para abordar este problema, la idea del modelo es calcular una doble diferencia, para verificar cómo la primera diferencia para el grupo tratado (Python) es diferente de la segunda diferencia (diferencia para el grupo de control, R). Como no esperamos ningún efecto del tratamiento (o insignificante) en el grupo de control, mientras que aún está afectado por la estacionalidad, por ejemplo, podemos eliminar este factor de confusión potencial y, en última instancia, medir un efecto causal.

Aquí hay una representación ligeramente más formal.

Primera diferencia para el grupo tratado:

E[Yᵢₜ| Treatedᵢ, Postₜ]-E[Yᵢₜ| Treatedᵢ, Preₜ] = λₜ+β

Aquí i y t se refieren respectivamente al idioma (R o Python) y a la semana. Mientras que “treated” se refiere a las preguntas relacionadas con Python y “Post” se refiere al período en el que ChatGPT estuvo disponible. Esta diferencia simple podría representar el efecto causal de ChatGPT (β) + algún efecto temporal λₜ (por ejemplo, estacionalidad).

Primera diferencia para el grupo de control:

E[Yᵢₜ| Controlᵢ, Postₜ]-E[Yᵢₜ| Controlᵢ, Preₜ] = λₜ

La diferencia simple para el grupo de control no incluye el efecto del tratamiento (ya que no se trata) sino solo el λₜ.

Por lo tanto, la diferencia doble será:

DiD = ( λₜ+β) — λₜ = β

Bajo el supuesto de que los λₜ son idénticos para ambos grupos (supuesto de tendencia paralela, discutido a continuación), la diferencia doble nos permitirá identificar β, el efecto causal.

La esencia de este modelo radica en el supuesto de tendencia paralela. Para afirmar un efecto causal, debemos estar convencidos de que sin ChatGPT, la evolución de las publicaciones en Stack Overflow para Python (tratado) y para R (no tratado) sería la misma en el período de tratamiento (después de noviembre de 2022). Sin embargo, esto es obviamente imposible de observar y, por lo tanto, de probar directamente (ver el Problema Fundamental de la Inferencia Causal). (Si desea obtener más información sobre este concepto y la inferencia causal, consulte mis videos y artículos en Towards Data Science: la Ciencia y el Arte de la Causalidad). Sin embargo, es posible probar si las tendencias son paralelas antes del impacto, lo que sugiere que el grupo de control es un “contrafáctico” potencialmente bueno. Dos pruebas de placebo diferentes realizadas con los datos revelaron que no podemos rechazar el supuesto de tendencia paralela para el período previo a ChatGPT (valores de p de las pruebas respectivamente 0.722 y 0.397 (ver APÉNDICE B en línea)).

Definición formal:

Yᵢₜ = β₀ + β₁ Pythonᵢ + β₂ ChatGPTₜ + β₃ Pythonᵢ × ChatGPTₜ + uᵢₜ

“i” y “t” corresponden respectivamente al tema de la pregunta en Stack Overflow (i ∈ {R; Python}) y a la semana. Yᵢₜ representa la variable de resultado: Número de preguntas (H1), Puntuación promedio de las preguntas (H2) y proporción de preguntas sin respuesta (H3). Pythonᵢ es una variable binaria que toma el valor 1 si la pregunta está relacionada con Python y 0 en caso contrario (relacionada con R). ChatGPTₜ es otra variable binaria que toma el valor 1 desde el lanzamiento de ChatGPT en adelante y 0 en caso contrario. uᵢₜ es un término de error agrupado a nivel de lenguaje de codificación (i).

La esencia de este modelo radica en el supuesto de tendencias paralelas. Para afirmar un efecto causal, debemos estar convencidos de que sin ChatGPT, la evolución de las publicaciones en Stack Overflow para Python (tratado) y para R (no tratado) sería la misma en el período de tratamiento (después de noviembre de 2022). Sin embargo, esto es obviamente imposible de observar y, por lo tanto, de probar directamente (ver el Problema Fundamental de la Inferencia Causal). (Si desea obtener más información sobre este concepto y la inferencia causal, consulte mis videos y artículos sobre la Ciencia y el Arte de la Causalidad). Sin embargo, es posible probar si las tendencias son paralelas antes del impacto, lo que sugiere que el grupo de control es un buen “contrafáctico”. En este caso, dos pruebas de placebo diferentes revelan que no podemos rechazar el supuesto de tendencias paralelas para el período previo a ChatGPT (valores de p de las pruebas respectivamente 0.722 y 0.397 (ver APÉNDICE B en línea)).

Resultados

H1: ChatGPT disminuye el número de preguntas realizadas en Stack Overflow.

Como se presenta en la introducción, el modelo Diff-in-Diff estima una caída estadísticamente significativa de 937.7 (IC 95%: [-1232.8, -642.55]; valor-p = 0.000) preguntas semanales en promedio para Python en Stack Overflow (ver Figura 2 a continuación). Esto representa una caída del 18% en las preguntas semanales.

Figura 2: El efecto de ChatGPT en el número semanal de preguntas (imagen del autor)

H2: ChatGPT aumenta la calidad de las preguntas realizadas.

ChatGPT podría ser útil para responder preguntas (ver H1). Sin embargo, cuando el chatbot no puede resolver el problema, es posible que permita avanzar y obtener más información sobre el problema o algún elemento de la solución. La plataforma nos permite probar esta hipótesis, ya que los usuarios pueden votar por cada pregunta si consideran que “Esta pregunta muestra esfuerzo de investigación; es útil y clara” (aumentar la puntuación en 1 punto) o no (disminuir la puntuación en 1 punto). Esta segunda regresión estima que hay un aumento promedio de 0.07 puntos (95% CI: [-0.0127 , 0.1518]; p-value: 0.095) en la puntuación de las preguntas (ver Figura 3), lo que representa un aumento del 41.2%.

Figura 3: El efecto de ChatGPT en la calidad de las preguntas (imagen del autor)

H3: Las preguntas restantes son más complejas.

Ahora que tenemos algunas pruebas de que ChatGPT es capaz de proporcionar ayuda significativa (resolver preguntas y ayudar a documentar las demás), nos gustaría confirmar que las preguntas restantes son más complejas. Para hacerlo, vamos a analizar dos cosas. En primer lugar, descubro que la proporción de preguntas sin respuesta está aumentando (la falta de respuesta podría ser una señal de que las preguntas son más complejas). Más precisamente, encuentro un aumento de 2.21 puntos porcentuales (95% CI: [0.12, 0.30]; p-value: 0.039) en la proporción de preguntas sin respuesta (ver Figura 4), lo que representa un aumento del 6.8%. En segundo lugar, también encontramos que el número de visualizaciones por pregunta no ha cambiado (no podemos rechazar la hipótesis nula de que no ha cambiado, con un valor de p de 0.477). Esta segunda prueba nos permite descartar parcialmente la explicación alternativa de que hay más preguntas sin respuesta debido a un menor tráfico.

Figura 4: El efecto de ChatGPT en la proporción de preguntas sin respuesta (imagen del autor)

Discusión

Estos hallazgos respaldan la idea de que la inteligencia artificial generativa podría revolucionar nuestro trabajo al encargarse de las preguntas rutinarias, permitiéndonos centrarnos en problemas más complejos que requieren experiencia y aumentando nuestra productividad.

Aunque esta promesa suena emocionante, también hay una cara negativa. En primer lugar, el trabajo de baja calificación podría ser reemplazado por chatbots. En segundo lugar, esta herramienta podría afectar (negativamente) la forma en que aprendemos. Personalmente, veo la programación como andar en bicicleta o nadar: ver videos o seguir clases no es suficiente, tienes que intentarlo y fallar por ti mismo. Si las respuestas son demasiado buenas y no nos obligamos a estudiar, muchas personas podrían tener dificultades para aprender. En tercer lugar, si la cantidad de preguntas en Stack Overflow disminuye, podría reducirse una fuente valiosa para el conjunto de entrenamiento de modelos de inteligencia artificial generativa, lo que afectaría su rendimiento a largo plazo.

Todos estos efectos adversos a largo plazo aún no están claros y requieren un análisis cuidadoso. Déjame saber tu opinión en los comentarios.

[0] Gallea, Quentin. “From Mundane to Meaningful: AI’s Influence on Work Dynamics — evidence from ChatGPT and Stack Overflow” arXiv econ.GN (2023)

[1] Hatzius, Jan. “The Potentially Large Effects of Artificial Intelligence on Economic Growth (Briggs/Kodnani).” Goldman Sachs (2023).

[2] https://www.nytimes.com/2023/03/29/tecnologia/inteligencia-artificial-ia-peligros-musk.html

[3] Bhat, Vasudev, et al. “Min (e) d tus etiquetas: Análisis del tiempo de respuesta de las preguntas en stackoverflow.” 2014 Conferencia Internacional de la IEEE/ACM sobre Avances en el Análisis y la Minería de Redes Sociales (ASONAM 2014). IEEE, (2014)

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

Noticias de Inteligencia Artificial

BIOTRONIK presenta implantes de monitores cardíacos con inteligencia artificial.

BIOTRONIK, un líder reconocido en tecnología de dispositivos médicos implantables, ha implementado con éxito su revol...

Noticias de Inteligencia Artificial

Traje de Realidad Virtual podría ayudarte a 'sentir' cosas en el Metaverso.

Los ingenieros en la ETH Zurich de Suiza construyeron un traje táctil de cuerpo completo para amplificar las experien...

Inteligencia Artificial

¡Gol! El equipo de NVIDIA se lleva el trofeo en Sistemas de Recomendación

Un equipo de cinco expertos en aprendizaje automático de NVIDIA, repartidos en cuatro continentes, ganó las tres tare...

Inteligencia Artificial

Google Research explora ¿Puede la retroalimentación de IA reemplazar la entrada humana para un aprendizaje por refuerzo efectivo en modelos de lenguaje grandes?

La retroalimentación humana es esencial para mejorar y optimizar los modelos de aprendizaje automático. En los último...