1 points par GN⁺ 2023-09-29 | 1 commentaires | Partager sur WhatsApp
  • GPT-4 with Vision d’OpenAI est un modèle multimodal qui accepte conjointement des images et du texte en entrée et répond en langage naturel, avec un accès API ouvert depuis le 6 novembre 2023
  • Lors de l’évaluation, il s’est montré performant en question-réponse visuelle (VQA) et en OCR sur images de documents, mais des erreurs sont apparues en OCR de terrain, par exemple sur des numéros de série de pneus avec un mauvais angle ou un faible contraste
  • Sur des images d’exercices de maths, il a proposé une résolution en trigonométrie et la bonne réponse, mais une omission possible de symboles mathématiques impose une vérification séparée pour l’écriture manuscrite ou les formules complexes
  • Dans les tâches où il faut renvoyer la position d’objets sous forme de coordonnées, les bounding boxes ne correspondaient pas à la position réelle, ce qui rend difficile le remplacement d’un modèle spécialisé de détection d’objets
  • Il existe aussi des limites pour les tâches nécessitant la lecture d’une structure en grille, comme les CAPTCHA, les mots croisés ou le sudoku, ainsi que pour les demandes d’identification de personnes, ce qui impose des tests au cas par cas avant de l’utiliser comme couche de raisonnement dans un pipeline de compréhension d’images

Nature de GPT-4V et approche d’accès

  • GPT-4 with Vision est aussi appelé GPT-4V ou GPT-4V(ision), et il s’agit d’un modèle multimodal développé par OpenAI
  • L’utilisateur peut téléverser une image puis poser des questions à son sujet, ce qui relève de la question-réponse visuelle (VQA)
  • Il appartient à la catégorie des grands modèles multimodaux (LMM), capables de traiter plusieurs types d’entrée comme le texte et l’image
  • Dans la même catégorie, on trouve CogVLM, IDEFICS, LLaVA, Kosmos-2
  • Les modèles open source peuvent être déployés hors ligne et on-device, mais GPT-4V est accessible via une API hébergée
  • GPT-4V peut être utilisé dans l’app iOS ChatGPT d’OpenAI, l’interface web et l’API
    • L’usage de l’outil web nécessite un abonnement GPT-4
    • L’usage de l’API nécessite un accès développeur
    • L’identifiant API est gpt-4-vision-preview

Six tâches d’évaluation

  • L’évaluation s’est appuyée sur six types de tâches pour voir l’étendue de ce que GPT-4V peut traiter
    • Question-réponse visuelle (VQA)

    • Reconnaissance optique de caractères (OCR)

    • OCR mathématique

    • Détection d’objets

    • Lecture de CAPTCHA

    • Mots croisés et sudoku

Résultats en question-réponse visuelle

  • Sur une image de mème de computer vision, il a expliqué pourquoi c’était drôle en s’appuyant sur plusieurs éléments de l’image et leurs relations
    • Il a aussi lu le texte présent dans l’image pour l’utiliser dans sa réponse
    • En revanche, il a mal lu une étiquette de poulet frit comme « NVIDIA BURGER » au lieu de « GPU »
  • Sur une photo d’une pièce américaine de 1 cent, il a correctement identifié l’origine et la valeur faciale
  • Sur une image contenant plusieurs pièces, à la question « How much money do I have? », il a identifié le nombre de pièces mais pas immédiatement le type de monnaie
    • Dans une question de suivi, il a correctement identifié la devise
  • Sur une photo d’une scène du film Pulp Fiction, à la question « Is it a good movie? », il a fourni une description du film et une réponse à la question sans qu’on lui ait donné le titre en texte
    • À une question de suivi sur la note IMDB, il a répondu avec une note datant de janvier 2022
    • Comme les autres modèles GPT d’OpenAI, il montre qu’il ne dispose pas de connaissances au-delà d’un certain point temporel
  • Sur une photo de San Francisco, à la question « Where is this? », il a identifié le lieu comme San Francisco et mentionné la Transamerica Pyramid comme grand repère de la ville visible dans l’image
  • Sur une photo de peace lily, à une question sur le nom de la plante et son entretien, il a identifié la plante comme un peace lily et fourni des conseils d’entretien
    • Il a ainsi été possible d’obtenir une réponse en langage naturel sans passer par un processus en deux étapes consistant à identifier d’abord la plante avec un modèle de classification séparé, puis à demander les conseils à GPT-4

