九游账号被永久冻结怎么办

你的位置:九游账号被永久冻结怎么办 > 新闻动态 >

厉害了!用“强化学习”喂出来的 QwQ-32B,小模型也可以有 DeepSeek-R1 的效果

发布日期:2025-04-12 13:23    点击次数:83

图片

啥是 QwQ-32B?

简单来说,QwQ-32B 是 Qwen 团队推出的一个开源大模型。你可能要问了,现在大模型这么多,QwQ-32B 有啥特别的?别急,听我慢慢道来。

QwQ-32B 最大的亮点在于,它只有 320 亿参数,却能达到 DeepSeek-R1 的效果。要知道,DeepSeek-R1 可是有 6710 亿参数(其中 370 亿被激活)的大家伙!这就像一个轻量级拳击手,竟然能跟重量级选手打成平手,你说牛不牛?

更厉害的是,QwQ-32B 不仅在数学推理、代码编写这些“硬核”能力上表现出色,还能像人一样思考,甚至能根据环境反馈来调整自己的推理过程。这可不是一般大模型能做到的!

背后功臣:强化学习

QwQ-32B 之所以这么厉害,全靠“强化学习”(Reinforcement Learning,简称 RL)这位幕后英雄。

你可能听说过“预训练”和“微调”,这是训练大模型的常用方法。但强化学习不一样,它更像是“师傅带徒弟”:

1. 师傅出题:先给模型一个任务,比如解一道数学题。2. 徒弟答题:模型尝试解决这个问题。3. 师傅批改:根据模型的答案,给出一个“奖励”或“惩罚”。4. 徒弟改进:模型根据反馈,调整自己的解题策略,下次争取做得更好。

通过不断重复这个过程,模型就能逐渐掌握解决问题的“套路”,变得越来越聪明。

QwQ-32B 是怎么“炼”成的?

Qwen 团队在训练 QwQ-32B 时,采用了独特的强化学习方法:

1. 冷启动:先用一个基础模型开始训练。2. 专项训练:重点训练模型的数学和编程能力。他们没有用传统的“奖励模型”,而是直接用“准确率验证器”来判断数学题的答案是否正确,用“代码执行服务器”来判断生成的代码能否通过测试。3. 全面提升:在数学和编程能力达标后,再加入通用能力的强化学习。用通用的奖励模型和一些规则验证器,来提升模型的指令跟随、偏好对齐等能力。

这种“分阶段、有重点”的训练方法,让 QwQ-32B 在保持数学和编程优势的同时,其他能力也得到了全面提升。

亲手试试 QwQ-32B

心动不如行动,咱们来亲手试试 QwQ-32B 的威力。Qwen 团队非常大方,把 QwQ-32B 开源在了 Hugging Face 和 ModelScope 上,还提供了 Qwen Chat 网页版,让我们可以直接体验。

方法一:Hugging Face Transformers

如果你熟悉 Python 和 Transformers 库,可以这样调用 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 inzip(model_inputs.input_ids, generated_ids)]# 解码结果response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]print(response)

运行这段代码,你就能看到 QwQ-32B 的回答啦!

方法二:阿里云 DashScope API

如果你想更方便地调用 QwQ-32B,可以使用阿里云的 DashScope API。

首先,你需要一个 API Key。获取方法可以参考阿里云的官方文档:https://help.aliyun.com/zh/model-studio/developer-reference/get-api-key

然后,你可以用下面的代码来调用 QwQ-32B:

from openai import OpenAIimport os# 初始化 OpenAI 客户端client = OpenAI(    api_key=os.getenv('DASHSCOPE_API_KEY'),  # 设置 API Key    base_url='https://dashscope.aliyuncs.com/compatible-mode/v1'# API 地址)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:    ifnot chunk.choices:        print('\nUsage:')        print(chunk.usage)    else:        delta = chunk.choices[0].delta        # 打印推理过程        ifhasattr(delta, 'reasoning_content') and delta.reasoning_content isnotNone:            print(delta.reasoning_content, end='', flush=True)            reasoning_content += delta.reasoning_content        else:            # 打印答案            if delta.content != ''and is_answering isFalse:                print('\n' + '=' * 20 + 'content' + '=' * 20 + '\n')                is_answering = True            print(delta.content, end='', flush=True)            content += delta.content

这段代码会输出 QwQ-32B 的推理过程和最终答案,让你更直观地了解它的思考方式。

方法三:白嫖https://chat.qwen.ai/

图片

https://chat.qwen.ai/

作为一名技术爱好者,我对 Qwen 团队的探索充满期待。我相信,随着技术的不断进步,我们离通用人工智能(AGI)的梦想会越来越近。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。

  • 上一篇:没有了
  • 下一篇:没有了