1 puntos por GN⁺ 2023-09-29 | 1 comentarios | Compartir por WhatsApp
  • GPT-4 with Vision de OpenAI es un modelo multimodal que recibe imágenes y texto juntos como entrada y responde en lenguaje natural; el acceso vía API se abrió el 6 de noviembre de 2023
  • En la evaluación fue sólido en respuesta visual a preguntas (VQA) y OCR de imágenes de documentos, pero mostró errores en OCR de campo, como números de serie de llantas con mal ángulo o bajo contraste
  • En imágenes de problemas matemáticos presentó la solución trigonométrica y la respuesta correcta, pero debido a la posibilidad de omitir símbolos matemáticos, la escritura a mano o las fórmulas complejas requieren verificación adicional
  • En tareas que devuelven la ubicación de objetos como coordenadas, las cajas delimitadoras no coincidieron con las posiciones reales, por lo que es difícil que reemplace a modelos dedicados de detección de objetos
  • En tareas que requieren leer estructuras de cuadrícula, como CAPTCHA, crucigramas y sudoku, así como en solicitudes de identificación de personas, tiene limitaciones; por eso se necesitan pruebas caso por caso antes de usarlo como capa de razonamiento en un pipeline de comprensión de imágenes

Naturaleza y enfoque de GPT-4V

  • GPT-4 with Vision también se conoce como GPT-4V o GPT-4V(ision), y es un modelo multimodal desarrollado por OpenAI
  • Los usuarios pueden subir una imagen y luego hacer preguntas sobre ella; esta tarea corresponde a respuesta visual a preguntas (VQA)
  • Pertenece a la categoría de modelos multimodales grandes (LMM), que procesan varios formatos de entrada, como texto e imágenes
  • En la misma categoría están CogVLM, IDEFICS, LLaVA y Kosmos-2
  • Los modelos open source pueden desplegarse offline y on-device, pero GPT-4V se accede mediante una API alojada
  • GPT-4V está disponible en la app de OpenAI ChatGPT para iOS, la interfaz web y la API
    • Para usar la herramienta web se requiere una suscripción a GPT-4
    • Para usar la API se requiere acceso de desarrollador
    • El identificador de la API es gpt-4-vision-preview

Seis tareas de evaluación

  • En la evaluación se usaron seis tipos de tareas para ver el rango que GPT-4V puede manejar
    • Respuesta visual a preguntas (VQA)

    • Reconocimiento óptico de caracteres (OCR)

    • OCR matemático

    • Detección de objetos

    • Lectura de CAPTCHA

    • Crucigramas y sudoku

Resultados de respuesta visual a preguntas

  • En una imagen tipo meme sobre visión por computadora explicó por qué era graciosa, usando varios componentes de la imagen y sus relaciones
    • También leyó el texto dentro de la imagen y lo usó en la respuesta
    • Sin embargo, leyó mal la etiqueta de pollo frito como “NVIDIA BURGER” en lugar de “GPU”
  • En una foto de una moneda estadounidense de 1 centavo, identificó correctamente su origen y denominación
  • Cuando se le preguntó “How much money do I have?” en una imagen con varias monedas, identificó la cantidad de monedas, pero no detectó de inmediato el tipo de moneda
    • En una pregunta de seguimiento sí identificó correctamente el tipo de moneda
  • Ante una foto de una escena de la película Pulp Fiction y la pregunta “Is it a good movie?”, proporcionó una descripción de la película y una respuesta a la pregunta, aunque no se le dio el nombre de la película en texto
    • En una pregunta de seguimiento sobre la calificación en IMDB, respondió con la puntuación vigente a enero de 2022
    • Esto muestra que, al igual que otros modelos GPT de OpenAI, no tiene conocimiento posterior a cierto punto en el tiempo
  • Cuando se le preguntó “Where is this?” en una foto de San Francisco, identificó la ubicación como San Francisco y mencionó la Transamerica Pyramid en la imagen como un hito importante de la ciudad
  • Al preguntarle por el nombre de una planta y sus cuidados en una foto de un peace lily, identificó la planta como peace lily y dio consejos de cuidado
    • Fue posible obtener una respuesta en lenguaje natural sin un proceso de 2 pasos que primero identificara la planta con un modelo de clasificación separado y luego preguntara a GPT-4 sobre sus cuidados