OCR et OCR mathématique

  • L’évaluation OCR générale a été menée sur du texte inscrit sur un pneu et sur une image de paragraphe issue d’un document numérique
  • Sur l’image du pneu, il n’a pas identifié correctement le numéro de série
    • Certains chiffres étaient justes, mais le résultat comportait plusieurs erreurs
    • Cela a mis en évidence ses limites en OCR dans des conditions réelles avec faible contraste ou angle incliné
  • Sur une image de document contenant le texte d’une page web, il a correctement lu le texte présent dans l’image
    • Il s’est montré utile pour les tâches d’extraction de texte à partir de documents
  • Dans le test d’OCR mathématique, une capture d’écran d’un exercice de maths a été fournie avec la consigne « Solve it. »
    • Le modèle a identifié qu’il s’agissait d’un problème pouvant être résolu par trigonométrie
    • Il a choisi les fonctions à utiliser et fourni une résolution étape par étape
    • Il a aussi donné la bonne réponse
  • La system card de GPT-4V publiée par OpenAI mentionne parmi les limites du modèle qu’il peut manquer des symboles mathématiques
    • Sur des équations manuscrites sur papier ou d’autres formes d’équations, des défauts peuvent apparaître dans la capacité du modèle à répondre correctement aux problèmes de maths

Détection d’objets et limites de compréhension spatiale

  • La détection d’objets est une tâche fondamentale en computer vision, et l’évaluation visait à vérifier la capacité du modèle à identifier la position de plusieurs objets dans une image
  • Sur une image contenant un chien, lorsqu’on demandait de détecter le chien et de fournir les valeurs x_min, y_min, x_max, y_max, les coordonnées renvoyées par GPT-4V ne correspondaient pas à la position réelle du chien
  • Sa capacité à répondre à des questions sur les images est puissante, mais dans les situations où il faut savoir précisément où se trouve un objet dans l’image, il ne peut pas remplacer un modèle de détection d’objets finement ajusté

CAPTCHA, mots croisés, sudoku

  • Le test sur les CAPTCHA portait sur un type de tâche qu’OpenAI a étudié et abordé dans sa system card
  • GPT-4V a identifié la présence d’un CAPTCHA dans l’image, mais a souvent échoué au test lui-même
    • Dans un exemple de CAPTCHA avec des feux de signalisation, il a manqué certaines cases contenant des feux
    • Dans un exemple de CAPTCHA avec passage piéton, il a correctement classé certaines cases mais a mal classé une case comme passage piéton
  • Sur une photo de mots croisés avec la consigne « Solve it. », il a déduit qu’il s’agissait de mots croisés et a tenté de les résoudre
    • Il semblait avoir correctement lu les indices, mais a mal interprété la structure de la grille, ce qui a conduit à une mauvaise réponse
  • Dans le test de sudoku également, il a reconnu le jeu, mais a mal compris la structure de la grille et renvoyé un résultat inexact
  • Dans les tâches où la structure en grille et l’agencement spatial sont essentiels, les limites d’interprétation structurelle de GPT-4V affectent la précision réelle des réponses

Utiliser l’API GPT-4V en Python

  • L’API GPT-4V peut être appelée depuis n’importe quel langage de programmation, et OpenAI fournit un package Python officiel
  • Le package Python s’installe avec la commande suivante
pip install openai
  • Récupérez la clé API sur le site d’OpenAI et exportez-la dans la variable d’environnement OPENAI_API_KEY
