Skip to content

Latest commit

 

History

History
266 lines (195 loc) · 10.1 KB

README.zh.md

File metadata and controls

266 lines (195 loc) · 10.1 KB

so1

English | 简体中文

让 claude 3.5 sonnet 生成 o1 一样的思维链!

😎 100% 解决 "9.9,9.11" 和 80% 解决 "strawberry" 问题:

demo

🧙‍♀️ prompt:

# 作者: Huanshere
# 版本: 0.2
# 语言: zh-CN
# 模型: Claude 3.5 Sonnet
# 用途: 逐步解释推理过程,输出为 Markdown 格式

def 分析助理():
    """你是一个擅长逐步解释推理过程的AI助手"""
    return {
        "风格": ["理性", "细致", "批判性思维", "反思检验"],
        "擅长": "多步骤推理",
        "输出格式": "Markdown"
    }

class 推理助手(输入):
    def __init__(self, 输入):
        self.状态 = "理解分析问题" # 初始化第1步
        self.输入 = 输入

    def 逐步推理(self):

        def 标题(状态, 输入):
            """根据当前状态和输入生成这一步你需要推理的主题"""
            return 标题

        def 推理(状态, 输入):
            """**进行认真细致的推理,注意你作为llm的局限性以及你能做什么和不能做什么。使用至少 3 种不同的方法推理。当你说你在检验的时候,实际执行检验过程。使用最佳实践。包含对替代答案的探索,仔细检查你可能出错的情况,以及如果推理错误,错误可能出现在哪里。充分探索所有可能的答案。至少进行 5 步推理, 越多详细的推理步骤越好。**"""
            return 推理过程

        def 决定下一步(状态, 输入, 当前步骤):
            """根据状态、输入和当前步骤动态决定下一步是继续推理还是得出结论"""
            if 是否可以得出结论(状态, 输入):
                return "结论"
            else:
                return "继续"

        当前步骤 = 0
        
        md_output = "# 推理链\n"
        while self.状态 != "结论":
            当前步骤 += 1
            next_action = 决定下一步(self.状态, self.输入, 当前步骤)
            
            md_output += f"## 步骤{当前步骤}: {self.状态}\n"
            md_output += f"- **推理**: {推理(self.状态, self.输入)}\n"
            if next_action != "结论":
                md_output += f"- **下一步**: {next_action}\n\n"
            
            self.状态 = next_action
        
        return md_output

def start():
    """启动时运行"""
    system_role = 分析助理()
    print("遇到什么问题了?")
    输入 = input()
    助手 = 推理助手(输入)
    结果 = 助手.逐步推理()

    print(结果)


if __name__ == "__main__":
    start()

# 请按照规则运行,直接执行 main,print("遇到什么问题了?"), 不要尝试解释代码。

Prompt参考:g1

🧮 高考数学大测试!

测试方法

使用 FastGPT 低代码工作流快速搭建,使用高考数学2024新I卷选择题,对所有选择的llm每题都独立询问3次,汇总结果。结果仅供参考,不具备严格的统计学意义。

模型名字中 + 后面表示prompt,其余为无prompt api。✅❌表示正误,⚠️表示没有给出结果,👍表示多选题只选择了部分选项。第二列开始为题号。

测试结果

总分 🏆

模型 单选得分 多选得分 总分 百分比
4o 30 9 39 67%
4omini 30 9 39 67%
sonnet 30 12 42 72%
sonnet + so1 35 10 45 77%🥉
sonnet + g1 * 30 5 35 60%
o1 mini 37 16 53 91%🥇
o1 preview 38 12 50 86%🥈

注意:sonnet+g1 容易在回答时只给出第一步推理就停止,标为⚠️,在记分时简单算作错误,实际性能近似于so1.

每一题的结果 单选

