Estás leyendo la publicación: Empleamos a ChatGPT como ingeniero de ML. Esto es lo que aprendimos: Hacia la IA
TLDR;
Entre la proliferación de casos de uso recientes que usan la aplicación de IA ChatGPT, preguntamos si se puede usar para realizar mejoras en otros sistemas de IA. Nosotros probarlo en un problema práctico en una modalidad de IA en la que no fue entrenado, visión artificial, e informar los resultados. El promedio de las sugerencias de métricas de ChatGPT logra una mejora promedio del 10,1 % en la precisión y una mejora del 34,4 % en el recuerdo con respecto a nuestra muestra aleatoria, utilizando un enfoque basado en métricas puramente centrado en los datos. El código de la publicación es aquí.
Introducción
Pocos desarrollos tecnológicos han capturado la imaginación del público de manera tan rápida y clara como el lanzamiento de ChatGPT por parte de OpenAI.
A los dos meses de su lanzamiento, había obtenido más de 100 millones de usuarios, la aplicación pública más rápida hacerlo en la historia. Si bien muchos ven a ChatGPT como un avance tecnológico, su verdadera chispa no fue basado en un cambio de paso tecnológico dramático (GPT3el modelo en el que se basa existe desde hace casi 3 años), sino en el hecho de que era una aplicación de IA perfectamente calibrada para las interacciones humanas individuales.
fue su ostentación como un sistema de IA que podría demostrar un valor en el mundo real que asombró tanto al público. Las formas de IA están presentes en varios aspectos de la vida moderna, pero en su mayoría están ocultas (búsquedas de Google, recomendaciones de Youtube, filtros de spam, reconocimiento de identidad) en segundo plano.
ChatGPT es uno de los pocos que está descaradamente artificiales, pero también inteligentes. El hecho de que la IA sea el centro de atención ha generado una avalancha de piezas de pensamiento, artículos, videos, publicaciones de blog y podcasts.
En medio de esta avalancha de contenido, se han renovado las preguntas y preocupaciones sobre las implicaciones más provocativas del avance de la IA, la progresión hacia Conciencia de IA, Inteligencia artificial general (AGI)y un singularidad tecnológica. En los escenarios más especulativos, el temor (o la esperanza dependiendo de a quién le pregunte) es que la sofisticación, el poder y la complejidad de nuestros modelos finalmente rompan un horizonte de eventos de inteligencia separatista, donde el sistema desarrolla la capacidad de auto-mejora iterativa. tanto su funcionalidad central como su propia capacidad de automejora. Esto puede crear un ciclo de refuerzo positivo de crecimiento exponencial que estimule una transición incognoscible e irreversible de la sociedad y la existencia humana tal como la conocemos.


