Разоблачение механизмов самокоррекции GPT в генерации кода
Demystifying GPT Self-Repair for Code Generation
June 16, 2023
Авторы: Theo X. Olausson, Jeevana Priya Inala, Chenglong Wang, Jianfeng Gao, Armando Solar-Lezama
cs.AI
Аннотация
Крупные языковые модели (LLM) продемонстрировали впечатляющие способности в генерации кода, но всё ещё испытывают трудности с решением сложных программных задач. Самокоррекция — процесс, при котором модель отлаживает и исправляет ошибки в собственном коде — недавно стала популярным методом повышения производительности в таких условиях. Однако в литературе существует лишь ограниченное количество исследований о том, как и когда самокоррекция работает эффективно, и возникает вопрос, насколько модель действительно способна предоставить точную обратную связь о том, почему код ошибочен, если этот код был сгенерирован той же моделью. В данной статье мы анализируем способность GPT-3.5 и GPT-4 выполнять самокоррекцию на наборе данных APPS, состоящем из разнообразных сложных задач по программированию. Для этого мы сначала разрабатываем новую стратегию оценки, названную pass@t, которая измеряет процент успешного выполнения задач относительно общего количества токенов, сэмплированных из модели, что позволяет провести справедливое сравнение с подходами, основанными исключительно на сэмплировании. С использованием этой стратегии оценки мы обнаруживаем, что эффективность самокоррекции наблюдается только у GPT-4. Мы также отмечаем, что самокоррекция ограничивается этапом предоставления обратной связи; используя GPT-4 для предоставления обратной связи на программы, сгенерированные GPT-3.5, и привлекая экспертов-программистов для предоставления обратной связи на программы, сгенерированные GPT-4, мы достигаем значительного улучшения производительности.
English
Large Language Models (LLMs) have shown remarkable aptitude in code
generation but still struggle on challenging programming tasks. Self-repair --
in which the model debugs and fixes mistakes in its own code -- has recently
become a popular way to boost performance in these settings. However, only very
limited studies on how and when self-repair works effectively exist in the
literature, and one might wonder to what extent a model is really capable of
providing accurate feedback on why the code is wrong when that code was
generated by the same model. In this paper, we analyze GPT-3.5 and GPT-4's
ability to perform self-repair on APPS, a challenging dataset consisting of
diverse coding challenges. To do so, we first establish a new evaluation
strategy dubbed pass@t that measures the pass rate of the tasks against the
total number of tokens sampled from the model, enabling a fair comparison to
purely sampling-based approaches. With this evaluation strategy, we find that
the effectiveness of self-repair is only seen in GPT-4. We also observe that
self-repair is bottlenecked by the feedback stage; using GPT-4 to give feedback
on the programs generated by GPT-3.5 and using expert human programmers to give
feedback on the programs generated by GPT-4, we unlock significant performance
gains.