阿里 QwQ:320亿参数挑战DeepSeek-R1?

挑战巨头:小巧的竞争者

QwQ 尽管只有 320 亿参数,远少于 DeepSeek R1 声称的 6710 亿,但它被定位为一个“推理”模型。阿里巴巴声称,这个相对较小的模型可以在特定的基准测试中超越 R1,特别是在数学、编码和函数调用等领域。这一雄心勃勃的说法值得我们更仔细地研究 QwQ 的内部工作原理和实际性能。

强化学习:QwQ 实力的关键

与 DeepSeek R1 类似,Qwen 团队采用强化学习 (RL) 来改进 QwQ 的思维链推理能力。这种方法增强了模型逐步分析和分解复杂问题的能力。RL 的传统方法是奖励模型正确的答案,从而强化准确的响应。

然而,Qwen 团队对 QwQ 采取了更细致的方法。他们集成了一个准确性验证器和一个代码执行服务器。这一关键的补充确保了只有在数学上合理的解决方案和可运行的代码才能获得奖励。通过实施这种严格的验证过程,该团队旨在培养一个具有更高精度和可靠性的模型。

性能声明:现实检验

Qwen 团队声称,他们的努力产生了一个明显超越其重量级的模型。他们断言 QwQ 的性能水平与更大的模型相当,甚至在某些情况下超过了它们。

然而,人工智能基准测试的世界可能很复杂。重要的是要超越报告的数字,并检查这些说法如何转化为实际的、真实世界的场景。

动手测试:让 QwQ 经受考验

为了评估 QwQ 的能力,设计了一系列测试提示,涵盖了多个领域。其中包括常识、空间推理、问题解决、数学以及其他已知对最先进的大型语言模型 (LLM) 构成困难的挑战。

由于完整模型对内存的巨大需求,测试在两种配置下执行。首先,使用 Hugging Face 上的 QwQ 演示评估完整模型。这允许评估其全部潜力。其次,在 24GB GPU(特别是 Nvidia 3090 或 AMD Radeon RX 7900XTX)上测试了 4 位量化版本。此配置旨在衡量量化对模型准确性的影响,使其更易于硬件配置较低的用户使用。

常识:不落下风

对于大多数常识性问题,QwQ 表现出与 DeepSeek 的 6710 亿参数 R1 和其他推理模型(如 OpenAI 的 o3-mini)相当的性能。该模型通常需要几秒钟来组织其思路,然后才能提供对查询的答案。这种行为是推理模型的特征,推理模型优先考虑仔细的思考而不是立即响应。

擅长复杂性:逻辑、编码和数学

QwQ 真正开始脱颖而出的地方在于处理涉及逻辑、编码或数学的更复杂的挑战。让我们深入研究这些领域,突出其优势并指出一些不足之处。

空间推理:迷宫导航

Homebrew Research 作为其 AlphaMaze 项目的一部分开发的一个相对较新的空间推理测试被用来评估 QwQ。

本地托管的 QwQ 实例和完整大小的模型都始终成功地解决了这些难题。然而,每次运行确实需要几分钟才能完成。这表明虽然 QwQ 可以有效地处理空间推理,但它不一定是速度最快的。

相比之下,DeepSeek 的 R1 及其 320 亿参数的 distill 表现出不同的行为。两种模型都成功解决了第一个迷宫。然而,R1 在第二个迷宫中遇到了困难,而 320 亿参数的 distill 在第二个迷宫中实现了 90% 的成功率。这种差异并非完全出乎意料,因为 R1 和 distill 使用不同的基础模型。

虽然 QwQ 在这个特定的测试中表现出优于 DeepSeek 的性能,但在 4 位模型中观察到了一些不寻常的行为。最初,它需要几乎两倍的“思考”token 才能完成测试。这最初表明量化可能导致损失。然而,进一步的调查显示,量化模型在其初始状态下表现出次优性能。调整超参数并重新运行测试解决了这个问题,证明了正确配置的重要性。

单次编码:潜在优势

QwQ 因其在“单次”代码生成方面的潜力而备受关注——即在第一次尝试时生成可用代码的能力。这个特定领域似乎是该模型的一个显著优势。

该模型被要求使用 pygame 库用 Python 重新创建几个相对简单的游戏。选择的游戏是 Pong、Breakout、Asteroids 和 Flappy Bird。

QwQ 相对轻松地处理了 Pong 和 Breakout。经过几分钟的处理,该模型生成了这两个游戏的可用版本。

然而,当被要求重新创建 Asteroids 时,QwQ 遇到了困难。尽管生成的代码可以运行,但图形和游戏机制经常失真且存在错误。相比之下,R1 在第一次尝试时就忠实地再现了经典的街机射击游戏。

重要的是要考虑这些模型的训练数据。它们已经接触了大量公开可用的源代码,可能包括经典游戏的复制品。这就提出了一个问题,即模型是简单地回忆学习到的信息,还是独立地从头开始推导游戏机制。这强调了这些大型神经网络的基本性质,其中明显的智能通常源于广泛的模式识别。

即使存在这些限制,QwQ 在重新创建经典街机游戏方面的表现也令人印象深刻,特别是考虑到它的参数数量。它可能无法在每个测试中都与 R1 匹敌,但它展示了非凡的能力水平。“排量无可替代”这句话经常用于汽车领域,在这里可能很相关。这可以解释为什么阿里巴巴正在开发 QwQ 的“Max”版本,尽管它不太可能很快在消费者硬件上运行。

