news 2026/5/1 7:22:36

微调Gemma3:文本生成CAD

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
微调Gemma3:文本生成CAD

这是一个使用小型语言模型创建3D模型的实验项目。

在CloudRift和Prime Intellect提供的GPU算力额度以及Huggingface慷慨的免费资源支持下,我开始构建一个用于生成3D文件的语言模型——CADMonkey。

1、模型架构与3D编程语言

在Starmind,我们需要模型足够小巧,能够在树莓派4和5上运行。

基础语言模型选择的是Gemma3-1B,原因如下:

  • 易于微调(也就是说不需要花费10多个小时调试代码)
  • 没有对话模板(便于开发和使用)
  • 训练工具(Unsloth)、部署和量化(llama.cpp)已经成熟

我们也曾简单考虑过扩散模型,但开发复杂度太高。也许改天我们会重新审视这个想法。

该模型将生成OPENSCAD代码,用于渲染3D模型。

为什么选择OpenSCAD?作为一名机械工程师,我发现传统的体素和网格3D模型几乎没有价值。工程需要不断的修改和迭代,而基于形状和基于代码的模型正好适合这一点。

2、数据集生成

你的模型好坏取决于你的数据集。但"好"的定义取决于具体任务。

以下是我们创建数据集的尝试:

#1:Huggingface上有从Thingiverse抓取的开源OpenSCAD数据集,约7,000行数据(redcathode/thingiverse-openscad)。然而,我们有几个问题:

  • 代码结构过于多样化,代码质量不高。这导致训练后的模型生成不连贯的代码(Python和C的混合)。
  • 数据集中的物体不是常见物体,而是"某个特定东西的特定齿轮"类型。这无法教会模型代码的语义含义。

#2:合成数据生成是我们选择的方法。

  • 首先,我们按类别(动物、厨房用具、宝可梦等)创建常见物体名称列表。然后,让大型语言模型(Kimi)生成代码,渲染代码,并使用VLM(Qwen2.5-VL)根据相似度评判输出结果。
    结果就是这个数据集:https://kdataset.web.app

这是互联网上第一个大规模合成生成并审核的OpenSCAD数据集:ThomasTheMaker/Synthetic-Object-v3(35,000行已验证数据)。

如果没有CloudRift提供的资助,这一切都不可能实现。非常感谢!

在数据集上微调模型后,我们发现:

  • 模型80%的时间能生成可运行的OpenSCAD代码
  • 但是,代码与物体不匹配。

事实上,只有1/400的模型与物体匹配。下面是唯一生成的好物体——鸭子:

#3:水平扩展数据集

我们尝试用更多物体来扩大数据集规模,但物体不匹配的问题依然存在。

#4:垂直扩展数据集

只有在我们垂直扩展数据集时,模型性能才真正提升:

  • 使用相同数量的物体
  • 增加每个物体的示例数量
  • 增加用于生成数据集的模型多样性
    你可以看到下面的改进:

3、我们犯过的错误

有很多我们尝试过但不起作用的东西,希望这能帮助你避免浪费时间和精力:

  • 首先,我们尝试使用AWS Bedrock上的Claude Sonnet和Haiku模型生成数据。根据token数量估算成本为40-60美元。但由于推理token的存在,实际花费了170美元,而输出仅略高于Kimi-K2(非思考模式)和Deepseek-V2等开源模型。
  • 其次,我们尝试通过图书馆和字典生成物体名称列表。这是个糟糕的想法,因为列表相当随机,包含基础模型甚至都不了解的物体。

4、训练

准备好数据集后,我们使用以下提示微调Gemma3 1B模型:

‘嘿,cadmonkey,给我做一个{物体名称}’

这是使用Unsloth 4位微调完成的。

输出模型被转换为GGUF模型,使用q8量化。

所有内容都在这里:https://hf.co/collections/ThomasTheMaker/cadmonkey

5、让它面向世界!

我使用Modal来托管模型。由于模型很小,即使在CPU、树莓派等上也能很好地运行。

为了速度优化,我在Modal上使用T4 GPU,输出速度非常快。虽然GPU利用率只有8%。

平均每次提示运行成本为2美分。

在这里试用应用:https://cadmonkey.web.app

6、总结

我知道这听起来很老套,但你真的可以做出东西!

5年前,要达到这个目标需要5位数的投资和20名科学家的团队。

现在,我利用来自各种来源的500美元额度,在3个周末内完成了整个实验。

到目前为止,我对语言模型的知识只是一年的自学。

你真的可以做到。你只需要足够疯狂去开始。


原文链接:微调Gemma3:文本生成CAD - 汇智网

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:16:42

全球化AI解决方案:如何通过多模型支持提升Copilot系统的智能化

前言:Copilot系统的全球化智能挑战2026年,全球Copilot系统用户突破30亿,但一个关键数据揭示了严峻挑战:单一模型的Copilot系统在处理跨语言、跨文化任务时,用户满意度仅为42%,而多模型协同的系统满意度达到…

作者头像 李华
网站建设 2026/4/24 22:50:31

HTML5游戏开发PDF教程下载,Canvas/WebGL自学指南

对于许多希望进入或已经从事游戏开发的人来说,“HTML5完美游戏开发PDF”这类资料意味着一条结构化的学习路径和可靠的参考手册。它通常汇集了从Canvas/WebGL绘图、物理引擎集成到网络通信等核心知识,能帮助开发者系统性地掌握用现代Web技术构建游戏的完整…

作者头像 李华
网站建设 2026/4/25 21:45:52

Python培训班和自学哪个好?能帮转行找工作吗?

参加Python培训班是许多人进入编程领域或提升技能的选择。市场上培训班众多,质量参差不齐,选择合适的培训需要基于个人目标、时间和预算进行理性判断。好的培训班能提供系统知识、项目实践和就业指导,但并非成功的唯一路径,关键还…

作者头像 李华
网站建设 2026/4/30 19:31:03

STL语言编程教程:基本语法与项目应用指南

STL语言是工业自动化领域广泛使用的一种高级编程语言,主要应用于可编程逻辑控制器(PLC)的编程。它以类似于Pascal或C的结构化文本形式,为工程师提供了强大的逻辑控制能力。相比于梯形图等图形化语言,STL更适用于复杂的…

作者头像 李华