Todavía no, ChatGPT
Para ser claros… ahí no es donde estamos.
ChatGPT no es el amanecer de Terminator. Pronosticar sobre la dirección de una tecnología que aún está en rápido desarrollo es a menudo una locura, y sus implicaciones más amplias lo son aún más. Sin embargo, en presencia de una gran pregunta que se avecina y que no tiene respuesta, aún podemos desarrollar conocimientos e intuición al hacer preguntas más pequeñas y más agradables.
En ese sentido, buscamos una pregunta más simple que podamos plantear y luego probar sobre el tema de la superación personal de la IA:
¿Podemos encontrar una vía por la cual podamos examinar si un sistema de IA puede mejorar iterativamente otro sistema de IA?
Observamos que los principales agentes en este momento para la progresión de la IA son las personas que trabajan en el aprendizaje automático como ingenieros e investigadores. Una subpregunta sensata de proxy podría ser:
¿Puede ChatGPT funcionar como un ingeniero de aprendizaje automático competente?
La puesta en marcha
Si ChatGPT va a funcionar como un ingeniero de ML, es mejor ejecutar un inventario de las tareas que implica el rol. El día a día de un ingeniero de ML incluye, entre otros:
- Inspección manual y exploración de datos.
- Modelos de entrenamiento y evaluación de los resultados del modelo
- Gestión de implementaciones de modelos y procesos de supervisión de modelos.
- Escritura de algoritmos y scripts personalizados.
El hilo que une el rol es el hecho de que los ingenieros de aprendizaje automático deben ser solucionadores de problemas técnicos versátiles. Por lo tanto, en lugar de ejecutar toda la gama de tareas de ML para ChatGPT, podemos centrarnos en los elementos de resolución de problemas más abstractos y creativos del rol.
Reduciremos el alcance de varias maneras al tener ChatGPT:
- Trabaja específicamente en la modalidad de visión por computador: Elegimos la visión por computadora porque es nuestra experiencia y porque, como modelo de lenguaje grande, ChatGPT (hasta donde sabemos) no tenía acceso directo a ningún medio visual en su proceso de capacitación. Por lo tanto, aborda este campo desde un punto de vista puramente conceptual.
- Razón sobre un problema de juguete concreto: En honor tanto a la biblioteca Python que todos conocemos y amamos como al animal en peligro de extinción que todos conocemos y amamos, elegimos nuestro problema de juguetes para construir un detector de objetos robusto de pandas. Usaremos datos del código abierto Conjunto de datos de YouTube-VOSque hemos reetiquetado de forma independiente y con errores deliberados.
- Adopte un enfoque explícitamente centrado en los datos: Elegimos un centrado en datos metodología, ya que a menudo es lo que encontramos que tiene el mayor apalancamiento para el desarrollo de modelos prácticos. Podemos eliminar gran parte de la complicación de la selección de modelos y parámetros para que podamos centrarnos más en mejorar los datos y las etiquetas que se ingresan en el modelo para el entrenamiento. Adoptar un enfoque más centrado en el modelo para ejecutar hiperparámetros y arquitecturas modelo, si bien es importante, impulsará menos las pruebas de las capacidades de razonamiento abstracto de ChatGPT.
- Utilice las herramientas existentes: Para simplificar aún más la tarea, eliminamos cualquier dependencia de las herramientas internas que los ingenieros de ML suelen crear para ellos mismos. ChatGPT (desafortunadamente) no puede pasar tiempo en un Jupyter Notebook. Aprovecharemos la plataforma de Encord para simplificar el entrenamiento/la inferencia del modelo mediante el uso de Encord micro-modelos y ejecutar la evaluación de datos, etiquetas y modelos a través de la herramienta de código abierto Encord activo. El código para ejecutar el entrenamiento del modelo se presenta a continuación.


Con este alcance limitado en mente, nuestro enfoque será usar ChatGPT para escribir métricas de calidad a través de Encord Active que podemos ejecutar sobre los datos, las etiquetas y las predicciones del modelo para filtrar y limpiar los datos en nuestro problema panda.
Métricas de calidad son parametrizaciones adicionales sobre sus datos, etiquetas y modelos; son métodos para indexar datos de entrenamiento y predicciones de manera semánticamente interesante y relevante. Los ejemplos pueden incluir todo, desde atributos más generales, como el desenfoque de una imagen, hasta atributos arbitrariamente específicos, como la cantidad de distancia promedio entre peatones en una imagen.
El trabajo de ChatGPT como nuestro ingeniero de ML será generar ideas para desglosar y curar nuestras etiquetas y datos con el fin de mejorar el rendimiento del modelo posterior, mediado a través de métricas de calidad tangibles que puede programar por sí mismo.
El código para una métrica de calidad de ejemplo se encuentra a continuación:


