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).
Новостная редакция лаборатории

Краткое изложение пресс-релиза

Этот раздел намеренно написан в стиле журналистского пресс-релиза для широкой аудитории.

Исследователи из Rice University и Columbia University разработали метод под названием PropTest, который повышает надёжность ИИ-систем, решающих задачи визуального рассуждения путём написания компьютерного кода. Эти системы «визуального программирования» работают за счёт использования больших языковых моделей для генерации программ на Python, которые отвечают на вопросы об изображениях, например идентифицируют объекты или отвечают на многошаговые вопросы, но они часто производят код, который выполняется без сбоев, но всё же даёт неправильный ответ из-за ошибочной логики. PropTest решает это, заимствуя старую идею из программной инженерии: писать тесты до написания кода. В частности, система сначала побуждает языковую модель сгенерировать короткие тестовые случаи, проверяющие ожидаемые свойства ответа — например, проверить, что результат является строкой, что он состоит из одного или двух слов и что он действительно называет тип бытового прибора, когда вопрос касается приборов. Эти тесты затем подаются обратно в модель как дополнительный контекст при генерации основного кода решения, направляя модель к более логически корректным программам. Когда сгенерированный код не проходит эти тесты во время выполнения, система переходит к стандартной модели зрения и языка вместо того, чтобы возвращать плохой ответ. Протестированный на четырёх бенчмарках, охватывающих визуальный ответ на вопросы и локализацию объектов, PropTest стабильно превосходил базовую систему ViperGPT на нескольких языковых моделях с открытым исходным кодом, с приростом до 6 процентных пунктов на наборе данных GQA и 8 пунктов на RefCOCO+. Примечательно, что исследователи проводили свои основные эксперименты с использованием свободно доступных моделей, таких как CodeLlama и Llama3, а не проприетарных API, решая проблему воспроизводимости, которая препятствовала сравнениям в этой области исследований.

аннотация

Visual Programming недавно появилось как альтернатива сквозным моделям визуального рассуждения типа «чёрный ящик». Этот тип методов задействует большие языковые модели (LLM) для генерации исходного кода исполняемой компьютерной программы, которая решает заданную задачу. Эта стратегия обладает преимуществом предоставления интерпретируемого пути рассуждения и не требует дообучения модели на данных, специфичных для задачи. Мы предлагаем PropTest — общую стратегию, которая улучшает visual programming за счёт дополнительного использования LLM для генерации кода, проверяющего визуальные свойства в первоначальном раунде предложенных решений. Наш метод генерирует тесты на согласованность типов данных, синтаксис вывода и семантические свойства. PropTest достигает результатов, сопоставимых с современными методами, при использовании общедоступных LLM. Это продемонстрировано на различных бенчмарках по визуальному ответу на вопросы и пониманию ссылающихся выражений. В частности, PropTest улучшает ViperGPT, получая точность 46,1% (+6,0%) на GQA с использованием Llama3-8B и 59,5% (+8,1%) на RefCOCO+ с использованием CodeLlama-34B.

подробности

комментарий
Project Page: https://jaywonkoo17.github.io/PropTest/

цитирование

@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},
}

автоматически сгенерированные вопросы, основные вклады и ограничения этой статьи

Вопросы, на которые помогает ответить эта статья

  • Что такое PropTest? PropTest — это фреймворк visual programming, который использует LLM для генерации тестов свойств до генерации исполняемого кода для задач визуального рассуждения.
  • Какую проблему решает PropTest? Он нацелен на случаи, когда сгенерированные визуальные программы выполняются без синтаксических или рантайм-ошибок, но всё же возвращают логически неверные ответы.
  • Как тесты свойств улучшают visual programming? Тесты кодируют ожидаемые свойства ответа, такие как тип данных, формат вывода, семантическая категория или визуальные атрибуты, затем направляют генерацию кода и помогают обнаруживать недопустимые выводы.
  • Какие задачи оценивает статья? Статья оценивает визуальный ответ на вопросы на GQA и A-OKVQA и визуальную локализацию на RefCOCO и RefCOCO+.
  • Почему важно использование LLM с открытым исходным кодом? Статья подчёркивает воспроизводимые эксперименты по visual programming с использованием таких моделей, как Llama3 и CodeLlama, снижая зависимость от закрытых или устаревших API-моделей.

Основные вклады

  • В статье представлена автоматическая генерация тестов свойств как общий механизм улучшения визуальных программ, сгенерированных LLM.
  • PropTest поддерживает как задачи с текстовым ответом, так и задачи локализации с ограничивающими рамками, генерируя тесты, адаптированные под ожидаемый тип вывода.
  • Метод улучшает ViperGPT на нескольких бенчмарках и бэкбонах LLM, включая заявленный прирост +6,0% на GQA с Llama3-8B и +8,1% на RefCOCO+ с CodeLlama-34B.
  • Работа показывает, что сгенерированные тесты могут улучшать качество кода, а не просто увеличивать опору на резервные модели зрения и языка.
  • Статья вносит вклад в более воспроизводимую среду оценки для visual programming, сосредотачиваясь на общедоступных LLM и пути реализации без API.

Ограничения и предостережения

  • PropTest добавляет дополнительный вызов LLM для генерации тестов свойств, но это практичный компромисс ради более надёжных визуальных программ, и он должен дешеветь по мере совершенствования более быстрых кодовых моделей.
  • Разные типы вывода требуют разных промптов для тестов свойств, что сохраняет реализацию явной и также указывает на ясное будущее направление: автоматическое проектирование промптов по задаче.
  • Сгенерированные тесты свойств могут сами содержать ошибки, но статья анализирует это поведение и показывает, что тесты обычно достаточно точны, чтобы улучшать сквозные результаты.
  • Фреймворк по-прежнему зависит от качества визуальных инструментов и API, используемых сгенерированными программами, что делает его дополняющим работу по построению лучших инструментов и самоулучшению.
  • Оценка сосредоточена на VQA по изображениям и понимании ссылающихся выражений, оставляя видео, временное и причинное визуальное рассуждение как многообещающие следующие применения.

Как интерпретировать этот результат

Эту статью лучше всего рассматривать как сильный и практичный шаг к более надёжному visual programming: PropTest привносит идеи тестирования программного обеспечения в мультимодальное рассуждение, улучшает логику сгенерированных программ на бенчмарках и делает это в воспроизводимой среде с публичными LLM.