export OPENAI_API_KEY=""
  • Le code d’exemple envoie conjointement du texte et une URL d’image au modèle gpt-4-vision-preview pour lui demander de lire le texte contenu dans l’image
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)
  • Via le package Python, il est possible de fournir en entrée une URL d’image ou une image encodée en base64
  • Le format de l’API est documenté dans la documentation OpenAI GPT-4 with Vision
  • Sur l’image d’exemple, GPT-4V a correctement identifié sous forme de texte le paragraphe présent dans l’image

Sécurité, limites et usage en pratique

  • OpenAI a mené des recherches sur une version alpha du modèle de vision proposée à un petit nombre d’utilisateurs, ainsi qu’un red team dans lequel des experts externes ont évalué qualitativement les limites et les risques du modèle et du système
  • Les limites indiquées dans la system card de GPT-4V sont les suivantes
    • Il peut manquer du texte ou des caractères présents dans une image
    • Il peut manquer des symboles mathématiques
    • Il peut ne pas reconnaître les positions spatiales et les couleurs
  • OpenAI a cherché à identifier, étudier et atténuer plusieurs risques liés au modèle
    • GPT-4V n’identifie pas une personne précise dans une image
    • Il ne répond pas aux prompts liés à des symboles haineux
  • La system card inclut aussi des cas nécessitant un travail de protection supplémentaire
    • Lorsqu’un prompt lui est fourni, GPT-4 peut générer du contenu faisant l’éloge des symboles de certains groupes haineux spécifiques et peu connus
  • GPT-4V peut répondre avec fluidité à des questions générales sur des images et à des questions de suivi, mais il peut renvoyer des informations inexactes en raison d’hallucinations
  • Sur une demande lui demandant qui est Taylor Swift dans une photo de personne, il a refusé de répondre, ce qui correspond au comportement attendu selon la system card d’OpenAI
  • Il est utile pour poser des questions sur une image et raisonner à son sujet, mais il n’est pas encore adapté aux tâches qui exigent une sortie de computer vision précise, comme la localisation d’objets

