Bootstrap

5分钟看看DeepSeek-R1做过的那些基准测试题(下)

DeepSeek-R1-Evaluation

评估方法:我们所有的参评模型,最大生成长度设置为 32,768 个tokens。对于模型的采样参数,我们设置Tempreture值为 0.6 , top-p 值为0.95,并为每个查询生成 64 个响应来估计pass@1。

ategoryBenchmark (Metric)Claude-3.5-Sonnet-1022GPT-4o 0513DeepSeek V3OpenAI o1-miniOpenAI o1-1217DeepSeek R1
Architecture--MoE--MoE
# Activated Params--37B--37B
# Total Params--671B--671B
EnglishMMLU (Pass@1)88.387.288.585.291.890.8
MMLU-Redux (EM)88.988.089.186.7-92.9
MMLU-Pro (EM)78.072.675.980.3-84.0
DROP (3-shot F1)88.383.791.683.990.292.2
IF-Eval (Prompt Strict)86.584.386.184.8-83.3
GPQA-Diamond (Pass@1)65.049.959.160.075.771.5
SimpleQA (Correct)28.438.224.97.047.030.1
FRAMES (Acc.)72.580.573.376.9-82.5
AlpacaEval2.0 (LC-winrate)52.051.170.057.8-87.6
ArenaHard (GPT-4-1106)85.280.485.592.0-92.3
CodeLiveCodeBench (Pass@1-COT)33.834.2-53.863.465.9
Codeforces (Percentile)20.323.658.793.496.696.3
Codeforces (Rating)7177591134182020612029
SWE Verified (Resolved)50.838.842.041.648.949.2
Aider-Polyglot (Acc.)45.316.049.632.961.753.3
MathAIME 2024 (Pass@1)16.09.339.263.679.279.8
MATH-500 (Pass@1)78.374.690.290.096.497.3
CNMO 2024 (Pass@1)13.110.843.267.6-78.8
ChineseCLUEWSC (EM)85.487.990.989.9-92.8
C-Eval (EM)76.776.086.568.9-91.8
C-SimpleQA (Correct)55.458.768.040.3-63.7

Code

11.LiveCodeBench (Pass@1-COT)

LiveCodeBench (Pass@1-COT) 是一个用于评估大型语言模型(LLMs)代码生成能力的基准测试,其核心目标是衡量模型在编程挑战中生成一次即通过测试的准确率(Pass@1),同时结合思维链(Chain-of-Thought, COT)的推理模式。以下是该测试的关键要点:

 测试目的与特点
  • 核心目标:评估模型在真实编程场景中解决新问题的能力,特别关注代码生成的一次性成功率(Pass@1)和思维链推理的有效性。
  • 无污染设计:测试数据主要来自2023年5月后的编程竞赛平台(如LeetCode、AtCoder、CodeForces),确保模型未在训练中接触过这些题目,避免数据污染影响结果。
  • 多维评估:涵盖代码生成、自我修复、代码执行、测试用例预测等多维度能力,更贴近实际开发需求。
评估维度与方法
  • Pass@1-COT定义:要求模型通过思维链(分步推理)生成代码,并统计单次生成即通过所有测试用例的比例。例如,某模型得分65.9%表示其65.9%的问题能一次性生成正确代码。
  • 测试参数:通常采用温度值0.6、top-p值0.95的采样策略,并为每个问题生成64个响应以计算Pass@1,确保结果统计稳定性。
  • 动态更新:数据集持续扩展,定期纳入新发布的编程竞赛题目,保持评估的时效性和挑战性。
