我不喜欢它让我看起来像个_blob_的方式。但除此之外,Quenbear 模型看起来相当不错。今天,我们将审视 Prism ML 推出的 Bonsai 2.7B 模型,这本质上只是 Qwen3.8-27B 的一个非常、大幅缩减体积的版本,一种能够切实在拥有12GB或16GB显存的单张显卡上运行的模型。因此,这确实为那些希望运行本地 AI 且不需要像许多近期开源模型那样极其强大系统配置的人们打开了大量可能性。所以在深入之前,请随意订阅,让我们先来看看这到底是什么。
这可能有些眼熟,因为我曾介绍过他们之前的某些模型。最近,他们有一个基于 Qwen 3.6-27B 的 Bonsai 版本。然而,3.8模型在能力上相比3.6有了巨大的飞跃。看起来这个 Bonsai 版本也将保持这种飞跃,至少与之前的 Bonsai 相比是这样。在技术细节方面有很多内容,我一直在思考展示这些的最佳方法是什么?老实说,我们将对两者进行侧面对比测试。
我们目前就在这里运行着它们。稍后我们会解释两者的含义,但我认为真正测试这些模型的最佳方法就是让它们通过我们拥有大量参考点进行对比的基准测试,看看比如“哦,这实际上产生了很好的 Subway FPS 效果”之类的事情。我认为已经存在的许多比较是测试这些模型的最佳方式,以便我们基本看清它们是好还是坏。因此,让我们先看看其中一些有趣的地方,然后进入基准测试环节。
我们可以在此处的突出部分看到,这是从 Qwen 3.8-27B 的54GB FP16版本缩小到绝对最小值的5.9GB。值得显著提及的是,这些模型有两个版本,这就是为什么我们看到了两个侧面对比代理窗口。我们有这个 PTQ 1.0,它以更小的方式打包权重,代表5.9GB的文件。我们还有 PQ2_0,它存储了更多的信息(简单地说),大小为7.21GB。因此,与54GB的FP16版本相比,我们将体积缩小到了大约6GB或7.2GB。这是一个巨大的缩减。
他们在此处显著列出的是,保留了98.2%的FP16智能水平。现在,我不想说这是误导性的,但我确实希望我们稍微调整一下期望值。如果我们进入此处列出的链接白皮书,他们实际上有一个章节讨论 Bonsai 2 代表了他们希望为这些 Bonsai 模型所做的工作,以使它们在长上下文和代理编码方面表现得更好。
在此段落的底部,白皮书中写道,在与代码编写能力和代理性能相关的某些基准测试上,这些模型保留了大约四分之三的全精度性能。所以不要指望保留98.2%的能力,他们说保留了3/4(即75%),但即使在这种显著减少的情况下仍保留75%的能力,正是这些模型令人兴奋的部分。正如 Claude 所说,这确实是这里的关键支撑点。
我目前正以 FP16 KV 缓存运行这些模型。此处将其标记为实验性功能,这将真正降低您的内存占用量。然而,正如他们所说,它是实验性的,质量可能会像预期那样有所退化。但是,这里的10万Token上下文窗口将使用约1.8GB的显存,而不是6.3GB。因此,这是整体内存占用量的一个非常显著的减少。
如果您受限于内存,在测试设置中启用它可能也是明智之举,因为这样您将能够拥有更长的上下文窗口,并可以进行代理运行等操作。我只是想特别提到这一点,因为看着这个然后去下载并在本地加载时可能会感到困惑:“嘿,为什么这使用了10或12GB的显存?”这就是原因。
其他一些额外的内存节省考虑因素是视觉能力在这里是可选的。所以,如果您并不真的关心使用它们来“看”东西的能力,您也可以丢弃这些部分以节省一些开销。这里还有几种其他方法可以获取绝对最低的占用量,如果您是死心塌地要在非常小的设备上运行它的话。
然后他们有关于如何在您的系统上设置和运行的更多说明,比如代理可以为您处理的事情,以及在此特定显卡上的速度基准测试。对于今天的测试,我们将切换到实际查看这些模型的性能表现。我正在同时使用这两个版本。它们都在同一张完全相同的显卡上提供服务,这是一块6000 Pro卡,我是以目前价格不到一半的价格购买的。指出这一点是因为 GPU 价格一直疯狂上涨,这也是为什么像这样的模型如此昂贵的原因。
当然,我们首先开始了 Browser OS Test V2.7 测试。我们看到两者都在这里工作。在左侧窗格中,我们有1.75 BPW版本(即较小的5.9GB那个)。然后在右侧窗格中,我们有2.13版本(即较大、性能更强但也更大的7.2GB那个)。所以我们将看看它们的表现如何。以前这些模型确实有些麻烦,比如“好吧,他们真的不知道何时停止”。它们可能会像我现在这样喋喋不休。所以,我们将等待这些完成,然后并排查看结果,接着进入一些更难的任务。
我想尝试用 Blender 和 GDO 来测试它们,为什么不呢?这里我注意到的一点是,两者都已经运行了相当长一段时间。我们心想:“好吧,第一个结果不好,我要从头重写。”这确实是一个担忧点,至少在代理功能方面:它们是否真的能够写出文件并进行更改,还是只是过度思考?两者仍在进行 Browser OS 结果的第二次或第三次重写。然而,它们也都刚刚创建了一些东西。我几乎完成了一半的(结果),只是为了看看我们会得到什么,以防它们陷入循环。
好吧,这里显示的是量化程度更高或更小的那个模型。我们 definitely 可以看到有些不对劲的地方。
好吧,看来重写确实是个明智的选择。让我们试试 Q2 版本吧,也许能看到更多的功能。尼imbus(Nimbus),好的,光标在那里闪烁着。通常接下来会显示某种加载动画。同样地,我会把这些归类为实验性功能。而且它们都没有完全成功地完成写入操作,所以我们就让它们继续运行吧。但我确实担心它们可能会陷入这种无限循环中。是的,它似乎试图再次重写整个内容,而这正是我们不希望看到的。
好吧,看来较大的那个模型在我停止它并告诉它只需写入而不要过度思考后,已经完成了浏览器操作系统的编写。不过说实话,我现在对这种情况并不乐观,可能不得不切换到一个更简单的任务了。但是让我们看看……是的,它又在尝试重写整个文件了。我要停止这些操作。这个任务失败了,对它们来说太难了。所以让我们试试更简单的事情吧。
对于较小的那个模型,我给了它一个显著简化的提示:“为 Steve 的电脑维修创建一个漂亮的网站。不要过度思考。”我想我们应该对这两个模型都这样做,因为我真的很想看看它们能不能生成一个游戏。之前我测试过基于 Qwen 3.627B 的版本时,确实从较大的模型中得到了一个部分可用的地铁跑酷第一人称射击游戏。所以我希望今天能得到比那更好的结果。
然而,浏览器操作系统的测试表现并不好。我甚至不敢说这反映了它们 75% 的编码能力。这里肯定有一些声明在非常特定的基准测试场景中可能站得住脚,但我认为这是对性能的一种过于乐观的概括。我想特别指出这一点,因为人们可能会看到后心想:“天哪,我的显卡现在能运行某些东西了”,然后感到极度失望。这种说法让我感觉不太对劲。
很高兴地说,较大的那个模型很快就完成了这个任务。它确实注意到了一些问题……我不太记得具体是什么了,所以在思维链中看到这些很有趣。最终它完成了并生成了通过语法检查的内容。让我们来看看这个结果吧,这是一个更简单的任务。我认为在提示中特别告诉它们“不要过度思考”可能是一件好事。
好吧,真的很简单,是的,这里没有任何特别之处。但关键在于它很快完成了这项任务,没有过度思考,也没有陷入死循环。所以可以把这视为一种验证,表明可以安全地继续进行稍微复杂一点的任务了。总体来说还不错。我们会保留这个结果,以防较小的那个也完成了,这样我们可以并排比较它们俩。
好吧,我有点担心,因为这行代码已经飞过了 5,500 行。是的,好的。这就是我担心的情况。好吧,我想不出其他办法了,所以我们再给它一次机会吧。我在 HTML 标签里多加了一个闭合标签。让我点击看看,因为它确实写入了内容。“你的电脑很慢……”好吧,有趣的是,从某种程度上说这反而更好了,因为上面的内容更多。
甚至包括那些自己修电脑的人仍然会打电话给 Steve。“哦,好的。”“我女儿的笔记本电脑三个月都无法启动。我已经买了一台新的。Steve 拆下了旧硬盘,修复了 BIOS,并在 40 分钟内让它重新启动了。她现在还在用那台旧电脑呢。”“我仍然很懊恼浪费了买新电脑的钱。”好吧,很好。它确实显示了额外的购买是浪费钱。这说明它有不错的语义理解能力。
很有趣。这是较大的那个模型生成的,也许有一个更好的联系表单。总的来说这个也不坏。我想验证两者是否都能实际输出内容,然后我们可以让它们做一个 C++ 滑板游戏。接下来,我们给它们一个非常简化的、自包含的 C++ 滑板游戏的提示:“用 C++ 创建一个简单的 3D 滑板游戏。不要过度思考。”
在这种情况下我不在乎它们是否使用 Raylib,因为正如我们在浏览器操作系统测试中看到的那样,如果给它们完整的复杂提示,基于我们目前所见的情况,这很可能只是浪费时间。所以我想尝试让它们做我认为它们 reasonably 有机会完成的事情。好吧,现在轮到较大的那个模型进行文件的第三次重写,而较小的那个在左侧窗格里尝试写了几次后,就在写入中途开始思考了。
好吧,我得在这里停止较小的那个模型。它似乎对如何编写文本感到恐慌,而且它们俩都没有选择使用 Raylib,这很有趣。所以我不得不停止它并说:“我们不需要文本,只需制作 3D 游戏。”看看这样是否有帮助。我会给较大的那个模型同样的反馈。好的,大的那个编译得很干净。让我们看看它是否会在屏幕上弹出来。
我们可能会看到一个预告片……好的,好吧。但它打开后很快就关闭了。所以这实际上……另一个也编译得很干净。看来“不要文本”是关键,尽管它们本可以使用 Raylib,但我并没有明确禁止它们使用。让我快速检查一下这个……这就是那个较小的模型生成的结果。让我们看看较大的那个模型的结果吧。
所以那个也是打开后很快就关闭了……较小的这个实际上……哦,好的。它自己打开了,或者是我点击太多次了。所以至少我们现在有一个合理的成果了。哦,没关系,我们等着看吧。它打开了,而且完全是用原始 C++ 编写的。所以这其实还可以。我要停止这个模型了,因为它还在恐慌中运行。好吧,它仍然表现不佳。我们得到了一个能运行的版本。
所以我在这里停止它吧。至少我们要到了这个结果,你知道的,总算是有点东西了。接下来,我想尝试让它们通过 MCP 使用 Blender。它们都设置了各自的 Blender 实例。在这里我们可以看到它们在单独的端口上运行。我给出的提示是创建一个街区的场景,渲染它,然后将渲染后的图像直接保存到你们正在工作的目录中。好吧,这实际上……
好的,两个模型中较大的那个确实完成了渲染。它保存了图像,并利用其多模态能力去查看这张图。结果显示相机位于建筑物内部,正在渲染该建筑一面墙的近距离特写,随后它给出了相机的坐标。我其实有点好奇在……哦,好吧。是的,我们可以看到那里有一些天空或其他形态的东西。这意味着它确实渲染了一些内容并生成了一张照片,然后查看后意识到“嘿,这不对”。这实际上是一个很好的步骤。
好的,我们还为另一个任务获得了一张渲染图……哦,好吧。较小的那个模型也进行了一些渲染,但它表示呈现的是平坦的灰色背景,相机看着空无一物的地方。所以这里肯定存在一些问题。不过老实说,我很好奇想看看具体是什么情况。好的,这就是我们较小的模型收到的渲染图像结果。因此这两个任务都已完成。我在最后阶段并没有一直盯着它们看,因为不得不离开了一会儿去处理别的事,但既然有了渲染结果……
好的,这是较小的那个模型的结果。它确实创建了一个城市街区,并在其中放置了一台相机进行渲染。虽然过程可能略显简单,但这算是任务的成功完成。不过我们并没有要求太多细节。接下来是较大的那个模型的结果。我们可以看到它选择了一些不同的颜色。不幸的是,建筑物悬浮在半空中,但这里也有一些不错的绿色植被和一些可见的三角形结构,这种美学风格我还挺喜欢的。
总体而言,它们确实都成功完成了任务并使用了 Blender 来执行操作。虽然不算超级复杂,但结果是可以接受的。好的,接下来我将给它们完整的“地铁第一人称射击(Subway FPS)”提示词。我没有加入任何类似“不要想太多”或“简单处理”的指令,只是给了它们和我最近给其他大型模型完全相同的提示词。我预计这可能会花费相当长的时间,所以我基本上就让它们在这里运行,希望能回来时看到可玩的内容。
这也是那个随着波次增加敌人由火车运送的场景,希望我们能如愿以偿地看到这一点。好的,假设我们已经从小型模型那里得到了完成版本……所以我刚才停下了大型模型的运行,告诉它:“别再尝试测试了,直接把游戏给我。”它们已经运行了一个半小时左右。我想到了这个时间点……好的,我们有了完成的作品。哦,我忘了移除那个城市街区,不过没关系。它只是给了我一个命令:“在服务器上运行”。
好的,让我们来看看这个较小的模型的结果。这实际上是一个相当不错的前端界面。我们可以看到相关的命令等内容,还有多种不同的武器。当然最大的问题是实际上无法进入游戏场景。好的,让我们检查一下较大的那个模型的结果。我对它能正常工作抱有更多的希望。好吧,我们确实有脚本在那里。非常相似:点击开始……请做点什么。
好的,我尝试修复较小的那个模型。我只使用了 Claude 来“修复这个脚本”,并指示它不要进行游戏测试,而是具体指出问题所在。请记住,这是一个失败的案例。但在等待了大约 1 小时 40 分钟后,我真的只想看看它至少构建了什么东西。这就是我们目前看到的情况:游戏循环完全无法运作,但我们确实看到了一个相对制作精良的 3D 场景加载出来。对此我其实还可以接受,因为虽然按键没有任何反应……
现在我要对较大的那个模型做同样的操作,也许它能带来一点可玩性。但请记住,这两个都是失败的案例。我正在使用 Claude 来修复生成的语法错误。好的,这里左侧是 Claude 为修复由较大的 Bonsai 模型创建的脚本所做的修改。这是在查看结果之前需要修复的所有内容。我们还没有看那个,但我想展示事后发现需要修复的地方。
右侧是较小的模型所进行的修复内容,我们可以看到在完成这些后,它确实加载到了一个简单的地铁场景中。虽然没有可玩性,但我只想具体展示为了让它勉强过关需要做些什么。那么,让我们实际看看这是否被正确修复了,至少对于较大的那个模型来说是这样。如果我们点击开始……好吧。不幸的是,可能还有其他的错误,而且因为花了这么长时间,我其实只想……
好的。显然那个问题已经修复了。哦,好吧。然后我们得到了一堆其他的错误信息。在这一点上,我直接称其为失败,因为需要由非 Bonsai 模型来完成太多额外的工作。不过对于较小的那个模型的地铁 FPS 项目,我们在 Claude 的少量协助下确实得到了一些成果。
好的,接下来我要做的下一件事(根据情况可能是最后一项)是“精美手表网站”测试。我认为这是一个处于复杂性交叉点的任务,但仍在这类模型 realistically 能够完成的范围内。我还在最后加入了“不要想太多”的指令,因为这似乎能产生更好且完成速度更快的结果。让我们拭目以待。这是手表网站的任务要求:它必须创建一个 3D 模型,在首屏区域实现电影般的平移效果,并在页面下方某处展示手表的爆炸视图。
好的,这两个模型都完成了手表网站的任务。不幸的是,我们基本上得到了两个看起来还不错的网站。我要说的是,它们的结构都比之前的“史蒂夫电脑维修工”那个要好得多。我们现在看到的是左侧窗格中的结果,也就是较小的那个模型的作品。这里的一切看起来都还可以,悬停效果也不错。问题在于……正如我怀疑的这可能是测试失败的关键点:它们都没有显示出实际的 3D 模型。
这是来自较大那个模型的结果,也就是右侧窗格中的内容。不幸的是,我们有一些精美的用户界面元素本应与 3D 模型很好地配合,但它们并没有出现。这确实是我有点怀疑会误导它的地方,但我还是想尝试一下。所以,仅从美学选择的角度来看,这些网站是值得尊重的,但功能上并不完整。我想在中等推理强度下再尝试这两个模型……
我们在X高(最高推理层级)上所做的一切,其最大可能性在于:这些模型可能会倾向于过度思考这一点。如果处于较低的推理层级,有时在这种奇怪的实验性模型中反而能获得更好的性能。因此,对于这个任务,我给他们俩提供了一张照片——在这种情况下是我拿着Quendall的照片——并指示他们制作该照片的SVG矢量图,然后将其放入各自对应的文件夹中。我几乎有些担心和紧张地想看他们会拿出什么结果,但这应该会很有趣。好,安装图像到矢量图工具。有意思。我们再看看谁做得更好。好吧,他们只是……我要说他们的处理方式很巧妙,但这并非我的本意。所以我打算停止他们并澄清一下。好吧,这样就能让他们自己制作出来。
这实际上也是一个测试其视觉能力的有趣环节,因为它所描述的一切都基于能够实际看到存储库中的图像。Quen基础模型的视觉能力——我要说的是,该模型所基于的基础模型(而非当前这个)实际上相当胜任。头发略微前移……好吧,这两个仍在运行中,但我们确实得到了较大那个模型的渲染结果。出于好奇心想看看……你知道的?嗯,这并不完美。然而,考虑到所有因素,这是在中等推理努力下的结果。这是一个带有视觉能力的Bonsai版本模型。说实话,这其实还不错。它有麦克风吊杆、防喷罩,以及我嘴前的这块网布。它甚至画出了连接吊杆的线条、墙上的木条,以及其他一些细节。Quen的文字实际上也被写出来了。它甚至试图还原我衬衫上的标志,并且仍在处理这部分细节。它还给了我一个相当理想的发际线,对此我很满意。所以我说,综合考虑一下,这其实还不错。
我想知道较小那个模型是否已有结果?哇哦,是的,我们有结果了。而且这是一个显著更令人印象深刻的结果。有意思。这就是较小那个模型——即5.95 GB版本的模型。这简直可以说相当不错,实际上非常令人印象深刻。我在上一轮结束时犯了一个错误。好吧,但好在较大那个模型看起来运行得足够顺利,渲染也是正确的。我打算停止这个较大的进程,因为我们已经看到了绝大部分内容(约90%)。所以让我们在这个较小的模型 hopefully 完成时,对它进行一个决定性的审视。哦,那是错误的东西。那是我们刚开始运行时它试图做的那件事。好吧,那肯定好多了。这是较大那个模型的结果。做得好。嗯,我不喜欢它把我渲染成一个 blob(一团模糊)的样子,但除此之外,Quenbear看起来相当不错。它看起来很宁静。它在错误的位置放了一个窗户,但那里本来就有艺术品。这里的其他一切都还可以。这实际上也是对视觉能力的评估。我对所见所闻印象深刻,再次做得相当好。
我不得不大胆推测一下,老实说,我认为较小那个模型在这项任务上做得稍好一些。你们可以自行判断。这两个都是在中等推理层级下完成的,我想我可能已经说过几次了。还有一件最后的事情想在中等级别上尝试一下。所以我想做的最后一件事是,在中等推理层级下给他们一个简单的3D滑板游戏任务,该任务只需包含在一个单独的HTML文件中。我特别强调了几点:不要尝试进行playtest(试玩测试),只需交付文件;也不要过度思考。很好。我们可以看到它现在正迅速转入编写代码阶段。而在之前的X高推理层级下,如果不加入这些强调简单性的提示词,它会思考更长的时间。好吧,它们现在都进入了第二次重写或第三次重写阶段——我想是第二次了。太棒了。两者基本上在同一时间完成。我们还没有查看结果,但我很高兴它们以我们所习惯的速度如此迅速地完成了任务。
这里是……嗯,这是较大那个模型的结果。好吧,不幸的是,我们什么也没得到(游戏无法运行)。不过我要指出一点:当我们最初加载它时,确实收集了一些金币。所以这里存在某种游戏状态注册机制。让我们来看看较小那个模型的结果。同样,有趣的是这个版本在某些场景下似乎产生了更优越的结果。所以我也不太确定该如何解释这一点,但这正是我们在这里观察到的现象。至少它一开始就给了我们一些东西(可运行的代码)。我认为最后要做的一件事是给它一条反馈,描述这个问题。看看它是否能简单地修复它。不错。很好。所以它确实修复了问题。我要说的是,这是较大那个模型在收到一些反馈后的结果。看看这个……嗯,我可以接受这个结果。实际上我很满意。这也是在中等推理层级下完成的。所以它制作了这款小游戏。
我认为关键在于强调并贯彻“保持简单”、“不要过于担心试玩测试”。我想,很多时候在使用这些模型时,成功与失败的区别就在于此。我要指出这也是在中等推理层级下完成的。所以这实际上是一份值得尊重的作品,我对所见所闻相当满意。我知道它很简单,但考虑到这个模型的体量/参数规模,我认为这非常令人印象深刻。我的意思是,就在不久之前,这样的结果只能由前沿(Frontier)级别的最新模型产生。看到这种进步真的很酷。我们可以收集金币,它甚至加入了一些超出单纯滑板游戏之外的游戏玩法元素。所以我认为这非常酷。
最后我想做的是,既然这个模型是由阿里云提供的服务,那么它们将在OpenRouter上以中等思考推理层级正确提供服务。我给了它完全相同的提示词(prompt)。请记住,这之前并没有在本地Harness中真实运行过,我只是想看看有什么区别。所以这是我们从OpenRouter刚刚获取到的结果。好吧。我们可以看到这确实显得更有能力(更胜任)。不过我要说,它没有那种酷炫的金币收集玩法风格,而且滑板似乎实际上……哦,好吧。它会做特技动作。我只是不知道为什么没搞清楚按键是什么。我似乎无法让它再次演示,但它确实做了。我们看到了它做了一个kickflip(翻板)。所以肯定存在一些差异。这实际上,我会说是一个相当强劲的表现。
这是Bonsai与同一中等推理努力水平下完整模型版本的对比结果。总的来说,我没什么特别要说的。我做这个测试是因为我知道大家对此会非常感兴趣。我在网上已经看到了相关的讨论,我敢打赌如果我刷新一下页面,这个社区的浏览量肯定又增加了。
确实如此,这非常酷。我唯一的失望之处在于,他们的宣传似乎暗示这个模型的能力与完整版本仅一步之遥,但体积却小得多。根据测试结果,我不确定这是否属实,但我认为这种说法低估了这个模型本身的真正亮点。这是一个巨大的体积缩减。
还有更多的优化空间,比如4位KV缓存,甚至可以从模型中省略视觉组件。因此,它的体积可以变得非常小。我认为这些模型能够生成清晰的代码、进行工具调用并在较长上下文的智能体框架中运行,这非常棒。真的酷毙了。
我不喜欢看到“这是家庭版Opus”之类的说法,因为它并不是。但这种比较不仅不公平,还掩盖了它真正的价值——从技术角度来看,这确实非常酷且令人印象深刻。所以我做了这些测试,我知道大家对此很感兴趣。
我肯定会继续测试一些Bonsai模型。我记得有人在这里提问,建议用Qwen3.8 Flash Next也做类似的测试,这将非常有趣。我现在就在旁边运行着它来构建一些东西。这是一个很棒的模型,我很期待看到这个实验室的相关成果。
如果你有任何问题,欢迎在评论区留言。感谢观看。