阿里通义开源推理模型新王者!QwQ-32B:性能直逼671B的DeepSeek-R1

237 阅读7分钟

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦


🎧 “阿里开源推理神器 QwQ-32B:仅靠 32B 参数,数学编程全搞定!”

🚀 「32B参数吊打670B?阿里开源推理核弹:强化学习炼出的数学天才模型」

大家好,我是蚝油菜花。你是否也经历过这些崩溃瞬间——

  • 👉 调试代码时逻辑绕成毛线团,死活找不到bug出口
  • 👉 啃数学证明像看天书,三步推导卡两小时
  • 👉 读论文时明明每个字都认识,连起来却不知所云...

今天要揭秘的 QwQ-32B ,堪称AI界的"最强大脑"!这个由阿里开源的320亿参数模型,通过强化学习炼就超凡推理能力:

  • ✅ 数学证明:在IMO难题上准确率超70%,步骤严谨如教授板书
  • ✅ 代码生成:支持多轮调试对话,自动定位隐藏bug
  • ✅ 跨领域推理:用《三体》情节解释量子力学,复杂概念秒懂

更疯狂的是,它的数学推理能力竟比肩671B参数的顶尖模型!工程师用它三天搞定毕设,研究员靠它批量刷论文——你的思维外挂已经到货,准备好开启认知革命了吗?

🚀 快速阅读

QwQ-32B 是阿里巴巴开源的新型推理模型,具备强大的数学推理和编程能力。

  1. 核心功能:支持数学推理、编程任务和智能体能力,适用于复杂任务的动态决策。
  2. 技术原理:基于强化学习训练,集成智能体能力,根据环境反馈调整推理策略。

QwQ-32B 是什么

QwQ-32B-final

QwQ-32B 是阿里巴巴开源的新型推理模型,参数量为 320 亿。基于大规模强化学习(RL)训练,在数学推理、编程等任务上表现出色,性能比肩 6710 亿参数的 DeepSeek-R1 满血版。模型集成智能体能力,根据环境反馈调整推理过程,展现出强大的适应性和推理能力。

QwQ-32B-chat

模型已在 Hugging Face 开源,采用 Apache 2.0 协议,在 Qwen Chat 能直接进行体验。QwQ-32B 的发布证明强化学习在提升模型性能方面的巨大潜力,为未来通用人工智能(AGI)的发展提供了新的思路和方向。

QwQ-32B 的主要功能

  • 强大的推理能力:在数学推理、编程任务和通用能力测试中表现出色,性能媲美更大参数量的模型。
  • 智能体(Agent)能力:支持进行批判性思考,根据环境反馈调整推理过程,适用于复杂任务的动态决策。
  • 多领域适应性:基于强化学习训练,模型在数学、编程和通用能力上均有显著提升。

QwQ-32B 的技术原理

  • 强化学习训练:模型针对数学和编程任务进行 RL 训练。数学任务基于校验答案正确性提供反馈,编程任务基于代码执行结果评估反馈。随后,模型进入通用能力训练阶段,用通用奖励模型和基于规则的验证器进一步提升性能。
  • 预训练基础模型:QwQ-32B 基于强大的预训练模型(如 Qwen2.5-32B),大规模预训练获得广泛的语言和逻辑能力。强化学习在此基础上进一步优化模型的推理能力,让模型在特定任务上表现更优。
  • 智能体集成:模型集成智能体能力,根据环境反馈动态调整推理策略,实现更复杂的任务处理。

如何运行 QwQ-32B

通过镜像一键部署

在这里特别感谢 UCloud 优云智算提供的 GPU 算力支持!让项目得到了快速的部署和调试运行。

UCloud 介绍

UCloud

优云智算是 UCloud 优刻得的GPU算力租赁平台,专注于为用户提供灵活的算力资源。支持按天、按小时短期租赁及包月长期租赁,满足各类需求。

结合丰富的公共镜像社区,优云智算提供多种预配置的容器镜像,如LLamaFactory、SD-webUI 和 LLM 等,实现一键部署,5分钟就能快速上手 AI,助力用户快速启动和扩展项目。

1. 使用该镜像创建实例

QwQ-32B 满血版 - 镜像发布页(神秘通道)www.compshare.cn/images-deta…

QwQ-32B-GGUF 量化版 - 镜像发布页(神秘通道)www.compshare.cn/images-deta…

【算力福利速递】神秘通道秒领40枚算力金币解锁20小时顶配4090显卡试驾体验!学生党/职场人亮出大佬身份,立享永久VIP+额外金币补给包,快乐白嫖手慢无~

首先,在镜像发布页可以查看到我制作完成并分享到平台的实例镜像,通过右侧的使用该镜像创建实例可以快速创建一个实例。

UCloud_use_mirror

2. 部署GPU实例

可按需选择配置后再立即部署

运行满血版的 QwQ-32B 模型推荐配置四卡(选配GPU型号为40系,数量为4)

UCloud_mirror_ini

3. 启动实例

稍等片刻后,实例就会自动创建并启动,通过查看实例列表可查看实例的运行状态,并支持随时关闭或启用。

UCloud_contorl

实例同时提供了一个 JupyterLab 应用作为交互式开发环境,它提供了更现代化和灵活的用户界面,方便我们继续后续的步骤。

UCloud_JupyterLab

1. 使用 Hugging Face Transformers

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)

运行效果

QwQ-32B-terminal

2. 使用 Alibaba Cloud DashScope API

from openai import OpenAI
import os

# Initialize OpenAI client
client = OpenAI(
    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
)

print("\n" + "=" * 20 + "reasoning content" + "=" * 20 + "\n")

for chunk in completion:
    if not chunk.choices:
        print("\nUsage:")
        print(chunk.usage)
    else:
        delta = chunk.choices[0].delta
        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(delta.content, end='', flush=True)
            content += delta.content

3. 使用 Streamlit 构建聊天机器人

# 导入所需的库
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
import streamlit as st

# 在侧边栏中创建一个标题和一个链接
with st.sidebar:
    st.markdown("## Qwen/QwQ-32B LLM")
    max_length = st.slider("max_length", 0, 32768, 1024, step=1)

# 创建一个标题和一个副标题
st.title("💬 Qwen/QwQ-32B Chatbot")
st.caption("🚀 A streamlit chatbot powered by Hugging Face Transformers")

# 定义模型路径
model_name = "Qwen/QwQ-32B"

# 定义一个函数,用于获取模型和tokenizer
@st.cache_resource
def get_model():
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    model = AutoModelForCausalLM.from_pretrained(
        model_name,
        torch_dtype="auto",
        device_map="auto"
    )
    model.eval()  
    return tokenizer, model

# 加载模型和tokenizer
tokenizer, model = get_model()

if "messages" not in st.session_state:
    st.session_state["messages"] = [{"role": "assistant", "content": "有什么可以帮您的?"}]

# 显示聊天记录
for msg in st.session_state.messages:
    st.chat_message(msg["role"]).write(msg["content"])

# 处理用户输入
if prompt := st.chat_input():
    st.session_state.messages.append({"role": "user", "content": prompt})
    st.chat_message("user").write(prompt)
    
    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=max_length
    )
    
    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]
    st.session_state.messages.append({"role": "assistant", "content": response})
    st.chat_message("assistant").write(response)

运行效果

QwQ-32B-demo

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