ChatPaper.aiChatPaper

B4: К Оптимальной Оценке Правдоподобных Решений Кода с Правдоподобными Тестами

B4: Towards Optimal Assessment of Plausible Code Solutions with Plausible Tests

September 13, 2024
Авторы: Mouxiang Chen, Zhongxin Liu, He Tao, Yusu Hong, David Lo, Xin Xia, Jianling Sun
cs.AI

Аннотация

Выбор наилучшего кодового решения из нескольких сгенерированных является важной задачей в генерации кода, которую можно выполнить, используя надежные валидаторы (например, тестовые случаи, написанные разработчиком) для помощи. Поскольку надежные тестовые случаи не всегда доступны и могут быть дорогими в построении на практике, исследователи предлагают автоматически генерировать тестовые случаи для оценки кодовых решений. Однако, когда и кодовые решения, и тестовые случаи являются правдоподобными и ненадежными, выбор наилучшего решения становится сложной задачей. Хотя некоторые эвристические стратегии были предложены для решения этой проблемы, они лишены крепкой теоретической гарантии, и остается открытым вопрос о существовании оптимальной стратегии выбора. Наша работа вносит два вклада. Во-первых, мы показываем, что в рамках байесовского подхода оптимальная стратегия выбора может быть определена на основе апостериорной вероятности наблюдаемых прохождений состояний между решениями и тестами. Проблема определения наилучшего решения затем формулируется как задача целочисленного программирования. Во-вторых, мы предлагаем эффективный подход для приближения этой оптимальной (но невычислимой) стратегии, где ошибка приближения ограничена правильностью предварительных знаний. Затем мы внедряем эффективные предварительные знания для настройки задач генерации кода. Как теоретические, так и эмпирические исследования подтверждают, что существующие эвристики ограничены в выборе наилучших решений с правдоподобными тестовыми случаями. Наша предложенная приближенная оптимальная стратегия B4 значительно превосходит существующие эвристики в выборе кодовых решений, сгенерированных крупными языковыми моделями (LLM) с тестами, сгенерированными LLM, достигая относительного улучшения производительности до 50% по сравнению с самой сильной эвристикой и до 246% по сравнению с случайным выбором в наиболее сложных сценариях. Наш код общедоступен по адресу https://github.com/ZJU-CTAG/B4.
English
Selecting the best code solution from multiple generated ones is an essential task in code generation, which can be achieved by using some reliable validators (e.g., developer-written test cases) for assistance. Since reliable test cases are not always available and can be expensive to build in practice, researchers propose to automatically generate test cases to assess code solutions. However, when both code solutions and test cases are plausible and not reliable, selecting the best solution becomes challenging. Although some heuristic strategies have been proposed to tackle this problem, they lack a strong theoretical guarantee and it is still an open question whether an optimal selection strategy exists. Our work contributes in two ways. First, we show that within a Bayesian framework, the optimal selection strategy can be defined based on the posterior probability of the observed passing states between solutions and tests. The problem of identifying the best solution is then framed as an integer programming problem. Second, we propose an efficient approach for approximating this optimal (yet uncomputable) strategy, where the approximation error is bounded by the correctness of prior knowledge. We then incorporate effective prior knowledge to tailor code generation tasks. Both theoretical and empirical studies confirm that existing heuristics are limited in selecting the best solutions with plausible test cases. Our proposed approximated optimal strategy B4 significantly surpasses existing heuristics in selecting code solutions generated by large language models (LLMs) with LLM-generated tests, achieving a relative performance improvement by up to 50% over the strongest heuristic and 246% over the random selection in the most challenging scenarios. Our code is publicly available at https://github.com/ZJU-CTAG/B4.

Summary

AI-Generated Summary

PDF282November 16, 2024