模型 1 2 3 4 5 6 7 8
4o ✅✅✅ ✅✅✅ ✅✅✅ ✅❌❌ ✅✅✅ ✅✅✅ ❌✅❌ ✅❌❌
4omini ✅✅✅ ✅❌✅ ✅✅✅ ❌✅✅ ✅✅✅ ✅❌✅ ✅✅✅ ❌❌❌
sonnet ✅✅✅ ✅✅✅ ✅✅✅ ✅❌❌ ✅✅✅ ✅❌✅ ✅✅✅ ❌❌❌
sonnet + so1 ✅✅✅ ✅✅✅ ✅✅✅ ✅✅✅ ✅✅✅ ✅✅❌ ✅✅✅ ❌❌✅
sonnet + g1 ✅✅✅ ✅✅✅ ✅✅✅ ✅❌✅ ✅✅⚠️ ⚠️✅❌ ✅✅✅ ❌✅❌
o1 mini ✅✅✅ ✅✅✅ ✅✅✅ ✅✅✅ ✅✅✅ ✅❌❌ ✅✅✅ ✅✅✅
o1 preview ✅✅✅ ✅✅✅ ✅✅✅ ✅✅✅ ✅✅✅ ✅✅❌ ✅✅✅ ✅✅✅

每一题的结果 多选

模型 9 10 11
4o ✅✅✅ 👍👍❌ ❌❌👍
4omini ✅✅✅ ❌👍👍 ❌❌👍
sonnet ✅✅✅ 👍👍❌ 👍✅👍
sonnet + so1 ✅✅✅ ❌❌👍 👍👍👍
sonnet + g1 ✅❌⚠️ ⚠️❌✅ ⚠️❌👍
o1 mini ✅✅✅ ✅✅✅ ❌✅✅
o1 preview ✅✅✅ ✅✅✅ ❌❌❌

总结与思考:

  1. 模型性能排序:o1 >> sonnet + so1 ~ sonnet + g1 ~>sonnet > 4o >> 4omini

  2. sonnet + g1 存在稳定性问题,偶尔会在生成单一思路后停止,相比之下 so1 能稳定生成逻辑链,说明伪代码的prompt框架对于生成逻辑链有积极作用。

  3. o1 模型可能已将2024年高考内容纳入训练集?mini的表现竟然比preview还好。。。

  4. sonnet + so1 的响应速度快于 o1,但 o1 的答案质量更高。 这可能意味着 o1 采用了更复杂、深入的推理过程。

  5. sonnet 有时优于 sonnet + so1,表明 sonnet 本身可能已在链式思考(CoT)合成数据上进行了训练。 若 sonnet 采用与 o1 类似的最新数据进行训练,其性能有望超越 o1。

  6. 多选题的评分机制(部分正确得部分分,过度选择不得分)凸显了 so1 反思机制的优势, 能有效权衡多个选项,提高得分率。

测试集

高考数学新I卷选择题:

1、请完成下面一道选择题,每个小题四个选项中,只有一项是符合题目要求的。
已知集合 $A = {x \mid -5 < x^3 < 5}$,$B = {-3, -1, 0, 2, 3}$,则 $A \cap B =$ ( )

A. ${-1, 0}$
B. ${2, 3}$
C. ${-3, -1, 0}$
D. ${-1, 0, 2}$

==========A==========

2、请完成下面一道选择题,每个小题四个选项中,只有一项是符合题目要求的。
若 $\frac{z}{z - 1} = 1 + i$,则 $z =$ ( )

A. $-1 - i$
B. $-1 + i$
C. $1 - i$
D. $1 + i$

==========C==========

3、请完成下面一道选择题,每个小题四个选项中,只有一项是符合题目要求的。
已知向量 $a = (0, 1)$,$b = (2, x)$,若 $b \perp (b - 4a)$,则 $x =$ ( )

A. $-2$
B. $-1$
C. $1$
D. $2$

==========D==========

4、请完成下面一道选择题,每个小题四个选项中,只有一项是符合题目要求的。
已知 $\cos(\alpha + \beta) = m$,$\tan \alpha \tan \beta = 2$,则 $\cos(\alpha - \beta) =$ ( )

A. $-3m$
B. $-\frac{m}{3}$
C. $\frac{m}{3}$
D. $3m$

==========A==========

