GLLM实现从自然语言指令到 CNC 加工可执行 G 代码的自动生成
https://arxiv.org/pdf/2501.17584
本文介绍了GLLM这一创新工具,它基于微调的 StarCoder-3B 大语言模型,融合检索增强生成(RAG)、先进提示工程和自校正代码生成机制,实现从自然语言指令到 CNC 加工可执行 G 代码的自动生成;该工具通过语法检查、G 代码专属验证和豪斯多夫距离的功能正确性评估保障代码准确性,实验对比了 GPT-3.5、CodeLlama-7B 等 4 个模型,证实结构化提示能显著提升模型成功率,开源模型结合结构化提示和自校正机制可达到与专有模型相当的性能,GLLM 有望降低 CNC 编程的专业门槛,革新数字制造流程,同时研究也发现 RAG 在非结构化提示下会降低模型性能,后续需优化其集成方式。

本文围绕GLLM展开研究,该工具是首个实现自然语言直接生成可执行 CNC 加工 G 代码的 LLM 驱动方案,旨在解决手动编写 G 代码的痛点和传统非 AI 生成方案的局限性,以下是按文档脉络的详细总结:
一、研究背景与问题
- G 代码的核心地位与手动编写痛点G 代码是 CNC 制造的领域专用编程语言,属于底层语言,无几何语义理解能力;手动编写需精准协调机床轴、规划刀具路径,需人工计算坐标、速度等参数,易出错、耗时长,且要求编程者具备专业的加工知识和机床操作经验。
- 传统非 AI 自动生成方案的局限性
- CAM 软件(Fusion 360、Mastercam 等):需繁琐设置、学习曲线陡、许可证成本高、受厂商定制化限制,灵活性低;
- 3D 打印切片软件(PrusaSlicer、Cura 等):仅适用于增材制造,无法支持铣削、钻孔等减材制造,且 G 代码生成能力基础,难以应对复杂加工。两类方案均需大量人工干预和专业知识,存在明显改进空间。
二、GLLM 的核心贡献
作为首款自然语言直转可执行 G 代码的工具,GLLM 的四大核心贡献为:
- 开发了基于开源大语言模型的自然语言转可执行 G 代码框架,保障系统可控性和数据隐私,摆脱专有模型约束;
- 针对通用 LLM 对 G 代码语法 / 格式的适配性问题,融入领域专属训练数据微调模型,并实现检索增强生成(RAG) 机制提升精度;
- 设计了创新的提示策略和输入表征,有效引导 LLM 生成准确 G 代码;
- 构建了包含自校正机制和用户参与验证的 G 代码正确性验证方法,实现语法 + 语义双重验证。
三、GLLM 的整体架构与执行流程
GLLM 的架构以微调的 StarCoder-3B为核心,采用参数高效微调(PEFT) 和混合精度训练加速模型训练,整体流程为输入 - 处理 - 生成 - 验证 - 后处理 - 可视化,核心模块及作用如下:
- 参数提取:从用户自然语言中提取工件尺寸、切削深度、坐标点等关键加工参数;
- 并行处理:工具路径仿真实现切削轨迹初步可视化,提前检测错误;提示工程结合预定义模板和 RAG 机制,从 CNC 领域 PDF 文档中调取 G 代码命令定义、机床文档等信息,丰富输入语境;
- 初始生成:基于优化后的输入,由模型生成初始 G 代码;
- 自校正验证:通过语法验证、G 代码专属验证、功能正确性验证三轮检测,将错误反馈至模型,迭代优化 G 代码;
- 后处理:完成 G 代码提取(过滤无关文本)和参数调整(校准主轴转速、进给率等用户参数);
- 可视化:通过CAMotics(开源 CNC 仿真器) 实现 3D 仿真,通过自定义 Python 脚本实现刀具路径 2D 绘图,供用户最终验证。
四、GLLM 的关键技术模块
(一)提示工程
核心目标是将原始用户提示转化为结构化输入,提升模型理解和生成精度,关键操作包括:
- 从任务描述中提取材料、加工类型、形状、工件尺寸、刀具路径等核心参数,组织为 Python 字典;
- 与预定义模板对比,检测并提示用户补充缺失参数,形成完整输入;
- 针对多形状复杂加工任务,实现任务分解 - 独立生成 - 代码整合,先将任务拆分为单形状子任务,分别生成 G 代码后再融合为统一可执行程序。
(二)自校正 G 代码生成机制
摒弃单次生成的范式,采用生成 - 验证 - 反馈 - 优化的迭代流程,直至生成正确代码或达到最大迭代次数,核心包含G 代码验证和功能正确性验证两部分:
- G 代码验证(语法 + 专属规则)
- 语法验证:逐行解析代码,校验 G/M 命令的格式规范性,标记非法命令;
- 逻辑错误检测:识别M30(程序终止) 后的不可达代码;
- 安全操作检查:禁止刀具切削时的G0/G00 快速移动命令,避免设备 / 工件损坏;
- 钻孔安全验证:禁止刀具在安全高度以下的水平移动,防止断刀 / 工件损坏。
- 功能正确性验证以豪斯多夫距离为核心度量,量化模型生成的刀具路径与用户定义路径的几何相似度,若距离超过预设阈值,将错误信息反馈至模型重新生成,具体流程见文档 Algorithm 1,核心步骤为坐标提取 - 路径构建 - 去重 - 距离计算 - 结果判断。
五、实验评估
(一)实验设置
- 实验模型:1 个专有模型(GPT-3.5)+3 个开源模型(CodeLlama-7B、Zephyr-7B、微调的 StarCoder-3B(FT-StarCoder-3B)),其中仅 StarCoder-3B 基于 GitHub Stack 数据集的 G 代码数据微调;
- 技术实现:通过 LangGraph 实现自校正和 RAG;通过 FAISS 向量存储实现 RAG 的相似度检索;通过Streamlit搭建用户友好的 web 界面;
- 测试任务:6 类不同复杂度的几何形状 G 代码生成(正方形、六边形、不规则形状、圆形、带双圆形岛的矩形槽、钻孔网格);
- 评估指标:成功率(通过所有验证的试验占比)、平均迭代次数(自校正机制的优化循环次数),所有结果取 5 次独立实验的平均值。
(二)实验结果
通过实验解答了 3 个核心研究问题,关键结果如下表所示:
表格
| 研究问题 | 核心结论 | 关键数据 / 现象 |
|---|---|---|
| RAG 对非结构化提示下 LLM 性能的影响? | RAG 无益处,反而降低性能 | 所有模型在非结构化提示下,无 RAG 的成功率更高,CodeLlama-7B 和 FT-StarCoder-3B 达80% 左右 |
| 结构化提示的参数提取对性能的影响? | 结构化提示显著优于非结构化提示,跨模型 / 任务均成立 | 结构化提示下多数任务成功率达100%;非结构化提示下,任务 3/4 的成功率大幅下降,部分模型降至 0% |
| 自校正机制在不同复杂度任务中的性能? | 任务复杂度决定平均迭代次数,任务 4(圆形)、5(带双岛矩形槽)最复杂 | 任务 4/5 需更多迭代,GPT-3.5 迭代次数最高;任务 2/3/6 迭代极少,CodeLlama-7B 在简单任务中迭代效率最高 |
(三)实验核心洞察
- 结构化提示是提升性能的关键,CodeLlama-7B 和 FT-StarCoder-3B 在结构化提示下可达 100% 成功率;
- 开源模型结合结构化提示 + 自校正机制,性能可与专有模型 GPT-3.5 媲美;
- RAG 在非结构化提示下的负面效果需进一步研究,优化其集成方式;
- 不同模型对任务复杂度的适配性不同,Zephyr-7B 与 FT-StarCoder-3B 性能表现相近。
六、结论与未来展望
- 核心结论:GLLM 成功实现了自然语言到可执行 G 代码的自动生成,其结构化提示和自校正机制有效保障了 G 代码的准确性和安全性,开源模型借助这两大模块可达到与专有模型相当的性能,GLLM 有望大幅降低 CNC 编程的专业门槛,提升制造行业的效率和创新能力;
- 未来研究方向:优化 RAG 在 G 代码生成任务中的集成方式;进一步精细化提示结构,提升模型在复杂加工任务中的性能。
关键问题
问题 1(技术核心):GLLM 实现 G 代码语法和语义双重正确性验证的核心手段分别是什么?
答案:语法正确性验证通过逐行解析 G 代码、校验命令格式规范性、检测不可达代码、安全操作规则检查(禁止切削时快速移动、钻孔时低高度水平移动) 实现;语义(功能)正确性验证以豪斯多夫距离为核心度量,量化模型生成的刀具路径与用户定义路径的几何相似度,若距离超过预设阈值则反馈错误,引导模型迭代优化。
问题 2(实验对比):在 GLLM 的实验中,结构化提示与非结构化提示的性能差异体现在哪里,核心原因是什么?
答案:性能差异体现在成功率和任务适配性:结构化提示下,所有模型在绝大多数测试任务中成功率达 100%,跨模型、跨任务的稳定性极强;非结构化提示下,模型成功率波动大,针对任务 3(不规则形状)、任务 4(圆形)等复杂度较高的任务,部分模型成功率甚至降至 0%。核心原因是结构化提示通过参数提取、缺失信息补全、任务分解,将模糊的自然语言转化为模型可精准理解的结构化输入,明确了加工的核心参数和逻辑,而非结构化提示缺乏明确的信息框架,导致模型难以准确解析用户的加工意图。
问题 3(应用与价值):GLLM 相较于传统的 G 代码生成方案(CAM / 切片软件),核心优势是什么,对制造业的实际价值体现在哪里?
答案:GLLM 相较于传统方案的核心优势:1. 输入方式更友好,支持自然语言直接描述,无需掌握 CAM 软件的复杂操作和 G 代码编程知识;2. 基于开源模型构建,无许可证成本,且系统可控、数据隐私有保障;3. 融合自校正机制和验证体系,自动保障代码的准确性和安全性,减少人工测试和调试成本;4. 适配增材 / 减材制造全场景,突破切片软件的场景限制。对制造业的实际价值:1. 实现 CNC 编程的民主化,让无专业编程经验的人员也能完成 G 代码生成,降低行业准入门槛;2. 大幅缩短 G 代码生成和调试时间,提升快速原型制作的效率,支持设计的快速迭代;3. 开源框架可灵活适配不同机床和加工需求,提升制造流程的灵活性和创新性。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)