
1. 兵器重工为什么要把SysML v2和LLM绑在一起兵器重工这个案例我第一次看到时的反应是终于有人把MBSE落地中最难啃的那块骨头拿出来讲了。SysML v2从2023年正式发布规范到现在真正在工业场景里跑通全流程的团队并不多大部分还停留在用新语法画旧图的阶段。而兵器重工的做法是把LLM直接嵌进建模工作流让大语言模型去承担模型元素的生成、校验和语义补全这个思路值得拆开细看。先说清楚背景。兵器重工属于典型的复杂装备研制单位一个型号涉及机械、电子、液压、控制、软件多个学科系统架构动辄上千个模型元素。传统MBSE落地时系统工程师最头疼的不是不会画图而是三件事第一需求条目到模型元素的映射靠人工翻译一条需求拆成五六个模型元素是常态效率极低第二SysML v2的语义约束比v1严格得多新手写出来的模型经常在语义层就通不过校验第三跨专业模型集成时命名规范、接口定义、参数单位这些细节对不齐后期返工量巨大。LLM在这里的价值不是帮你画图而是充当一个懂SysML v2语义的建模助手。它能做需求文本到模型元素的初步转换能做模型一致性检查能在你写错语法时给出修正建议。兵器重工把这个能力做成了建模流程里的一个环节而不是一个独立的聊天窗口这是它和市面上大多数AI建模工具最大的区别。提示SysML v2和v1在语法上是两套东西。v2采用了文本化表示模型本身就是代码这为LLM介入提供了天然接口。如果你的团队还在用v1的图形化工具想接LLM会非常别扭。这个案例适合谁参考我认为三类人最该看一是正在推MBSE但卡在效率瓶颈的系统工程师二是负责型号数字化、想引入AI能力的技术管理者三是做工业软件集成、需要理解SysML v2文本化建模逻辑的开发者。如果你只是想知道LLM能不能画SysML图那这个案例的深度可能超出你的需求但如果你关心的是怎么让LLM真正参与工程建模而不是玩具演示下面的内容会对你有用。2. 拆解兵器重工的LLM建模链路从需求文本到可校验模型2.1 需求条目到SysML v2元素的映射逻辑兵器重工的第一步是把自然语言需求转成SysML v2的模型骨架。这里的关键设计是他们没有让LLM直接输出完整的SysML v2代码而是先输出一个中间结构——用JSON描述的模型意图再由一个确定性的转换器把JSON转成SysML v2文本。这个设计非常聪明原因有两个。第一LLM直接生成SysML v2代码时语法错误率很高。SysML v2的文本语法虽然比v1规范但仍有大量细节比如part def和part的区别、attribute的类型声明方式、requirement def里的subject引用规则LLM经常搞混。让它生成JSON语法空间小得多准确率能提升一个档次。第二JSON中间层让整个流程可审计。系统工程师可以检查LLM对需求的理解是否正确而不是面对一堆生成的代码去反推意图。兵器重工在JSON里定义了这些字段模型元素类型part/requirement/interface/action、名称、所属包路径、关键属性、与其他元素的关联关系。LLM的任务就是填这个结构。具体到提示词设计他们用了few-shot加约束解码的组合。few-shot里放了十几条典型需求的转换示例覆盖功能需求性能需求接口需求三类。约束解码则限定了输出必须符合预定义的JSON Schema避免LLM自由发挥。实测下来需求到JSON的首次通过率在85%左右剩下15%需要人工修正主要是需求本身有歧义或者涉及跨专业术语的情况。2.2 模型一致性校验LLM做语义检查而不是语法检查语法检查交给SysML v2的原生校验器就够了LLM的价值在于语义层的一致性检查。兵器重工在这个环节做了三件事。第一是命名规范检查。他们有一套内部命名规则比如部件名称必须体现系统-子系统-组件的层级前缀接口名称必须包含方向标识。LLM被要求逐条比对模型元素名称是否符合规范不符合的给出修改建议。这个任务看起来简单但规则有几十条人工检查容易漏LLM做得很稳。第二是接口匹配检查。SysML v2里接口定义和接口使用是分开的容易出现定义了接口但没人用或者用了接口但定义缺失的情况。LLM会扫描模型找出所有接口引用比对接口定义库报告不匹配项。兵器重工的技术负责人跟我说这个功能在跨专业集成时救过他们一次——液压子系统的接口定义和控制系统里的引用差了两个字人工评审没看出来LLM扫出来了。第三是需求覆盖检查。每条需求都应该有对应的模型元素来满足LLM会做需求到模型元素的反向追踪找出没有模型元素支撑的需求和没有需求来源的模型元素。这个检查在型号研制的中后期特别重要因为需求变更频繁模型更新往往滞后。注意LLM做语义检查时会有误报。兵器重工的做法是把LLM的检查结果分为确认问题和待人工确认两档前者直接推给责任人后者进入评审队列。这个分级机制很实用避免了大量误报淹没真正的问题。2.3 跨专业模型集成时的LLM辅助对齐复杂装备研制最怕的就是各专业各建各的模型最后集成时对不上。兵器重工在集成阶段用LLM做了两件事术语对齐和参数单位统一。术语对齐方面不同专业对同一个概念可能有不同叫法。比如控制指令在控制专业叫command在液压专业叫signal在软件专业叫message。LLM会读取各专业的模型识别出语义相同但命名不同的元素建议统一命名。这个能力基于LLM的语义理解比字符串匹配靠谱得多。参数单位统一更实际。SysML v2支持带单位的数值属性但工程师写模型时经常漏单位或者用错单位。LLM会检查所有数值属性的单位声明对照兵器重工内部的单位规范表给出修正建议。他们还做了一个单位换算的辅助功能比如把毫米自动转成米并保留精度说明。这个环节的实操心得是LLM的对齐建议必须经过专业工程师确认才能写入模型。兵器重工设了一个建议-确认-应用的三步流程LLM只负责提建议不直接改模型。这个设计既利用了LLM的效率又保住了工程师的最终决定权。3. 落地过程中踩过的坑和对应的解法3.1 提示词工程的边界哪些事LLM做不好兵器重工在初期尝试过让LLM做更多事情比如直接生成完整的SysML v2模型文件、自动推导模型元素之间的依赖关系、根据模型生成测试用例。实测下来这三件事LLM都做不好。直接生成完整模型文件的问题前面说过语法错误率太高。自动推导依赖关系的问题在于LLM会编造不存在的依赖它倾向于给出看起来合理但实际没有依据的关联。生成测试用例的问题更严重LLM生成的测试用例覆盖度不够而且经常忽略边界条件。他们的结论是LLM适合做有明确输入输出格式、有参考示例、结果可验证的任务。需求转JSON符合这个标准语义检查符合这个标准但开放式推导和生成不符合。这个边界划清楚之后整个系统的稳定性提升了很多。3.2 模型规模增大后的性能处理兵器重工的型号模型有上千个元素把整个模型塞进LLM的上下文窗口不现实。他们的解法是分块处理加增量更新。分块处理是按包路径把模型切成若干块每次只把相关的块送给LLM检查。比如检查接口一致性时只送接口定义所在的包和引用接口的包不送整个模型。增量更新则是记录每次模型变更只对变更部分做LLM检查不变的部分跳过。这个策略把单次LLM调用的token量控制在了可接受范围内响应时间从最初的几十秒降到了几秒。他们还做了一个缓存层对相同的检查请求直接返回缓存结果进一步降低了调用频率。3.3 工程师信任度的问题技术上的坑好填人的坑难填。兵器重工初期推这个系统时很多老工程师不信任LLM的建议觉得机器懂什么系统工程。他们的解法是先用数据说话把LLM检查出的问题整理成报告在评审会上展示让工程师看到LLM确实发现了人工遗漏的问题。几次之后信任度就上来了。另一个做法是让LLM的建议可解释。每条建议都附带理由比如该接口名称缺少方向标识根据命名规范第3.2条应添加_in或_out后缀。工程师看到理由后接受度明显提高。4. 这套实践对MBSE落地的参考价值4.1 和传统MBSE工具链的对比传统MBSE工具链里需求管理、建模、校验、集成是四个独立的环节靠人工衔接。兵器重工的做法是用LLM把这四个环节串起来形成一个半自动的流水线。这个变化带来的效率提升是明显的需求到模型的转换时间从平均每条需求15分钟降到了3分钟模型一致性检查从每周一次的全量评审变成了每日增量检查。但也要看到这套方案对团队的基础能力有要求。SysML v2的文本化建模本身就需要学习成本LLM的提示词设计和结果验证也需要专人负责。兵器重工是有一个三人的数字化小组专门做这件事不是随便找个工程师兼职就能跑起来的。4.2 可复用的方法论兵器重工这个案例里我认为最值得复用的是三条方法论。第一条是中间结构思路。不要让LLM直接生成最终产物而是生成一个结构化的中间表示再用确定性程序转换。这个思路可以迁移到很多场景比如LLM生成测试用例时先输出测试意图JSON再转成具体测试脚本。第二条是分级处理思路。LLM的输出分为可直接采用需人工确认仅供参考三档不同档位走不同的处理流程。这个机制平衡了效率和可靠性。第三条是增量优先思路。不要每次都全量处理只处理变更部分。这个思路在大模型应用里普遍适用能显著降低成本。4.3 后续可以扩展的方向兵器重工目前做的是建模阶段的LLM辅助后续可以往两个方向扩展。一是往上游走做需求分析阶段的LLM辅助比如需求冲突检测、需求完整性检查。二是往下游走做模型到代码的自动生成比如从SysML v2模型生成仿真代码或嵌入式代码框架。这两个方向都有挑战上游的挑战在于需求本身的不规范性下游的挑战在于模型到代码的语义鸿沟。但兵器重工已经搭好了LLM加SysML v2的基础设施扩展起来比从零开始要容易得多。我个人在实际接触这类项目时的体会是LLM在工程领域的价值不在于替代工程师而在于把工程师从重复性、规则性的工作中解放出来。兵器重工这个案例把这一点做得比较扎实没有追求全自动的噱头而是老老实实做半自动的辅助反而更容易落地。如果你也在推MBSE不妨从需求转模型这个环节开始试这是投入产出比最高的切入点。