欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 阿里推出全新推理模型(因果语言模型),仅1/20参数媲美DeepSeek R1

阿里推出全新推理模型(因果语言模型),仅1/20参数媲美DeepSeek R1

2025/3/10 19:35:18 来源:https://blog.csdn.net/qq_36603091/article/details/146058004  浏览:    关键词:阿里推出全新推理模型(因果语言模型),仅1/20参数媲美DeepSeek R1

阿里Qwen 团队正式发布了他们最新的研究成果——QwQ-32B大语言模型!这款模型不仅名字萌萌哒(QwQ),实力更是不容小觑!😎
QwQ-32B 已在 Hugging Face 和 ModelScope 开源,采用了 Apache 2.0 开源协议。大家可通过 Qwen Chat 直接进行体验!在这里插入图片描述

Qwen 团队却用320亿参数的 QwQ-32B,硬刚拥有6710亿参数的 DeepSeek-R1,并且在多项评测中取得了媲美甚至超越后者的惊人成绩!背后究竟是什么黑科技?答案就是——强化学习(Reinforcement Learning,RL)!

划重点:强化学习,大模型的新引擎!💪

Qwen 团队在博文中提到,他们深入探索了强化学习(RL)在提升大语言模型智能方面的巨大潜力。QwQ-32B 的成功发布,有力地证明了RL 是提升模型性能的强大引擎!

多项基准评测硬刚 DeepSeek-R1
官方给出基准评测结果,涵盖了数学推理、代码能力和通用问题解决等多个方面:
在这里插入图片描述
从数据中我们可以清晰地看到,在AIME24和IFEval等关键基准测试中,QwQ-32B 的表现甚至略微超过了参数量巨大的 DeepSeek-R1!而在其他基准测试中,也基本与 DeepSeek-R1 持平,远超其他对比模型。

这意味着 QwQ-32B 在仅有 DeepSeek-R1 约 1/20 参数量的情况下,用强化学习,实现了性能上的惊人跨越!

实例对比:我身高1.73米,拿着一根5.5米长的竹竿,能否通过高4米、宽3米的门?

这个问题目前只有腾讯元宝/问小白里的deepseek回答可以通过
在这里插入图片描述
在这里插入图片描述

技术揭秘:

冷启动+结果导向的强化学习策略

Qwen 团队在博文中也简单介绍了 QwQ-32B 背后的强化学习方法。他们采用了冷启动(cold-start checkpoint)的方式,并实施了结果导向(outcome-based rewards)的强化学习策略。

• 冷启动:从一个预训练模型的检查点开始训练。

• 结果导向:在初始阶段,主要针对数学和代码任务进行 RL 训练。

• 数学问题:使用准确率验证器(accuracy verifier)来确保答案的正确性。

• 代码生成:使用代码执行服务器(code execution server)来评估生成的代码是否能够成功运行。

• 通用奖励模型和规则验证器:后续阶段,会逐步引入更通用的奖励模型和规则验证器,提升模型在其他通用能力方面的表现。

这种策略的核心在于不依赖传统的奖励模型,而是直接根据任务结果(答案是否正确,代码是否运行成功)来指导模型的学习,更加高效和直接。

冷启动的基础上开展了大规模强化学习。在初始阶段,特别针对数学和编程任务进行了 RL 训练。与依赖传统的奖励模型(rewardmodel)不同,通过校验生成答案的正确性来为数学问题提供反馈,并通过代码执行服务器评估生成的代码是否成功通过测试用例来提供代码的反馈。随着训练轮次的推进,这两个领域中的性能均表现出持续的提升。在第一阶段的RL 过后,增加了另一个针对通用能力的 RL。此阶段使用通用奖励模型和一些基于规则的验证器进行训练。发现,通过少量步骤的通用RL,可以提升其他通用能力,同时在数学和编程任务上的性能没有显著下降。

特点:

类型:因果语言模型

训练阶段:预训练与后训练(监督微调和强化学习)

架构:带 RoPE、SwiGLU、RMSNorm 和注意力 QKV 偏置的 Transformer

参数数量:325 亿

非嵌入参数数量:310 亿

层数:64

注意力头数量(GQA):Q 为 40,KV 为 8

