
Raymond Weitekamp • 2024-02-29
解锁生成式人工智能的第三维度(第一部分)
说生成式人工智能在过去几年里风靡全球是保守的说法。虽然文本(1D)和图像(2D)模型在质量上达到了真正改变我们创建数字内容方式的水平,但对于 3D 模型来说,情况并非如此。
3D 生成式人工智能在创建 3D 数字资产方面取得了显著进展,像神经辐射场(NeRFs)这样的技术在视频游戏开发等应用中显示出可喜的成果。然而,当涉及到数字领域之外的应用,尤其是在工程和制造领域时,当前生成式人工智能技术的局限性就显而易见。在积极使用最先进的 3D 生成式人工智能工具超过 2 年后,我个人还没有生成过一个我真正想将其制造为物理对象的模型。
简单来说:当前 3D 生成式人工智能的状态对工程师来说用处不大。
neThing.xyz 背后的动机
我们 polySpectra 的使命是帮助工程师将他们的想法变为现实。发明 neThing.xyz(发音为“anything dot x,y,z”)的关键洞察是:AI 实际上非常擅长编写代码,并且通过在“代码 CAD”的领域特定语言上训练“codegen”AI,我们的 AI 可以生成能够快速转换为 3D CAD 模型 的代码。
简单介绍一下背景,AI 代码生成工具目前在对人类程序员的评估基准上达到了约 95%。按照目前的速度,如果 AI 在未来三周内达到 100%,我不会感到惊讶。(查看此排行榜了解更多详情。)
在 3D 建模领域,“代码 CAD”正日益受到关注——这是一个标志着我们进行计算机辅助设计方式范式转变的术语。与严重依赖可视化工具和手动用户输入的传统图形 CAD 界面不同,代码 CAD 利用编程来创建和操作 3D 模型。这种方法提供了一种更直接且潜在更强大的生成复杂设计的方法,因为它允许实现通过鼠标驱动界面难以达到的精度和自动化。
代码 CAD 日益突出的一个证明是它本月在 Too Tall Toby 速度 CAD 竞赛中的首次亮相。在下方视频的第二场比赛中,Jern 使用代码 CAD 包 Build123d 进行比赛,对手“Mr. Alex”使用的是传统 CAD 工具 SolidWorks。
所以我的想法很简单:如果 AI 可以编程,而代码可以 CAD,那么为什么 AI 不能 CAD 呢?
为什么选择 RAG?
尝试使用这种代码生成方法创建 3D 生成式人工智能,我们面临一个重大挑战:需要极长的提示词来为 AI 提供足够的关于我们代码 CAD 领域特定语言的上下文。这对于它能生成可用代码至关重要,更不用说有用的东西了。
我最初在 Mayo Oshin 的指导下学习了检索增强生成(RAG)。(查看他的 RAG 课程!)。我知道 RAG 将是让 neThing.xyz“更智能”的必要策略一部分,通过 Mayo 的课程,我有机会见到了 Jerry Liu,并向他请教了一些关于检索更细微元素的问题。
neThing.xyz 的初始版本还可以,但我真的需要费力地调整 LLM:每个查询涉及大约 10,000 个 tokens。因此,如果用户询问“一个盒子”,我支付的不是 2 个输入 tokens,而是 10,002 个 tokens。我知道我需要一种更具可扩展性的方法……
参加 RAG-a-thon
“RAG-a-thon”的宣布提供了一个绝佳机会,可以快速将 RAG 集成到 neThing.xyz 中。对于熟悉黑客马拉松旋风般节奏的人来说,你会明白我说时间总是比预期的少,常常导致人们高估自己能完成的事情。(对我来说,我通常会高估我能完成的事情的 3-10 倍!)考虑到这一点,我为那个周末设定了一个适度的目标:将 LlamaIndex 添加到 neThing.xyz。
我的最终目标是利用 LlamaIndex 大幅扩展 neThing.xyz 可用的文档语料库。但本着设定一个低目标的精神,我首先只是将我非常大的系统提示分解成一组文档,LlamaIndex 可以从 AstraDB 中检索这些文档,并仅为给定的用户查询带回最相关的示例代码。
在 LlamaIndex 团队的 Logan Markewich 的大力协助下,我在一天之内通过 LlamaIndex 和 AstraDB 成功实现了 RAG。这立即将每个用户查询的平均 tokens 数量从大约 10,000 减少到大约 2,000。这产生了巨大影响,仅仅一天就使我们的 OpenAI 账单成本降低了 80%——这对于我们这样的小企业来说意义非凡。
虽然我个人对 RAG 能让 LLMs 变得更智能的各种方式充满热情,但我更想强调 RAG 带来的即时投资回报(ROI)。通过简单地重新组织相同的信息集,以便通过 LlamaIndex 进行检索,我们以最小的努力实现了显著的成本节约。作为一名创业者,只需八小时的工作就能将成本降低 80% 是我随时都会接受的交易。
在 RAG-a-thon 的最后一个星期日,我大部分时间都在确保我的演示能够正常运行。“演示之神”那天眷顾了我:我在“持续创新”赛道中赢得了第一名!
neThing.xyz 的实际应用示例
文本
曲线
螺纹
管道
格子
接下来?
我对 neThing.xyz 的目标是为工程师打造最好的 3D 生成式人工智能,重点在于“文本转 CAD”。这是一个非常困难的问题,我在最近的网络研讨会中与 LlamaIndex 分享了其中的一些挑战,并在 Wevolver 上提供了更详细的信息。
我们的关键目标是让 neThing.xyz 更快、更智能、更便宜。我们正在利用 LlamaIndex 来编排整个 RAG 流程,并且对这个开源社区惊人的发展速度感到非常兴奋。
从自然语言提示生成这样的零件需要什么?
老实说,我不知道该怎么做。
我们刚刚起步,如果您加入我们的社区,我将非常激动。我们的 AI 的智能程度只取决于训练它的社区的总和,我们很高兴看到您将创造出什么!
今天就请试用 neThing.xyz,并通过我们的新社区论坛与我们分享您的真实反馈。您的意见将在我们持续的开发工作中发挥关键作用,帮助我们改进和完善这款工具。
让它成为现实。
Raymond
附记:— 这篇文章之所以命名为第一部分是有原因的。您希望在第二部分看到什么?请在下方告诉我!