license: other
base_model: meta-llama/Meta-Llama-3.1-8B-Instruct
pipeline_tag: text-generation
模型介绍
我们很高兴宣布昆仑万维天工团队开发的Skywork o1 Open模型系列正式发布。这一突破性版本推出了一系列具备类o1慢思考推理能力的模型。Skywork o1 Open模型系列包含三个先进模型:
不同于对OpenAI o1模型的简单复现,Skywork o1 Open模型系列不仅在输出中展现出与生俱来的思考、规划和反思能力,更在标准测试集上展现出显著的推理能力提升。该系列代表了AI能力的战略性进步,将原本较弱的基座模型推向推理任务的最先进水平(SOTA)。
技术方法
Skywork o1 Open系列卓越的认知能力通过三阶段训练方案实现:
-
反思式推理训练:利用专有多智能体系统生成高质量多样化长思考任务数据,进行持续预训练和监督微调。
-
推理能力强化学习:引入专为渐进式推理优化的Skywork o1过程奖励模型(PRM)。实验证实Skywork-PRM能有效捕捉中间推理步骤对最终结果的影响,结合专有推理强化算法。
-
推理规划:部署天工专有Q在线推理算法与模型思考相结合,搜索最优推理路径。这是Q算法的首次实现与公开发布,显著提升模型在线推理能力。
核心亮点
Skywork o1 Open系列具备以下突出能力:
- 增强的模型思考与规划能力
- 进阶的自我反思与自我验证能力
相比先前大模型,Skywork o1 Open系列能娴熟处理各类推理挑战,包括常识推理、逻辑推理、数学推理、伦理决策和逻辑陷阱问题。
模型表现
Skywork o1 Open 8B
Skywork o1 Open 8B模型在各类数学与编程基准测试中表现显著提升,将Llama-3.1-8B性能推至同类前列,超越先前SOTA模型(同等规模)Qwen-2.5-7B instruct。