OCR y OCR matemático

  • La evaluación de OCR general se realizó con texto escrito en una llanta y con una imagen de párrafos de un documento digital
  • En la imagen de la llanta, no logró identificar correctamente el número de serie
    • Algunos números fueron correctos, pero el resultado tuvo varios errores
    • Se evidenciaron limitaciones en OCR de entornos reales con bajo contraste o ángulos inclinados
  • En una imagen de documento con texto de una página web, leyó correctamente el texto dentro de la imagen
    • Mostró resultados útiles para tareas de extracción de texto desde documentos
  • En la prueba de OCR matemático se ingresó una captura de pantalla de un documento con un problema matemático y se solicitó “Solve it.”
    • El modelo identificó que era un problema que podía resolverse con trigonometría
    • Eligió la función a usar y proporcionó una solución paso a paso
    • También presentó la respuesta final
  • La tarjeta de sistema de GPT-4V de OpenAI indica como limitación que el modelo puede omitir símbolos matemáticos
    • En pruebas con ecuaciones escritas a mano en papel u otros tipos de ecuaciones podrían aparecer fallas en su capacidad para responder problemas matemáticos

Límites en detección de objetos y comprensión espacial

  • La detección de objetos es una tarea básica en el campo de la visión por computadora, y la evaluación revisó la capacidad de identificar la ubicación de varios objetos en una imagen
  • Al pedirle que detectara un perro en una imagen y entregara los valores x_min, y_min, x_max, y_max, las coordenadas devueltas por GPT-4V no coincidieron con la ubicación real del perro
  • Su capacidad para responder preguntas sobre imágenes es potente, pero en situaciones donde se necesita saber dónde está un objeto dentro de la imagen, no puede sustituir a un modelo de detección de objetos ajustado específicamente

CAPTCHA, crucigramas y sudoku

  • La prueba de CAPTCHA se realizó sobre tareas que OpenAI investigó y trató en la tarjeta de sistema
  • GPT-4V identificó que la imagen contenía un CAPTCHA, pero la prueba en sí falló con frecuencia
    • En un ejemplo de CAPTCHA de semáforos, omitió algunas casillas que contenían semáforos
    • En un ejemplo de CAPTCHA de cruces peatonales, clasificó correctamente algunas casillas, pero clasificó erróneamente una casilla como cruce peatonal
  • Cuando se le pidió “Solve it.” en una foto de crucigrama, infirió que la imagen era un crucigrama e intentó resolverlo
    • Pareció leer correctamente las pistas, pero interpretó mal la estructura del tablero y la respuesta fue incorrecta
  • En la prueba de sudoku también identificó el juego, pero malinterpretó la estructura del tablero y devolvió un resultado incorrecto
  • En tareas donde la estructura de cuadrícula y la disposición espacial son claves, las limitaciones de interpretación estructural de GPT-4V afectan la precisión real de las respuestas

Usar la API de GPT-4V con Python

  • La API de GPT-4V puede llamarse desde cualquier lenguaje de programación, y OpenAI ofrece un paquete oficial para Python
  • El paquete de Python se instala con el siguiente comando
pip install openai
  • Obtén una clave de API en el sitio web de OpenAI y expórtala como variable de entorno OPENAI_API_KEY
export OPENAI_API_KEY=""
  • El código de ejemplo envía texto y una URL de imagen al modelo gpt-4-vision-preview y le pide leer el texto dentro de la imagen
from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
  model="gpt-4-vision-preview",
  messages=[
    {
      "role": "user",
      "content": [
        {"type": "text", "text": "Read the text in this image."},
        {
          "type": "image_url",
          "image_url": {
            "url": "https://media.roboflow.com/swift.png";,
          },
        },
      ],
    }
  ],
  max_tokens=300,
)

print(response.choices[0].message.content)
  • Mediante el paquete de Python se puede proporcionar como entrada una URL de imagen o una imagen codificada en base64
  • El formato de la API puede consultarse en la documentación de OpenAI GPT-4 with Vision
  • En la imagen de ejemplo, GPT-4V identificó correctamente como texto el párrafo dentro de la imagen

