关键词:大语言模型,有限元求解器,智能体,自研软件,梁单元
随着AI技术的爆发,这两年几乎所有的行业都要用AI加持一下,所谓的“拥抱AI”。
传统理工科领域更不例外,恨不得所有的课题都要上AI,上智能体,人人都在谈论着“端到端”、“世界大模型”。
大佬们也都发出了各种“AI时代的思考”,嘴上说AI无法完全替代人的思考、人的因素非常关键。但是言语之间,也不乏焦虑的味道。
你想了解梨子的味道,最好的方式是亲自去尝一下,而不是仅仅设想和推演。具体到AI上,不是说用ChatGpt问过几个问题就算了解AI的,而是要从更深的层面去接入。
实际上,我了解和使用AI也有挺长时间了。以前我们做了很多图像识别的项目,里面用到机器学习的技术是我所理解的传统AI,就是用大量的样本训练一个专门的AI模型。
自从大语言模型爆发以后,一切似乎变了,AI不再局限某一个特殊任务,它变得更通用也更强大。
我限于日常工作和项目任务的繁忙,更主要的是对跨度如此大的另一个领域知识的畏惧,因此没有专门花时间去研究大语言模型,很多东西似懂非懂。
刚好今年暑假妹妹过来,她是软件工程的大二学生,从未接触过力学有限元。
我就想,如果把我们开发的力学求解器给她,她来部署大模型,然后能不能做一个力学智能体呢?
为了便于实施,我把之前开发的三维梁单元求解器给了她,并做了详细介绍。
当然考虑到三维层面,用户语言描述起来比较困难(即复杂的几何,用语言很难描述),我们把使用场景限制在了二维:
1. 几何形状适应直线、圆弧等形状;
2. 边界条件包括固支、简支等常用约束;
3. 载荷有单点载荷、均布载荷、重力等;
4. 梁的截面有:圆、矩形、圆管、箱型。
因此我们这个智能体的定位就是:用户通过语言输入,描述力学模型和工况,经过大语言模型处理,转换为求解器的输入,并完成计算。

然后,我让妹妹去调研,形成详细实施方案,然后我们讨论完再开发。
这是我给所有跟我做项目的学生的要求,凡是做之前必须要有方案,不能是口头的,要落到纸面上,word也行,PPT也行。方案经过讨论通过后,再去具体实施。
这里面我提了几个我比较关注的问题:
1. AI模型如何部署和调用?
2. 大模型部署后,是否需要像以前搞机器学习那样,做样本训练?还是需要进行二次开发?
3. 如果是训练,怎么训练?如果是开发,怎么开发?
下班以后,我们把她做的方案投屏到电视上讨论。

几个问题都有了答案:
1. AI模型如何部署和调用?
可以本地,也可以云端。如果是云端,长期使用要购买Token。调用方式如下:

2. 大模型部署后,是否需要像以前搞机器学习那样,做样本训练?还是需要进行二次开发?
答案是不需要开发,也不需要训练。默认他具备这个能力,只是需要调 教!

调 教的方法呢,就是写详细的功能“提示词”,这基本上就是工作量最大的地方了。

上述方案里面,同时也对软件界面进行了设计,经过讨论后,我们决定设计成三栏式。
左边是对话。用户描述后,AI进行语句处理,生成参数矩阵让用户确认,如果有缺失的内容,会提醒用户补充或者使用默认值。
这一步之后,中间栏会对参数进行详细分类,这里其实相当于保留了传统的界面参数输入,用户可以直接在这定义参数,也可以再次修改前面语句处理后的参数。
右侧就是结果查看。

在大模型的选择上,最终选用了千问的模型。
这有点出乎我的意料,因为我一直感觉千问和其他模型比似乎差一些,但是在自己部署的时候发现:
1. 它本地部署后,语言交互比Deepseek更简洁,Deepseek回答的很啰嗦;
2. 免费,且存储体量小,响应的也相对快一些。
然后妹妹花了大概一天的时间,完成了大语言模型的部署。
剩下的时间,就是根据大模型对语句解析的效果,不断地修改提示词,把它调 教到更准确的参数解析状态。
主要还是本地部署的大模型比云端的要弱智很多,否则以云端的能力,加上我的求解器输入格式非常标准,应该能更快完成调 教。
前后大概两周的时间,我们合力搭建的一个简单的梁单元求解器智能体终于跑通:

本地部署对计算机的性能要求还是比较高的,在16G内存、4G独显的个人PC上,基本一个问题响应时间要十几分钟。
他们的对话情况如下:
用户:我们要建一个圆弧悬臂梁模型。梁是圆弧形状,半径 10 米,夹角 90 度;圆形截面,半径 1 米,壁厚 0.5 米;一端做悬臂固定。在距离起点 45 米处施加集中力,X 方向‑100N,Y 方向‑100N,弯矩为 0。材料弹性模量 210GPa,泊松比 0.25,密度 7900kg/m³。AI:参数已齐全。几何为圆弧长10m,夹角90°,悬臂约束,在距离起点45m处受X方向-100N,Y方向-100N的集中力。{"力学模型":"梁","几何类型与参数":{"类型":"圆弧","参数":{"半径/m":"10","夹角/°":"90","节点坐标":null,"连线关系":null}},"截面类型与参数":{"类型":"圆环","参数":{"半径/m":"1","壁厚/m":"0.5","长/m":null,"宽/m":null}},"约束形式与参数":{"类型":"悬臂梁"},"载荷形式与参数":{"类型":"集中力","参数":{"位置/m":null,"位置/°":"45","Fx/N":"-100","Fy/N":"-100","M/N·m":"0","F/(N/m)":null}},"材料参数":{"弹性模量/GPa":"210","泊松比":"0.25","密度/(kg/m3)":"7900"}}【系统校验】参数齐全,可以点击【开始分析】运行求解。
跑通这个智能体的时间比我想象中的要快很多。有两个原因:
1. 这里不涉及到几何建模,因为我的求解器已经内置了常用的几何处理。如果是更复杂的问题,可能需要接入几何建模模块给智能体调用,就形成了多智能体。
2. 同样的,后处理也是求解器自己输出的图片,否则还有加上后处理模块。
3. 大模型目前能力已经很强,在我们有现成求解器的情况下,可以很快接入。
效果比我预期的要好很多,同时也坚定了我尽快开发更复杂的求解器、几何引擎和前后处理算法的决心。
AI很强,但也是遇强则强,我们只有开发更多的基础工具和算法,才能更好发挥AI的能力。6