阿里推出全新推理模型(因果语言模型),仅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配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/71537.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TomcatServlet

https://www.bilibili.com/video/BV1UN411x7xe tomcat tomcat 架构图&#xff0c;与 jre&#xff0c;应用程序之前的关系 安装使用 tomcat 10 开始&#xff0c;api 从 javax.* 转为使用 jakarta.*&#xff0c;需要至少使用 jdk 11 cmd 中默认 gbk 编码&#xff0c;解决控制…

JDK ZOOKEEPER KAFKA安装

JDK17下载安装 mkdir -p /usr/local/develop cd /usr/local/develop 将下载的包上传服务器指定路径 解压文件 tar -zxvf jdk-17.0.14_linux-x64_bin.tar.gz -C /usr/local/develop/ 修改文件夹名 mv /usr/local/develop/jdk-17.0.14 /usr/local/develop/java17 配置环境变量…

高考數學。。。

2024上 具体来说&#xff0c;直线的参数方程可以写为&#xff1a; x1t y−t z1t 二、简答题(本大题共5小题&#xff0c;每小题7分&#xff0c;共35分。) 12.数学学习评价不仅要关注结果评价&#xff0c;也要关注过程评价。简要说明过程评价应关注哪几个方面。…

C# 实现鼠标轨迹录制与回放自动化功能(附源码)

在软件自动化测试或者重复性办公任务中&#xff0c;鼠标操作的自动化可以大大减少人工干预&#xff0c;提高工作效率。这里将详细介绍如何使用 C# 实现鼠标轨迹的录制与回放功能&#xff0c;代码结构清晰&#xff0c;具有较强的扩展性。 引用 NuGet 包 在开发这个功能时&…

Nacos 核心功能实战笔记(超详细)

Nacos 核心功能实战笔记 一、Nacos 简介 1. 是什么&#xff1f; 全称&#xff1a;Nacos Naming and Configuration Service定位&#xff1a;阿里巴巴开源的 动态服务发现、配置管理、服务管理平台核心功能&#xff1a;服务注册与发现 统一配置管理 服务健康监测适用场景&…

安装remixd,在VScode创建hardhat

在终端&#xff0c;以管理员身份&#xff0c;cmd 需要科学上网 npm install -g remix-project/remixd 在vscode插件中&#xff0c;安装solidity插件&#xff0c;是暗灰色那款 1.将nodeJs的版本升级至18以上 2.在vscode打开一个新的文件&#xff0c;在终端输入 npx hardhat 3.…

unity pico开发 四 物体交互 抓取 交互层级

文章目录 手部设置物体交互物体抓取添加抓取抓取三种类型抓取点偏移抓取事件抓取时不让物体吸附到手部 射线抓取交互层级 手部设置 为手部&#xff08;LeftHandController&#xff09;添加XRDirInteractor脚本 并添加一个球形碰撞盒&#xff0c;勾选isTrigger,调整大小为0.1 …

CyberRT(apollo) 定时器模块简述及bug分析

timer 模块 timer的定义&#xff0c;cyberrt中timer模块用于设置定时器任务&#xff0c;字面意思&#xff0c;设置设置定时周期及出发频次&#xff08;周期 or oneshot)&#xff0c;到达指定时间时间触发callback time wheel 时钟节拍轮&#xff0c;常见的定时器设计&#x…

java八股文之消息中间件

1.RabbitMQ如何保证消息不丢失 开启生产者确认机制&#xff0c;确保生产者的消息能到达队列开启持久化功能&#xff0c;确保消息未消费前在队列中不会丢失&#xff08;交换机&#xff0c;队列&#xff0c;消息都需要开启持久化功能&#xff09;开启消费者确认机制为auto,由spr…

Win7重装不翻车!ISO镜像安全下载渠道+BIOS设置避雷手册

一、写在前面&#xff1a;为什么你需要这份教程&#xff1f; 当电脑频繁蓝屏、系统崩溃甚至无法开机时&#xff0c;重装系统可能是最后的救命稻草。但市面上的教程往往存在三大痛点&#xff1a; ⚠️ 镜像来源不明导致系统被植入后门 ⚠️ 启动盘制作失败反复折腾 ⚠️ 操作失…

