PropTest: Automatic Property Testing for Improved Visual Programming
publication

PropTest: Automatic Property Testing for Improved Visual Programming

Jaywon Koo, Ziyan Yang, Paola Cascante-Bonilla, Baishakhi Ray, Vicente Ordonez.
Conf. on Empirical Methods in Natural Language Processing. EMNLP 2024 (Findings).
Rubrique actualités du laboratoire

Résumé du communiqué de presse

Cette section est volontairement rédigée dans le style d'un communiqué de presse, sur un ton journalistique, à destination du grand public.

Des chercheurs de Rice University et de Columbia University ont mis au point une méthode appelée PropTest qui améliore la fiabilité des systèmes d'IA résolvant des tâches de raisonnement visuel en écrivant du code informatique. Ces systèmes de « programmation visuelle » fonctionnent en utilisant de grands modèles de langage pour générer des programmes Python qui répondent à des questions sur des images, comme l'identification d'objets ou la réponse à des questions en plusieurs étapes, mais ils produisent fréquemment du code qui s'exécute sans planter tout en donnant malgré tout une mauvaise réponse à cause d'une logique défaillante. PropTest remédie à cela en empruntant une vieille idée à l'ingénierie logicielle : écrire les tests avant d'écrire le code. Plus précisément, le système incite d'abord un modèle de langage à générer de courts cas de test qui vérifient les propriétés attendues de la réponse — par exemple, vérifier que le résultat est une chaîne de caractères, qu'il fait un ou deux mots de long, et qu'il nomme effectivement un type d'appareil électroménager lorsque la question porte sur des appareils électroménagers. Ces tests sont ensuite réinjectés dans le modèle en tant que contexte supplémentaire lors de la génération du code de solution principal, orientant le modèle vers des programmes plus correctement logiques. Lorsque le code généré échoue à ces tests au moment de l'exécution, le système se rabat sur un modèle vision-langage standard plutôt que de renvoyer une mauvaise réponse. Testé sur quatre bancs d'essai couvrant les questions-réponses visuelles et la localisation d'objets, PropTest a systématiquement surpassé le système de référence ViperGPT pour plusieurs modèles de langage open source, avec des gains atteignant 6 points de pourcentage sur le jeu de données GQA et 8 points sur RefCOCO+. Notamment, les chercheurs ont mené leurs principales expériences en utilisant des modèles librement disponibles comme CodeLlama et Llama3 plutôt que des API propriétaires, répondant ainsi à un problème de reproductibilité qui a entravé les comparaisons dans ce domaine de recherche.

résumé

La programmation visuelle a récemment émergé comme une alternative aux modèles de raisonnement visuel de bout en bout fonctionnant en boîte noire. Ce type de méthode exploite les grands modèles de langage (LLM) pour générer le code source d'un programme informatique exécutable qui résout un problème donné. Cette stratégie présente l'avantage d'offrir un chemin de raisonnement interprétable et ne nécessite pas d'affiner un modèle avec des données spécifiques à la tâche. Nous proposons PropTest, une stratégie générale qui améliore la programmation visuelle en utilisant en outre un LLM pour générer du code qui teste des propriétés visuelles dans un premier tour de solutions proposées. Notre méthode génère des tests de cohérence des types de données, de syntaxe des sorties et de propriétés sémantiques. PropTest obtient des résultats comparables aux méthodes de pointe tout en utilisant des LLM accessibles publiquement. Cela est démontré sur différents bancs d'essai de questions-réponses visuelles et de compréhension d'expressions de référence. En particulier, PropTest améliore ViperGPT en obtenant une précision de 46,1\% (+6,0\%) sur GQA avec Llama3-8B et de 59,5\% (+8,1\%) sur RefCOCO+ avec CodeLlama-34B.

détails

commentaire
Project Page: https://jaywonkoo17.github.io/PropTest/

citation