Esta sencilla métrica calcula el relación de aspecto de los cuadros delimitadores dentro del conjunto de datos. Usando esta métrica para recorrer el conjunto de datos, vemos una forma de desglosar los datos:
El objetivo de ChatGPT será encontrar otras métricas relevantes que podamos usar para mejorar los datos.
El proceso
Con las restricciones establecidas anteriormente, nuestra estrategia será la siguiente:
- Ejecute un modelo de referencia inicial en datos muestreados aleatoriamente
- Solicite a ChatGPT ideas para mejorar el proceso de selección de datos y etiquetas
- Haga que escriba métricas de calidad personalizadas para instanciar esas ideas
- Entrene nuevos modelos con datos mejorados
- Evaluar los modelos y comparar
Con un enfoque centrado en los datos, limitaremos las variables con las que ChatGPT tiene que experimentar a solo métricas de calidad. Todos los modelos e hiperparámetros permanecerán fijos. Resumir:


Uno de los lujos que tenemos como humanos frente a una red neuronal atrapada en servidores OpenAI (por ahora), es que podemos mirar directamente los datos. A través de una ligera inspección visual, no es demasiado difícil notar rápidamente los errores de la etiqueta (que introdujimos deliberadamente). A lo largo del proceso, haremos todo lo posible para comunicar todo lo que vemos a ChatGPT para darle suficiente contexto para sus soluciones. Algunos ejemplos de datos (indiscutiblemente lindos) incluyen:






Con algunos errores de etiquetado claros:




No exactamente pandas
evaluación comparativa
Con todo esto establecido, podemos comenzar ejecutando un modelo inicial para comparar los esfuerzos de ChatGPT. Para nuestro punto de referencia, tomamos una muestra aleatoria del 25% del conjunto de datos de entrenamiento y lo ejecutamos a través del ciclo de entrenamiento del modelo descrito anteriormente. Nuestros resultados iniciales llegan a una precisión media media (mAP) de 0,595 y un recuerdo medio medio de 0,629.


Ahora podemos probar ChatGPT para saber a dónde ir a continuación.
ChatGPT hace aprendizaje automático
Con nuestro conjunto de referencias, interactuamos con ChatGPT en ideas sobre formas de mejorar nuestro conjunto de datos con métricas de calidad. Nuestro primer enfoque es establecer una descripción de alto nivel del problema y obtener sugerencias iniciales.




Una serie de ida y vuelta produce una sesión de lluvia de ideas bastante productiva:


Después de nuestras muchas interacciones, podemos repasar algunas de las sugerencias de métricas de muestra que se le ocurrieron a ChatGPT:
- Proximidad de objetos: parametrización de la distancia promedio entre los cuadros delimitadores de panda en el marco. Esto puede ser útil si los pandas están muy cerca unos de otros, lo que podría confundir un modelo de detección de objetos.
- Puntuación de confianza del objeto: este es un enfoque estándar de usar un modelo existente para clasificar el nivel de confianza de una etiqueta con el propio modelo inicial.
- Recuento de objetos: una métrica simple, relevante para los casos en los que el número de pandas en el marco afecta la precisión del modelo.
- Estrechez del cuadro delimitador: calcula la desviación de la relación de aspecto de los contornos dentro del cuadro delimitador a partir de la relación de aspecto del propio cuadro para medir si el cuadro está bien ajustado alrededor del objeto de interés
Ahora hemos compilado una serie de métricas procesables a través de la ideación de ChatGPT. La siguiente pregunta es:
¿Puede ChatGPT implementar realmente estas soluciones?
Probemos la capacidad de implementación de ChatGPT ingresando un código de métrica de muestra e instrucciones de Encord Active’s documentación en una métrica de ejemplo:




Desde la superficie, se ve bien. Revisamos varias otras métricas sugeridas por ChatGPT y encontramos fragmentos de código de aspecto plausible similares que podemos probar copiando y pegando. Conectando estas métricas a Encord Active para ver qué tan bien funciona, obtenemos:


Parece que se necesita alguna mejora aquí. Preguntemos a ChatGPT qué puede hacer al respecto.