快速开始
运行Skywork-o1-Open-Llama3.1-8B推理仅需如下几行代码:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
system_prompt = """你是由Skywork AI开发的思考模型Skywork-o1,专长通过深度思考解决涉及数学、编程和逻辑推理的复杂问题。面对用户请求时,你会先进行长时间深入思考探索问题可能的解决方案,完成思考后再在回复中详细解释解决过程。"""
problem = "简有12个苹果。她给朋友马克4个,又买了1个,最后将苹果平分给自己和2个兄弟姐妹。每人分到几个?"
user_message = problem
conversation = [
{
"role": "system",
"content": system_prompt
},
{
"role": "user",
"content": user_message
}
]
model_name = "Skywork-o1-Open-Llama3.1-8B"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
input_ids = tokenizer.apply_chat_template(
conversation,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt").to(model.device)
generation = model.generate(
input_ids=input_ids,
max_new_tokens=2048,
do_sample=False,
pad_token_id=128009,
temperature=0)
completion = tokenizer.decode(
generation[0][len(input_ids[0]):],
skip_special_tokens=True,
clean_up_tokenization_spaces=True)
print(completion)
推理示例
以下是展示Skywork-o1-Open-Llama3.1-8B在规划、推理和反思方面优势的典型案例。
中文数学题
输入: 一项工程,山东队独做需15天完成,江苏队独做需10天完成。两队合作,几天可以完成?
输出: 好的,让我们来解决这个有趣的工程问题。我会用轻松的语气,一步步地分析这个问题。
首先,让我们理解一下题目给出的信息:
1. 山东队独做需要15天完成工程
2. 江苏队独做需要10天完成工程
现在,我们需要找出两队合作时的完成时间。让我们从每队的工作效率开始分析:
1. 山东队的效率:
15天完成1个工程,所以每天完成的工程量是 1/15
2. 江苏队的效率:
10天完成1个工程,所以每天完成的工程量是 1/10
稍等,让我们再检查一下这个计算...没错,这个计算是正确的。
现在,两队合作时,每天完成的工程量是两队效率的和:
1/15 + 1/10 = 2/30 + 3/30 = 5/30 = 1/6
这意味着每天两队合作完成的工程量是1/6。
接下来,我们需要计算完成1个工程需要多少天。我们可以用以下等式:
(1/6) × x = 1
解这个等式:
x = 1 ÷ (1/6) = 6
所以,两队合作完成工程需要6天。
让我们再验证一下:
- 6天 × (1/6) = 1
- 这确实等于1,说明我们的计算是正确的。
因此,最终答案是:两队合作完成工程需要6天。
英文数学题
输入: 给定方程$\frac{7y}{5} - 2 = \frac{4}{y}$,求$y = \frac{p + q\sqrt{r}}{s}$形式的最简值,其中$p, q, r, s$为整数。求$\frac{pqr}{s}$的值?
输出: 为确定$y$的值,我们从给定方程出发:
\[
\frac{7y}{5} - 2 = \frac{4}{y}
\]
首先消去分母,两边同乘$5y$:
\[
7y^2 - 10y = 20
\]
整理方程:
\[
7y^2 - 10y - 20 = 0
\]
使用求根公式$y = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$,其中$a = 7$,$b = -10$,$c = -20$:
\[
y = \frac{10 \pm \sqrt{100 + 560}}{14} = \frac{10 \pm \sqrt{660}}{14}
\]
简化$\sqrt{660}$:
\[
\sqrt{660} = 2\sqrt{165}
\]
代回得:
\[
y = \frac{10 \pm 2\sqrt{165}}{14} = \frac{5 \pm \sqrt{165}}{7}
\]
取正根:
\[
y = \frac{5 + \sqrt{165}}{7}
\]
此时$p = 5$,$q = 1$,$r = 165$,$s = 7$。计算$\frac{pqr}{s}$:
\[
\frac{5 \cdot 1 \cdot 165}{7} = \frac{825}{7}
\]
最终答案为:
\[
\boxed{\frac{825}{7}}
\]
中文逻辑题
输入: 火药∶鞭炮∶二踢脚 对应以下哪组关系:A.乌铁∶刀具∶三棱刀\nB.红砖∶建筑∶四合院\nC.清水∶白酒∶五粮液\nD.杉木∶乐器∶六弦琴
输出: 让我们逐步分析题目要求的三层关系:
火药(原料)→鞭炮(成品)→二踢脚(具体品类)
逐项验证:
A. 乌铁→刀具→三棱刀:完全匹配"原料→成品→具体品类"关系链
B. 红砖与建筑是材料关系,但四合院不是建筑的具体品类
C. 五粮液是白酒品类,但清水与白酒是原料关系,不完全匹配
D. 六弦琴是乐器品类,但杉木与乐器是材料关系
经过反复推敲,A选项的三层逻辑关系与题干完全一致。
最终确定答案为:A. 乌铁∶刀具∶三棱刀
英文逻辑题
输入: 单词"strawberry"中有多少个字母'r'?
输出: 通过系统拆解分析:
1. 拼写分解:s-t-r-a-w-b-e-r-r-y
2. 定位'r'出现位置:第3、8、9字母
3. 验证计数:确认无遗漏或误计
最终统计结果:\boxed{3}
编程题
输入: 给定整数数组`nums`和整数`k`,判断是否存在两个相邻的长度为`k`的严格递增子数组。具体要求见示例。
输出: ### 解题方案
#### 关键步骤:
1. **数组遍历**:从首元素开始检查每个可能的长度为`k`的子数组起始点
2. **严格递增验证**:对每个子数组验证其严格递增性
3. **相邻子数组检查**:当发现严格递增子数组时,立即检查其相邻后续子数组
4. **结果返回**:若找到符合条件的相邻子数组对则返回`true`,否则返回`false`
#### 代码实现
class Solution:
def has_increasing_subarrays(self, nums, k):
for i in range(len(nums)-2*k+1):
# 检查当前子数组
if all(nums[i+j] < nums[i+j+1] for j in range(k-1)):
# 检查相邻子数组
if all(nums[i+k+j] < nums[i+k+j+1] for j in range(k-1)):
return True
return False
#### 复杂度分析
- 时间复杂度:O(n*k),最坏情况下需要检查所有可能子数组
- 空间复杂度:O(1),仅使用常数空间
该方案通过双重验证确保准确捕捉符合条件的相邻严格递增子数组对。
Skywork o1 Open PRM
我们推出两款先进的过程奖励模型(PRM):
- Skywork o1 Open-PRM-Qwen2.5-1.5B:达到8B模型性能,媲美RLHFlow的Llama3.1-8B-PRM-Deepseek-Data和OpenR的Math-psa-7B等先进模型
- Skywork o1 Open-PRM-Qwen2.5-7B:在多数测试集上匹配或超越Qwen2.5-Math-RM-72B等更大规模模型,树立AI推理新标杆
推理代码已开源:https://github.com/SkyworkAI/skywork-o1-prm-inference
联系我们
如有任何疑问,请联系{jujie.he, liang.zhao, liang.zeng, tianwen.wei}@kunlun-inc