免费建立个人网站官网,北京网站seo排名,网站页面设计说明,网站图文混排怎么存放到数据库里阿里Qwen 团队正式发布了他们最新的研究成果——QwQ-32B大语言模型#xff01;这款模型不仅名字萌萌哒(QwQ)#xff0c;实力更是不容小觑#xff01;#x1f60e; QwQ-32B 已在 Hugging Face 和 ModelScope 开源#xff0c;采用了 Apache 2.0 开源协议。大家可通过 Qwen C…阿里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
• 注意力头数量GQAQ 为 40KV 为 8
• 上下文长度完整支持 131,072 个标记
环境要求
Qwen2.5 的代码已集成到最新版的 Hugging Facetransformers中建议使用最新版本的transformers。
如果你使用的是transformers4.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_keysk-xxx# How to get an API Keyhttps://help.aliyun.com/zh/model-studio/developer-reference/get-api-keyapi_keyos.getenv(DASHSCOPE_API_KEY),base_urlhttps://dashscope.aliyuncs.com/compatible-mode/v1
)reasoning_content
content is_answering Falsecompletion client.chat.completions.create(modelqwq-32b,messages[{role: user, content: Which is larger, 9.9 or 9.11?}],streamTrue,# 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, flushTrue)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, flushTrue)content delta.content
transformers 本地加载
from transformers import AutoModelForCausalLM, AutoTokenizermodel_name Qwen/QwQ-32Bmodel AutoModelForCausalLM.from_pretrained(model_name,torch_dtypeauto,device_mapauto
)
tokenizer AutoTokenizer.from_pretrained(model_name)prompt 单词 strawberry 中有几个字母 r
messages [{role: user, content: prompt}
]
text tokenizer.apply_chat_template(messages,tokenizeFalse,add_generation_promptTrue
)model_inputs tokenizer([text], return_tensorspt).to(model.device)generated_ids model.generate(**model_inputs,max_new_tokens32768
)
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_tokensTrue)[0]
print(response)使用指南
为了达到最佳性能建议以下设置
• 确保深思熟虑的输出确保模型以think开头以避免生成空洞的思考内容这可能会降低输出质量。如果你使用apply_chat_template并设置add_generation_promptTrue这已经自动实现但可能会导致响应缺少开头的think标签。这是正常现象。
• 采样参数
• 使用温度参数 Temperature0.6 和 TopP0.95而不是贪婪解码以避免无尽重复并增强多样性。
• 对于复杂的推理任务如数学或编程设置 TopK40。
• 对于其他类型的问题使用 TopK20。
• 标准化输出格式在基准测试时建议使用提示词来标准化模型输出。
• 数学问题在提示词中加入请逐步推理并将最终答案放在\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配置。