QwQ-32B:拥抱强化学习的力量
QwQ-32B:拥抱强化学习的力量
2025年3月6日 · 4 分钟 · 742 字 · Qwen 团队 | 翻译:
QWEN CHAT Hugging Face ModelScope DEMO DISCORD
扩展强化学习 (RL) 有潜力提升模型性能,超越传统的预训练和后训练方法。最近的研究表明,RL 可以显著提高模型的推理能力。例如,DeepSeek R1 通过整合冷启动数据和多阶段训练,实现了最先进的性能,从而能够进行深度思考和复杂推理。
我们的研究探索了强化学习 (RL) 的可扩展性及其对增强大型语言模型智能的影响。我们很高兴推出 QwQ-32B,这是一个拥有 320 亿参数的模型,其性能与拥有 6710 亿参数(其中 370 亿已激活)的 DeepSeek-R1 相媲美。这一显著成果突显了 RL 应用于基于广泛世界知识进行预训练的强大基础模型的有效性。此外,我们还将与 agent 相关的能力集成到推理模型中,使其能够在利用工具的同时进行批判性思考,并根据环境反馈调整其推理。这些进步不仅展示了 RL 的变革潜力,也为人工智能通用智能的进一步创新铺平了道路。
QwQ-32B 在 Hugging Face 和 ModelScope 上以 Apache 2.0 许可开源,并且可以通过 Qwen Chat 访问。
性能#
QwQ-32B 在一系列旨在评估其数学推理、编码能力和一般问题解决能力的基准测试中进行了评估。以下结果突出了 QwQ-32B 与其他领先模型(包括 DeepSeek-R1-Distilled-Qwen-32B、DeepSeek-R1-Distilled-Llama-70B、o1-mini 和原始 DeepSeek-R1)相比的性能。
强化学习#
我们从一个冷启动检查点开始,并实施了一种由基于结果的奖励驱动的强化学习 (RL) 扩展方法。在初始阶段,我们专门为数学和编码任务扩展 RL。我们没有依赖传统的奖励模型,而是使用数学问题的准确性验证器来确保最终解决方案的正确性,并使用代码执行服务器来评估生成的代码是否成功通过预定义的测试用例。随着训练过程的进行,这两个领域的性能都显示出持续的提高。在第一阶段之后,我们添加了另一个用于一般能力的 RL 阶段。它使用来自一般奖励模型和一些基于规则的验证器的奖励进行训练。我们发现,使用少量步骤进行的此阶段 RL 训练可以提高其他一般能力的性能,例如指令遵循、与人类偏好的一致性以及 agent 性能,而不会显着降低数学和编码方面的性能。
使用 QwQ-32B#
以下是简短的示例,演示了如何通过 Hugging Face Transformers 和 Alibaba Cloud DashScope API 使用 QwQ-32B。
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Qwen/QwQ-32B"
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
prompt = "How many r's are in the word \"strawberry\""
messages = [
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(
**model_inputs,
max_new_tokens=32768
)
generated_ids = [
output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)
copy
from openai import OpenAI
import os
# Initialize OpenAI client
client = OpenAI(
# If the environment variable is not configured, replace with your API Key: api_key="sk-xxx"
# How to get an API Key:https://help.aliyun.com/zh/model-studio/developer-reference/get-api-key
api_key=os.getenv("DASHSCOPE_API_KEY"),
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)
reasoning_content = ""
content = ""
is_answering = False
completion = client.chat.completions.create(
model="qwq-32b",
messages=[
{"role": "user", "content": "Which is larger, 9.9 or 9.11?"}
],
stream=True,
# Uncomment the following line to return token usage in the last chunk
# stream_options={
# "include_usage": True
# }
)
print("\n" + "=" * 20 + "reasoning content" + "=" * 20 + "\n")
for chunk in completion:
# If chunk.choices is empty, print usage
if not chunk.choices:
print("\nUsage:")
print(chunk.usage)
else:
delta = chunk.choices[0].delta
# Print reasoning content
if hasattr(delta, 'reasoning_content') and delta.reasoning_content is not None:
print(delta.reasoning_content, end='', flush=True)
reasoning_content += delta.reasoning_content
else:
if delta.content != "" and is_answering is False:
print("\n" + "=" * 20 + "content" + "=" * 20 + "\n")
is_answering = True
# Print content
print(delta.content, end='', flush=True)
content += delta.content
copy
未来工作#
这标志着 Qwen 在扩展强化学习 (RL) 以增强推理能力方面迈出的第一步。通过这一旅程,我们不仅见证了扩展 RL 的巨大潜力,而且认识到预训练语言模型中尚未开发的潜力。当我们致力于开发下一代 Qwen 时,我们有信心将更强大的基础模型与由扩展计算资源提供支持的 RL 相结合,将推动我们更接近实现人工智能通用智能 (AGI)。此外,我们还在积极探索将 agent 与 RL 集成以实现长程推理,旨在通过推理时间缩放来释放更大的智能。