> Unproven data representative: Besides contamination, we also need to know how many code problems we need and how representative they are, to conduct a comprehensive evaluation. However, they were not answered in this paper. Are there mechanisms to guarantee or prove these properties, in particular for new models?
- **Large and Growing Dataset:** LiveCodeBench currently hosts **over 700 problems** collected primarily from LeetCode and AtCoder platforms. Our dataset is continually expanding as we automate the collection of new problems.
- **Statistical Significance:** In Appendix G, we present a bootstrapping analysis to measure evaluation noise. We found that using a subset of **338 problems** yields a low variance of **1-2%** in model comparisons. Utilizing the full suite of 713 problems further reduces this variance, enhancing the reliability of our evaluations.
- **Diverse and Real-World Problems:** Our benchmark includes a wide range of problem types, such as algorithms, data structures, mathematical computations, and real-world scenarios. This diversity ensures that models are evaluated on various aspects of programming skills. Additionally, since these problems are sourced from popular platforms hosting such problems. Given humans regularly participate in such contests, these problems reflect how models would perform in such a 'real-world' setting.
> Unevaluated workflow reliability: While the workflow of benchmark construction is completely automated, this workflow's reliability was not evaluated. For example, the accuracy of the HTML extractor.
We followed existing best practices while extracting problem statements from HTML pages. In particular, we extracted equations, normalized markdown, removed duplicated problems, and filtered problems with images. When constructing our extractors, we also used LLMs to provide feedback by using them to evaluate any mistakes in parsing however did not find it very reliable.
We manually scanned through 30 random problems in our collected benchmark and compared them with the rendered HTML webpage problems and did not find any errors in our collected problems.
> Unproven test case completeness: Averaged 18 of the test case count basically is far fewer than test cases used inside the programming task websites; the completeness or sufficiency of these test cases was not analyzed in this paper.
Thank you for the question. First, note that while we only provide 18 tests, we collect large and complex tests, often with inputs sized larger than $1e5$ elements using our generator-based input generation approach. Thus even single instances of such inputs can evaluate multiple diverse program behaviors.
Next, we observed that the number of tests presented a tradeoff in terms of benchmark usability and evaluation precision. In particular, initially, LiveCodeBench provided up to 100 tests per problem and suffered from considerably longer evaluation times (over 10 minutes for computing pass@1 for 400 problems.
Based on user feedback, we studied pass@1 performance with different counts of the sampled number of tests and found 20 tests to hit a sweet spot in terms of evaluation reliability and providing fast evaluation signals. We have added this analysis to Appendix A.4 and Figure 9.
> Multi-step track needed: This work's designs of four tracks were motivated by AlphaCodium. Including AlphaCodium, state-of-the-art competition-level code generation works nowadays broadly applied multi-step workflow. However, besides one-step revision, multi-step code generation was not evaluated in this work.
Thank you for the question. Indeed, multi-step repair is employed in current works. However, performing multi-turn repairs can be expensive, and introduces various design choices (e.g. which solutions to repair as studied in [1], type of revision feedback [2]). In this work, we therefore evaluate the revision capabilities of models using a baseline single-step repair setup. While a thorough analysis of various design choices is outside the scope of our work, our benchmark and evaluation setup can be easily extended to performing multi-turn evaluations.
[1] Code Repair with LLMs gives an Exploration-Exploitation Tradeoff
[2] What Makes Large Language Models Reason in (Multi-Turn) Code Generation?
> The contribution of this work to the community depends largely on your continued maintenance efforts. Do you have a long-term plan?
LiveCodeBench problem curation pipeline is completely automated (scraping, test generation) and can be easily run to collect new problems. Currently, the pipeline is run every 1-2 months, based on the sufficiency of the problems to curate new problems by the lead author.