大学至今的反思与总结

现在是2025年的3月5日&#xff0c;我大三下学期。 自大学伊始&#xff0c;我便以考研作为自己的目标&#xff0c;有时还会做自己考研上岸头部985,211&#xff0c;offer如潮水般涌来的美梦。 但是我却忽略了一点&#xff0c;即便我早早下定了决心去考研&#xff0c;但并没有早…

SpringBoot 全局异常处理

文章目录 异常处理全局异常处理(推荐)局部异常处理高级技巧设置返回状态码处理404异常异常处理 全局异常处理(推荐) 创建一个全局异常处理类,使用 @RestControllerAdvice 注解标记。 在方法上使用 @ExceptionHandler 声明当前方法可处理的异常类型。当系统发生异常时,…

【四.RAG技术与应用】【11.阿里云百炼应用(上):RAG在云端的实践】

一、为什么需要RAG?大模型的“知识困境”与破局之道 大模型虽然“博学”,但它的知识库存在两个致命短板: 缺乏私有知识:比如企业内部的产品手册、客户数据、行业报告等;知识更新滞后:大模型的训练数据往往停留在某个时间点,无法实时获取最新信息(比如今天的股票行情或…

使用wifi连接手机adb进行调试|不使用数据线adb调试手机|找应用错误日志和操作日志

手机在开发者选项里要开启无线调试 在手机设置中查看WiFi的IP地址 设置 -> WLAN -> 已连接的WiFi -> IP地址 使用手机的IP地址连接 adb connect 192.168.1.12:xxxxx 检查连接状态 adb devices 断开特定设备 adb disconnect 192.168.x.x:xxxxx 断开所有设备 …

mapbox高阶,结合threejs(threebox)添加三维球体

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️threebox Sphere静态对象二、🍀使用t…

游戏引擎学习第140天

回顾并为今天的内容做准备 目前代码的进展到了声音混音的部分。昨天我详细解释了声音的处理方式&#xff0c;声音在技术上是一个非常特别的存在&#xff0c;但在游戏中进行声音混音的需求其实相对简单明了&#xff0c;所以今天的任务应该不会太具挑战性。 今天我们会编写一个…

golang并发编程如何学习

《掌握 Golang 并发编程的通关秘籍》 在当今的编程世界中&#xff0c;Golang 并发编程正以其独特的魅力和强大的能力吸引着众多开发者。然而&#xff0c;对于许多小伙伴来说&#xff0c;如何学好这门技术却成了一个头疼的问题。别担心&#xff0c;今天就让我来为大家揭开 Gola…

SpringMVC学习(controller层加载控制与(业务、功能)bean加载控制、Web容器初始化配置类)(3)

目录 一、SpringMVC、Spring的bean加载控制。 &#xff08;1&#xff09;实际开发的包结构层次。 &#xff08;2&#xff09;如何"精准"控制两个容器分别加载各自bean。(分析) <1>SpringMVC相关bean加载控制。(方法) <2>Spring相关bean加载控制。(方法) …

fastapi+mysql实现增删改查

说明&#xff1a; 我计划用python的fastapi框架&#xff0c;实现操作MySQL数据库的表&#xff0c;实现增删改查的操作&#xff0c;并且在postman里面测试 step1: 安装数据库依赖 pip install fastapi uvicorn pymysqlstep2:C:\Users\Administrator\PycharmProjects\FastAPIPro…

Linux系统之配置HAProxy负载均衡服务器

Linux系统之配置HAProxy负载均衡服务器 前言一、HAProxy介绍1.1 HAProxy简介1.2 主要特点1.3 使用场景二、本次实践介绍2.1 本次实践简介2.2 本次实践环境规划三、部署两台web服务器3.1 运行两个Docker容器3.2 编辑测试文件3.3 访问测试四、安装HAProxy4.1 更新系统软件源4.2 安…