跳转至

22 从一个建筑行业的AI设计需求看待行业大模型创业的前期分析

你好,我是金伟。

之前的课程我们从最基础的提示词开始,到应用结合AI的开发,最后讲了专用模型开发,涉及了大模型在应用领域的各个层次。现在的问题是,当我们懂了很多大模型知识、大模型应用开发相关的技术之后,遇到一个真实的新需求,特别一个创业项目摆在你面前的时候,怎么开始,怎么分析呢?

接下来的几节课,我们重点讨论这个问题,我会从一个建筑行业的AI设计需求开始。

结构化数据

我们先来看看这个项目的原始需求是什么样的。下面是一个建筑领域办公室装修CAD设计图。

图片

我们的建筑设计AI的需求是,只需要用户输入一段装修设计的提示词,AI系统就能完成整个CAD设计图的设计,要求设计符合规范,合理利用资源并且要满足客户的特殊化需求。

下面是一段办公室装修的需求描述,你可以先自己看看有没有思路实现这个AI设计。

设计需求:办公室装修


项目概述 需要设计一个现代化办公室,旨在提升员工的工作效率和创造力。
面积 办公室总面积约为200平方米。
布局  
开放式办公区域:占据70%的空间,需设置20个工位,提供充足的自然光。
会议室:一个容纳10人的会议室,需配备投影仪和白板。
休息区:提供舒适的沙发和小桌子,供员工休息和交流。


风格
现代简约风格,色调以浅色为主,搭配一些绿色植物,营造轻松愉悦的工作环境。
材料要求  
地面:建议使用环保型地板。
墙面:可考虑使用无毒涂料,部分墙面可使用玻璃隔断。
照明 需要充足的自然采光,同时配备LED筒灯和桌面台灯,确保整体明亮。
存储空间 每个工位需配备个人储物柜,会议室需有存储文件的柜子。
其他需求  
需设有咖啡机和微波炉等小型厨房设施。
希望有一面可以展示公司文化和成就的墙面。

看完之后,你的第一反应可能也会和我一样:把需求输入GPT,看看GPT能不能直接完成这个设计,哪怕可以做一个不那么准确的版本,我们也可以继续优化。

那就让我们来试一试这个方案。

图片
实际上,不仅GPT现在的版本没法完成这个需求,其他大模型也一样会失败。那我们就要分析了,用大模型来做CAD绘图到底是不是可行?CAD设计图的底层结构是什么样的?和我们以往了解的大模型基础原理适配么?

这里有必要回顾一下多模态大模型的基本原理。

我们以图像多模态大模型为例,首先,图像需要被处理成适合Transformer输入的格式。通常,图像会被分割成小块(patches),每个小块会被展平成一个向量,然后输入到Transformer中。以32x32像素的图像为例,假设我们将图像分割成4x4的小块(即每个小块包含8x8个像素),整个图像就会被分割成16个小块。

图片

一个图像按这种划分方法划分之后,也可以转成一个序列化的串,那么,每一张图加上文本描述,就成了文字-图片的序列串。虽然这样的图片序列化对人来说看不出任何的语义对应关系,但是经过Transformer训练之后,大模型就可以学习到文本-图片之间的语义关系。

我们知道大模型可以看做一个翻译模型,本质是从一段文本翻译为另外一种数据结构的数据,在图像模型里,大模型完成了自然语言到图像物体基本关系的翻译,那在CAD设计图场景里,大模型能完成自然语言到CAD图之间的翻译吗?

拿 CAD的设计图稿和图片做类比是一个思路,另外一个思路则是分析CAD的底层数据格式,看看能不能找到其他的规律。实际上,CAD文件的底层是有一套自有的数据格式的,我们以最简单的两个矩形的位置关系这个CAD为例。

它在文件里的数据格式如下。

0
SECTION
2
HEADER
0
ENDSEC
0
SECTION
2
TABLES
0
ENDSEC
0
SECTION
2
BLOCKS
0
ENDSEC
0
SECTION
2
ENTITIES
0
LINE
10
0.0
20
0.0
30
0.0
11
5.0
21
0.0
31
0.0
0
... ...
ENDSEC
0
EOF