典型应用场景
  • 模型对比:例如,DeepSeek R1在此测试中得分65.9,显著高于Claude-3.5-Sonnet(33.8)和GPT-4o(34.2),显示其在代码生成与推理上的优势。
  • 技术优化方向:开发者可通过分析模型在该测试中的表现,针对性优化代码生成策略(如改进思维链引导、增强测试覆盖率。
  • 学术研究:用于验证自对齐、蒸馏训练等技术的有效性,如StarCoder-15B-Instruct通过自生成测试用例提升模型性能。

官方网站:LiveCodeBench: Holistic and Contamination Free Evaluation of Large Language Models for Code

数据集:https://huggingface.co/livecodebench/

题目示例:

question_title

stringlengths

15

9.9%

question_content

stringlengths

462

3.87k

platform

stringclasses

atcoder

100%

difficulty

stringclasses

hard

28.9%

public_test_cases

stringlengths

82

1.14k

private_test_cases

stringlengths

368

469M

metadata

stringclasses

{}

100%

Anti

"A DDoS-type string is a string of length 4 consisting of uppercase and lowercase English letters sa(...TRUNCATED)

atcoder

hard

"[{\"input\": \"DD??S\\n\", \"output\": \"676\\n\", \"testtype\": \"stdin\"}, {\"input\": \"????????(...TRUNCATED)

"[{\"input\": \"vgxgpuamkxkszhkbpphykinkezplvfjaqmopodotkrjzrimlvumuarenexcfycebeurgvjyospdhvuyfvtvn(...TRUNCATED)

{}


12.Codeforces (Percentile)

        Codeforces (Percentile) 是基于全球性编程竞赛平台 Codeforces 的评估指标,衡量模型或参赛者在算法竞赛中的相对排名。具体而言,其数值表示模型/参赛者击败了多少比例的参与者。例如,若某模型得分为 96.3%,则表明其表现优于平台上 96.3% 的参赛者。

测试设计与数据来源
  • 题目类型:覆盖算法设计、数据结构、数学推理等编程挑战,题目难度从入门级到国际竞赛级别不等。
  • 测试数据:分为 Pretest(预测试,用于实时反馈)和 SystemTest(系统测试,最终验证代码正确性),确保评估的全面性。
  • 动态更新:平台定期新增题目,测试数据实时扩展,避免模型因训练数据过时而“作弊”。
评估方法与典型表现
  • 百分位数计算:根据参赛者/模型在竞赛中的得分排名,计算其百分位。例如:
    • o3 模型:Codeforces 百分位 99.8%(全球前 0.2%),Elo 评分 2724,接近人类顶尖选手水平。
    • DeepSeek-V3:在同类模型中表现最优,百分位数达 51.6%(需注意模型与人类参赛者的评估差异)。
  • 评分维度:除正确性外,还考量代码执行效率(时间/内存消耗),综合反映编程能力。

官方网站:https://codeforces.com/

数据集:https://huggingface.co/datasets/denkCF/UsersCodeforcesSubmissionsEnd2024?row=0

题目示例:

question_title

stringlengths

814

26.3%

question_content

stringlengths

6.5k7.2k

<0.1%

platform

stringclasses

codeforces

100%

question_id

stringclasses

01

<0.1%

contest_id

int64

9181.01k

9.6%

contest_date

stringclasses

2025-01-20T20:58:05.360400

100%

starter_code

stringclasses

100%

difficulty

stringclasses

hard

43.6%

output

stringlengths

4328.3k

99.9%

code

stringlengths

05.5k

99.8%

verdict

stringclasses

OK

100%

Labyrinth-1

You have a robot in a two-dimensional labyrinth which consists of *N*<=×<=*M* cells. Some pairs of cells adjacent by side are separated by a wall or a door. The labyrinth itself is separated from the outside with walls around it. Some labyrinth cells are the exits. In order to leave the labyrinth the robot should reach any exit. There are keys in some cells. Any key can open any door but after the door is opened the key stays in the lock. Thus every key can be used only once. There are no labyrinth cells that contain both a key and an exit. Also there can not be both a wall and a door between the pair of adjacent cells. Your need to write a program in *abc* language (see the language description below) that will lead the robot to one of the exits. Lets numerate the labyrinth rows from 0 to *N*<=-<=1 top to bottom and the columns – from 0 to *M*<=-<=1 left to right. In *abc* language the following primary commands are available: - move-DIR – move to the adjacent cell in the direction. *down* increases the number of the row by 1, *right* increases the number of the column by 1. In case there’s a wall or a closed door in this direction, nothing’s happening. - open-DIR – open the door between the current cell and the adjacent one in *DIR* direction. In case there isn’t any door in this direction or it’s already been opened or the robot doesn’t have a key, nothing’s happening.- take – take the key in the current cell. In case there isn’t any key or the robot has already picked it up, nothing’s happening. The robot is able to carry any number of keys.- terminate – terminate the program. This command is not obligatory to use. In case it’s absent the command is added at the end of the program automatically. Also, there are the following control commands in *abc* language: - for-N OPS end – repeat the sequence of the *OPS* commands *N* times, 0<=&lt;<=*N*<=≤<=100000. Each loop counter check counts as a command fulfilled by the robot. - if-ok OPS1 else OPS2 endif – carries out the sequence of the *OPS*1 commands, if the previous command of moving, taking the key or opening the door was successful, otherwise the sequence of the *OPS*2 commands is being carried out. Should there be no previous command run, the sequence *OPS*1 will be carried out. If-ok check counts as a command fulfilled by the robot. - break – stops the current *for* loop. - continue – finishes the current *for* loop iterations. Note that the control and the primary commands can be fit into each other arbitrarily. The robot will fulfill your commands sequentially until it exits the labyrinth, or it runs out of the commands, or the *terminate* command is run, or the quantity of the fulfilled commands exceeds the bound number 5·106. In *abc* language each command is a separate word and should be separated from other commands with at least one space symbol. You should write a program that prints the sequence of commands leading the robot out of the labyrinth. Of course, as you are a good programmer, you should optimize these sequence. The number of the non-space symbols in the sequence should not exceed 107. If you succeed in finding the way out of the labyrinth *i* you’ll be granted the number of points equal to: - *W**i* – labyrinth’s weight, some fixed constant. - *G**i* – number of robots moves. - *O**i* – number of fulfilled commands. Note that this number includes commands like *take* executed in the cells with no key, as well as opening commands applied to the already opened doors. - *L**i* – sequence length in symbols, excluding space symbols and line breaks. - *Q*<==<=10·*N*·*M*. In case your sequence doesn’t lead the robot to the exit you’ll be granted 0 points. Your programs result will be the sum of all *S**i*. You should maximize this total sum. All labyrinths will be known and available to you. You can download the archive with labyrinths by any of the given links, password to extract files is aimtechiscool: 1. [https://drive.google.com/file/d/1dkIBfW_Gy6c3FJtXjMXZPMsGKRyn3pzp](https://drive.google.com/file/d/1dkIBfW_Gy6c3FJtXjMXZPMsGKRyn3pzp) 1. [https://www.dropbox.com/s/77jrplnjgmviiwt/aimmaze.zip?dl=0](https://www.dropbox.com/s/77jrplnjgmviiwt/aimmaze.zip?dl=0) 1. [https://yadi.sk/d/JNXDLeH63RzaCi](https://yadi.sk/d/JNXDLeH63RzaCi) In order to make local testing of your programs more convenient, the program calculating your results (checker) and the labyrinth visualizer will be available. This program is written in *python*3 programming language, that’s why you’re going to need *python*3 interpreter, as well as *pillow* library, which you can install with the following command pip3 install pillow. *pip*3 is a utility program for *python*3 package (library) installation. It will be installed automatically with the *python*3 interpreter. Example command to run checker and visualizer: python3 aimmaze.py maze.in robot.abc --image maze.png. The checker can be run separately of visualization: python3 aimmaze.py maze.in robot.abc. Flag --output-log will let you see the information of robots each step: python3 aimmaze.py maze.in robot.abc --output-log. Note *python*3 can be installed as *python* on your computer. To adjust image settings, you can edit constants at the beginning of the program *aimmaze*.*py*.The first line contains integers *i*,<= *W*,<= *N*,<= *M*,<= *x*0,<= *y*0,<= *C*,<= *D*,<= *K*,<= *E*. - 1<=≤<=*i*<=≤<=14 – labyrinth’s number, which is needed for a checking program. - 1<=≤<=*W*<=≤<=1018 – labyrinth’s weight, which is needed for a checking program. - 2<=≤<=*N*,<=*M*<=≤<=1000 – labyrinth’s height and width. - 0<=≤<=*x*0<=≤<=*N*<=-<=1,<= 0<=≤<=*y*0<=≤<=*M*<=-<=1 – robot’s starting position (*x*0,<=*y*0). - 0<=≤<=*C*<=≤<=2·*NM* – number of walls. - 0<=≤<=*D*<=≤<=105 – number of doors. - 0<=≤<=*K*<=≤<=105 – number of keys. - 1<=≤<=*E*<=≤<=1000 – number of exits. The *x* coordinate corresponds to the row number, *y* – to the column number. (0,<=0) cell is located on the left-up corner, so that *down* direction increases the *x* coordinate, while *right* direction increases the *y* coordinate. Each of the next *C* lines contains 4 integers each *x*1,<=*y*1,<=*x*2,<=*y*2 – the coordinates of cells with a wall between them in a zero based indexing. It is guaranteed that |*x*1<=-<=*x*2|<=+<=|*y*1<=-<=*y*2|<==<=1,<= 0<=≤<=*x*1,<=*x*2<=≤<=*N*<=-<=1,<= 0<=≤<=*y*1,<=*y*2<=≤<=*M*<=-<=1. Also there are always walls around the labyrinth’s borders, which are not given in the labyrinths description. Each of the next *D* lines contains door description in the same format as walls description. It is guaranteed that doors and walls don’t overlap. Each of the next *K* rows contains a pair of integer which are the key coordinates in a zero based indexing. Each of the next *E* rows contains a pair of integer which are the exit coordinates in a zero based indexing. It is guaranteed that the robots starting position as well as keys and exits are located in pairwise different cells.Print a program in *abc* language which passes the given labyrinth. Commands have to be separated by at least one space symbol. You can use arbitrary formatting for the program.

codefo

Deepseek APP(深度思考 R1) 

问题解读

你提到在二维迷宫中有机器人,并且涉及到 N <= x <= M 个细胞,推测你想解决的是机器人在二维迷宫中移动,与一定数量(范围在 N 到 M 之间)细胞相关的问题,比如机器人需要遍历 N 到 M 个细胞找到出口、计算满足条件的路径等。下面从几个常见的角度来分析并给出求解思路。

常见问题及求解思路
1. 机器人遍历指定数量细胞找到出口
  • 问题描述:二维迷宫由多个细胞组成,机器人从起点出发,需要遍历 N 到 M 个细胞后找到出口,求是否存在这样的路径。
  • 求解方法
    • 深度优先搜索(DFS):从起点开始,递归地探索机器人的所有可能移动方向(上、下、左、右)。在探索过程中,记录已经遍历的细胞数量和路径。当遍历的细胞数量在 N 到 M 之间且到达出口时,说明找到了满足条件的路径。
    • 代码示例(Python)
def dfs(maze, start, end, N, M, visited, count): 
    rows, cols = len(maze), len(maze[0]) 
    x, y = start 
    if x < 0 or x >= rows or y < 0 or y >= cols or maze[x][y] == 1 or (x, y) in visited: 
        return False 
    visited.add((x,  y)) 
    count += 1 
    if start == end and N <= count <= M: 
        return True 
    directions = [(0, 1), (0, -1), (1, 0), (-1, 0)] 
    for dx, dy in directions: 
        new_x, new_y = x + dx, y + dy 
        if dfs(maze, (new_x, new_y), end, N, M, visited.copy(),  count): 
            return True 
    return False 
 
# 示例使用 
maze = [ 
    [0, 0, 0], 
    [0, 1, 0], 
    [0, 0, 0] 
] 
start = (0, 0) 
end = (2, 2) 
N = 3 
M = 5 
visited = set() 
print(dfs(maze, start, end, N, M, visited, 0)) 
2. 计算满足指定细胞数量的路径数量
  • 问题描述:统计机器人从起点到终点,遍历细胞数量在 N 到 M 之间的所有路径数量。
  • 求解方法
    • 动态规划:可以定义一个三维数组 dp[i][j][k] 表示机器人到达坐标 (i, j) 且已经遍历了 k 个细胞的路径数量。通过状态转移方程更新数组,最终将满足 N <= k <= M 的 dp[end_x][end_y][k] 累加起来得到结果。
3. 找到最短的满足指定细胞数量的路径
  • 问题描述:在所有遍历细胞数量在 N 到 M 之间的路径中,找到最短的路径。
  • 求解方法
    • 广度优先搜索(BFS):使用队列来进行广度优先搜索,记录每个状态(坐标和已遍历细胞数量)和路径长度。当第一次找到满足条件的路径时,即为最短路径。

13.Codeforces (Rating)

1. 核心定义与用途

Codeforces (Rating) 是编程竞赛平台 Codeforces 的核心评分系统,用于量化选手或模型的算法竞赛能力。其特点包括:

  • 基于 Elo 评级系统:通过比赛胜负关系和选手表现动态调整评分,反映相对实力水平34
  • 颜色分级机制:根据 Rating 值赋予不同头衔(如蓝色 Expert、黄色 Master、红色 Grandmaster),直观展示选手水平24
2. 评分规则与计算逻辑
  • 动态调整机制:每次比赛后,系统根据参赛者表现重新计算 Rating。新 Rating 不仅取决于胜负,还与对手 Rating 相关(击败高 Rating 选手可获得更多分数)。
  • 初始值与保底机制:未参赛用户默认 Rating 为 1500;比赛后首次计算时,新用户按 1500 基准参与排名。
  • 惩罚与奖励
    • 提交错误代码会被扣除分数(如未通过 Pretest 的提交扣 50 分)。
    • 成功 Hack 他人代码可获 100 分,失败则扣 50 分。
3. 典型应用场景
  • 选手水平评估:例如,Rating ≥2400 的选手称为 Grandmaster(红名),代表全球顶尖水平。
  • 模型能力测试:如 o3 模型在 Codeforces 中达到 Rating 2724(百分位 99.8%),接近人类顶尖选手。
  • 竞赛策略优化:通过分析 Rating 变化,选手可针对性提升薄弱领域(如动态规划、数据结构)。
4. 局限性
  • 题目类型局限:侧重算法竞赛类题目(如 LeetCode 风格),对系统工程任务(如多线程、硬件交互)覆盖不足。
  • 语言依赖:题目以英语为主,非英语用户可能面临理解障碍。
  • 系统测试风险:通过 Pretest 的代码可能在赛后 SystemTest 中失败(即 FST),导致 Rating 意外下降。
5. 与其他基准的对比
基准核心差异点适用场景
HumanEval评估基础代码生成能力模型基础编程能力测试
Codeforces强调实时解决新问题的竞赛能力算法实战与模型推理能力评估
SWE-bench聚焦软件工程任务(如代码修复、模块协作)工程化编程能力验证

官方网站:https://codeforces.com/

数据集:https://huggingface.co/datasets/denkCF/UsersCodeforcesSubmissionsEnd2024?row=0

题目示例:

question_title

stringlengths

814

26.3%

question_content

stringlengths

92804

10.4%

platform

stringclasses

codeforces

100%

question_id

stringclasses

02

<0.1%

contest_id

int64

9181.01k

9.6%

contest_date

stringclasses

2025-01-20T20:58:05.360400

100%

starter_code

stringclasses

100%

difficulty

stringclasses

hard

43.6%

output

stringlengths

4328.3k

99.9%

code

stringlengths

05.5k

99.8%

verdict

stringclasses

OK

100%

Word Capitalization

Capitalization is writing a word with its first letter as a capital letter. Your task is to capitalize the given word. Note, that during capitalization all the letters except the first one remains unchanged.A single line contains a non-empty word. This word consists of lowercase and uppercase English letters. The length of the word will not exceed 103.Output the given word after capitalization.

codeforces

A

281

2025-01-20T20:58:05.360400

easy

```python # Read the word from stdin word = input() # Capitalize the first letter of the word and make the rest lowercase capitalized_word = word.capitalize() # Print the capitalized word print(capitalized_word) ```

# Read the word from stdin word = input() # Capitalize the first letter of the word and make the rest lowercase capitalized_word = word.capitalize() # Print the capitalized word print(capitalized_word)

OK

Deepseek APP(深度思考 R1)

在不同的场景下,将单词首字母大写有不同的实现方法,以下为你详细介绍:

手动输入时
  • 手写情况:书写单词时,注意将第一个字母写成大写形式。例如写 “apple” 时,写成 “Apple”。多进行书写练习,养成大写首字母的习惯,并且书写过程中保持专注,集中精力检查首字母的书写格式。
  • 键盘输入:在键盘上输入单词,按下 “Caps Lock” 键来锁定大写输入,输入首字母后再按一次该键关闭大写,继续输入其余字母;或者在输入首字母时,按住 “Shift” 键的同时按字母键,之后松开 “Shift” 键输入剩余字母。
使用软件工具
  • 办公软件(如 Word):选中需要首字母大写的文本,在菜单栏中找到 “开始” 选项卡,点击 “更改大小写” 按钮,在下拉菜单中选择 “句首字母大写” 即可完成转换。
  • Python 代码:如果你有编程基础,也可以使用代码实现。以下是一个简单的 Python 示例,可将字符串中的每个单词首字母大写:
  • text = "hello world" 
    result = text.title()  
    print(result) 
  • 在线工具:互联网上有许多免费的在线文本转换工具。你只需将文本复制粘贴到工具的输入框中,选择 “首字母大写” 功能,工具会自动处理并输出结果。

15.SWE Verified (Resolved)  

1. 核心定义与目标

        SWE-bench Verified 是 OpenAI 推出的一个经过人工验证的 SWE-bench 子集,旨在更可靠地评估 AI 模型在真实软件工程任务中的能力。其核心目标包括:

  • 提升评估可靠性:通过人工筛选测试样本,确保问题描述清晰、单元测试合理,减少误判。
  • 贴近实际开发场景:聚焦 GitHub 真实软件问题(Issue-Pull Request 对),要求模型生成代码补丁解决具体问题。
2. 与原始 SWE-bench 的差异
维度原始 SWE-benchSWE-bench Verified
测试集规模2294 个样本500 个经过人工验证的样本23
问题描述质量部分描述模糊或歧义由专业人员修订,确保明确性26
评估工具依赖传统测试环境容器化 Docker 环境,降低配置错误17
单元测试标准存在与问题无关的严格测试人工筛选确保测试相关性23
3. 关键技术改进
  • 单元测试调整
    避免因测试案例过于严格而拒绝正确方案。例如,原始测试中某些单元测试与问题无关,而 Verified 通过人工审核确保测试有效性23
  • 问题描述明确化
    对模糊或复杂的 GitHub Issue 描述进行精细化修订,减少模型理解偏差。例如,明确标注“修复某功能”的具体代码位置26
  • 开发环境标准化
    采用 Docker 容器化工具包,解决环境依赖冲突问题,使评估过程可复现且一致17

官方网站:https://openai.com/index/introducing-swe-bench-verified/

数据集:https://huggingface.co/datasets/princeton-nlp/SWE-bench_Verified

题目示例:

patch

stringlengths

2771.99k

81.2%

test_patch

stringlengths

3672.99k

87.2%

problem_statement

stringlengths

1432.61k

83.2%

hints_text

stringlengths

01.54k

79.2%

created_at

stringlengths

20

100%

version

stringclasses

4.3

1.2%

FAIL_TO_PASS

stringlengths

123.27k

99.6%

PASS_TO_PASS

stringlengths

227.1k

93.6%

environment_setup_commit

stringclasses

298ccb478e6bf092953bca67a3d29dc6c35f6752

0.4%

difficulty

stringclasses

15 min - 1 hour

52.2%

diff --git a/astropy/modeling/separable.py b/astropy/modeling/separable.py --- a/astropy/modeling/separable.py +++ b/astropy/modeling/separable.py @@ -242,7 +242,7 @@ def _cstack(left, right): cright = _coord_matrix(right, 'right', noutp) else: cright = np.zeros((noutp, right.shape[1])) - cright[-right.shape[0]:, -right.shape[1]:] = 1 + cright[-right.shape[0]:, -right.shape[1]:] = right return np.hstack([cleft, cright])

diff --git a/astropy/modeling/tests/test_separable.py b/astropy/modeling/tests/test_separable.py --- a/astropy/modeling/tests/test_separable.py +++ b/astropy/modeling/tests/test_separable.py @@ -28,6 +28,13 @@ p1 = models.Polynomial1D(1, name='p1') +cm_4d_expected = (np.array([False, False, True, True]), + np.array([[True, True, False, False], + [True, True, False, False], + [False, False, True, False], + [False, False, False, True]])) + + compound_models = { 'cm1': (map3 & sh1 | rot & sh1 | sh1 & sh2 & sh1, (np.array([False, False, True]), @@ -52,7 +59,17 @@ 'cm7': (map2 | p2 & sh1, (np.array([False, True]), np.array([[True, False], [False, True]])) - ) + ), + 'cm8': (rot & (sh1 & sh2), cm_4d_expected), + 'cm9': (rot & sh1 & sh2, cm_4d_expected), + 'cm10': ((rot & sh1) & sh2, cm_4d_expected), + 'cm11': (rot & sh1 & (scl1 & scl2), + (np.array([False, False, True, True, True]), + np.array([[True, True, False, False, False], + [True, True, False, False, False], + [False, False, True, False, False], + [False, False, False, True, False], + [False, False, False, False, True]]))), }

Modeling's `separability_matrix` does not compute separability correctly for nested CompoundModels Consider the following model: ```python from astropy.modeling import models as m from astropy.modeling.separable import separability_matrix cm = m.Linear1D(10) & m.Linear1D(5) ``` It's separability matrix as you might expect is a diagonal: ```python >>> separability_matrix(cm) array([[ True, False], [False, True]]) ``` If I make the model more complex: ```python >>> separability_matrix(m.Pix2Sky_TAN() & m.Linear1D(10) & m.Linear1D(5)) array([[ True, True, False, False], [ True, True, False, False], [False, False, True, False], [False, False, False, True]]) ``` The output matrix is again, as expected, the outputs and inputs to the linear models are separable and independent of each other. If however, I nest these compound models: ```python >>> separability_matrix(m.Pix2Sky_TAN() & cm) array([[ True, True, False, False], [ True, True, False, False], [False, False, True, True], [False, False, True, True]]) ``` Suddenly the inputs and outputs are no longer separable? This feels like a bug to me, but I might be missing something?

2022-03-03T15:14:54Z

4.3

["astropy/modeling/tests/test_separable.py::test_separable[compound_model6-result6]", "astropy/modeling/tests/test_separable.py::test_separable[compound_model9-result9]"]

["astropy/modeling/tests/test_separable.py::test_coord_matrix", "astropy/modeling/tests/test_separable.py::test_cdot", "astropy/modeling/tests/test_separable.py::test_cstack", "astropy/modeling/tests/test_separable.py::test_arith_oper", "astropy/modeling/tests/test_separable.py::test_separable[compound_model0-result0]", "astropy/modeling/tests/test_separable.py::test_separable[compound_model1-result1]", "astropy/modeling/tests/test_separable.py::test_separable[compound_model2-result2]", "astropy/modeling/tests/test_separable.py::test_separable[compound_model3-result3]", "astropy/modeling/tests/test_separable.py::test_separable[compound_model4-result4]", "astropy/modeling/tests/test_separable.py::test_separable[compound_model5-result5]", "astropy/modeling/tests/test_separable.py::test_separable[compound_model7-result7]", "astropy/modeling/tests/test_separable.py::test_separable[compound_model8-result8]", "astropy/modeling/tests/test_separable.py::test_custom_model_separable"]

298ccb478e6bf092953bca67a3d29dc6c35f6752

15 min - 1 hour

Deepseek APP(深度思考 R1) 

以下是针对解决 Modeling 的 separability_matrix 对嵌套 Compound 计算可分性不正确问题的详细步骤与策略:

1. 问题诊断
  • 深入理解算法原理:透彻掌握 separability_matrix 算法的底层逻辑,明确其计算可分性的具体方式。查看相关文档、代码注释以及可能的学术论文,了解该算法在正常情况下如何处理不同类型的数据结构。
  • 构建测试用例:设计一系列包含嵌套 Compound 的测试用例,涵盖不同层次、不同结构的嵌套情况。通过这些测试用例运行 separability_matrix,观察输出结果并与预期结果进行对比,找出计算不正确的具体情形。
2. 数据预处理
  • 扁平化嵌套结构:将嵌套的 Compound 结构转换为扁平结构。这样可以简化数据形式,便于 separability_matrix 进行计算。例如,可以使用递归函数遍历嵌套结构,将所有元素提取出来并存储在一个一维列表中。以下是一个简单的 Python 示例代码:
def flatten_compound(compound): 
    result = [] 
    if isinstance(compound, list): 
        for item in compound: 
            result.extend(flatten_compound(item))  
    else: 
        result.append(compound)  
    return result 
  • 记录层次信息:在扁平化过程中,记录每个元素的原始层次信息。这样在后续计算可分性后,可以根据层次信息将结果映射回原始的嵌套结构。可以使用字典或元组来存储元素及其层次信息。
3. 算法调整
  • 递归计算:修改 separability_matrix 算法,使其能够递归地处理嵌套 Compound。在遇到嵌套结构时,先对内部的 Compound 进行可分性计算,然后再将结果合并到整体的计算中。例如:
def separability_matrix_with_nested(compound): 
    if isinstance(compound, list): 
        sub_matrices = [] 
        for sub_compound in compound: 
            sub_matrix = separability_matrix_with_nested(sub_compound) 
            sub_matrices.append(sub_matrix)  
        # 合并子矩阵的逻辑 
        #... 
        return merged_matrix 
    else: 
        return separability_matrix([compound])  # 假设原函数处理单个元素 
  • 权重调整:考虑为不同层次的嵌套结构分配不同的权重。因为嵌套结构中的元素对整体可分性的贡献可能不同,通过调整权重可以更准确地计算可分性。例如,外层元素的权重可以设置得更高,以反映其对整体结构的重要性。
4. 结果验证与优化
  • 对比验证:使用之前构建的测试用例对修改后的 separability_matrix 进行测试,将计算结果与预期结果进行对比。如果仍然存在不正确的情况,重复上述步骤进行问题排查和调整。
  • 性能优化:在确保计算结果正确的前提下,对算法进行性能优化。例如,减少不必要的递归调用,使用更高效的数据结构来存储和处理数据。可以使用记忆化搜索(Memoization)技术,避免重复计算相同的嵌套结构。
5. 文档更新
  • 记录修改内容:详细记录对 separability_matrix 算法所做的修改,包括数据预处理步骤、算法调整的具体逻辑以及权重调整的依据。
  • 更新使用说明:更新相关文档,说明修改后的算法如何处理嵌套 Compound 结构,以及使用时的注意事项。这样可以方便其他开发者理解和使用该算法。

通过以上步骤,可以逐步解决 Modeling 的 separability_matrix 对嵌套 Compound 计算可分性不正确的问题。


Math

16.AIME 2024 (Pass@1)

        AIME 2024 (Pass@1) 是一个专门用于评估大型语言模型(LLMs)在数学竞赛领域解决高难度问题的基准测试,核心目标是衡量模型在单次生成中正确解决美国数学邀请赛(AIME)题目的能力。AIME 是面向美国顶尖高中生的数学竞赛,其题目以复杂的数学推理和创造性解题能力著称。

测试设计与数据来源
  • 题目范围:包含 2024 年 AIME 竞赛的 15 道原创题目,涵盖代数、数论、几何、组合数学等方向,难度远超普通数学测试5
  • 评估方式
    • Pass@1:统计模型单次生成即正确的比例(例如,模型输出直接匹配答案)。
    • 多数投票(Consensus):允许生成多个答案(如 64 个样本),通过多数投票机制筛选最优解以提升准确率。
  • 动态验证:所有答案需通过严格数学验证,避免模型因“模糊正确”或语言技巧得分。
典型模型表现
  • DeepSeek-R1:在 AIME 2024 中 Pass@1 准确率达 79.8%,显著优于 OpenAI o1 的 74%(单样本)和 GPT-4o 的 12%
  • DeepSeek-R1-Distill-Qwen-32B:通过蒸馏技术优化,Pass@1 达 72.6%,在多数投票模式下提升至 86.7%
  • OpenAI o1:使用 64 个样本的共识机制后 Pass@1 达 83%,经 1000 个样本重排序后进一步升至 93%(接近人类顶尖水平)。

官方网站:Art of Problem Solving

数据集:https://huggingface.co/datasets/Maxwell-Jia/AIME_2024

题目示例:

ID

stringlengths

910

50%

Problem

stringlengths

333405

23.3%

Solution

stringlengths

284657

43.3%

Answer

int64

23110

33.3%

2024-II-4

 

Let $x,y$ and $z$ be positive real numbers that satisfy the following system of equations: \[\log_2\left({x \over yz}\right) = {1 \over 2}\] \[\log_2\left({y \over xz}\right) = {1 \over 3}\] \[\log_2\left({z \over xy}\right) = {1 \over 4}\] Then the value of $\left|\log_2(x^4y^3z^2)\right|$ is $\tfrac{m}{n}$ where $m$ and $n$ are relatively prime positive integers. Find $m+n$.

Denote $\log_2(x) = a$, $\log_2(y) = b$, and $\log_2(z) = c$. Then, we have: $a-b-c = \frac{1}{2}$, $-a+b-c = \frac{1}{3}$, $-a-b+c = \frac{1}{4}$. Now, we can solve to get $a = \frac{-7}{24}, b = \frac{-9}{24}, c = \frac{-5}{12}$. Plugging these values in, we obtain $|4a + 3b + 2c| = \frac{25}{8} \implies \boxed{033}$.

Deepseek APP(深度思考 R1)

正确答案:“33” ,回答正确。


 17.MATH-500 (Pass@1)

        MATH-500 是 数学推理领域的高难度评测数据集,由 OpenAI 从原始 MATH 数据集中精选 500 个最具挑战性的问题构成。其核心目标是评估模型在复杂数学问题(如国际竞赛级别题目)上的 首次生成正确率(Pass@1),特别关注模型的多步骤推理与学科知识综合应用能力。

数据构成与特点
  • 来源与覆盖领域:题目选自 AMC10、AMC12、AIME 等国际数学竞赛,涵盖 初等代数、代数、数论、几何、微积分、组合数学、概率统计 等 7 个学科。
  • 难度分级:所有问题均需多步推理,部分题目难度接近人类竞赛选手的极限水平,例如需要构造性证明或复杂公式推导。
  • 数据划分
    • 训练集:7500 个样本(原始 MATH 数据集)。
    • 测试集:500 个精选样本(MATH-500)。
评估方法与指标
  • Pass@1 定义:模型在单次生成中直接输出正确答案的比例,反映其 一次性解决复杂问题的能力
  • 评测设置
    • 生成策略:通常采用温度值 0.0(贪婪解码)或低温度采样,确保输出稳定性。
    • 验证机制:部分研究结合 流程奖励模型(PRM) 对推理步骤进行过程监督,避免答案侥幸正确但逻辑错误的情况。
典型应用与模型表现
  • 模型对比基准
    • DeepSeek-R1-Distill-Qwen-32B:Pass@1 94.3%,在蒸馏模型中表现最优。
    • DeepSeek-R1-Distill-Llama-70B:Pass@1 94.5%,创密集模型纪录。
    • WizardMath-70B:Pass@1 22.7%,早期开源模型中的领先者。
  • 技术优化方向
    • 动态分配策略:如加权 Best-of-N 策略,通过聚合多个生成结果提升正确率。
    • 知识蒸馏:利用大型模型(如 DeepSeek-R1)生成推理数据微调小模型,实现高效知识迁移。

官方网站:https://cdn.openai.com/improving-mathematical-reasoning-with-process-supervision/Lets_Verify_Step_by_Step.pdf

数据集:https://huggingface.co/datasets/HuggingFaceH4/MATH-500

题目示例:

problem

stringlengths

20192

64.8%

solution

stringlengths

377709

30.6%

answer

stringlengths

3137

0.6%

subject

stringclasses

Precalculus

11.2%

level

int64

2

18%

unique_id

stringlengths

2326

24.8%

Convert the point $(0,3)$ in rectangular coordinates to polar coordinates. Enter your answer in the form $(r,\theta),$ where $r > 0$ and $0 \le \theta < 2 \pi.$

We have that $r = \sqrt{0^2 + 3^2} = 3.$ Also, if we draw the line connecting the origin and $(0,3),$ this line makes an angle of $\frac{\pi}{2}$ with the positive $x$-axis. [asy] unitsize(0.8 cm); draw((-0.5,0)--(3.5,0)); draw((0,-0.5)--(0,3.5)); draw(arc((0,0),3,0,90),red,Arrow(6)); dot((0,3), red); label("$(0,3)$", (0,3), W); dot((3,0), red); [/asy] Therefore, the polar coordinates are $\boxed{\left( 3, \frac{\pi}{2} \right)}.$

\left( 3, \frac{\pi}{2} \right)

Precalculus

2

test/precalculus/807.json

Deepseek APP(深度思考 R1)

回答正确

 


 18.CNMO 2024 (Pass@1)

基准测试CNMO 2024的定位

CNMO 2024(中国高中数学奥林匹克竞赛)是评估大语言模型数学推理能力的重要基准测试,其Pass@1指标主要衡量模型在首次尝试中生成正确答案的成功率。该测试聚焦于中国高中数学竞赛级别的复杂数学问题,对模型的逻辑推理和数学解题能力提出了较高要求。

模型性能表现

在DeepSeek发布的多款模型中,R1系列在CNMO 2024测试中展现了卓越性能。其中DeepSeek V3模型在该基准测试的Pass@1指标达到78.8%,显著超过同期其他模型的水平。这一成绩体现了模型对复杂数学问题的精准理解和结构化推理能力。

测试方法特征

该基准测试采用严格的评估流程,要求模型在生成64个响应的情况下进行采样评估,使用温度值0.6和top-p值0.95的参数配置。这种评估方式既能考察模型的稳定性,又能验证其解题思路的多样性,为数学推理能力的量化提供了可靠依据。


Chinese

19.CLUEWSC (EM)

        CLUEWSC (EM) 是中文自然语言理解评估基准(CLUE)的核心子任务之一,全称为 CLUE Winograd Schema Challenge,专注于测试模型对中文语义关系的推理能力。其特点包括:

  • 任务定位:通过 文本蕴含(Textual Entailment) 任务,要求模型判断两个中文句子之间是否存在逻辑蕴含关系(如前提是否支持结论)。
  • 中文焦点:作为中文领域首个对标英文 GLUE/SuperGLUE 的权威基准,填补了中文语义推理评估的空白。
评估内容与难点
  • 任务类型
    • 语义推理:例如,判断句子“小明发现钱包在车里,于是回去取”是否蕴含“小明返回车里的原因是钱包”3
    • 常识依赖:需结合现实常识(如“钥匙开锁后留在锁中”是否合理)才能正确推理。
  • 挑战性:测试集包含大量需上下文关联和逻辑跳跃的复杂案例,传统规则模型难以应对。
评估指标与模型表现
  • 指标定义
    • EM(Exact Match):严格匹配标准答案的准确率,反映模型对语义的精确理解。
  • 典型结果:例如,DeepSeek-V3 在此测试中 EM 得分达 90.9,显著优于同期其他模型,体现其强大的中文语义推理能力。

官方网站:CLUE中文语言理解基准测评

数据集:https://github.com/CLUEbenchmark/CLUEWSC2020

题目示例:

idx

int64

131

10.2%

text

stringlengths

6476

22%

label

stringclasses

true

36.5%

target

dict

1

有些这样的“洋人”就站在大众之间,如同鹤立鸡群,毫不掩饰自己的优越感。他们排在非凡的甲菜盆后面,虽然人数寥寥无几,但却特别惹眼。

true

{ "span1_index": 6, "span1_text": "洋人", "span2_index": 35, "span2_text": "他们" }

Deepseek APP(深度思考 R1)

 正确答案:“是的”。“他们”是指代“洋人”。回答正确。


 20.C-Eval (EM)

        C-Eval 是一个多层级、多学科的中文大模型评估基准,专注于测试模型在复杂推理、知识理解和跨学科任务中的综合能力。其中,“EM”(Exact Match)是其评估指标之一,衡量模型生成答案与标准答案的精确匹配率,常用于验证模型在封闭式问题(如选择题)上的准确性。

核心特点与构建逻辑
  • 学科覆盖广:覆盖 52 个学科,包括 STEM(科学、技术、工程、数学)、社会科学、人文学科和其他领域,难度分为初中、高中、大学、专业四级。
  • 数据防污染设计:题目主要来自 PDF/Word 格式的考试题库(如高考、职业资格考试),通过非结构化数据处理避免模型训练时泄漏。
  • 动态难度分层:包含专门的高难度子集 C-Eval HARD,聚焦需要高级推理的数学、物理等学科。
评估方法与指标
  • EM(精确匹配)计算:对于选择题,直接判断模型输出选项是否与标准答案完全一致。例如,若模型在 100 题中正确匹配 60 题,则 EM 得分为 60%。
  • 多模式评估
    • Answer-Only (AO):直接输出答案,适合基础能力测试。
    • Chain-of-Thought (CoT):要求模型生成推理过程,测试逻辑思维能力。
    • 实验显示,仅 GPT-4 在 CoT 模式下对部分科目(如大学物理)有显著提升。
  • 少样本(Few-shot)测试:默认采用 5-shot 方式,从开发集抽取示例以模拟真实应用场景。

官方网站:C-Eval: 一个适用于大语言模型的多层次多学科中文评估套件

数据集:https://huggingface.co/datasets/ceval/ceval-exam

题目示例:

id

int32

044

10.2%

question

stringlengths

1441

51.2%

A

stringlengths

3445

7.2%

B

stringlengths

5667

1.6%

C

stringlengths

1325

24.4%

D

stringlengths

1121

21.9%

answer

stringclasses

100%

explanation

stringclasses

100%

0

下列关于资本结构理论的说法中,不正确的是____。

代理理论、权衡理论、有企业所得税条件下的MM理论,都认为企业价值与资本结构有关

按照优序融资理论的观点,考虑信息不对称和逆向选择的影响,管理者偏好首选留存收益筹资,然后是发行新股筹资,最后是债务筹资

权衡理论是对有企业所得税条件下的MM理论的扩展

代理理论是对权衡理论的扩展

Deepseek APP(深度思考 R1) 


21.C-SimpleQA (Correct)

        C-SimpleQA (Correct) 是一个专注于评估语言模型(LLMs)事实性回答准确性的中文基准测试,其核心目标是为大模型在简短事实性问题上的真实性能力提供可靠、静态的量化指标。

  • 聚焦领域:覆盖中国文化、人文、工程技术、自然科学、艺术等6大主题,细分99个子主题(如“中国古代建筑”“量子计算”等)。
  • 设计原则:通过严格的数据筛选和验证流程,确保每个问题仅有一个明确答案且不受时间影响(如“李白出生于哪一年?”),避免评估偏差。
数据集构建与特点
  • 数据规模:包含3000个高质量问题,每个问题均经过三重人工验证流程:
    1. 初始标注:由AI训练师从互联网收集并编写问题,确保答案唯一性;
    2. 独立复核:第二位标注员独立回答问题,仅保留双方一致的条目;
    3. 最终抽检:第三位标注员对1000个随机问题再次验证,数据集固有错误率约3%23
  • 挑战性设计:问题需能诱导主流模型(如GPT-4o、Claude 3.5)产生“幻觉”(错误答案),例如设置冷门知识点或易混淆表述。
评估方法与指标
  • 评分机制
    • 模型回答分为正确错误未尝试三类,通过自动化工具(如OpenAI API或自定义脚本)快速评分。
    • 校准度分析:同时评估模型置信度与真实准确率的匹配程度(如模型对答案的确定性是否合理)。
  • 典型表现
    • 前沿模型如o1-preview正确率不足50%,Claude 3.5错误率超60%,凸显基准的高难度。
    • 小模型(如o1-mini)因知识储备不足,更倾向于“未尝试”而非错误回答。

官方网站:https://openai.com/index/introducing-simpleqa/

数据集:https://huggingface.co/datasets/OpenStellarTeam/Chinese-SimpleQA

题目示例:

primary_category

stringclasses

中华文化

10.9%

secondary_category

stringclasses

中医

1.1%

question

stringlengths

820

34%

answer

stringlengths

16

68.6%

urls

sequencelengths

14

42.7%

中华文化

中医

伏兔穴所属的经脉是什么?

足阳明胃经

[ "https://zh.wikipedia.org/wiki/%E4%BC%8F%E5%85%94%

 Deepseek APP(深度思考 R1) 

回答正确


 

;