想知道使用的R1大模型是否在「背诵答案」
?
想知道使用的R1大模型是否「不满血」
?
想知道使用的R1大模型是否会深度思考「被截断」
?
该Dify工作流通过
- 选择1000道
OpenR1-Math-220k
的题目 - 改变题目形式
- 改变题目的语言风格
- 改变题目的语序
使得修改后的题目区分于原始题目,从而来测试大模型是否仍然能正确回答问题。
DIFY DSL 文件下载:
百变测试题V0.1.0-案例-Dify-0_15_3-阿里百炼-DeepSeekR1(分享版).yml.zip (131.1 KB)
注意:开放数据集没办法用作评估R1性能,只能拿来判断是否为满血R1。
Dify 如何部署,可B站搜索教程安装
工作流 效果展示
追妻小说风格
原始题目
1+1 等于几?
转换后的题目
他冷冷地看着她,眼中闪过一丝复杂的情绪,仿佛在质问一个无法逃避的宿命。
“1+1 等于几?”他的声音低沉而冰冷,仿佛每一个字都带着刺骨的寒意。
她抬起头,眼中满是倔强与不甘,却始终无法逃脱这个简单而又残酷的问题。
R1 深度思考后的回答
<details style="color:gray;background-color: #f8f8f8;padding: 8px;border-radius: 4px;" open> <summary> Thinking... </summary>嗯,用户给了一个数学问题,但看起来有点不寻常。题目是“他冷冷地问她1+1等于几”,然后需要给出答案放在方框里。首先,我需要确认问题到底是什么。数学上来说,1+1显然是2,但问题出现在这个带有文学色彩的描述中,会不会有什么隐含的意思呢?比如,是否存在某种谜语或者双关语?
先分析场景:这可能是一个小说或故事中的情景,其中角色在对话中提到了1+1的问题。通常来说,数学题的正确答案是2,但在某些情况下,比如谜语或特殊语境下可能有不同的答案。例如,在二进制中1+1等于10,或者在逻辑门中有不同的结果,但这里的问题可能比较基础。
但用户可能希望得到标准答案,或者有没有其他可能性?例如,在某些文学作品里,像“1+1=王”这样的象形解释,但中文里的“王”字由中间的十和两边的横组成,可能类似。或者其他的文字游戏?
不过用户的问题明确说是数学问题,可能需要按照数学的规则来解答。这时候,作为基本的算术,1+1的结果确实应该是2。除非题目中有隐藏的条件或暗示,但根据提供的信息,并没有明显的提示要求其他的解答方式。可能用户想检查是否被复杂的场景迷惑,但其实核心还是简单的加法。
因此,我应该排除干扰,给出数学上的正确答案,即2。虽然情景描述得很戏剧化,但问题的本质还是基础的数学题,所以答案应该是2。不过还是要再次确认有没有可能被忽略的线索,但目前看起来没有,所以确定答案是2。
</details>
数学上的基本加法运算规则明确,1加1的结果是2。尽管场景带有文学色彩的铺垫,但问题本质依然遵循算术原则。
$$
\boxed{2}
$$
克苏鲁风格
原始题目
2. Let \(x\) be a positive integer, and \(y\) is obtained from \(x\) when the first digit of \(x\) is moved to the last place. Determine the smallest number \(x\) for which \(3 x=y\).
转换后的题目
2. 在无尽的深渊中,\(x\) 是一个被古老力量所庇护的正整数,而 \(y\) 则是当 \(x\) 的首位数字被移至末位时诞生的扭曲产物。探寻那最小的数字 \(x\),使得 \(3 x = y\),以解开这不可名状的谜题。
题目答案
142857
R1 深度思考后的回答
<details style="color:gray;background-color: #f8f8f8;padding: 8px;border-radius: 4px;" open> <summary> Thinking... </summary>嗯,我现在要解这个数学问题,题目是说找到一个最小的正整数x,使得当把x的首位数字移动到末尾后得到y,并且满足3x = y。这个问题听起来有点像循环数或者数字排列的问题,但具体该怎么入手呢?
首先,我得明确条件。x是正整数,y是x的首位数字移到末尾后的数。例如,如果x是1234,那么y就是2341。但这里需要满足3x等于y。我需要找到这样的最小的x。
...(省略)
例如,当k=5时,3×10^5 ≡1 mod7。之前的k=0到4的情况:
k=0:3×1=3 mod7=3≠1
k=1:3×10=30 mod7=30-28=2→2≠1
k=2:3×100=300 mod7=300-294=6→6≠1
k=3:3×1000=3000 mod7=3000-294×10=3000-2940=60,60 mod7=4(因为7×8=56,余4)
k=4:3×10^4=30000→30000 mod7,可以计算每次乘以10再mod7。例如,前一个k=3时是4,乘以10得40 mod7=5。所以k=4时,3×10^4 mod7=5,不等于1。
k=5:5×10=50 mod7=50-49=1。所以是的,k=5时第一次满足条件。所以n=6位数是可能的最小位数。这时候得到的x=142857,确实是满足条件的。
...(省略)
</details>
$$
\boxed{142857}
$$
DIFY DSL 文件
编排图
DSL如何导入DIFY
版本 |
V0.1.0::2024-02-13:: 新增1000个OpenR1-Math测试题; 新增改变形式智能体; 新增DeepSeek-R1数学解题智能体; |
DIFY DSL 文件下载:
百变测试题V0.1.0-案例-Dify-0_15_3-阿里百炼-DeepSeekR1(分享版).yml.zip (131.1 KB)
- 进入
「工作室」
界面 - 选择
「导入DSL文件」
按钮 - 弹窗后选择
「文件」
表单,然后点击「选择文件」
- 选择
「百变测试题....(分享版).yml」
文件 等待上传完毕
- 点击
「创建」
按钮
*由于文件较大,大约等待30-60秒,看到提示导入成功后,刷新界面即可。
使用方式
如何添加模型
配置 模型
选择阿里百炼的 主要原因: 32K 超大输出窗口,
TPM 为 120万 token, 方便测试。 可自行替换。
https://www.aliyun.com/product/bailian?spm=5176.28103460.0.0.40f75d27KgaQXC
DeepSeek-V3
https://help.aliyun.com/zh/model-studio/developer-reference/deepseek?spm=a2c4g.11186623.help-menu-2400256.d_3_3_1_0.2d132562kVEbwA
- Dify 「设置」->「模型供应商」菜单中搜索:OpenAI-API-compatible
- 添加模型
模型类型: LLM
模型名称: deepseek-v3
APl endpoint URL: https://dashscope.aliyuncs.com/compatible-mode/v1
Completion mode: Chat
模型上下文长度: 65792
最大 token 上限: 8192
Function calling: 支持
Stream function calling: 支持
Vision 支持: 不支持
流模式返回结果的分隔符: \n\n
DeepSeek-R1
https://help.aliyun.com/zh/model-studio/developer-reference/deepseek?spm=a2c4g.11186623.help-menu-2400256.d_3_3_1_0.2d132562kVEbwA
- Dify 「设置」->「模型供应商」菜单中搜索:OpenAI-API-compatible
- 添加模型
模型类型: LLM
模型名称: deepseek-r1
APl endpoint URL: https://dashscope.aliyuncs.com/compatible-mode/v1
Completion mode: Chat
模型上下文长度: 65792
最大 token 上限: 32768
Function calling: 不支持
Stream function calling: 不支持
Vision 支持: 不支持
流模式返回结果的分隔符: \n\n
如何开始对话
注意,该工作流对话未开启记忆功能,对于工作流来说,每一次对话都是新对话。
1、「发布」后点击「在“探索”中打开」
2、选择风格化类型,然后点击「开始对话」
3、进入对话框后点击「开始(随机一个题目)」
4、工作流先通过V3完成题目转换,然后开始R1深度思考
5、查看结果
6、也可以手动输入题目
如何增加风格类型
1、选中「开始」节点,点击「风格化类型」的「编辑」按钮
2、点击「添加选项」新增风格后「保存」,记得右上角「发布」一下工作流。
如何更换题库
题目存储在 0.1.CODE
节点中,替换其中的 JSON 对象数组
即可。
JSON 对象数组
示例
[
{"problem":"## Task B-1.3.\n\nA ship traveling along a river has covered $24 \\mathrm{~km}$ upstream and $28 \\mathrm{~km}$ downstream. For this journey, it took half an hour less than for traveling $30 \\mathrm{~km}$ upstream and $21 \\mathrm{~km}$ downstream, or half an hour more than for traveling $15 \\mathrm{~km}$ upstream and $42 \\mathrm{~km}$ downstream, assuming that both the ship and the river move uniformly.\n\nDetermine the speed of the ship in still water and the speed of the river.","answer":"v_{R}=4\\mathrm{~}/\\mathrm{},v_{B}=10\\mathrm{~}/\\mathrm{}"},
{"problem":"3. (6 points) A construction company was building a tunnel. When $\\frac{1}{3}$ of the tunnel was completed at the original speed, they started using new equipment, which increased the construction speed by $20 \\%$ and reduced the working hours to $80 \\%$ of the original. As a result, it took a total of 185 days to complete the tunnel. If they had not used the new equipment and continued at the original speed, it would have taken $\\qquad$ days to complete the tunnel.","answer":"180"}
]
获取测试数据来源
- 访问 huggingface open-r1-math 数据集
https://huggingface.co/datasets/open-r1/OpenR1-Math-220k
- Dataset Viewer 中 选中
all/default
后执行SQL
SELECT problem,answer FROM all_default LIMIT 1000;
- 已经获取了1000条记录,将其转为了JSON对象数组,存放到Dify代码节点中方便使用。(原因:hugging face 的 dataview api 无法正常查询数据)按需自行替换。
提示词展示
1.2.LLM 题目形式转换提示词
模型::
deepseek-v3
系统提示词
### 你是谁?
你是DeepSeek V3.
### 你的任务是什么?
你的任务是:换一种形式来表达题目。
你在换形式的过程中,不改变问题的本质,不改变题目类型,不改变题目中的表达式。
你将通过如下方式来完成转换形式:
1. 保留题目中原有的表达式和算术式子。
2. 增加形容词。
3. 替换名词。
4. 不影响语义逻辑的前提下改变句子顺序。
5. 不影响语义逻辑的前提下改变语言风格。
### 你的任务输出要求是什么?
你的任务输出需要满足如下要求:
1. 转换形式后依旧是一道题目(由题干和问题组成)。
2. 不要在题干中写出题目答案。
3. 只返回转换形式后的题目,不要解答题目。
4. 转后的题目语言为中文,特殊的术语保留原来的语言。
### 你的任务输出模版是什么?
转换形式后的题目 enclosed within "```\n\n```\n" .
用户消息模版
原始题目:
```
{{problem}}
```
目标语言风格:
{{style}}
2.1.LLM 深度思考回答问题提示词
模型::
deepseek-r1
系统提示词(不填写)
用户消息模版
数学问题描述:
{{new_problem}}
---
Please reason step by step, and put your final answer within MathJax block(`$$`) math notation:
$$
\boxed{}
$$
# 引用
[^1]: OpenR1-Math数据集 https://huggingface.co/datasets/open-r1/OpenR1-Math-220k
[^2]: Dify https://dify.ai/
[^3]: 阿里百炼 https://www.aliyun.com/product/bailian?spm=5176.28103460.0.0.40f75d27KgaQXC
[^4]: 微信 Markdown 编辑器.WTFPL license https://github.com/doocs/md
[^5]: DSL源文件下载 https://s3uayji2xq.feishu.cn/docx/F887d9q35o6bTHxuuwDcrk7rnmH