论文

利用 LLM 生成多文件领域专用语言代码:宝马工业案例

Leveraging LLMs for Multi-File DSL Code Generation: An Industrial Case Study

摘要

大语言模型 (LLM) 在通用代码生成方面表现强劲,但它们对企业特定领域语言 (DSL) 的适用性仍未得到充分探索,特别是对于从单个自然语言 (NL) 指令跨越多个文件和文件夹结构的存储库规模变更生成。我们报告了 BMW 的一个工业案例研究,该案例采用面向代码的 LLM 来生成和修改基于 Xtext 的 DSL 的项目根 DSL 工件,从而驱动下游 Java/TypeScript 代码生成。我们开发了一个用于数据集构建、多文件任务表示、模型适应和评估的端到端管道。我们将 DSL 文件夹层次结构编码为结构化、保留路径的 JSON,从而允许在存储库规模上生成单一响应并学习跨文件依赖关系。我们在三种配置下评估了两种指令调整代码 LLM(Qwen2.5-Coder 和 DeepSeek-Coder,7B):基线提示、单样本上下文学习和参数高效 微调 (QLoRA)。除了标准相似性度量之外,我们还引入了特定于任务的度量来评估编辑正确性和存储库结构保真度。 微调 在模型和指标上产生了最显着的收益,在我们保留的多文件输出集上实现了高精确匹配精度、大量编辑相似性和 1.00 的结构保真度。与此同时,单样本上下文学习比基线提示提供了较小但一致的改进。我们通过专家开发人员调查和使用现有代码生成器进行基于执行的检查来进一步验证实际实用性。