# Live-Code-Bench ## 概述 LiveCodeBench 是一个无数据污染的基准测试,用于评估代码生成模型在真实世界竞赛编程问题上的表现。它持续从编程平台收集新问题,以确保模型在训练期间未见过测试数据。 ## 任务描述 - **任务类型**:竞赛编程 / 代码生成 - **输入**:包含输入/输出格式的编程问题描述 - **输出**:完整的解决方案代码 - **来源**:LeetCode、Codeforces 和 AtCoder 的题目 ## 主要特性 - 在模型训练截止日期后持续更新新问题 - 题目来自主流竞赛编程平台 - 每道题包含多个测试用例,以进行全面评估 - 支持基于日期的过滤,防止数据污染 - 支持本地和沙箱环境中的代码执行 ## 评估说明 - 默认配置使用 **0-shot** 评估 - **安全警告**:默认情况下,代码在本地环境中执行。我们建议使用沙箱执行。详情请参阅 [沙箱文档](https://evalscope.readthedocs.io/zh-cn/latest/user_guides/sandbox.html)。 - 使用 `start_date` 和 `end_date` 参数按日期筛选题目 - 每个测试用例默认超时时间为 6 秒 - 支持 `pass@k` 指标计算 ## 属性 | 属性 | 值 | |----------|-------| | **基准测试名称** | `live_code_bench` | | **数据集ID** | [evalscope/livecodebench_code_generation_lite_parquet](https://modelscope.cn/datasets/evalscope/livecodebench_code_generation_lite_parquet/summary) | | **论文** | N/A | | **标签** | `Coding` | | **指标** | `acc` | | **默认Shots** | 0-shot | | **评估划分** | `test` | | **聚合方式** | `mean_and_pass_at_k` | ## 数据统计 | 指标 | 值 | |--------|-------| | 总样本数 | 1,055 | | 提示词长度(平均) | 1700.76 字符 | | 提示词长度(最小/最大) | 717 / 4234 字符 | ## 样例示例 **子集**: `release_latest` ```json { "input": [ { "id": "6b6a6121", "content": "### Question:\nThere are three cards with letters $\\texttt{a}$, $\\texttt{b}$, $\\texttt{c}$ placed in a row in some order. You can do the following operation at most once: \n\n \n- Pick two cards, and swap them. Is it possible that the row becom ... [TRUNCATED] ... s from stdin solve the problem and write the answer to stdout (do not directly test on the sample inputs). Enclose your code within delimiters as follows.\n```python\n# YOUR CODE HERE\n```\n\n ### Answer: (use the provided format with backticks)\n\n" } ], "target": "", "id": 0, "group_id": 0, "metadata": { "evaluation_sample": "{\"inputs\": [\"6\\nabc\\nacb\\nbac\\nbca\\ncab\\ncba\\n\", \"1\\nabc\\n\", \"3\\nabc\\nabc\\nabc\\n\", \"5\\ncab\\nacb\\ncba\\nbac\\nbca\\n\", \"6\\nabc\\nabc\\nabc\\nabc\\nabc\\nabc\\n\"], \"outputs\": [\"YES\\nYES\\nYES\\nNO\\nNO\\nYES\\n\", \"YES\\n\", \"YES\\nYES\\nYES\\n\", \"NO\\nYES\\nYES\\nYES\\nNO\\n\", \"YES\\nYES\\nYES\\nYES\\nYES\\nYES\\n\"], \"fn_name\": null}", "contest_date": "2023-08-21T00:00:00" } } ``` *注:部分内容为显示目的已截断。* ## 提示模板 **提示模板:** ```text ### Question: {question_content} {format_prompt} ### Answer: (use the provided format with backticks) ``` ## 额外参数 | 参数 | 类型 | 默认值 | 描述 | |-----------|------|---------|-------------| | `start_date` | `str | null` | `None` | 筛选此日期(YYYY-MM-DD)之后的问题。设为 null 则保留所有问题。 | | `end_date` | `str | null` | `None` | 筛选此日期(YYYY-MM-DD)之前的问题。设为 null 则保留所有问题。 | | `debug` | `bool` | `False` | 启用详细调试日志并绕过某些安全检查。 | ## 沙箱配置 此基准测试需要沙箱环境来执行代码。 ```json { "image": "python:3.11-slim", "tools_config": { "shell_executor": {}, "python_executor": {} } } ``` ## 使用方法 ### 使用 CLI ```bash evalscope eval \ --model YOUR_MODEL \ --api-url OPENAI_API_COMPAT_URL \ --api-key EMPTY_TOKEN \ --datasets live_code_bench \ --sandbox '{"enabled": true}' \ --limit 10 # 正式评估时请删除此行 ``` ### 使用 Python ```python from evalscope import run_task from evalscope.config import TaskConfig task_cfg = TaskConfig( model='YOUR_MODEL', api_url='OPENAI_API_COMPAT_URL', api_key='EMPTY_TOKEN', datasets=['live_code_bench'], sandbox={'enabled': True}, dataset_args={ 'live_code_bench': { # extra_params: {} # 使用默认额外参数 } }, limit=10, # 正式评估时请删除此行 ) run_task(task_cfg=task_cfg) ```