尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

DiagLLM multimodal reasoning with large language model for explainable bearing fault diagnosis

DiagLLM multimodal reasoning with large language model for explainable bearing fault diagnosis 一、 这篇论文在做什么一句话总结这篇论文提出了一种叫DiagLLM的新方法它利用多模态大模型MLLM通过结合图片轴承的频谱图和文字专家知识来更准确、更可靠地诊断轴承是否坏了以及是怎么坏的。二、 为什么要这么做解决什么痛点在工业领域给机器比如高铁、工厂设备做体检故障诊断非常重要。以前大家主要用“深度学习”来做这件事但遇到了两个大麻烦数据太少Data Scarcity机器平时运行都很正常坏的时候很少。这就导致我们手里“生病”的样本非常少传统的深度学习模型需要大量数据“喂”才能学会数据少了它就学不好。黑盒子看不懂Black-box Interpretability传统的模型虽然能告诉你“坏了”但它说不清楚“为什么坏了”。比如它判断轴承坏了是基于什么物理特征它解释不了。工程师不敢完全信任它。DiagLLM 的思路是既然大模型LLM读过很多书懂很多知识那我们能不能把“看图”的能力和“专家知识”结合起来让大模型像老工程师一样去诊断故障三、 DiagLLM 是怎么工作的核心方法你可以把 DiagLLM 想象成一个“懂物理知识的视觉问答系统”。1. 输入了什么多模态输入传统的做法是直接给模型看原始的震动波形数据一堆数字。DiagLLM 的做法更聪明它准备了三样东西给大模型看包络谱图片Envelope Spectrum Image把震动信号变成一张图。这张图能突出显示故障的特征频率就像心电图一样哪里不正常一眼就能看出来。任务提示Task Prompt告诉模型“你现在是一个经验丰富的轴承故障分析师请观察这张图……”专家知识Expert Knowledge把物理公式和规则告诉模型。比如“如果是外圈故障BPFO频谱图上应该在 xx 赫兹出现峰值”。2. 模型架构怎么处理论文里用了一个公式来表示这个过程FΦL(ΦP(ΦV(Xes)),Xp,Xe)FΦL​(ΦP​(ΦV​(Xes​)),Xp​,Xe​)别被公式吓到拆开看很简单 Xe专家知识 (Expert Knowledge)简单来说Xsubes/sub是给模型看的“图”而Xsube/sub是给模型读的“知识”。两者结合就是这篇论文“多模态”的核心思想。ΦVΦV​ (Visual Encoder)这是一个“眼睛”负责看图包络谱图把图片变成计算机能懂的向量。ΦPΦP​ (Projector)这是一个“翻译官”把眼睛看到的信息翻译成大脑大模型能听懂的语言。ΦLΦL​ (LLM)这是“大脑”论文里用了 Qwen2-VL-7B它接收图片信息、任务提示和专家知识进行综合分析。Xes包络谱图像 (Envelope Spectrum Image)它是什么这是模型的视觉输入。它不是原始的震动信号而是经过一系列信号处理如希尔伯特变换、FFT后生成的一张图片。它的作用这张图就像是轴承的“心电图”能够清晰地展示出故障的特征频率。模型通过“看”这张图来判断轴承的健康状况。在公式中的角色在论文的公式F ΦsubL/sub(ΦsubP/sub(ΦsubV/sub(Xsubes/sub)), Xsubp/sub, Xsube/sub)中Xsubes/sub就是那个被ΦsubV/sub视觉编码器处理的图像输入。它是什么这是模型的文本输入之一。它不是数据而是以文字形式提供给模型的领域知识和规则。它的作用为了让大模型像一个真正的专家一样思考研究人员会把一些物理规则“告诉”它。例如论文中提到的“如果是外圈故障BPFO频谱图上应该在1、2、3倍频处出现显著峰值”。在公式中的角色在公式中Xsube/sub和任务提示Xsubp/sub一起作为文本信息直接输入给大模型ΦsubL/sub用来指导和约束模型的推理过程增强其可解释性和准确性。3. 怎么训练的Instruction Tuning作者没有从头训练一个大模型太贵了而是用了微调Fine-tuning技术具体用的是LoRA一种高效的微调方法。他们构造了一些“问答题”数据Instruction-following data问给你一张图加上专家知识请问这是什么故障答这是内圈故障BPFI。通过这种方式教大模型学会看“工业心电图”。四、 结果怎么样实验结论作者在两个公开数据集XJTU-SY 和 Paderborn上做了实验结果很好小样本能力强在数据很少的情况下Limited settingDiagLLM 吊打传统的深度学习模型如 WDCNN, TCNN。这说明它不需要大量坏样本也能学会。泛化能力强在一个数据集上训练去测另一个数据集效果依然很好。这说明它学到了真正的“故障规律”而不是死记硬背。可解释性因为它结合了专家知识所以它的诊断结果更可信。五、 给研0新生的学习建议划重点既然你要加入这个项目建议你重点关注以下几个概念这也是导师可能希望你掌握的包络谱分析Envelope Spectrum Analysis这是信号处理的基础。你要搞懂为什么原始震动信号要转换成包络谱提示为了提取故障特征频率。论文里提到了希尔伯特变换Hilbert Transform和快速傅里叶变换FFT这是核心算法。多模态大模型Multimodal LLM了解什么是 Visual Encoder如 ViT什么是 LLM如 Qwen, LLaMA。了解它们是怎么连在一起的通过 Projector/Linear Layer。LoRALow-Rank Adaptation这是目前大模型微调最主流的技术。作为研究生你必须理解它的原理冻结大模型参数只训练少量的低秩矩阵。Prompt Engineering提示词工程论文里展示了如何设计 Prompt 把专家知识注入给模型。这是使用大模型解决实际问题的关键技巧。总结一下这个项目本质上是“信号处理 计算机视觉 大语言模型”的交叉应用。包络谱分析希尔伯特变换快速傅里叶变换解释下你可以把整个过程想象成给机器“听诊”我们的目标是听出它内部零件比如轴承是不是有损伤。 最终目标包络谱分析 (Envelope Spectrum Analysis)这是我们的最终目的。是什么它是一种信号处理方法目的是生成一张能清晰揭示机器故障的“心电图”也就是论文里的X_es。为什么需要它当轴承有损伤比如一个小坑时它每转一圈滚珠滚过这个小坑就会“咯噔”一下产生一个微弱的冲击。但是机器本身运转的噪音非常大这个微弱的“咯噔”声就像在嘈杂的菜市场里听一根针掉在地上的声音完全被淹没了。它的作用包络谱分析就像一个超级厉害的“降噪耳机”它能过滤掉那些嘈杂的背景音把那个微弱的、有规律的“咯噔”声给放大并提取出来让我们能清楚地看到故障的特征。那么这个“降噪耳机”是怎么工作的呢这就用到了下面两个工具。️ 核心工具1希尔伯特变换 (Hilbert Transform)这是实现包络谱分析的第一步关键操作。它做什么它的主要任务是提取信号的“包络线” (Envelope)。怎么理解“包络线”想象一下你用手拍桌子发出的“啪”的一声声音会从大迅速变小形成一个衰减的波形。如果你把这些波形的峰值点连成一条光滑的曲线这条曲线就是“包络线”。它描述了冲击能量的变化趋势。在故障诊断中轴承的每一次“咯噔”冲击都会激起一阵高频振动。希尔伯特变换就是用来找到这一阵阵高频振动的“轮廓”也就是把一连串的冲击事件变成一个一个清晰的脉冲信号。️ 核心工具2快速傅里叶变换 (FFT)这是实现包络谱分析的第二步关键操作。它做什么它负责从“时域”切换到“频域”。时域 (Time Domain)就是我们平时看到的波形图横轴是时间纵轴是振幅。它告诉我们信号什么时候发生了冲击。频域 (Frequency Domain)横轴是频率Hz纵轴是能量。它告诉我们信号里包含了哪些频率的成分。在故障诊断中经过希尔伯特变换后我们得到了一系列代表冲击的脉冲。这些脉冲是周期性出现的因为轴承在不停地转。FFT的作用就是分析这些脉冲的周期并把它转换成一个频率值。如果轴承外圈有故障FFT就会在“外圈故障特征频率”比如论文里提到的76Hz的位置上显示出一个很高的能量峰。如果内圈有故障它就会在“内圈故障特征频率”比如123Hz的位置上出现高峰。 总结一下整个流程现在我们把它们串起来就得到了论文中生成X_es包络谱图像的完整过程原始信号采集到一段充满噪音的轴承振动信号就像在菜市场录音。希尔伯特变换提取信号的包络滤掉大部分高频噪音突出那些周期性的冲击事件就像用软件降噪只留下有规律的敲击声。快速傅里叶变换 (FFT)对上一步得到的包络信号进行FFT从时域转到频域生成包络谱。结果得到一张清晰的包络谱图 (X_es)。在这张图上如果某个特定的故障频率如76Hz出现了明显的峰值我们就可以断定轴承存在对应的故障。所以包络谱分析 希尔伯特变换 快速傅里叶变换。前者负责“提纯”后者负责“翻译”最终把复杂的振动信号变成一张一目了然的诊断图。多模态大模型MLLM想象成一个“专家团队”。这个团队里有两个核心成员一个负责“看”一个负责“想”。️视觉编码器 (Visual Encoder)团队的“眼睛”它是谁 论文里提到的 ViT (Vision Transformer) 就是这类角色的代表。它是一个专门处理图像的模型就像一个经验丰富的“看图专家”。它做什么 它的任务是把一张图片比如论文里的包络谱图 X_es“看”懂并转化成一串计算机能理解的数字序列我们称之为“视觉特征” (Visual Features)。打个比方 就像你看到一只猫你的大脑会立刻提取出“有毛”、“尖耳朵”、“喵喵叫”这些特征。ViT 做的就是这件事但它提取的是更深层次、更抽象的数学特征。大语言模型 (LLM)团队的“大脑”它是谁 论文里用的 Qwen2-VL-7B 就是这个“大脑”。它读过互联网上几乎所有的书和文章拥有强大的逻辑推理和语言理解能力。它做什么 它的专长是处理文字。你给它一段文字描述比如论文里的任务提示 X_p 和专家知识 X_e它就能进行分析、推理然后给出回答。关键问题 这个“大脑”有个“怪癖”——它只懂文字看不懂图片如果你直接把 ViT 提取的“视觉特征”扔给它它会一脸茫然因为这和它熟悉的“文字”完全是两种语言。投影层 (Projector)团队的“翻译官”这就是连接“眼睛”和“大脑”的关键桥梁也是论文公式里那个神秘的 Φ_P。它是什么 通常就是一个简单的线性层 (Linear Layer)。你可以把它想象成一个“翻译官”或者一个“转接头”。它做什么 它的任务非常明确格式转换。接收 从“眼睛”ViT那里拿到“视觉特征”。翻译 把这串“视觉特征”的数学格式转换成“大脑”LLM能够理解的“文字特征”格式。输出 把翻译好的特征交给“大脑”。 总结一下整个工作流程现在我们把这三者串起来就得到了 DiagLLM 的核心工作流看图 视觉编码器 (ViT) 先看包络谱图 (X_es)提取出图像的“视觉特征”。翻译 投影层 (Projector) 充当翻译官把“视觉特征”转换成“大脑”能听懂的“文字特征”。思考 大语言模型 (Qwen) 同时接收两样东西由图片翻译过来的“文字特征”。你给它的文字指令任务提示 X_p 专家知识 X_e。回答 “大脑”把所有信息融合在一起进行综合分析最后像专家一样给出诊断结果“这是内圈故障 (BPFI)”。所以多模态大模型 眼睛 (ViT) 翻译官 (Projector) 大脑 (LLM)。这个架构的巧妙之处就在于它让一个只会读文字的“大脑”通过一个“翻译官”获得了“看图”的能力。LoRA (Low-Rank Adaptation)大模型的“微创手术”你可以把LoRA想象成给一个知识渊博的专家大模型进行“微创手术”让他快速学会一项新技能而不是让他“回炉重造”。为什么需要它痛点想象一下论文里用的 Qwen2-VL-7B 模型有70亿个参数。这就像一个已经学富五车的专家他的脑子里有70亿个“知识神经元”连接。传统微调Full Fine-tuning相当于让这个专家为了学会“看轴承故障图”这一项新技能把他脑子里70亿个连接全部重新调整一遍。这需要巨大的计算资源很多很多GPU和大量的数据成本极高而且容易让他“忘了”以前学的通用知识这叫“灾难性遗忘”。LoRA的思路我们不动他原有的70亿个连接冻结参数只在他旁边“外挂”一个非常小的、专门处理新任务的“辅助大脑”。训练时我们只更新这个“辅助大脑”里的少量参数。它是怎么工作的原理LoRA的核心思想是大模型权重矩阵的变化ΔW是“低秩”的。这听起来很学术我们来拆解一下权重矩阵 (W)这是大模型里存储知识的核心部分一个巨大的数字表格。变化量 (ΔW)为了让模型适应新任务我们需要对这个大表格做一些修改。低秩 (Low-Rank)LoRA认为这个“修改量”ΔW 其实结构很简单可以用两个非常小的矩阵相乘来近似表示。公式是W_新 W_旧 ΔW W_旧 B × AW_旧(Pre-trained Weights)原始大模型的参数冻结不动。A和B(LoRA Matrices)两个新引入的、非常小的矩阵。假设原始矩阵W是10000 x 10000(一亿个参数)。我们设定一个很小的秩r8。那么矩阵A可以是8 x 10000矩阵B可以是10000 x 8。我们只需要训练A和B里的参数总共8 * 10000 10000 * 8 16万个参数。对比一下传统微调训练1亿个参数。LoRA微调只训练16万个参数参数量减少了上百倍这就是为什么LoRA能用很少的GPU资源、在很少的数据上高效地让大模型学会新技能。在论文中作者就是给视觉编码器ViT和大语言模型LLM都“外挂”了LoRA模块只训练这些小小的A和B矩阵以及那个“翻译官”Projector。✍️ Prompt Engineering (提示词工程)与AI沟通的“艺术”如果说LoRA是“教”AI那么Prompt Engineering就是“问”AI的艺术。它决定了你能从AI那里得到多高质量的答案。论文里展示了一个非常经典的Prompt设计它不是简单地问“这是什么故障”而是像一个项目经理给专家下达任务一样结构非常清晰。我们可以把论文中的Prompt提示词拆解成三个关键部分1. 角色设定 (Role Setup)论文原文You are an experienced bearing fault analyst. (你是一个经验丰富的轴承故障分析师。)作用这句话非常关键它瞬间激活了大模型内部与“故障诊断”、“工程分析”相关的知识区域让模型进入“专家模式”而不是“聊天模式”。这能让它的回答更专业、更严谨。2. 知识注入 (Knowledge Injection)论文原文The fault types and their characteristics are as follows: BPFO (Outer Circle Fault Frequency): A significant peak appears at 1, 2, and 3 multiples... (故障类型及其特征如下外圈故障频率(BPFO)在1、2、3倍频处出现显著峰值...)作用这是Prompt Engineering的精髓作者没有指望模型“天生”就知道轴承故障的物理规律而是直接把专家知识也就是我们之前讨论的包络谱特征以文字的形式“喂”给了模型。这相当于给专家发了一本“速查手册”确保他的判断有据可依极大地提高了准确性和可解释性。3. 任务描述 (Task Description)论文原文Please observe the envelope spectrum image of the bearing at a specific time, and give the label of the bearing fault type. (请观察给定时刻的轴承包络谱图像并给出轴承故障类型的标签。)作用这是清晰、明确的指令。告诉模型具体要做什么输入是什么包络谱图输出应该是什么故障标签。总结一下一个好的Prompt就像一个清晰的“任务工单”它告诉AI你是谁角色、你知道什么知识、你要做什么任务。论文中的DiagLLM之所以成功很大程度上就得益于这种精心设计的Prompt它把数据图片、知识文本和任务诊断完美地结合在了一起。
返回列表