与 DeepSeek 类似大小的 R1 Qwen 2.5 32B distill 相比,阿里巴巴决定在其强化学习流程中集成代码执行服务器可能在编程相关的挑战中赋予了优势。

数学:能力与注意事项

从历史上看,LLM 一直在与数学作斗争,这是它们以语言为中心的训练的结果。虽然较新的模型已经显示出改进,但 QwQ 仍然面临挑战,尽管原因可能并不像人们预期的那样。

QwQ 成功解决了之前向 R1 提出的所有数学问题。这表明 QwQ 可以处理基本的算术甚至一些代数。然而,问题在于它的效率。当计算器和直接计算仍然可用且速度明显更快时,使用 LLM 进行数学计算似乎违反直觉。
例如,解决一个简单的方程,如 7*43,需要 QwQ 生成超过 1000 个 token,在 RTX 3090 Ti 上大约需要 23 秒。这是一项可以在袖珍计算器上在几分之一的时间内完成的任务。

对于更大的计算,效率低下变得更加明显。解决 3394*35979,一个超出大多数非推理模型能力的乘法问题,QwQ 的本地实例花了三分钟和超过 5000 个 token 来计算。

在超参数修复之前,相同的方程需要惊人的九分钟和近 12000 个 token。

这里的关键要点是,虽然模型可能有能力通过蛮力找到正确的答案,但这并不一定意味着它是这项工作的最佳工具。一种更实用的方法是为 QwQ 提供对 Python 计算器的访问权限。这利用了模型的优势,同时将计算密集型任务卸载到更合适的工具上。

当被要求使用工具解决相同的 3394*35979 方程时,QwQ 的响应时间骤降至 8 秒,因为计算器处理了繁重的工作。

“等待”的普遍性:一窥思维过程

检查 QwQ 的“想法”会发现“等待”一词频繁出现,特别是在复杂的任务或应用题中。这反映了模型将其工作与替代结果进行检查的内部过程。

虽然这种行为在推理模型中很常见,但当 QwQ 生成不正确的答案时,即使在“思考”过程中表现出对正确答案的理解,它也可能特别令人沮丧。

在测试过程中经常遇到这个问题。最能说明问题的例子之一是 AutoGen AI 对经典狼、山羊和卷心菜问题的改编。这个谜题提出了一个带有转折的运输优化挑战:

解决方案嵌入在提示中:有三个安全的隔间,农民可以一次运送所有物品。然而,由于这个谜题与经典版本相似,模型经常忽略隔间。

在测试中,QwQ 始终未能正确解决这个难题。检查它的思维过程表明它并没有忽略这三个隔间。事实上,它承认了它们,但认为它们太简单了:

“等等,如果农民可以一次带走所有三个,那么他就可以这样做并完成。但这会使问题变得微不足道,这是不太可能的。所以也许隔间是分开的,但船只能携带两件物品加上农民?”

无论测试是在云中的完整模型上还是在本地运行,QwQ 都难以始终如一地解决这个问题。这突出了其推理能力的潜在局限性,它可能会过度思考或误解问题的约束。

超参数敏感性:微妙的平衡

与其他模型相比,QwQ 对其配置表现出更高的敏感性。最初,阿里巴巴推荐了特定的采样参数:

  • Temperature:0.6
  • TopP:0.95
  • TopK:20 到 40 之间

随后,这些建议被更新为包括:

  • MinP:0
  • Presence Penalty:0 到 2 之间

由于 Llama.cpp 处理采样参数时存在明显的错误(Llama.cpp 用于在模型上运行推理),因此还需要通过将重复惩罚设置为 1 来禁用它。

如前所述,解决这些配置问题导致了显著的改进,将得出答案所需的“思考”token 数量减少了一半以上。然而,这个错误似乎特定于在 Llama.cpp 推理引擎上运行的 GGUF 量化版本的模型,该引擎被 Ollama 和 LM Studio 等流行应用程序使用。

对于计划使用 Llama.cpp 的用户,强烈建议查阅 Unsloth 的指南以纠正采样顺序。

QwQ 入门:实用指南

对于那些有兴趣尝试 QwQ 的人来说,在 Ollama 中进行设置相对简单。但是,需要注意的是,它确实需要具有大量 vRAM 的 GPU。该模型已在具有足够大上下文窗口的 24GB 3090 Ti 上成功运行,以供实际使用。

虽然在 CPU 和系统内存上运行该模型在技术上是可行的,但这可能会导致极慢的响应时间,除非使用高端工作站或服务器。

先决条件:

  1. 一台能够在 4 位量化下运行中型 LLM 的机器。建议使用至少具有 24GB vRAM 的兼容 GPU。可以在此处找到受支持卡的列表。
  2. 对于 Apple Silicon Mac,建议至少 32GB 内存。

本指南假定您基本熟悉 Linux 世界的命令行界面和 Ollama。

安装 Ollama

Ollama 是一款流行的模型运行器,可简化在消费者硬件上下载和提供 LLM 的过程。对于 Windows 或 macOS 用户,请从 ollama.com 下载并像安装任何其他应用程序一样安装它。

对于 Linux 用户,Ollama 提供了一个方便的单行安装程序: