Views
No views yet
作者:WC
推荐与 RAG(ChromaDB + 报警手册检索) 联合使用,效果更佳。
| 项目 | 说明 |
|---|---|
| 任务 | 数控机床故障诊断 / 报警解读 |
| 微调框架 | LLaMA-Factory |
| 数据格式 | Alpaca(instruction / input / output) |
| 覆盖系统 | FANUC、Siemens 840D、中文维修手册等 |
| 参数 | 值 |
|---|---|
| 基座模型 | Qwen2.5-7B-Instruct |
| 微调方法 | LoRA |
| LoRA rank / alpha | 8 / 16 |
| LoRA target | all(q/k/v/o_proj, gate/up/down_proj) |
| 训练数据 | cnc_diagnosis_sft(~1440 条)+ identity |
| Epochs | 2 |
| Learning rate | 5e-5 |
| Batch size | 2 × 8 grad accum |
| Cutoff len | 2048 |
| 精度 | bf16 |
| Chat template | qwen |
Qwen2.5-7B-Instruct1from peft import PeftModel
2from transformers import AutoModelForCausalLM, AutoTokenizer
3import torch
4
5base = "Qwen/Qwen2.5-7B-Instruct"
6adapter = "wc8084/cnc-qwen2.5-7b-lora"
7
8tokenizer = AutoTokenizer.from_pretrained(base, trust_remote_code=True)
9model = AutoModelForCausalLM.from_pretrained(
10 base,
11 trust_remote_code=True,
12 device_map="auto",
13 torch_dtype=torch.bfloat16,
14)
15model = PeftModel.from_pretrained(model, adapter)
16model.eval()
17
18prompt = """请根据以下机床故障信息进行诊断分析,给出可能原因、排查步骤和处理建议。
19
20机床系统:FANUC CNC
21报警代码:PS300
22故障现象:ILLEGAL"""
23
24messages = [{"role": "user", "content": prompt}]
25text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
26inputs = tokenizer(text, return_tensors="pt").to(model.device)
27
28out = model.generate(**inputs, max_new_tokens=768, temperature=0.3, top_p=0.7)
29print(tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
30
31
32推理示例
33输入:
34机床系统:FANUC CNC
35报警代码:PS300
36故障现象:ILLEGAL
37
38输出(节选):
39【可能原因】
401. 报警含义:ILLEGAL
412. COMMAND IN SCALING — scaling 过程中指定了非法 G 代码
42
43【排查步骤】
441. 在 FANUC 诊断界面确认报警号 PS300
452. 记录报警发生时的程序段与操作模式
46...
47
48【处理建议】
491. 修改程序中的 scaling 相关 G 代码
502. 修复后执行 RESET 复位
51...
52
53效果参考
54模式 三段式格式通过率 备注
55仅 LoRA
56~33%
57Siemens 较好,FANUC 偶发重复生成
58RAG + LoRA
59~67%
60检索手册后输出更稳定
61配合 ChromaDB + bge-small-zh-v1.5 检索 FANUC/Siemens 报警手册,FANUC 类问题改善明显。
62
63文件说明
64文件 说明
65adapter_model.safetensors
66LoRA 权重(~77 MB)
67adapter_config.json
68LoRA 配置
69tokenizer.json
70分词器(与基座一致)
71chat_template.jinja
72Qwen 对话模板
73局限与免责声明
74本模型不能替代机床厂商官方维修手册与持证工程师判断
75FANUC 部分报警文本来源于公开资料解析,可能存在截断或不完整
76自我认知建议通过 System Prompt 固定,勿仅依赖微调覆盖基座身份
77适用于辅助诊断与学习参考,生产环境请结合 RAG 与人工复核
78引用
79如在项目或论文中使用,请注明:
80
81CNC Fault Diagnosis LoRA (Qwen2.5-7B-Instruct)
82Author: WC
83https://huggingface.co/wc8084/cnc-qwen2.5-7b-lora
84Base model: Qwen/Qwen2.5-7B-Instruct
85License
86MIT