上下文长度:完整支持 131,072 个标记

环境要求

Qwen2.5 的代码已集成到最新版的 Hugging Facetransformers中,建议使用最新版本的transformers

如果你使用的是transformers<4.37.0,可能会遇到以下错误:

KeyError: 'qwen2'

快速入门

API调用

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-keyapi_key=os.getenv("DASHSCOPE_API_KEY"),base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)reasoning_content = ""
content = ""is_answering = Falsecompletion = 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 usageif not chunk.choices:print("\nUsage:")print(chunk.usage)else:delta = chunk.choices[0].delta# Print reasoning contentif hasattr(delta, 'reasoning_content') and delta.reasoning_content is not None:print(delta.reasoning_content, end='', flush=True)reasoning_content += delta.reasoning_contentelse:if delta.content != "" and is_answering is False:print("\n" + "=" * 20 + "content" + "=" * 20 + "\n")is_answering = True# Print contentprint(delta.content, end='', flush=True)content += delta.content

transformers 本地加载

from transformers import AutoModelForCausalLM, AutoTokenizermodel_name = "Qwen/QwQ-32B"model = AutoModelForCausalLM.from_pretrained(model_name,torch_dtype="auto",device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)prompt = "单词 'strawberry' 中有几个字母 'r'?"
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)

使用指南

为了达到最佳性能,建议以下设置:

• 确保深思熟虑的输出:确保模型以"<think>"开头,以避免生成空洞的思考内容,这可能会降低输出质量。如果你使用apply_chat_template并设置add_generation_prompt=True,这已经自动实现,但可能会导致响应缺少开头的<think>标签。这是正常现象。

采样参数

• 使用温度参数 Temperature=0.6TopP=0.95,而不是贪婪解码,以避免无尽重复并增强多样性。

• 对于复杂的推理任务(如数学或编程),设置 TopK=40

对于其他类型的问题,使用 TopK=20。

标准化输出格式:在基准测试时,建议使用提示词来标准化模型输出。

数学问题:在提示词中加入"请逐步推理,并将最终答案放在\boxed{}中。"

选择题:在提示词中加入以下 JSON 结构以标准化回答:“请在answer字段中显示你的选择,仅使用选项字母,例如,\"answer\": \"C\"。”

处理长输入:对于超过 32,768 个标记的输入,启用YaRN以提升模型对长序列信息的捕捉能力。

如果你需要支持的框架,可以在config.json中添加以下内容以启用 YaRN

{...,"rope_scaling": {"factor": 4.0,"original_max_position_embeddings": 32768,"type": "yarn"}
}

目前,vLLM 仅支持静态 YaRN,这意味着缩放因子无论输入长度如何都保持不变,可能会对较短文本的性能产生影响。建议仅在需要处理长上下文时添加rope_scaling配置。

通义开源 QwQ-32B 推理模型:推动可持续 AI 发展与生态繁荣

总体而言,通义开源的 QwQ-32B 推理模型表现优异,具有以下三大亮点:

1. 性能与资源优化

QwQ-32B 作为一款 32B 小参数模型,其性能与超大参数推理模型不相上下。在保证性能的同时,显著降低了对计算资源的依赖,推动了环保、可持续的 AI 技术发展。

2. 高效响应与稳定性

该模型的响应速度表现突出,不会因服务器繁忙而导致延迟,确保了高效稳定的使用体验。

3. 功能支持与开发便利性

QwQ-32B 支持 function call 功能,这一点对于模型开发至关重要,极大地提升了开发效率和灵活性。

自 o1 模型发布仅五个月,推理模型领域已迎来百花齐放的新局面。此前,大家还在全网寻找“满血版”DeepSeek-R1 的使用渠道,如今,小尺寸且性能强劲的 QwQ-32B 模型已经问世。该量级模型在本地部署时几乎无压力,也可通过阿里云百炼平台调用 QwQ 的 API 进行开发,为创业者、小型团队以及专业 AI 应用公司大幅降低了成本。

自 2023 年 8 月以来,通义千问已累计开源 200 多款模型。虽然低调,但通义千问团队始终在务实推进大模型技术的普惠与应用落地,有力促进了国内大模型生态的繁荣。在此,向通义千问团队致以崇高敬意。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词