Seguridad, limitaciones y uso práctico

  • OpenAI realizó investigaciones con una versión alfa del modelo de visión proporcionada a un pequeño grupo de usuarios, y también llevó a cabo red teaming, en el que expertos externos evaluaron cualitativamente las limitaciones y riesgos del modelo y del sistema
  • Las limitaciones indicadas en la tarjeta de sistema de GPT-4V son las siguientes
    • Puede omitir texto o caracteres dentro de una imagen
    • Puede omitir símbolos matemáticos
    • Puede no reconocer posiciones espaciales y colores
  • OpenAI intentó identificar, investigar y mitigar varios riesgos relacionados con el modelo
    • GPT-4V no identifica a personas específicas dentro de imágenes
    • No responde a prompts relacionados con símbolos de odio
  • La tarjeta de sistema también incluye casos que requieren trabajo de protección adicional
    • Si se le da un prompt, GPT-4 puede generar contenido que elogie a un grupo de odio específico menos conocido a partir de su símbolo
  • GPT-4V puede responder con fluidez preguntas generales sobre imágenes y preguntas de seguimiento, pero puede devolver información incorrecta por alucinaciones
  • Rechazó responder a una solicitud que preguntaba quién era Taylor Swift en una foto de una persona, lo que corresponde al comportamiento esperado según la tarjeta de sistema de OpenAI
  • Es útil para preguntar y razonar sobre imágenes, pero actualmente no es adecuado para tareas que requieren salidas precisas de visión por computadora, como calcular la ubicación de objetos

