模型架构与开源前景
本次测试的对象是蚂蚁集团(Ant Group)发布的 Ling 3.0 Tiny 模型。尽管其总参数量达到 79亿(7.9 billion),但得益于 混合专家(Mixture of Experts, MoE) 架构,实际激活的参数量仅为 13亿(1.3 billion)。这种设计使得模型在保持较小体积的同时,具备运行在广泛硬件设备上的可行性。蚂蚁集团此前还发布了更大规模的 Ling 3.0 Flash(1240亿参数 MoE 模型),并计划将 Tiny 版本以 开放权重(open weighted) 的形式发布,这进一步提升了其在社区中的可访问性和研究价值。
"It is going to be open weighted... this is a model that's actually pretty feasible to run on a very, very wide variety of hardware."
基准测试与竞品对比
为了评估 Ling 3.0 Tiny 的性能,评测者将其与多个不同规模的模型进行了对比。虽然官方提供的基准测试 JPEG 具体分数难以直接解读,但通过对比模型的参数量级,可以直观感受到其竞争力。Ling 3.0 Tiny 在多项指标上表现优异,甚至超越了一些参数量更大的密集模型。以下是评测中提及的关键对比模型及其参数规模:
| 模型名称 | 架构类型 | 参数量级 | 备注 |
|---|---|---|---|
| Ling 3.0 Tiny | MoE (激活) | 1.3B (激活) / 7.9B (总) | 本次测试对象 |
| Qwen 3.5 4B | Dense | 4B | 密集模型对比 |
| Qwen 3.5 9B | Dense | 9B | 密集模型对比 |
| Gemma 4 E4B | Dense | ~4B | 较难直接比较 |
| Gemma 4 12B | Dense | 12B | 评测者认为其表现惊人 |
评测者特别提到,Gemma 4 12B 在生成 C++ 滑板游戏代码方面表现令人印象深刻,而 Ling 3.0 Tiny 在同等或更小的规模下也能达到令人满意的水平,显示出其在代码生成领域的潜力。
功能特性与使用限制
Ling 3.0 Tiny 具备 256K 的原生上下文窗口,支持 原生函数调用(native function calling) 和 提示词缓存(prompt caching)。此外,它提供了可切换的 思考模式(thinking mode) 和 即时模式(instant mode),用户可以根据需求选择让模型进行深度推理或快速响应。最大输出长度为 32K。
然而,该模型仅支持 文本输入和文本输出(text in and text out),不具备多模态(如图像识别)能力。在测试过程中,评测者发现通过 OpenRouter 免费端点访问时,模型对代理任务(agentic tasks)有严格的速率限制,导致无法正常进行视频录制。因此,评测者不得不购买 API 额度以获取稳定的服务。
"The problem is I went and had attempted to use this just through the free endpoint on open router and for any agentic task it was just getting rate limited really hard."
浏览器操作系统生成测试
在具体的代码生成测试中,评测者要求模型生成一个名为 OS-OS.html 的浏览器操作系统界面。尽管模型规模较小,但其生成的代码结构相当完整,甚至包含了一个独特的 沙盒模式(sandbox mode),限制应用访问外部服务、麦克风或摄像头。初始版本存在右键菜单缺失等问题,但经过修正后,笔记应用和设置功能均能正常运行,右上角还成功生成了时钟组件。
"It's actually it put in a special feature which was the sandbox mode as it has here where none of the apps can actually access outside services or the mic or the camera which was an interesting choice."
尽管沙盒功能未完全生效且右键菜单仍缺失,但考虑到模型仅激活 13 亿参数,其生成的代码逻辑和 UI 布局仍显示出较高的胜任力。评测者通过对比 OpenRouter 和另一平台(Open Code)的输出,验证了模型在修复代码错误方面的能力,最终确认笔记应用等功能已修复,证明了该模型在特定代码任务中的实用性。
初始应用修复与OpenCode对比测试
视频作者首先对Ling 3.0 Tiny模型生成的应用进行了初步功能测试。尽管部分视觉元素如时钟显示存在缺失,但模型成功修复了主要功能逻辑,实现了分数累加等核心交互,这显示了模型具备一定的代码理解能力。作者对此表示印象深刻,因为在此之前该应用几乎没有任何可用功能。
为了进行对比,作者使用OpenCode(基于相同模型架构)进行了A/B测试。结果显示,OpenCode生成的界面虽然配色方案与Ling 3.0一致,但代码结构更为简洁。然而,OpenCode生成的应用在初次运行中同样无法正常工作,且未出现明显的报错信息。这种对比揭示了即使使用相同的基础模型,不同的执行环境或提示词策略可能导致截然不同的代码质量和可运行性。
"It's much simpler. Okay. And it also just unfortunately does not work on first glance, but it's neat to see the difference in aesthetic between the two."
C++滑板游戏生成的调试过程
随后,作者引入了更具挑战性的基准测试:要求模型使用C++开发一个3D滑板游戏。作者指出,在类似的基准测试中,Gemma 12B模型曾成功运行出结果,因此期望Ling 3.0 Tiny也能有所表现。测试初期,模型表现出快速的依赖检测能力,它迅速识别出系统缺失的库,并从GitHub下载所需依赖。这一过程展示了模型在自动化环境配置方面的敏捷性。
然而,编译阶段出现了错误。值得称赞的是,模型没有像某些小模型那样盲目删除并重写整个文件,而是采取了更精细的编辑策略,尝试修复导致编译失败的具体问题。尽管最终未能完全成功运行,但这种迭代修复的行为模式表明模型在处理复杂代码生成任务时,具备了一定的自我纠错逻辑,而非简单的随机生成。
"It tried to compile it. We have some errors here that disallowed it from compiling, but that was good because it didn't just keep deleting the file. it had just written."
3D地铁站场景构建与性能评估
鉴于之前测试中模型表现出的文件重写问题,作者调整了策略,转而测试一个相对简单的HTML 3D场景生成任务:构建一个可漫游的3D地铁站,不强制要求第一人称射击(FPS)视角。测试结果显示,模型成功生成了一个包含粒子效果和亮度调节滑块的完整3D场景。作者对这一结果感到相当满意,认为对于一个参数量极小的模型而言,能够生成具备交互功能的完整3D场景已属难得。
尽管移动速度稍快且细节有待优化,但模型成功处理了3D渲染逻辑和UI交互,证明了其在轻量级图形应用生成上的潜力。作者决定不再进一步将其改造为FPS游戏,以避免系统崩溃,但目前的成果已足以展示该模型在特定约束下的代码生成上限。
"A competent 3D scene with an issue fixed to actually show it is something I'm very, very happy with."
简单Python应用与UI迭代:从功能实现到视觉美化
测试者首先尝试让模型构建一个基于Python的Ping工具,要求包含简单的Tkinter图形界面。模型响应速度极快,在极短时间内生成了完整代码,并成功运行。测试者输入真实IP地址(8.8.8.8)进行Ping操作,功能正常。尽管文件保存路径略显随意(保存在主目录而非指定目录),但核心功能逻辑完整。测试者对模型的基础代码生成能力表示认可,认为其具备处理基础应用开发任务的能力。
随后,测试者通过迭代提示词,要求将界面美化成“电影中的黑客仪表盘”风格。模型迅速响应,自主优化了代码结构,增加了视觉元素。最终界面呈现出更具戏剧性的黑客风格,包含动态状态指示(运行中为绿色,停止为红色),命名也更具主题性(如“Cyber ping”)。测试者指出,这种从基础功能到美学迭代的快速转变,展示了模型在理解用户意图并执行复杂UI调整方面的 competence(能力/胜任力)。
"It actually seems like it. ... And now we can actually take this a bit further because why not?"
3D打印机模拟:超出预期的浏览器端3D交互
测试者发起了一项更具挑战性的任务:要求模型在Chrome浏览器中运行一个3D打印机模拟程序。测试者原本认为这超出了该小模型的能力范围,但模型在4分15秒内完成了代码生成。生成的程序在浏览器中成功加载,并允许用户选择对象进行打印模拟。
模拟效果令人惊讶:打印头在构建板上移动,物体形状随打印过程发生变化。虽然打印逻辑可能存在瑕疵(如移动轨迹在轴向上不完全准确),但模型成功实现了3D空间中的动态几何变换。测试者对比了Gemini 3 Pro早期的表现,认为当前模型在无需外部依赖的情况下,仅凭自身能力生成可交互的3D模拟,展现了与其规模不相称的强大潜力。这种速度和质量让测试者感到“目瞪口呆”,认为这是一个“怪物级”的表现。
"I'm actually dumbfounded that this knocked out something that shows up in the screen here in the first try."
角色扮演与系统提示词:从汽车维修到摔跤手
测试者进一步探索模型在角色扮演(Roleplay)方面的能力。首先,测试者设定了一个汽车维修场景,模型扮演拥有15年经验的技师Henry,处理客户Steve关于法拉利360气缸盖螺栓扭矩不当的投诉。模型展现了高度的情境理解能力,不仅道歉,还提出了具体的维修计划(检查、重新扭矩、使用密封剂),并承诺承担责任。当引入“Steve的律师”角色时,模型能迅速切换语境,保持角色一致性,提出和解或法律应对方案。
随后,测试者通过自定义系统提示词,将角色转换为一名“前模特转行的硬核摔跤手”。模型立即进入状态,使用了大量的动作描写(如“靠在围绳上”、“冷笑”)和符合角色性格的强硬语言。模型不仅回应了对话,还主动构建了场景氛围,展现了在复杂叙事和性格模拟中的细腻度。测试者认为,自定义提示词能显著激发模型的趣味性和表现力,使其在特定人设下展现出更丰富的交互细节。
"Giving it a custom prompt definitely allows it to be a little more fun."
3D飞行游戏与V8引擎建模的尝试
在测试Ling 3.0 Tiny(79亿参数,13亿激活参数)的代码生成能力时,首先尝试了一个简化版的3D飞行游戏提示。尽管模型在生成脚本时存在反复重写导致偏离原意的问题,但在收到错误反馈后,它成功修复了部分错误,使得小地图等元素开始显示出动态效果。虽然最终游戏未能完全正常运行,但模型展现出了修复基础逻辑错误的能力。随后,测试转向了一个更具挑战性的任务:生成一个能放入280°C电机外壳的V8引擎3D模型。这是一个连更大模型都难以完美处理的复杂几何任务。模型最终生成了一个包含八个独立浮标状物体的SCAD模型,虽然形状不像V8引擎,但它确实生成了一个理论上封闭的网格对象,这在极小参数量的模型中已属不易。然而,测试过程中发现模型存在过度自我覆盖的倾向,导致生成的内容在迭代中变得杂乱无章。
"It's definitely willing to have some fun."(它确实很有创意/愿意尝试有趣的东西。)
前端网页设计:手表网站与键盘网站
为了评估模型在前端设计上的表现,测试者要求生成一个手表公司的网站。尽管生成的页面中手表图片缺失,且存在缺少闭合括号等语法错误,但整体布局采用了经典的黑金配色,结构基本完整。随后,测试者进行了更高级的前端测试:为一个虚构的键盘公司生成一个包含SVG渲染、悬浮粒子效果和悬停特效的高端科技风格网站,且要求所有代码包含在单个HTML文件中。结果令人意外地良好,生成的页面包含了头部、英雄区、技术规格、页脚等完整结构,甚至生成了一个平行宇宙风格的键盘SVG图,并添加了防水特性等虚构但合理的细节。尽管手表网站未能通过后续的错误修复得到完美解决,但键盘网站的生成结果展示了该模型在复杂前端布局和多元素整合方面的潜力。
"This is pretty darn decent. Look at this. Our G4 keyboard website."(这相当不错。看这个。我们的G4键盘网站。)
测试总结与局限性分析
综合来看,Ling 3.0 Tiny在多个测试中表现出修复Bug和生成基础结构的能力,特别是在Python脚本迭代中表现稳定。然而,测试也暴露出两个主要问题:一是代理模式下的文件覆盖问题,模型倾向于不断重写已生成的文件,导致早期成果被破坏;二是在OpenRouter上使用时,模型似乎会耗尽最大输出令牌才停止思考,这可能影响效率。尽管存在这些缺陷,考虑到其仅13亿激活参数,该模型在本地运行时将非常迅速,且能适配多种设备。虽然免费接口速率限制严重,不适合自动化代理任务,但其开源后的本地部署潜力使其成为轻量级代码生成的有趣候选。测试者认为,尽管结果并非完美,但模型展现出的“章法”和基础逻辑能力超出了对如此小体量模型的预期。
"Overall, again, for a model of 7.9 billion parameters with 1.3 billion active, that's a pretty low active parameter count."(总的来说,对于一个79亿参数、13亿激活参数的模型来说,激活参数数量相当低。)