文件里的LINE数据块还有很多,实际上CAD文件里的数据就是通过各种形状的具体大小和位置描述来构建整个CAD设计图的。我们先看一下这个CAD文件的具体图形显示。

图片

千万不要看这个图形简单,实际上这个CAD文件已经包含了CAD数据结构的最核心的要素,一是图形的描述,也就是文件里的LINE,二是图形关系的描述,通过文件里LINE这个物体的具体参数体现出来。

我们可以思考一个问题,如果就以这个简单的CAD文件数据继续做大模型的训练,用于训练大模型的数据对是下面这样的格式。

图片

经过大模型训练之后,如果我们提出如下的问题,大模型有没有可能按要求输出CAD设计呢?

我现在有一个CAD数据,请你把左右两边的矩形位置换一下,输出一个新的CAD设计。

其实,在大模型学习了足够的文本-数据的对应关系之后,是有可能习得具体的数值和数据结构之间的关系,从而更进一步识别物体的位置关系逻辑的。

如果这个例子还没法说明可行性,还有一个非常接近这个CAD数据结构的案例,也就是HTML数据结构,也是一种结构化的数据。

.container {
  display: flex; /* 使用Flexbox布局 */
}


.left {
  width: 50%; /* 左边div占一半宽度 */
  background-color: lightcoral;
  padding: 20px;
}


.right {
  width: 50%; /* 右边div也占一半宽度 */
  background-color: lightblue;
  padding: 20px;
}


<div>...</div>
<div>...</div>

实际上,HTML也是一种描述物体以及物体位置关系的结构化描述语言。如果你仔细对比CAD的数据结构,它会发现和HTML的结构是类似的。现在大模型对HTML的识别和操作是非常成熟的。当然,这并不是大模型一开始就具备的能力,而是大量开源代码训练之后的结果。

类似的,CAD结构化数据也完全可以通过大模型训练学习。那为什么不用大模型直接训练CAD设计图的图片格式呢?我是这么思考的,相比于结构化语言这种确定性的描述语言,图片在大模型技术下的发散性太强了。相比较而言,我会更倾向于结构化描述的数据作为大模型翻译的另外一端。

OK,我们言归正传。如果大模型适用于CAD设计AI这个需求,那怎么进一步验证呢?我们还需要实战分析。

低成本分析

为什么GPT可以很好地处理HTML格式的数据呢?一方面是GPT在训练的时候已经学习了HTML的整个语法,另一方面是GPT经过专门的编程数据集的训练,其中就包括HTML数据集。

我们可以把大模型训练看做一个人的学习过程,也就是说,哪怕用少量的数据和规则,也能体现出它是否具备学习能力。所以,一方面,我们在调研是否可以用大模型处理CAD设计的时候,就可以先调研大模型能不能处理最基础的数据和规则。另外一点,提示词往往可以看做一种大模型训练的方法,所以我们调研的时候,完全可以用提示词来替代大模型微调训练。

图片

CAD数据的基本原理是在一个三维的坐标系上绘制物体,每个物体有坐标点位置和大小,而大模型在坐标系理解和数学计算上显然是具备基础能力的。这一点能让我们的训练省去大量的基础工作。

为了更好地说明分析过程,我新设计了一个表示直线的数据表示法。如果基础大模型可以准确识别,则可以说明大模型也能处理CAD的格式。

LINE:(0.0, 3.0, 0.0) -> (0.0, 0.0, 0.0) 
# 表示一个三维空间点 0,3,0 到 0,0,0 的直线

我们先做第一个实验,验证大模型是否可以识别这个新的表示法。

图片
实际上大模型仅用一条数据就学习到了这里的规律,也就是x,y,z的具体数值的位置和对应关系。在这个基础上,因为大模型同时具备坐标系的基础知识,我们可以尝试让大模型理解下一个重要的概念,直线的长度。

图片

我们发现,不管大模型是学习到了我们给的数据,还是本身就具备这个算法,它已经可以把y轴的计算规律迁移到x轴上,而且计算结果是准确的。具备这两项能力,大模型应该可以处理类似于 把这条直线放大一倍 这样的需求,我们验证一下。

图片

