随着ChatGPT的火热,以及最近GPT-4的发布,生成式设计AI影响越来越大。作为技术人员以及工程师,有必要了解一下AI领域的新技术对工业软件研发的影响。
首先我们要了解一下ChatGPT能做什么工作。
个人认为ChatGPT作用有以下几个方面:
1. 升级版本的google。现在是一个信息,知识大爆炸的时代,以往查询研发中出现的问题,一般baidu+google,还有就是StackOverflow,以及一些常用的论坛以及帮助文档。要在这些海量数据中搜索出所需要的内容,常常依赖搜索技巧,知识储备,文档整理,外语等各方面。而现在只需要输入足够多的信息,ChatGPT就能帮助把信息全部归纳整理好,更重要的是这种能力还在不断提升。比如关于QT/C++的基础知识,可以搜索出详细解释和演示代码。
2. 代码能力。根据本人的开发经验,ChatGPT已经表现出了非常强的编码能力,其内容涉及到OCC,ACIS,PARASOLID,网格生成,VTK渲染,线性方程组求解,QT,NP问题,常用各种数值计算方法包括无网格,等几何,量子计算等一些前沿计算。以上ChatGPT都可以直接用C++写出示例的源码:就是给出需求,立马能自动生成C++代码。其中ACIS,PARASOLID以及商用线性方程组也可以直接生成。按照道理这些内容应该已经无法免费获取了,不知道背后的业务逻辑是什么,有可能是抓取了老版本的帮助文档。此外输入一段代码,ChatGPT可以找出潜在的问题。根据描述,ChatGPT已经支持常用编程语言。另外可以利用ChatGPT自动生成各种测试用例,解放测试人员。
3. 帮助软件需求分析和设计。只需输入需求信息,ChatGPT已经能够帮助生成原始的UML图。在规范软件分析和流程中,各种文档必不可少,写文档是研发人员头疼的内容,而这正是ChatGPT的强项。在软件设计阶段,有很多规范,比如接口定义,模块划分,技术选型等,这些都可以不同程度从ChatGPT获得知识和帮助。
4. 我们经常说,工业软件研发需要长期技术积累,这种积累一方面来自于软件研发本身,还有一种是实践而来的经验。这两种其实规范化的数据和资料都非常少,大部分都零零散散。而ChatGPT基于大数据,很大程度地搜集了这方面的信息和资料,并能对数据做出分析和预测。
5. 在工业软件设计和研发中,一个很重要的内容就是参数,这种参数化的内容体现在各个方面,从CAD设计,到仿真,优化以及制造。利用ChatGPT可以利用这些参数,让这些参数在实际研发中发挥作用。比如做一个简单的拓扑优化,以往需要多次仿真迭代,修改参数,而利用ChatGPT可能直接利用已有训练数据加少量仿真,就能给出最优解,提高效率。虽然我们知道AI的重要性,很多企业也尝试将AI应用到工业软件领域,但实际效果并没有达到预期。其主要原因还是计算量太大,参数过多,无法建立有效模型。如果能深入了解ChatGPT底层的研发逻辑,可以加快AI在工业软件领域的落地。
6. AI需要强大的算力,而工业软件,特别是在仿真领域,一般都是海量计算数据。如何从这些数据里提取出有效信息,可以是AI的一个方向。比如我们常用的自适应迭代网格,目前的迭代规则比较固定,而实际上不同场景的迭代规则不同,利用AI可以自动化找出这些规律和潜在最佳方案,提升仿真效率和精度。
7. 利用ChatGPT,已经可以替代大部分简单重复劳动,比如初级编码,日常文档,数据分析,常用设计等。毫无疑问,下一步的目标就是直接操作软件。比如输入“用catia画一个1*1*1的立方体”,则会启动catia,创建几何,保存。所以以后没有业务背景的简单重复劳动都会被AI替代,这只是时间问题。就如笔者在 “工业软件” 语录摘要100句一文中提出,对于研发人员而言,编程语言能力快速提升可能就在毕业后1,2年时间,而后续就需要把精力放在业务和设计上,因为这些是融合诸多因素,需要具体问题具体提分析的内容,也是最不容易被AI替代的。
知乎上有个问题:低代码+ChatGPT能否替代程序员。
个认为,至少现在在工业软件领域还不行,但是可以预见的是:AI以后会越来越多承担程序员的工作内容。