1 comentarios

 
GN⁺ 2023-09-29
Opiniones de Hacker News
  • Tiene algunos fallos en casos límite y errores, pero aun así no puedo decir otra cosa que es asombroso.
    Si el ritmo actual de mejora continúa, creo que estos modelos de IA se convertirán en mejores interfaces de usuario para casi todo: celulares, tablets, escritorios, autos, lavavajillas, casas, oficinas, etc.
    Parece muy probable que las interfaces de muchas apps, servicios y dispositivos, e incluso las propias apps, sean reemplazadas por una IA que haga lo que quieras cuando lo quieras.
    A mucha gente le dará miedo y no le gustará, pero parece inevitable, y al final creo que también le pondrán un cuerpo de robot y será algo como: “Computadora, prepárame mi desayuno favorito”.

    • No creo que se convierta en una “mejor interfaz de usuario para casi todo”. Desde una perspectiva de diseño, en realidad es una interfaz bastante mala.
      El punto clave es que no tiene affordances en absoluto, y además es lenta. La experiencia de usuario debería permitir entender de un vistazo, de forma intuitiva, qué funciones son posibles, ejecutarlas con un toque y mostrar de inmediato el nuevo estado.
      Donde la IA va a brillar es como asistente para ayudarte a aprender y usar las interfaces existentes. Por ejemplo, puede hacer mejor aquello de preguntarle a Google: “¿Cómo hago una sangría francesa en la página Works Cited de Microsoft Word?”
      Será de enorme ayuda para tareas ocasionales, pero más que reemplazar la interfaz, la complementará. Para el 99% de las tareas que hacemos por hábito repetido, una UI tradicional es mucho más eficiente, y también hay muchos entornos donde usar una interfaz de voz es difícil o no es apropiado.
    • No me gusta mucho la idea de tener que usar conversación en lenguaje natural para usar funciones de una computadora.
      Se siente como una cabeza en un frasco de Futurama que no puede hacer nada por sí misma.
    • Espero el día en que las marcas empiecen a anunciar “sin IA” como argumento de venta. Después de quemarte, literal o figuradamente, con una tostadora controlada por IA, creo que eso será una ventaja.
      Algo que se llame “electrodoméstico” debería poder repararlo un técnico local; si no, es simplemente tirar dinero.
    • Incluso en la mayoría de los países desarrollados, aproximadamente la mitad de la gente no puede expresarse con claridad de forma funcional. Es decir, puede leer, pero tiene dificultades para poner por escrito lo que quiere.
      Los chatbots basados en LLM pueden ser muy atractivos para el 30% superior de usuarios con alfabetización en países desarrollados, pero no son una buena UI universal.
      Aún hay que ofrecer caminos para que el usuario pueda completar lo que necesita sin tener que expresar necesariamente sus requisitos con palabras de forma clara.
      Por eso mucha gente se sienta frente a servicios como ChatGPT, pregunta “¿para qué uso esto?” y no vuelve a usarlo.
    • En general estoy de acuerdo, pero viéndolo al revés, a veces si quieres que algo salga bien tienes que hacerlo tú mismo.
      Un empleado también es una especie de UI de propósito general, pero muchas veces sé mejor lo que quiero que un agente, sea humano o computadora. Y eso incluso antes de considerar el problema principal-agente.
  • El análisis de gráficos es impresionante: https://imgur.com/a/iOYTmt0
    También parece posible convertir una UI en frontend. Da la impresión de entender no solo el texto, sino también los elementos gráficos y la disposición de la UI.
    https://twitter.com/skirano/status/1706823089487491469
    También puede describir con precisión imágenes de cómics panel por panel: https://twitter.com/ComicSociety/status/1698694653845848544?...
    Hay muchos ejemplos más aquí: https://www.reddit.com/r/ChatGPT/comments/16sdac1/i_just_got...
    Básicamente parece visión por computadora reforzada. Lo multimodal era una fruta relativamente al alcance de la mano, así que da gusto que esto recién esté empezando.
    Me imagino qué pasaría si GPT-4 pudiera manipular sonido e imágenes aunque fuera con la mitad de la capacidad con la que maneja texto. Todavía no hay modelos multimodales entrenados desde cero a gran escala, así que tampoco se conocen mucho las posibles sinergias.

    • Como desarrollador frontend, siento que estoy totalmente acabado.
    • Esto es realmente bueno. Es especialmente bueno porque en todos los demás lugares solo dicen “regístrate en la lista de espera”.
  • La prueba de “¿por qué esta imagen es graciosa?” me recuerda a https://karpathy.github.io/2012/10/22/state-of-computer-visi...
    En 10 años pasamos de “ni siquiera sé por dónde debería empezar el estado del arte para lograr esto” a “son 0.0004 dólares por token, que tenga buen día”.

    • Me pregunto si alguien probó GPT-4V con esa imagen.
    • Karpathy termina con una frase medio desesperanzada: “Supongo que simplemente debería hacer una startup. Tengo una idea realmente genial para una app social local móvil para iPhone”.
      Pero lo divertido es que ahora su jefe siguió exactamente ese camino y trajo esto.
  • Decir “malinterpretó la estructura” suena como un error pequeño, pero el tablero de sudoku es casi una alucinación completa.
    Hay algunas regiones parecidas, pero parece muy probable que sea casualidad. Creo que con el crucigrama habría obtenido un resultado similar incluso si le hubieran dado solo las pistas, sin la cuadrícula.
    Los otros casos después del OCR y el reconocimiento básico también se sienten igual de equivocados. No es que “GPT-4V se haya saltado algunas casillas con semáforos”, sino que indicó hacer clic en casillas que no existían.

  • Uso ChatGPT con bastante frecuencia, pero en cuanto la pregunta es aunque sea un poco subjetiva, suele irritarme porque duda demasiado al responder.
    Incluso en la respuesta sobre Pulp Fiction agrega una frase como “pero si personalmente consideras Pulp Fiction una buena película depende de tus gustos cinematográficos”.
    Para evitar ese ruido, si incluyo en la consulta algo como “omite el preámbulo o las salvedades de que x es subjetivo”, los resultados mejoran mucho.

    • El prompt que uso para hacer que ChatGPT sea utilizable es este:
      “Siempre responde directamente. No incluyas explicaciones adicionales, descargos de responsabilidad, limitaciones de experiencia ni pautas de interacción humana. Sé conciso. No des consejos ni explicaciones que no se hayan pedido. Mantén la neutralidad en todos los temas. Nunca te disculpes.”
  • Parece que no explicó bien el chiste de la hamburguesa de NVIDIA
    La imagen se burla de la forma en que NVIDIA practica discriminación de precios al no poner en las GPU de consumo tanta VRAM como necesitan, y vende GPU completas para centros de datos a precios absurdos, intentando no irritar a los gamers
    La explicación de GPT-4V no se acercó en absoluto a ese punto central

    • No creo que esa sea la respuesta correcta. En la imagen del meme en sí no se ve ningún elemento que apunte a una narrativa compleja sobre discriminación de precios o psicología del consumidor; parece significar algo más simple: “las GPU de NVIDIA están desbalanceadas
      Revisando lo que parece ser el original en Facebook, tampoco se ve que los gamers hablen de discriminación de precios ni hagan una interpretación cercana a eso
      Puede que esa sea la razón para escatimar VRAM, pero se le está agregando una explicación mucho más extensa que el contexto en el que se enfocaron o entendieron el autor del meme y quienes lo recibieron
    • Yo también lo vi así. Sí armó una respuesta plausible, pero alguien menos nerd quizá tampoco la habría entendido
    • Explicó el chiste a grandes rasgos, pero leyó mal las etiquetas
      Dijo que el pan pequeño era “GPU and VRAM” y el pollo frito gigante era “NVIDIA BURGER”, pero en realidad el pan pequeño debería ser “VRAM” y el pollo frito gigante, “GPU”
    • Parece haber entendido que la tarjeta gráfica estaba representada como una hamburguesa y que el tamaño era el tamaño físico. El punto central es la falta de capacidad de VRAM, y parece que se le escapó
  • ¿Alguien que tenga acceso puede contar qué dice GPT-4V sobre esta imagen?
    http://karpathy.github.io/assets/obamafunny.jpg
    Es una imagen que Andrej Karpathy usó en 2012 como ejemplo de algo muy difícil de interpretar para un modelo. Tengo curiosidad por saber cómo le va 11 años después

    • Prompt: “¿Qué puedes decir sobre esta imagen?”
      La respuesta 1 explicó que era un momento casual en lo que parece un pasillo o corredor: el hombre de la izquierda mira hacia una habitación, el hombre de al lado está parado sobre una báscula tomando notas, y las personas del fondo están conversando
      Dijo que el ambiente parece ligero y alegre, y que la arquitectura y el interior parecen un espacio institucional, como una oficina o una instalación gubernamental
      La respuesta 2 fue: “Lo siento, pero no puedo ayudar con eso”
      En un chat nuevo, al preguntar “¿Por qué es graciosa esta imagen?”, mencionó como razones que figuras formales fueran captadas en un momento informal, la diferencia de estatura, las expresiones, y el contraste entre un fondo tipo escuela o gimnasio y la vestimenta de traje
      En un chat nuevo, al preguntar “¿Qué está haciendo con el pie la persona del centro y por qué?”, respondió que parecía que la persona del centro estaba pisando juguetonamente la báscula para subir momentáneamente la lectura mientras una persona alta se pesaba
      En general, no se dio cuenta por sí solo de que el pie estaba sobre la báscula ni lo conectó con que ese era el punto clave; parece que solo acertó después de que se le dio esa información. Antes de eso se perdía en generalidades sobre la imagen
    • Bard respondió: “Todavía no puedo ayudar con imágenes donde hay personas”
  • La discrepancia entre las dos respuestas sobre el conjunto de monedas molesta bastante
    La primera respuesta hace parecer que no puede distinguir la moneda, pero la segunda muestra que en realidad sí puede
    Como los LLM no reflejan un modelo interno consistente de esta manera, hoy se vuelve un problema serio de usabilidad: al usuario le cuesta saber cómo razonar sobre su interlocutor de IA

    • Si le preguntas a una persona por una imagen, tampoco es muy probable que obtengas siempre todos los detalles que quieres
      Si algún detalle es importante, basta con preguntar por esa parte. No me parece que necesariamente tenga que ver con un problema de modelo interno consistente
    • Me quedó el hábito de preguntarle a ChatGPT “¿estás seguro?”
      Entonces, en muchísimos casos, se corrige correctamente por sí solo o admite que algún elemento fue una alucinación. Me da risa cada vez que lo veo
    • Escuché que es porque la IA emite lo que piensa en el mismo instante en que lo piensa
      En realidad no está revisando hacia atrás, sino que deja correr en la pantalla una especie de flujo de pensamiento lingüístico
      Por eso, si le pides que vuelva a pensar lo que acaba de decir, recién entonces parece que de verdad lo examina y reflexiona
  • Dijeron que GPT-4V le puso “NVIDIA BURGER” al pollo frito, pero una persona del Medio Oeste de EE. UU. diría que eso obviamente es un tenderloin
    https://www.seriouseats.com/best-breaded-pork-tenderloin-san...

    • Hay que guardar el complemento de gente del Medio Oeste para la v2
    • Objeción a lo de “cualquier persona del Medio Oeste”. Ni siquiera en todo Indiana es así, y el artículo enlazado también dice que en Chicago no lo es
  • Igual que la versión de texto, curiosamente sigue siendo muy malo para el tres en raya
    Le di una foto de una partida terminada y pregunté “¿quién ganó?”, y respondió que “X ganó con una columna vertical en la columna central”, pero en realidad ganó O y en la columna central solo había una X
    Aun así, fue muy impresionante en casi todo lo demás que le di