你看,在没有特别规则限定的情况下,大模型已经按对称的规则处理了这个放大需求。那我为什么要做这个实验呢?其实就是为了验证大模型是否可以在数据表示和长度规律这两个基础能力上组合完成新的任务。这有点类似于给一个学生出题,看他是不是可以在基础知识上综合运用。如果具备这个能力,则更多的上层应用大模型都可以完成。

现在我们继续做第二个实验,既然大模型已经可以理解基础的LINE结构,那么用LINE组成图形,以及这些图形的位置关系它可以学习到吗?我们继续用简单的例子来做训练。

图片

我们注意到,这已经是一个比较综合的例子,在输入了正方形和左右关系的数据案例之后,大模型可以准确识别出这些物体和关系的规律,并且可以在基础的LINE数据结构上按位置关系画出图形。你可以想象一下,CAD复杂的图形是不是也就是由坐标系、长度大小、位置关系、LINE的组合这些基础能力完成的呢?只要再给大模型更多的数据,它在CAD数据结构上的理解就会更深入和准确。

不知道你有没有发现一个规律,在调研大模型能力的时候,完全可以把他当做一个人看待,可以用一些任务去确认大模型是否学习到了某个能力,要想让它具备新的能力,也可以直接用数据训练后对其进行测验。

当然,我们现在只是完成了基础的数据调研,工程上则需要一个完整的开发路线,我们接着分析。

开发路线图

学习过之前的课程,你应该也能意识到开发一个专有的行业大模型,最重要的开发工作实际上是数据和评估,而不是训练程序,在CAD设计这个AI大模型里也一样。

先说数据问题,还是可以拿HTML数据做一个类比。如果我们要训练大模型学会HTML编程,则需要大量的需求描述和HTML代码。当然,这些HTML代码和需求描述可以从现有的代码库、技术文章里获取。回到CAD设计的需求,数据的获取难度要高几个量级,因为CAD设计图的需求需要重新做人工的标注,也不存在类似的技术文章可以快速抓取。

再说评估问题,在我们的CAD设计AI大模型中,最重要的评估工作可以用建筑领域设计规范为基础来设计,实际上可以训练一个专有的评估专家,对大模型输出的CAD设计做评估,避免出现设计错误。

图片

现在还有一个问题,我们应该选用什么基座大模型开发呢?

这个问题和之前的实验一样,并不是一开始就用大参数的基模型进行训练,而是先从小参数,小量数据开始训练,在评估完之后,确定了基模型可用性和大模型能力提升之后,再用大参数和大数据放大这个能力。

图片

小结

如果说之前的课程更多的是实战中的经验和案例,那这节课探讨的就是遇到一个真实创业项目时怎么进行分析与设计。我们以一个真实的建筑行业的AI设计需求为例,分析了大模型在CAD设计中的应用。

建筑设计的AI需求是通过提示词生成CAD图,需符合设计规范,满足个性化需求。然而,目前大模型还无法直接实现这一功能,因此需要开发一个行业大模型。

怎么进一步分析CAD数据的底层结构是否和大模型技术的适配呢?第一点是看CAD的结构化数据是否在多模态大模型的基本原理范围内;第二点是通过一个类似的结构化编程语言HTML来类比CAD数据,可以得出结论,理论上,大模型可以处理CAD这类结构化数据。

如果要开始这个项目,需要先通过实验验证,看大模型是否能够学习和理解结构化的CAD数据、物体关系,并处理简单的任务。我们通过提示词模拟大模型训练过程,经过若干逻辑严密的实验,说明了CAD设计的AI开发具备可行性。

开发一个行业专用的大模型,需要在数据和评估上投入更多资源,尤其是数据的标注与获取。在开发路线方面,从小数据量和小模型开始训练,逐步评估大模型的能力,以此扩展到更复杂的应用场景。

思考题

为什么同样是常见的数据,现有的大模型对HTML已经可以准确识别,而对CAD格式大模型连最基本的操作都不支持呢?请你思考一下。

欢迎你在留言区和我交流。如果觉得有所收获,也可以把课程分享给更多的朋友一起学习。我们下节课见!

>>戳此加入课程交流群