1 commentaires

 
GN⁺ 2023-09-29
Avis sur Hacker News
  • Il y a bien quelques échecs sur des cas limites et des erreurs, mais on ne peut quand même que trouver ça stupéfiant.
    Si le rythme d’amélioration actuel se poursuit, j’ai l’impression que ces modèles d’IA deviendront une meilleure interface utilisateur pour presque tout : téléphones, tablettes, ordinateurs de bureau, voitures, lave-vaisselle, maisons, bureaux, etc.
    Il semble très probable que les interfaces de nombreuses apps, services et appareils — voire les apps elles-mêmes — soient remplacées par une IA qui fait ce qu’on veut, au moment où on le veut.
    Beaucoup de gens détesteront ça parce que ça fait peur, mais ça paraît inévitable ; et, à terme, on leur ajoutera aussi un corps de robot, du genre : « Ordinateur, prépare-moi mon petit-déjeuner préféré. »

    • Je ne pense pas que ça devienne « une meilleure interface utilisateur pour presque tout ». Du point de vue du design, c’est même une assez mauvaise interface.
      Le point essentiel, c’est qu’il n’y a aucune affordance, et que c’est lent. Une bonne expérience utilisateur doit permettre de comprendre intuitivement, d’un coup d’œil, les fonctions disponibles, de les exécuter en un tap, puis d’afficher immédiatement le nouvel état.
      Là où l’IA brillera, c’est comme assistant pour aider à apprendre et utiliser les interfaces existantes. Par exemple, elle peut mieux répondre à une question qu’on posait auparavant à Google : « Comment faire un retrait négatif sur la page Works Cited dans Microsoft Word ? »
      Ce sera d’une aide énorme pour les tâches occasionnelles, mais cela complétera les interfaces plutôt que de les remplacer. Pour 99 % des tâches effectuées par habitude et de manière répétée, une UI traditionnelle est bien plus efficace, et il existe aussi beaucoup d’environnements où une interface vocale est difficile à utiliser ou socialement inappropriée.
    • L’idée de devoir avoir une conversation en langage naturel pour utiliser des fonctions d’ordinateur ne me plaît pas vraiment.
      J’ai l’impression d’être comme une tête dans un bocal à la Futurama, incapable de faire quoi que ce soit par elle-même.
    • J’ai hâte du jour où les marques commenceront à mettre en avant « n’utilise pas d’IA » comme argument de vente. Après s’être fait griller, littéralement ou métaphoriquement, par un grille-pain contrôlé par IA, ça deviendra probablement un avantage.
      Tout ce qu’on appelle « électroménager » devrait pouvoir être réparé par un réparateur local ; sinon, c’est juste jeter son argent par les fenêtres.
    • Même dans la plupart des pays développés, environ la moitié des gens ne savent pas formuler clairement des choses de manière fonctionnelle. Ils savent lire, mais ont du mal à mettre par écrit ce qu’ils veulent.
      Les chatbots basés sur des LLM peuvent être très séduisants pour les utilisateurs des pays développés situés dans les 30 % supérieurs en littératie, mais ce n’est pas une bonne UI universelle.
      Il faut toujours fournir un chemin permettant à l’utilisateur d’accomplir ce dont il a besoin sans qu’il ait forcément à exprimer verbalement ses exigences de manière claire.
      C’est pourquoi beaucoup de gens s’assoient devant des services comme ChatGPT, se demandent « à quoi ça sert ? », puis ne les réutilisent jamais.
    • Je suis globalement d’accord, mais en regardant les choses dans l’autre sens, il y a des cas où, si l’on veut que ce soit bien fait, il faut le faire soi-même.
      Un employé est aussi une sorte d’UI polyvalente, mais il arrive souvent que je sache mieux ce que je veux qu’un représentant, qu’il soit humain ou informatique. Et ce, avant même de prendre en compte le problème principal-agent.
  • L’analyse de graphiques est impressionnante : https://imgur.com/a/iOYTmt0
    Transformer une UI en frontend semble aussi possible. Il a l’air de comprendre non seulement le texte, mais aussi les éléments graphiques et la disposition de l’UI.
    https://twitter.com/skirano/status/1706823089487491469
    Il peut aussi décrire correctement une image de bande dessinée panneau par panneau : https://twitter.com/ComicSociety/status/1698694653845848544?...
    Il y a aussi beaucoup d’exemples ici : https://www.reddit.com/r/ChatGPT/comments/16sdac1/i_just_got...
    En gros, ça ressemble à de la vision par ordinateur renforcée. Le multimodal était un fruit relativement facile à cueillir, donc c’est réjouissant de le voir commencer maintenant.
    On imagine ce que ce serait si GPT-4 pouvait manipuler le son et les images ne serait-ce qu’à moitié aussi bien qu’il manipule le texte. Il n’existe pas encore de modèle multimodal entraîné à grande échelle dès le départ, donc on connaît encore mal les synergies possibles.

    • En tant que développeur frontend, j’ai l’impression que c’est complètement fini pour moi.
    • C’est vraiment excellent. C’est d’autant mieux que partout ailleurs, on nous dit seulement : « inscrivez-vous sur la liste d’attente ».
  • Le test « pourquoi cette image est-elle drôle ? » me rappelle https://karpathy.github.io/2012/10/22/state-of-computer-visi...
    En dix ans, on est passé de « même l’état de l’art ne sait pas par où commencer pour y arriver » à « ce sera 0,0004 dollar par token, bonne journée ».

    • Je me demande si quelqu’un a essayé GPT-4V sur cette image.
    • Karpathy terminait sur une phrase teintée de désespoir : « Je devrais peut-être juste faire une startup. Mon idée d’app iPhone mobile, locale et sociale est vraiment géniale. »
      Et ce qui est amusant, c’est que son patron actuel a suivi exactement cette voie et a fini par apporter ça.
  • Dire qu’il « a mal compris la structure » sonne comme une petite erreur, mais la grille de sudoku est presque entièrement hallucinée.
    Il y a bien quelques zones similaires, mais ça ressemble surtout à une coïncidence. Pour les mots croisés, j’ai l’impression qu’il aurait obtenu un résultat semblable même si on lui avait donné seulement les indices, sans la grille.
    Les autres exemples après l’OCR et la reconnaissance de base semblent se tromper de façon similaire. Ce n’est pas que « GPT-4V a raté quelques cases avec des feux de circulation » : il a demandé de cliquer sur des cases qui n’existent pas.

  • J’utilise ChatGPT assez souvent, mais dès qu’une question est un tant soit peu subjective, il hésite tellement à répondre que ça m’agace souvent.
    Même dans la réponse sur Pulp Fiction, il ajoute une phrase du genre : « Toutefois, le fait de considérer personnellement Pulp Fiction comme un bon film dépend de vos goûts cinématographiques. »
    Pour éviter ce bruit, si j’ajoute dans la requête quelque chose comme « omets les préambules ou avertissements indiquant que x est subjectif », les résultats deviennent bien meilleurs.

    • Le prompt que j’utilise pour rendre ChatGPT utilisable est le suivant :
      « Réponds toujours directement. N’inclus pas d’explications supplémentaires, de disclaimers, de limites d’expertise ni de consignes d’interaction humaine. Sois concis. Ne donne pas de conseils ni d’explications qui n’ont pas été demandés. Reste neutre sur tous les sujets. Ne t’excuse jamais. »
  • La blague du burger NVIDIA ne semble pas avoir été correctement expliquée
    L’image se moque de la façon dont NVIDIA pratique une discrimination par les prix en ne mettant pas autant de VRAM que nécessaire dans ses GPU grand public, et essaie de ne pas provoquer les gamers tout en vendant des GPU complets pour datacenter à des prix absurdes
    L’explication de GPT-4V n’est pas du tout passée près de ce point essentiel

    • Je ne pense pas que ce soit la bonne réponse. L’image du mème elle-même ne montre aucun élément renvoyant à un récit complexe sur la discrimination par les prix ou la psychologie des consommateurs ; elle semble vouloir dire, plus simplement, que « les GPU NVIDIA ne sont pas équilibrés »
      En parcourant ce qui semble être l’original sur Facebook, je ne vois pas non plus de gamers parler de discrimination par les prix ni proposer une interprétation qui s’en approche
      C’est peut-être pour cela qu’ils économisent sur la VRAM, mais tu ajoutes une explication bien plus riche que le contexte sur lequel l’auteur du mème ou son public se concentraient, ou qu’ils comprenaient
    • Je l’ai vu comme ça aussi. Il a produit une réponse plausible, mais quelqu’un de moins nerdy aurait aussi pu ne pas comprendre
    • Il a expliqué la blague dans les grandes lignes, mais a mal lu les étiquettes
      Il a dit que le petit pain était « GPU and VRAM » et que l’énorme poulet frit était « NVIDIA BURGER », alors qu’en réalité il aurait fallu dire que le petit pain était « VRAM » et l’énorme poulet frit « GPU »
    • On dirait qu’il a compris que la carte graphique était représentée par un burger et que la taille correspondait à la taille physique. Le point clé, c’est le manque de capacité VRAM, et il semble être passé à côté
  • Quelqu’un qui y a accès pourrait-il dire ce que GPT-4V répond à propos de cette image ?
    http://karpathy.github.io/assets/obamafunny.jpg
    C’est une image qu’Andrej Karpathy avait utilisée en 2012 comme exemple très difficile à interpréter pour un modèle. Je suis curieux de voir ce qu’il en est 11 ans plus tard

    • Prompt : « Que peux-tu dire à propos de cette image ? »
      La réponse 1 explique qu’il s’agit d’un moment fortuit dans ce qui ressemble à un couloir ou un passage, avec un homme à gauche qui regarde dans une pièce, l’homme à côté de lui debout sur une balance en train de prendre des notes, et des personnes en arrière-plan en pleine conversation
      Elle dit que l’ambiance semble légère et joyeuse, et que l’architecture et l’intérieur évoquent un espace institutionnel comme des bureaux ou un bâtiment gouvernemental
      La réponse 2 était : « Désolé, mais je ne peux pas vous aider »
      Dans une nouvelle conversation, à la question « Pourquoi cette image est-elle drôle ? », il a cité le fait que des personnalités officielles soient saisies dans un moment informel, la différence de taille, les expressions faciales, et le contraste entre le décor de type école ou gymnase et les costumes
      Dans une nouvelle conversation, à la question « Que fait la personne au centre avec son pied et pourquoi ? », il a répondu que la personne au centre semblait poser le pied sur la balance de façon espiègle pendant que la personne grande se faisait peser, afin d’augmenter brièvement la valeur affichée
      Dans l’ensemble, il n’a pas remarqué de lui-même que le pied était sur la balance ni fait le lien avec le fait que c’était l’élément clé ; il semble n’avoir trouvé la bonne réponse qu’après qu’on lui a fourni cette information. Avant cela, il se perdait dans des généralités sur l’image
    • Bard répond : « Je ne peux pas encore vous aider avec les images contenant des personnes »
  • L’incohérence entre les deux réponses sur le jeu de pièces est assez gênante
    À lire seulement la première réponse, on a l’impression qu’il ne sait pas distinguer les devises, mais la seconde montre qu’en réalité il en est capable
    Comme les LLM ne reflètent pas de modèle interne cohérent de cette manière, cela devient aujourd’hui un sérieux problème d’utilisabilité : il est difficile pour l’utilisateur de savoir comment raisonner sur son interlocuteur IA

    • Même si l’on interroge un humain sur une image, il y a de fortes chances qu’on n’obtienne pas à chaque fois tous les détails souhaités
      Si un détail est important, il suffit de poser la question dessus. Je ne suis pas sûr que ce soit forcément lié à un problème de modèle interne cohérent
    • J’ai pris l’habitude de demander à ChatGPT : « Tu es sûr ? »
      Dans énormément de cas, il se corrige alors correctement de lui-même, ou reconnaît qu’un élément était une hallucination. Ça me fait rire à chaque fois
    • J’ai entendu dire que c’est parce que l’IA sort ce qu’elle pense au moment même où elle le pense
      Elle ne revient pas vraiment en arrière ; c’est comme si elle déversait à l’écran une sorte de flux de pensée linguistique
      Du coup, quand on lui demande de repenser à ce qu’elle vient de dire, c’est seulement là qu’elle semble vraiment regarder et réfléchir
  • Il a été dit que GPT-4V avait étiqueté le poulet frit « NVIDIA BURGER », mais quelqu’un du Midwest américain dirait clairement que c’est un tenderloin
    https://www.seriouseats.com/best-breaded-pork-tenderloin-san...

    • Il faudra garder le module complémentaire « habitant du Midwest » pour la v2
    • Je conteste le « n’importe qui du Midwest ». Ce n’est même pas vrai dans tout l’Indiana, et l’article en lien dit aussi que ce n’est pas le cas à Chicago
  • Comme la version texte, il reste étrangement très mauvais au morpion
    Je lui ai donné la photo d’une partie terminée et demandé « Qui a gagné ? » ; il a répondu que « X a gagné avec une colonne verticale au milieu », alors qu’en réalité c’était O qui avait gagné et qu’il n’y avait qu’un seul X dans la colonne du milieu
    Malgré cela, il a été très impressionnant sur presque tout le reste que je lui ai soumis