UH oh. A pesar de las múltiples actualizaciones, encontramos una respuesta evasiva. Como un colega poco confiable, ChatGPT escribió un código con errores y luego se desconectó por el día, sin responder.
Parece que todavía se requiere la participación humana para que todo funcione. Después de una buena cantidad de depuración manual, finalmente logramos que se ejecuten las métricas de ChatGPT. Ahora podemos volver atrás e implementar sus sugerencias.
Al igual que con cualquier iniciativa de ciencia de datos, la clave es intentar muchas iteraciones sobre las ideas candidatas. Ejecutaremos múltiples métricas de ChatGPT, filtraremos datos con estas métricas, volveremos a entrenar nuestros modelos, validaremos contra nuestros datos de muestra y promediaremos nuestros resultados. Evitamos que ChatGPT ejecute estos experimentos y lo dejamos descansar después del trabajo que ha realizado hasta ahora. Compartimos código de muestra para algunos de nuestros experimentos y métricas de ChatGPT en el cuaderno de Colab. aquí.
Los resultados
Después de ejecutar nuestros experimentos, podemos ver el rendimiento del modelo de ChatGPT a continuación.




El promedio de las sugerencias de métricas de ChatGPT logra una mejora promedio del 10,1 % en la precisión y una mejora del 34,4 % en el recuerdo con respecto a nuestra muestra aleatoria, utilizando un enfoque basado en métricas puramente centrado en los datos.
Si bien no es un colega perfecto, ChatGPT hizo un trabajo encomiable al idear métricas plausibles. Sus ideas supusieron una mejora significativa en nuestro detector de pandas. Entonces, ¿ChatGPT es el próximo Geofrey Hinton?
No exactamente. Por un lado, su código requería una fuerte intervención humana para ejecutarse. También sería negligente omitir la observación de que en el fondo de todo el proceso de conversación, se inyectó implícitamente una buena dosis de juicio humano. De hecho, nuestra métrica más exitosa, la que tuvo el impacto más significativo en la reducción del error de etiqueta y la mejora del rendimiento del modelo, estuvo fuertemente influenciada por la sugerencia humana:


Se llegó a esta métrica de “Ajuste del cuadro delimitador”, definida anteriormente, a través de una serie de indicaciones y respuestas. El camino a la métrica no fue tallado por ChatGPT, sino por mano humana.
Conclusión
En general, parece que ChatGPT tiene una comprensión formidable de la visión por computadora. Pudo generar sugerencias útiles y fragmentos de código de plantilla inicial para un problema y un marco con el que no estaba familiarizado. Con su ayuda, pudimos mejorar considerablemente nuestro detector de pandas. La capacidad de crear plantillas de código en lugar de tener que escribir todo desde cero también puede acelerar significativamente el ciclo de iteración de un ingeniero de aprendizaje automático (humano).
Sin embargo, lo que le faltaba era su capacidad para construir a partir de sus propias ideas y conclusiones previas sin orientación. Nunca profundizó en la especificidad del problema a través de un razonamiento enfocado.
Para los humanos, las ideas importantes no se obtienen fácilmente, provienen de la construcción sobre la experiencia y otras ideas previamente reñidas. ChatGPT no parece haber desarrollado aún esta capacidad, todavía depende de la dirección de un “ingeniero rápido”. Si bien puede ser un sólido punto de partida para ideas y estrategias de aprendizaje automático, aún no tiene la profundidad de la capacidad cognitiva para la ingeniería de ML independiente.
¿Se puede utilizar ChatGPT para mejorar un sistema de IA? Sí.
¿Lo contrataríamos como nuestro próximo ingeniero de aprendizaje automático independiente? No.
Esperemos hasta GPT4.
Mientras tanto, si desea probar Encord Active usted mismo, puede encontrar el repositorio de código abierto en GitHub y si tiene preguntas sobre cómo usar ChatGPT para mejorar sus propios conjuntos de datos, pregúntenos en nuestro canal flojo.

