概览
OpenAI o1 在竞争性编程问题(Codeforces)中排名第 89 位,在美国数学奥林匹克 (AIME) 资格赛中跻身美国前 500 名学生之列,并在物理、生物和化学问题 (GPQA) 基准测试中超越人类博士级准确度。
我们的大规模强化学习算法教会模型如何在高度数据高效的训练过程中利用其思路进行有效思考。我们发现,随着强化学习的增加(训练时间计算)和思考时间的增加(测试时间计算),o1 的性能会持续提高。扩展此方法的限制与 LLM 预训练的限制大不相同,我们将继续研究这些限制。
原文:https://openai.com/index/learning-to-reason-with-llms/
整体评估
在一系列不同的人工考试和 ML 基准上测试模型。在绝大多数推理密集型任务中,o1 的表现明显优于 GPT-4o。
在许多以推理为主的基准测试中,o1 的表现可与人类专家相媲美。最新的前沿模型在 MATH 和 GSM8K 测试上的表现非常出色,以至于这些基准测试已无法有效区分模型的水平。我们在 AIME 考试上评估了数学表现,AIME 是专为挑战美国最优秀的高中数学学生而设计的考试。在2024年 AIME 考试中,GPT-4o 平均仅解决了12%(1.8/15)的题目,而 o1 单次采样的平均正确率为74%(11.1/15),在64次采样的共识下为83%(12.5/15),使用学习得分函数对1000个样本进行重新排序后达到93%(13.9/15)。13.9分的成绩使 o1 位列美国前500名学生之列,并超出美国数学奥林匹克的入选线。
我们还在 GPQA-diamond 上对 o1 进行了评估,这是一个包含化学、物理和生物学领域的高难度智力基准测试。为了将模型与人类进行对比,我们邀请了拥有博士学位的专家回答 GPQA-diamond 问题。结果显示,o1 的表现超越了这些人类专家,成为首个在该基准测试上超过人类专家的模型。这些结果并不意味着 o1 在各方面都比博士更胜一筹,而是表明模型在解决一些博士学位水平的问题上表现更为出色。在其他多个机器学习基准测试中,o1 也超越了当前的最先进水平。在启用视觉感知能力后,o1 在 MMMU 测试中取得了78.2%的得分,使其成为首个在此测试中可与人类专家竞争的模型。此外,o1 在57个 MMLU 子类中优于 GPT-4o 的表现达54个。
思维链(Chain of Thought)
与人类在回答难题之前会长时间思考的方式类似,o1 在尝试解决问题时会使用思路链。通过强化学习,o1 学会磨练其思路链并改进其使用的策略。它学会识别和纠正错误。它学会将棘手的步骤分解为更简单的步骤。它学会在当前方法不起作用时尝试不同的方法。这个过程极大地提高了模型的推理能力。为了说明这一飞跃,我们在下面展示了 o1-preview 中针对几个难题的思路链。
密码
编程
GPT-4o的代码:
#!/bin/bash
# Input matrix as a string
matrix_string=$1
# Remove square brackets
matrix_string=$(echo "$matrix_string" | tr -d '[]')
# Convert the string into an array of rows
IFS=',' read -r -a rows <<< "$matrix_string"
# Get the number of columns (length of the first row)
num_columns=$(echo "${rows[0]}" | awk -F',' '{print NF}')
# Initialize an array for the transpose
declare -a transpose
# Loop over each column
for ((i=0; i<num_columns; i++)); do
column=()
# Loop over each row and extract the i-th element
for ((j=0; j<${#rows[@]}; j+=num_columns)); do
element=${rows[$((j+i))]}
column+=("$element")
done
# Join the elements of the column with commas
transpose+=("[$(IFS=','; echo "${column[*]}")]")
done
# Print the transpose as a matrix
echo "$(IFS=','; echo "${transpose[*]}")"
OpenAI o1-preview 的代码:
#!/bin/bash
input="$1"
# Remove any spaces
input="${input// /}"
# Split input into rows
IFS=']' read -ra rows <<< "$input"
# Initialize an array to hold the matrix
declare -a matrix
num_rows=0
for row in "${rows[@]}"; do
# Remove leading commas and brackets
row="${row#','}"
row="${row#'['}"
row="${row//]/}"
# Skip empty rows
if [ -z "$row" ]; then
continue
fi
# Split row into elements
IFS=',' read -ra elements <<< "$row"
# Store elements in matrix
matrix[$num_rows]="${elements[*]}"
((num_rows++))
done
# Number of columns (assuming at least one row)
IFS=' ' read -ra first_row_elements <<< "${matrix[0]}"
num_cols=${
#first_row_elements[@]}
# Prepare an array to hold the transposed matrix
declare -a transposed
# For each column c
for (( c=0; c<$num_cols; c++ )); do
col_elements=()
# For each row r
for (( r=0; r<$num_rows; r++ )); do
# Get elements of row r
IFS=' ' read -ra row_elements <<< "${matrix[$r]}"
col_elements+=("${row_elements[$c]}")
done
# Store the column elements as a row in transposed matrix
transposed[$c]="${col_elements[*]}"
done
# Build output string
output=""
for (( i=0; i<${#transposed[@]}; i++ )); do
IFS=' ' read -ra elements <<< "${transposed[$i]}"
# Build a string '[elem1,elem2,...]'
row_string="[${elements[0]}"
for (( j=1; j<${#elements[@]}; j++ )); do
row_string="$row_string,${elements[$j]}"
done
row_string="$row_string]"
if [ -z "$output" ]; then
output="$row_string"
else
output="$output,$row_string"
fi
done
echo "$output"
数学
填字
理解
科学
安全
健康
编码
我们训练了一个模型,该模型在 2024 年国际信息学奥林匹克 (IOI) 比赛中获得 213 分,排名 49 个百分点,方法是从 o1 开始初始化,然后进行训练以进一步提高编程技能。该模型在与人类参赛者相同的条件下参加了 2024 年 IOI 比赛。它有 10 个小时来解决六个具有挑战性的算法问题,每个问题允许提交 50 份答案。
对于每个问题,我们的系统都会抽取许多候选提交,并根据测试时间选择策略提交其中的 50 个。提交是根据 IOI 公共测试用例、模型生成的测试用例和学习的评分函数的表现来选择的。如果我们随机提交,我们的平均得分只有 156 分,这表明在比赛限制下,这种策略值近 60 分。
我们发现,在放宽提交限制后,模型性能显著提高。当允许每个问题提交 10,000 次时,即使没有任何测试时间选择策略,该模型也能获得 362.14 分,高于金牌门槛。
最后,我们模拟了 Codeforces 主办的竞争性编程竞赛,以展示该模型的编码技能。我们的评估与竞赛规则非常接近,允许提交 10 份作品。GPT-4o 的 Elo 评级为808 分,位于人类竞争对手的第 11 个百分位。o1-ioi 模型远远超过了 GPT-4o 和 o1——它的 Elo 评级为 1807 分,表现优于 93% 的竞争对手。
人类偏好评估
除了考试和学术基准之外,我们还在广泛领域的具有挑战性的开放式提示上评估了人类对 o1-preview 和 GPT-4o 的偏好。在这次评估中,人类看到了对 o1-preview 和 GPT-4o 提示的匿名回答,并投票选出他们更喜欢的回答。在数据分析、编码和数学等推理能力较强的类别中,o1-preview 的受欢迎程度远远高于 gpt-4o。然而,o1-preview 在某些自然语言任务上并不受欢迎,这表明它并不适合所有用例。
安全
思路链推理为协调和安全提供了新的机会。我们发现,将我们的模型行为策略整合到推理模型的思路链中,是一种有效的方式来强有力地教授人类价值观和原则。通过向模型教授我们的安全规则以及如何在上下文中推理它们,我们发现推理能力直接有利于模型稳健性的证据:o1-preview 在关键越狱评估和我们用于评估模型安全拒绝边界的最严格的内部基准上取得了显着的改进。我们认为,使用思路链为安全性和协调性提供了重大进步,因为 (1) 它使我们能够以清晰的方式观察模型思维;(2) 关于安全规则的模型推理对于分布外场景更具鲁棒性。
附录
欢迎关注本人,我是喜欢搞事的程序猿; 一起进步,一起学习;
欢迎关注知乎/CSDN:SmallerFL
也欢迎关注我的wx公众号(精选高质量文章):一个比特定乾坤