@inproceedings{koo2024proptest,
  title = {PropTest: Automatic Property Testing for Improved Visual Programming},
  author = {Koo, Jaywon and Yang, Ziyan and Cascante-Bonilla, Paola and Ray, Baishakhi and Ordonez, Vicente},
  year = {2024},
  booktitle = {Conf. on Empirical Methods in Natural Language Processing. EMNLP 2024},
  url = {https://arxiv.org/abs/2403.16921},
}

questions, principales contributions et limites de cet article générées automatiquement

Questions auxquelles cet article aide à répondre

  • Qu'est-ce que PropTest ? PropTest est un cadre de programmation visuelle qui utilise un LLM pour générer des tests de propriétés avant de générer du code exécutable pour des tâches de raisonnement visuel.
  • Quel problème PropTest aborde-t-il ? Il cible les cas où les programmes visuels générés s'exécutent sans erreurs de syntaxe ou d'exécution mais renvoient malgré tout des réponses logiquement erronées.
  • Comment les tests de propriétés améliorent-ils la programmation visuelle ? Les tests encodent les propriétés attendues de la réponse, telles que le type de données, le format de sortie, la catégorie sémantique ou les attributs visuels, puis guident la génération de code et aident à détecter les sorties invalides.
  • Quelles tâches l'article évalue-t-il ? L'article évalue les questions-réponses visuelles sur GQA et A-OKVQA, ainsi que l'ancrage visuel sur RefCOCO et RefCOCO+.
  • Pourquoi l'utilisation de LLM open source est-elle importante ? L'article met l'accent sur des expériences de programmation visuelle reproductibles utilisant des modèles tels que Llama3 et CodeLlama, réduisant la dépendance à l'égard de modèles d'API fermés ou obsolètes.

Principales contributions

  • L'article introduit la génération automatique de tests de propriétés comme mécanisme général d'amélioration des programmes visuels générés par les LLM.
  • PropTest prend en charge à la fois les tâches à réponse textuelle et les tâches d'ancrage par boîte englobante en générant des tests adaptés au type de sortie attendu.
  • La méthode améliore ViperGPT sur plusieurs bancs d'essai et architectures de LLM, avec des gains rapportés de +6,0% sur GQA avec Llama3-8B et de +8,1% sur RefCOCO+ avec CodeLlama-34B.
  • Le travail montre que les tests générés peuvent améliorer la qualité du code plutôt que de simplement accroître le recours à des modèles vision-langage de repli.
  • L'article propose un cadre d'évaluation plus reproductible pour la programmation visuelle en se concentrant sur des LLM accessibles publiquement et sur une voie de mise en œuvre sans API.

Limites et mises en garde

  • PropTest ajoute un appel supplémentaire au LLM pour générer les tests de propriétés, mais c'est un compromis pratique en faveur de programmes visuels plus fiables, qui devrait devenir moins coûteux à mesure que des modèles de code plus rapides s'améliorent.
  • Différents types de sortie nécessitent différentes invites de tests de propriétés, ce qui garde la mise en œuvre explicite et indique également une direction future claire : concevoir automatiquement les invites par tâche.
  • Les tests de propriétés générés peuvent eux-mêmes contenir des erreurs, mais l'article analyse ce comportement et montre que les tests sont généralement assez précis pour améliorer les résultats de bout en bout.
  • Le cadre dépend toujours de la qualité des outils et des API visuels utilisés par les programmes générés, ce qui le rend complémentaire des travaux sur une meilleure construction d'outils et l'auto-raffinement.
  • L'évaluation se concentre sur les questions-réponses visuelles à partir d'images et la compréhension d'expressions de référence, laissant le raisonnement visuel vidéo, temporel et causal comme prochaines applications prometteuses.

Comment interpréter ce résultat

Cet article se lit au mieux comme une avancée solide et pratique vers une programmation visuelle plus fiable : PropTest introduit les idées des tests logiciels dans le raisonnement multimodal, améliore la logique des programmes générés sur l'ensemble des bancs d'essai, et le fait dans un cadre reproductible avec des LLM publics.