😊文章背景
题目:FR-LLM: Multi-task large language model with signal-to-text encoding and adaptive optimization for joint fault diagnosis and RUL prediction
期刊:Reliability Engineering and System Safety
检索情况:11.0
作者:Yuming Lai a,b, Zhangjun Wu a,b, Mengyao Chen a,c, Chao Liu d, Haidong Shao
单位:合肥工业大学
发表年份:2025.12
DOI:https://doi.org/10.1016/j.ress.2025.112091
网址:https://linkinghub.elsevier.com/retrieve/pii/S0951832025012906
❓ 研究问题
当前工业预测性维护(PHM)领域存在的三个主要瓶颈:
-
任务割裂问题:现有的深度学习方法通常将故障诊断(FD)和剩余使用寿命预测(RUL)作为独立任务处理,忽略了故障演变与寿命衰退之间的自然依赖关系,导致模型开发重复且缺乏协同效应 。
-
泛化能力差:传统深度学习模型(如CNN、LSTM)高度依赖特定工况下的标注数据,当工作环境、负载或转速变化时,模型鲁棒性显著下降 。
-
LLM应用受限:虽然LLM具有强大的推理能力,但难以直接处理非语义的时间序列振动数据(模态鸿沟)。现有的"数值序列直接Token化"方式不符合振动信号的时频物理特性 。此外,简单的多任务微调容易导致任务干扰和收敛不平衡 。
📌 研究目标
🧠 所用方法
一、数据预处理与特征工程
在将数据喂给 LLM 之前,必须先将原始的高频振动信号转化为 LLM 能理解的形式,并剔除无效数据。
1. 故障起始点确定 (FPT Determination)
-
目的: 轴承在早期大部分时间是健康的,直接预测寿命没有意义且会引入噪声。必须找到"退化开始"的那一刻。
-
方法: 采用3\sigma 准则。计算信号均方根(RMS)的均值和标准差。当连续一段时间的 RMS 值超过 u + 3sigma 时,判定故障发生(FPT),此后的数据才用于 RUL 预测。
2. 差异化的特征提取
论文认为,诊断和预测需要关注的物理特性不同,因此使用了两套不同的提取逻辑:
-
针对故障诊断 (FD):看频域
-
工具: 快速傅里叶变换 (FFT)。
-
逻辑: 故障通常表现为频谱上的特定频率峰值。FFT 能将时域波形转换为频域幅度谱,直接暴露故障特征。
-
处理: 截取信号片段 -> FFT 变换 -> 得到幅度向量。
-
-
针对 RUL 预测:看趋势
-
工具: 滑动窗口 + 经验模态分解 (EMD)。
-
逻辑: 寿命衰退是一个渐进过程,且包含非线性趋势。EMD 将信号分解为高频(噪声/冲击)和低频(趋势)分量。
-
处理: 使用滑动窗口截取历史数据 -> EMD 分解 -> 提取 10 多种统计特征(如 RMS、峭度、波形因子等) -> 形成多维特征矩阵。
-
二、模态对齐策略
1. 针对故障诊断(FD):FFT频谱文本化
对于故障诊断任务,模型关注的是频域中的特定故障特征(如高频冲击)。
-
转换过程:
-
对原始振动信号做 FFT(快速傅里叶变换) 得到幅度谱 。
-
量化(Quantization): 将连续的浮点数值截断并转换为整数(例如保留3位小数后转为整数),以减少Token长度 。
-
序列化: 将这些整数用逗号连接,形成一个文本字符串(例如
"8, 28, 99, 125...") 。
-
-
Prompt形式: 这些数字序列被直接嵌入到自然语言指令中,告诉LLM:"基于以下特征进行故障诊断:8, 28, 99..." 。
2. 针对RUL预测:多域特征表格文本化
对于剩余寿命预测任务,模型关注的是时间维度上的退化趋势。
-
转换过程:
- 使用滑动窗口 机制,提取多个时间步的多域统计特征(如RMS、均值、峰值等) 。
- 表格化结构(Table-like Structure): 将这些特征按时间步组织成类似表格的结构。
- 序列化: 将表格逐行转化为文本描述,明确标记时间步(例如
"Step1: 139, 98... Step2: 124, 78...") 。
-
目的: 这种显式的时序编码让LLM能够利用其上下文理解能力来推断特征随时间的演变规律(退化轨迹) 。
3. 提示词构建 (Prompt Construction)
将上述数据字符串嵌入到预定义的模板中。模板包含:
-
角色设定: "你是一个智能维护专家..."
-
工况上下文: "转速 2100 rpm,负载 12 kN..."
-
任务指令: "请根据以上数据诊断故障类型" 或 "预测剩余寿命"。
4.优缺点分析
优势:
- 无需修改模型结构: 不需要设计额外的编码器(Encoder)或适配器层来处理时间序列,直接复用LLM原生的文本输入接口 。
- 语义融合: 使得数值特征可以与描述设备工况(如"12 hp, 2100 rpm")的自然语言无缝融合,利用LLM的语义推理能力进行跨模态分析 。
缺点:
-
序列膨胀与内存成本: 将连续的振动数据转换为文本 Token 会导致序列长度急剧增加,这会显著增加显存(Memory Cost)的消耗 。
-
精度折损: 为了适应 LLM 的上下文窗口限制,必须对数据进行截断(Truncation)或量化(Quantization) (如将浮点数截断为整数)。论文承认,这种量化过程可能会导致轻微的信息丢失,从而影响精细特征的捕捉 。
三、多任务指令微调
1.统一的生成式损失函数
-
传统做法的分歧:
-
做诊断通常用 Cross-Entropy Loss(交叉熵)。
-
做预测通常用 MSE Loss(均方误差)。
-
这会导致模型结构复杂(需要不同的 Head),且优化目标不一致。
-
-
FR-LLM 的统一做法:
-
输入: 包含物理特征的 Prompt。
-
输出: 无论是故障类别(如
"Inner Race Fault")还是寿命数值(如"0.85"),都被视为文本序列。 -
损失函数: 统一使用 负对数似然损失 (NLL, Negative Log-Likelihood)。
-
意义: 模型不需要理解"0.85"是一个数值,它只需要学会:在生成字符"0"和"."之后,下一个概率最大的字符应该是"8"。这使得两个任务在数学层面实现了完美的统一。
-
2.LoRA 参数高效微调
3. CoBa 动态平衡策略 (核心难点)
-
问题:收敛速度不一致 (Convergence Imbalance)
-
故障诊断(FD): 是一个分类问题,特征明显(FFT 峰值),模型学得很快,Loss 下降迅速。
-
RUL 预测(RUL): 是一个时序回归问题,噪音多、难度大,模型学得很慢,Loss 下降缓慢。
-
后果: 如果直接把两个 Loss 相加 ,模型会迅速把 FD 任务学完,然后就开始过拟合 FD,而彻底忽视学不动的 RUL 任务(梯度被 FD 主导)。
-
-
解决方案:CoBa (Convergence Balancer)
CoBa 在每一轮训练中观察两个任务的收敛速度,并动态调整权重。
它引入了三个关键指标:
-
ACS (绝对收敛分数): 通过计算 Loss 下降的斜率 。如果斜率大(学得太快),CoBa 会降低该任务的权重,防止它主导训练。
-
RCS (相对收敛分数): 对比两个任务的 Loss 变化率。如果 RUL 任务比 FD 任务慢,CoBa 会增加 RUL 的权重,强迫模型多关注它。
-
DF (发散因子): 用来平衡 ACS 和 RCS 的调节旋钮。
-
-
最终动态损失公式
-
这个阶段的完整工作流程如下(对应论文 Algorithm 1):
-
前向传播 (Forward Pass): 数据输入模型,分别计算出 FD 任务的 Loss 和 RUL 任务的 Loss。
-
权重计算 (Weight Calculation): CoBa 观察当前的 Loss 变化曲线,计算出当前的 ACS 和 RCS,进而得出这一轮的最佳权重 \\lambda_{FD} 和 \\lambda_{RUL}。
-
加权求和 (Weighted Sum): 算出总 Loss。
-
反向传播 (Backward Pass): 梯度回传,只更新 LoRA 的参数矩阵 A 和 B。
-
迭代: 重复上述过程,直到两个任务都达到最佳平衡点。
-
🧪 实验设计与结果
1. 单任务 vs. 多任务学习 (Single-task vs. Multi-task)
这一节旨在回答"合并任务是否会拖累性能"的问题。
-
实验设置: 对比了单独训练的"单任务模型"和联合训练的"多任务模型"(均基于 LLaMA-3.1-8B)。
-
结果:
-
故障诊断 (FD): 多任务模型的 F1 分数(如 Dataset 1 的 97.60%)与单任务模型(97.98%)非常接近,甚至在 Dataset 3 上都达到了 100% 1。
-
RUL 预测: 多任务模型的 RMSE 和 R\^2 略逊于单任务模型(例如 Dataset 2 差距约 6%),这是因为回归任务对时序模式极其敏感,容易受到干扰 2。
-
-
结论: 尽管多任务模型在某些指标上略有下降,但差异极小。考虑到部署效率(一个模型干两件事),这种微小的精度牺牲是完全可以接受的,证明了 FR-LLM 成功实现了兼顾准确性与效率。
2. 不同骨干模型的对比 (Comparison of Backbones)
这一节验证了 FR-LLM 框架的通用性,并展示了 LLM 相比传统深度学习的优势。
-
对比对象: 传统多任务基线 MMOE vs. GPT-2 XL vs. DeepSeek (1.5B/7B) vs. LLaMA-3.1-8B vs. Qwen2-7B。
-
结果:
-
传统 vs. LLM: 所有 LLM 的表现都显著优于 MMOE。MMOE 在 RUL 预测上的误差较大,难以捕捉长期退化趋势 4。
-
LLM 内部对比: 随着模型参数量增加(1.5B \\rightarrow 7B \\rightarrow 8B),性能稳步提升。Qwen2-7B 和 LLaMA-3.1-8B 表现最佳,展现了最强的表征能力 5。
-
-
结论: 证明了 FR-LLM 框架具有良好的扩展性,模型越强,效果越好。
3. 消融实验 (Ablation Study)
这一节通过"做减法"来证明每个组件的必要性 6。
-
w/o FFT(去掉 FFT): 故障诊断性能显著下降(F1 跌至 0.9590),说明 FFT 对识别故障频率至关重要 7。
-
w/o EMD(去掉 EMD): RUL 预测误差上升(RMSE 升至 0.1205),说明 EMD 对捕捉非平稳退化趋势很有用 8。
-
w/o Prompt(去掉提示词): 性能全面下降,说明自然语言指令能有效引导模型关注特定特征 9。
-
w/o LoRA(去掉 LoRA): 性能下降,说明全参数微调在小样本下容易过拟合,LoRA 反而泛化更好 10。
-
w/o CoBa(去掉动态平衡): 两个任务性能都变差,证明固定权重无法处理任务间的收敛差异 11。
4. 敏感性分析 (Sensitivity Analysis)
这一节探索了关键超参数的最佳设置。
-
窗口长度 (P): 实验了 10, 20, 30, 40。发现 P=30 是最佳平衡点。太短信息不足,太长引入冗余且增加计算量 12。
-
量化精度 (D): 实验了保留 1, 2, 3, 4 位小数。发现 D=3 效果最好。精度太低丢失信息,太高增加 Token 长度但提升微乎其微 13。
-
LoRA 参数: 发现秩 r=16 和缩放因子 \\alpha=32 是最优组合 14。
5. 跨工况评估 (Cross-condition Evaluation)
这一节测试模型的"抗压能力",即在一个工况训练,去另一个工况测试。
-
设置: 在 Dataset 1 (2100 rpm) 和 Dataset 2 (2250 rpm) 之间互换训练/测试 15。
-
结果: 虽然性能有所下降(平均 F1 从 ~0.97 降至 0.92),但并未崩塌,依然保持了较高的可信度 16。
结论: FR-LLM 具有一定的鲁棒性,利用 FFT 和 LoRA 学到了一定的工况不变性特征。
6. 效率分析 (Efficiency Analysis)
这一节关注"好不好用"和"贵不贵"。
-
推理速度: 小模型(DeepSeek-1.5B)推理速度快(>10 样本/秒),显存占用低(3GB);大模型(LLaMA-8B)速度慢(~6 样本/秒),显存高(16GB) 17。
-
LoRA vs. 全量微调: 对比显示,LoRA 仅需更新 1.2% 的参数,显存占用从 27GB 降至 11GB,且推理吞吐量提升了近 4 倍,而性能几乎没有损失 18。
📕专业名词
| 概念 | 类别 | 核心作用 | 在本文解决的问题 |
|---|---|---|---|
| FFT | 信号处理 | 时域转频域 | 提取故障特征频率,用于准确识别故障类型(诊断)。 |
| EMD | 信号处理 | 自适应信号分解 | 分离高频噪声与低频趋势,用于捕捉长期退化规律(预测)。 |
| MTL | 学习范式 | 多任务联合训练 | 利用故障与寿命的内在联系,提升模型泛化性并简化部署。 |
| CoBa | 优化策略 | 动态调整损失权重 | 解决分类与回归任务收敛速度不一致导致的训练失衡问题。 |
1. 快速傅里叶变换 (Fast Fourier Transform, FFT)
- 基本概念:FFT 是一种高效计算离散傅里叶变换(DFT)的算法。它的核心功能是将信号从时域(Time Domain)(信号随时间变化的波形)转换到频域(Frequency Domain)(信号包含哪些频率成分及其强度)。
- 原理: 旋转机械(如轴承)在发生故障时,会产生特定的特征频率(例如,内圈故障频率、外圈故障频率)。这些特征在时域波形中很难肉眼看出,但在频域中表现为明显的峰值。
处理流程:
- 变换: 论文对分段的振动信号进行 FFT,得到幅度谱向量。
- 物理意义: FFT 擅长提取高频冲击和周期性模式,这是识别具体故障类型(如"外圈故障" vs "内圈故障")的关键 。
- 文本化(关键创新): 为了让 LLM 看懂 FFT 结果,论文对 FFT 幅值进行了量化 ,将连续的浮点数截断并转换为整数序列(如
35, 136...),作为文本 Prompt 输入模型 。
文中是用FFT而不是CWT的原因:
是为了在保留关键诊断信息(故障频率)的前提下,最大程度地压缩数据维度,以便能以文本 Prompt 的形式塞进 LLM 中进行高效训练和推理。如果使用 CWT,论文可能就需要引入视觉模块(变成多模态模型,如 Vision-Language Model),这将改变整个 FR-LLM 纯文本指令微调的架构设计。
2. 经验模态分解 (Empirical Mode Decomposition, EMD)
基本概念: EMD 是一种用于处理非线性 和非平稳信号的自适应分解方法。与 FFT 不同,EMD 不需要预先设定的基函数(如正弦波),而是根据信号自身的时间尺度特征,将信号分解为若干个本征模态函数(Intrinsic Mode Functions, IMFs)和一个残差项。
-
原理: 设备寿命的衰退是一个漫长、渐进且非线性的过程(Trend),而原始信号中往往混杂着大量高频噪声和冲击。
-
处理流程:
-
分解: 论文使用 EMD 将振动信号分解为不同的 IMF 分量。例如,IMF1 通常代表高频分量,IMF2 及后续分量代表中低频分量 。
-
特征提取: 模型不仅关注原始信号,还从这些 IMF 分量中提取多域统计特征(如 RMS、能量熵等)。
-
作用: EMD 帮助模型分离出代表长期退化趋势的低频信息,使得 RUL 预测更加准确和鲁棒,避免被短期的高频噪声干扰 。
-
3. 多任务学习 (Multi-Task Learning, MTL)
基本概念: MTL 是一种机器学习范式,旨在利用多个相关任务之间的共性信息来提升模型的泛化能力。通过让一个模型同时学习多个任务,模型可以学习到更通用的特征表示,从而在所有任务上都表现更好(或至少在主任务上表现更好)。
-
动机: 论文认为"故障诊断(FD)"和"剩余寿命预测(RUL)"在物理上是高度相关的------故障的类型和严重程度直接影响寿命的衰退轨迹 。
-
实现方式:
-
统一架构: 无论是分类任务(FD)还是回归任务(RUL),都被转化为指令-文本生成任务,由同一个 LLM(如 LLaMA 或 Qwen)处理 。
-
共享知识: 通过共享同一个 LLM 的参数,模型可以在诊断故障类型的过程中辅助理解退化程度,反之亦然。
-
优势: 相比于训练两个独立模型,MTL 节省了部署资源,并且通过任务间的相互监督提高了鲁棒性 。
-
4. CoBa (Convergence Balancer)
基本概念:CoBa 是一种专门用于多任务学习的动态损失加权策略。在多任务训练中,不同任务的难度不同,收敛速度也不一样。如果简单地将损失相加,收敛快的任务可能会主导梯度更新,导致收敛慢的任务训练不足,或者模型过拟合于简单任务。
在论文中的应用:平衡 FD 和 RUL 任务
-
问题: 故障诊断(分类)通常收敛较快,而 RUL 预测(回归)收敛较慢且难度更大。
-
机制: CoBa 根据训练过程中的实时表现,动态调整损失函数的权重。它基于三个指标
-
ACS (Absolute Convergence Score): 衡量单个任务当前的收敛斜率。如果一个任务收敛太快(斜率大),CoBa 会降低其权重,防止过拟合。
-
RCS (Relative Convergence Score): 衡量任务间收敛速度的差异。学得慢的任务会获得更高的权重,迫使模型更多地关注它 12。
-
DF (Divergence Factor): 用于平衡 ACS 和 RCS 的调节因子。
-
-
结果: 最终的总损失函数为,其中权重是自动变化的,确保了两个任务能"齐头并进"地训练。
5.负对数似然损失NLL
- LLM 的本质是"序列生成",而非"单次分类",关注的是序列的整体概率。
- 强行统一"分类"与"回归"任务,通过将回归转化为文本生成,使得 RUL 预测和故障诊断可以使用同一个损失函数公式,彻底消除了 MSE 和 Cross-Entropy 的形式差异。
- 数学本质上的等价性(PyTorch 实现细节):
-
从底层实现的角度来看,你提到的"交叉熵"和"NLL"其实往往是一回事,尤其是在 PyTorch 等框架中:
-
CrossEntropyLoss (在 PyTorch 中) = LogSoftmax + NLLLoss。
-
LLM(如 LLaMA)的输出层通常已经包含了一个 Softmax 操作来计算词表上的概率分布。
-
所以,作者写 NLL 是为了理论描述的严谨性(对应最大似然估计 MLE 理论),但在代码实现层面,这实际上就是对每一个生成的 Token 做交叉熵。
-