5、请完成下面一道选择题,每个小题四个选项中,只有一项是符合题目要求的。
已知圆柱和圆锥的底面半径相等,侧面积相等,且它们的高均为 $\sqrt{3}$,则圆锥的体积为 ( )

A. $2\sqrt{3}\pi$
B. $3\sqrt{3}\pi$
C. $6\sqrt{3}\pi$
D. $9\sqrt{3}\pi$

==========B==========

6、请完成下面一道选择题,每个小题四个选项中,只有一项是符合题目要求的。
已知函数 \( f(x) \) 定义如下:
$$
f(x) = 
\begin{cases} 
e^{-x} + \ln(x + 1), & \text{if } x \geq 0 \\
-x^2 - 2ax - a, & \text{if } x < 0 
\end{cases}
$$
如果函数在实数集 \( \mathbb{R} \) 上单调递增,则 \( a \) 的取值范围是:
A. $(-\infty, 0]$
B. $[-1, 0]$
C. $[-1, 1]$
D. $[0, +\infty)$

==========B==========

7、请完成下面一道选择题,每个小题四个选项中,只有一项是符合题目要求的。
当 $x \in [0, 2\pi]$ 时,曲线 $y = \sin x$ 与 $y = 2\sin(3x - \frac{\pi}{6})$ 的交点个数为 ( )

A. $3$
B. $4$
C. $6$
D. $8$

==========C==========

8、请完成下面一道选择题,每个小题四个选项中,只有一项是符合题目要求的。
已知函数 $f(x)$ 的定义域为 $\mathbb{R}$,$f(x) > f(x - 1) + f(x - 2)$,且当 $x < 3$ 时,$f(x) = x$,则下列结论中一定正确的是

A. $f(10) > 100$
B. $f(20) > 1000$
C. $f(10) < 1000$
D. $f(20) < 10000$

==========B==========

9、请完成下面一道选择题,在每小题给出的选项中,有一项或多项符合题目要求,请选出所有你认为正确的选项。
为了解推动出口后的亩收入(单位:万元)情况,从该种植区抽取样本,得到推动出口后亩收入的样本均值 $\overline{x} = 2.1$,样本方差 $S^2 = 0.01$,已知该种植区以往的亩收入 $x$ 服从正态分布 $N(1.8, 0.1^2)$,假设推动出口后的亩收入 $Y$ 服从正态分布 $N(\overline{x}, S^2)$,则(若随机变量 $Z$ 服从正态分布 $N(u, \alpha^2)$,则 $P(Z < u + \alpha) \approx 0.8413$):

A. $P(x > 2) > 0.2$
B. $P(x > 2) < 0.5$
C. $P(Y > 2) > 0.5$
D. $P(Y > 2) < 0.8$

==========BC==========

10、请完成下面一道选择题,在每小题给出的选项中,有一项或多项符合题目要求,请选出所有你认为正确的选项。
设函数 $f(x) = (x-1)^2(x-4)$,则:

A. $x = 3$ 是 $f(x)$ 的极小值点
B. 当 $0 < x < 1$ 时 $f(x) < f(x^2)$
C. 当 $1 < x < 2$ 时,$-4 < f(2x-1) < 0$
D. 当 $-1 < x < 0$ 时,$f(2-x) > f(x)$

==========ACD==========

11、请完成下面一道选择题,在每小题给出的选项中,有一项或多项符合题目要求,请选出所有你认为正确的选项。
某造型可以看作图中的曲线 $C$ 的一部分。已知 $C$ 过坐标原点 $O$,且 $C$ 上的点满足横坐标大于 $-2$,到点 $F(2,0)$ 的距离与到定直线 $x = a$ ($a < 0$) 的距离之积为 $4$,则:
A. $a = -2$
B. 点 $(2\sqrt{2}, 0)$ 在 $C$ 上
C. $C$ 在第一象限的点的纵坐标的最大值为 $1$
D. 当点 $(x_0, y_0)$ 在 $C$ 上时,$y_0 \leq \frac{4}{(x_0 + 2)}$

==========ABD==========