智能体学习16——学习与适应(Learning-and-Adaptation)-深入解读

文章目录

  • [学习与适应(Learning and Adaptation)- 深入解读](#学习与适应(Learning and Adaptation)- 深入解读)
    • [一、PPO vs DPO vs GRPO vs DAPO:对齐算法四兄弟](#一、PPO vs DPO vs GRPO vs DAPO:对齐算法四兄弟)
      • [1.1 为什么需要对齐?](#1.1 为什么需要对齐?)
      • [1.2 PPO 深入:两步走的"老大哥"](#1.2 PPO 深入:两步走的"老大哥")
      • [1.3 DPO 深入:一步到位的"捷径"](#1.3 DPO 深入:一步到位的"捷径")
        • 核心洞察
        • [DPO 的数学魔法](#DPO 的数学魔法)
        • [DPO 的问题](#DPO 的问题)
      • [1.4 GRPO:DeepSeek 的"性价比之王"](#1.4 GRPO:DeepSeek 的"性价比之王")
      • [1.5 DAPO:最新的改进(2025)](#1.5 DAPO:最新的改进(2025))
      • [1.6 四算法对比总结](#1.6 四算法对比总结)
      • [1.7 实战示例:统一场景对比](#1.7 实战示例:统一场景对比)
        • [PPO 示例:"有裁判的比赛"](#PPO 示例:"有裁判的比赛")
        • [DPO 示例:"老师直接说哪个好"](#DPO 示例:"老师直接说哪个好")
        • [GRPO 示例:"同学之间互相比"](#GRPO 示例:"同学之间互相比")
        • [DAPO 示例:"一边练特长一边不丢基本功"](#DAPO 示例:"一边练特长一边不丢基本功")
        • 记忆口诀
      • [1.8 选型建议](#1.8 选型建议)
    • [二、SICA 深入:自我改进的"递归"](#二、SICA 深入:自我改进的"递归")
      • [2.1 SICA vs 传统方法的本质区别](#2.1 SICA vs 传统方法的本质区别)
      • [2.2 实验数据(原文核心结果)](#2.2 实验数据(原文核心结果))
      • [2.3 三个关键发现](#2.3 三个关键发现)
      • [2.4 工具进化的六个阶段(详细)](#2.4 工具进化的六个阶段(详细))
      • [2.5 SICA 的安全性设计(详解)](#2.5 SICA 的安全性设计(详解))
        • [安全层1:Docker 容器隔离](#安全层1:Docker 容器隔离)
        • [安全层2:异步监督者(Asynchronous Overseer)](#安全层2:异步监督者(Asynchronous Overseer))
        • 安全层3:可观测性
      • [2.6 SICA 的局限性](#2.6 SICA 的局限性)
    • [三、AlphaEvolve 深入:LLM + 进化的威力](#三、AlphaEvolve 深入:LLM + 进化的威力)
      • [3.1 AlphaEvolve vs SICA:本质区别](#3.1 AlphaEvolve vs SICA:本质区别)
      • [3.2 AlphaEvolve 的两阶段架构](#3.2 AlphaEvolve 的两阶段架构)
        • [阶段一:广泛探索(Gemini Flash)](#阶段一:广泛探索(Gemini Flash))
        • [阶段二:深度优化(Gemini Pro)](#阶段二:深度优化(Gemini Pro))
      • [3.3 三种反馈机制](#3.3 三种反馈机制)
      • [3.4 实际成果详解](#3.4 实际成果详解)
      • [3.5 AlphaEvolve 的关键设计哲学](#3.5 AlphaEvolve 的关键设计哲学)
    • [四、OpenEvolve 深入:开源的进化框架](#四、OpenEvolve 深入:开源的进化框架)
      • [4.1 OpenEvolve vs AlphaEvolve](#4.1 OpenEvolve vs AlphaEvolve)
      • [4.2 进化策略详解](#4.2 进化策略详解)
      • [4.3 OpenEvolve 的配置示例](#4.3 OpenEvolve 的配置示例)
    • 五、三种自我改进系统的深度对比
    • 六、与实际工作的联系

学习与适应(Learning and Adaptation)- 深入解读


一、PPO vs DPO vs GRPO vs DAPO:对齐算法四兄弟

1.1 为什么需要对齐?

LLM 学会了"说话",但说的内容不一定符合人类期望。对齐就是让模型"说人话、办人事"。

复制代码
预训练模型 → 会生成文本,但可能有害/不相关/不遵循指令
    ↓ 对齐
对齐后模型 → 遵循指令、安全、有帮助

1.2 PPO 深入:两步走的"老大哥"

第一步:训练奖励模型(RM)
复制代码
人类标注:响应A > 响应B > 响应C
    ↓
训练一个打分模型:RM(响应A) = 0.9, RM(响应B) = 0.6, RM(响应C) = 0.2
第二步:PPO 优化 LLM
复制代码
LLM 生成响应 → RM 打分 → PPO 更新 LLM 参数 → 生成更高分的响应
核心数学:裁剪(Clipping)
python 复制代码
# 简化版 PPO 目标函数
ratio = new_policy / old_policy  # 新策略 vs 旧策略的比值
clipped_ratio = clip(ratio, 1-ε, 1+ε)  # 限制在 [0.8, 1.2] 范围内

# 取较小值,防止更新过大
objective = min(ratio * advantage, clipped_ratio * advantage)

直觉:想象你在调水温,PPO 说"每次只能转一点点,别一下从冷水转到开水"。ε 就是"每次最多转多少"的限制。

PPO 的问题
  • 训练不稳定,超参数敏感
  • 需要同时维护 4 个模型(LLM + RM + 两个参考模型),显存占用巨大
  • 奖励模型可能被"骗"(Reward Hacking):LLM 学会生成奖励模型给高分但人类不喜欢的响应

1.3 DPO 深入:一步到位的"捷径"

核心洞察

PPO 的奖励模型只是一个中间步骤,能不能跳过它?

复制代码
PPO:人类偏好 → 奖励模型 → PPO优化LLM
DPO:人类偏好 → 直接优化LLM(数学上等价,但省掉奖励模型)
DPO 的数学魔法
python 复制代码
# PPO 的目标可以重写为(经过数学推导):
L_DPO = -log σ(β * (log π_θ(y_w|x) - log π_ref(y_w|x) 
                    - log π_θ(y_l|x) + log π_ref(y_l|x)))

# 其中:
# y_w = 人类偏好的响应(win)
# y_l = 人类不喜欢的响应(lose)
# π_θ = 当前策略(要优化的 LLM)
# π_ref = 参考策略(冻结的原始 LLM)
# β = 温度参数,控制偏离参考策略的程度

直觉:DPO 直接告诉 LLM"人类喜欢这个、不喜欢那个",不需要中间打分。就像教小孩,不需要先让他理解"为什么好",直接告诉他"这样做是对的"。

DPO 的问题
  • 简单场景表现好,复杂场景不如 PPO
  • 数据质量极其敏感(错误标注直接学歪)
  • 没有探索机制(只能在已有偏好数据上优化,无法发现新的好响应)

1.4 GRPO:DeepSeek 的"性价比之王"

GRPO(Group Relative Policy Optimization)是 DeepSeek 在 2024 年提出的,去掉了奖励模型,用"组内相对排名"代替。

复制代码
PPO:需要奖励模型打分 → 昂贵、复杂
GRPO:生成一组响应 → 互相比较排名 → 不需要奖励模型!
工作流程
复制代码
1. 给 LLM 一个问题
2. 让 LLM 生成 G 个不同的响应(比如 G=16)
3. 对每个响应计算奖励(用规则/启发式方法,不需要神经网络)
4. 在组内标准化:每个响应的奖励减去组均值,除以组标准差
5. 用标准化后的相对优势更新 LLM
数学表达
python 复制代码
# 组内标准化
advantages_i = (reward_i - mean(rewards)) / std(rewards)

# 相对优势更新(类似 PPO 但不需要 Critic)
L_GRPO = E[1/G * Σ min(ratio_i * advantage_i, clip(ratio_i, 1-ε, 1+ε) * advantage_i)]

直觉:考试不看你考了多少分,看你在班里排第几。即使全班都考了 90 分以上,你考 95 依然是好学生。

GRPO 的优势
  • 不需要奖励模型,省掉最大的训练成本
  • 不需要 Critic 模型,进一步降低显存
  • 训练效率高,DeepSeek-V3 就是用 GRPO 训出来的
  • 实现简单,PPO 代码量的 1/3

1.5 DAPO:最新的改进(2025)

DAPO(Decoupled Clip and Dynamic Sampling)在 GRPO 基础上做了两个关键改进:

改进一:解耦裁剪

复制代码
传统 GRPO:一个裁剪函数同时处理"保持策略不变"和"提升好策略"
DAPO:把两个目标分开裁剪
  - 负优势(差的响应):强制降低概率(不受裁剪限制)
  - 正优势(好的响应):正常裁剪防止过大更新
效果:减少"差的响应没被充分抑制"的问题

改进二:动态采样

复制代码
训练前期:采样温度高,生成多样化的响应(探索)
训练后期:采样温度低,生成高质量的响应(利用)
效果:前期充分探索,后期精细化提升

1.6 四算法对比总结

特性 PPO DPO GRPO DAPO
需要奖励模型
需要 Critic
训练复杂度 最高
显存占用 最大 最小
探索能力
数据需求 在线生成 离线偏好对 在线生成 在线生成
代表模型 ChatGPT Zephyr DeepSeek-V3 最新研究
适用场景 追求极致效果 数据充足时 性价比优先 最新前沿研究
提出方 OpenAI Stanford DeepSeek 2025 学术界

1.7 实战示例:统一场景对比

场景:让模型学会"礼貌、有帮助、不乱编"

假设我们有一批用户问题,以及人类标注员标注的"好回答"和"差回答"。

PPO 示例:"有裁判的比赛"
复制代码
用户问:"杭州明天天气怎么样?"

模型A回答:"杭州明天晴,25度。"  → 奖励模型打分:0.8
模型B回答:"我不知道。"          → 奖励模型打分:0.2
模型C回答:"杭州明天会下陨石。"    → 奖励模型打分:-0.5

PPO更新:让模型以后更倾向生成类似A的回答

关键点:需要先训练一个奖励模型(裁判),再让 LLM 追逐高分。训练时需要 4 个模型同时跑(策略模型、参考模型、奖励模型、评论模型),成本最高。

DPO 示例:"老师直接说哪个好"
复制代码
用户问:"帮我写一首诗"

好回答:"春风拂柳绿如烟,细雨润花红欲燃。"  ← 标注为"优选"
差回答:"诗我不会写,滚。"                   ← 标注为"淘汰"

DPO直接训练:让模型生成"好回答"的概率 ↑,生成"差回答"的概率 ↓

关键点:跳过奖励模型,直接用偏好数据对训练。一个模型搞定,训练代码量减少 50%+。但数据质量差时效果会打折扣。

GRPO 示例:"同学之间互相比"
复制代码
用户问:"解释量子纠缠"

模型生成16个回答:
  回答1:"量子纠缠是..."     → 规则打分:85(长度适中、准确)
  回答2:"就是两个粒子..."   → 规则打分:60(太简短)
  ...
  回答16:"不知道"           → 规则打分:10

GRPO:在16个回答中计算相对排名,高分回答被强化,低分回答被抑制

关键点:不需要奖励模型,用规则打分就行(比如数学题直接判断对错)。考试不看你考了多少分,看你在班里排第几。DeepSeek-Math 就是用 GRPO 训出来的。

DAPO 示例:"一边练特长一边不丢基本功"
复制代码
训练批次1(对齐数据):
  用户:"讲个笑话" → 模型要学会讲有趣的笑话(对齐目标)

训练批次2(通用数据):
  "2+2=?" → 模型仍然要答"4"(能力保持目标)

DAPO的关键:两个目标解耦,不会因为对齐训练导致"2+2=5"

关键点:解决"对齐税"(Alignment Tax)问题------模型对齐后变笨。把对齐和能力保持分开处理,用不同的学习率和权重。

记忆口诀
复制代码
PPO  = "有裁判的比赛"(需要奖励模型打分)
DPO  = "老师直接说哪个好"(跳过裁判,直接学偏好)
GRPO = "同学之间互相比"(组内PK,用排名训练)
DAPO = "一边练特长一边不丢基本功"(边对齐边保能力)

1.8 选型建议

复制代码
你是谁?你要做什么?
│
├─ 大公司,追求 SOTA,资源充足 → PPO
├─ 有大量高质量偏好对数据 → DPO
├─ 中等资源,想要高性价比 → GRPO ⭐(推荐)
└─ 追求最新效果,愿意折腾 → DAPO

二、SICA 深入:自我改进的"递归"

2.1 SICA vs 传统方法的本质区别

复制代码
传统方法(ADAS等):
  元智能体(Meta-Agent)→ 修改 → 目标智能体(Target-Agent)
  问题:元智能体本身是固定的,不会改进

SICA:
  同一个智能体 → 既执行任务,又改进自己
  优势:改进循环没有上限,理论上可以无限进化

类比

  • 传统方法 = 老师改学生的作业,但老师自己的教学水平不变
  • SICA = 学生自己做作业、自己批改、自己改进学习方法,然后做更好的作业

2.2 实验数据(原文核心结果)

基准测试 初始准确率 最终准确率 提升幅度
SWE Bench Verified 17% 53% +36%
文件编辑 82% 94% +12%
符号定位 76% 89% +13%
LiveCodeBench 有提升 有提升 具体数据未公开
AIME(数学推理) 接近天花板 无明显提升 基础模型瓶颈
GPQA(科学推理) 接近天花板 无明显提升 基础模型瓶颈

2.3 三个关键发现

发现一:改进的不是模型权重,而是"脚手架"

复制代码
❌ 不是这样:SICA 修改 LLM 的权重参数
✅ 而是这样:SICA 修改自己的代码(工具编排、文件管理、问题分解策略)

这意味着:即使基础 LLM 不变,通过改进"使用 LLM 的方式"也能大幅提升效果

发现二:推理密集型任务收益有限

复制代码
当基础 LLM(如 o3-mini)在 AIME/GPQA 上已经接近天花板时,
SICA 的脚手架改进帮助不大。

原因:推理任务的瓶颈在模型本身的"思考能力",而不是"工具使用方式"

发现三:工具使用可能干扰推理

复制代码
在某些纯推理任务上,加入工具步骤反而降低了性能。

原因:工具调用引入了额外的"中间步骤",
可能打断了 LLM 内部的推理链(Chain of Thought)

启示:需要更精细的"何时调用工具"策略,而不是盲目加工具

2.4 工具进化的六个阶段(详细)

复制代码
阶段1:SimpleOverwriter(简单覆盖器)
  - 整个文件替换
  - 问题:容易丢失不相关代码

阶段2:SmartEditor(智能编辑器)
  - 上下文感知编辑
  - 只修改相关部分
  - 进化动机:覆盖器丢失太多代码,需要更精确的修改

阶段3:DiffEnhancedSmartEditor(差异增强编辑器)
  - 结合 diff 格式
  - 更精确的修改范围
  - 进化动机:智能编辑器有时修改范围过大

阶段4:MinimalDiffOutputOptimizer(最小差异优化器)
  - 利用 AST(抽象语法树)解析
  - 只输出最小必要的修改
  - 进化动机:减少 diff 的大小,节省 token

阶段5:ASTSymbolLocator(AST 符号定位器)
  - 利用代码结构定位函数/类定义
  - 不再依赖文本搜索
  - 进化动机:文本搜索在大型代码库中不够精确

阶段6:HybridSymbolLocator(混合符号定位器)
  - 快速文本搜索 + AST 验证
  - 兼顾速度和准确性
  - 进化动机:AST 解析较慢,先用文本搜索缩小范围再用 AST 验证

核心洞察:这六个阶段不是人类设计的,而是 SICA 自己进化出来的。智能体"发明了更好的工具来改进自己"------这就是递归自我改进的本质。每一次工具进化都是为了解决上一代工具的不足,形成了一个正反馈循环。

2.5 SICA 的安全性设计(详解)

安全层1:Docker 容器隔离
复制代码
SICA 运行在专用 Docker 容器内
  ├── 文件系统隔离:不能访问宿主机文件
  ├── 网络隔离:不能访问外部网络(可选配置)
  └── 资源限制:CPU、内存、磁盘都有上限
安全层2:异步监督者(Asynchronous Overseer)
复制代码
主智能体 ←→ 异步监督者(另一个 LLM,并行运行)
                │
                ├── 接收:调用图(Call Graph)+ 事件流(Event Stream)
                ├── 检测:循环模式(死循环)、停滞模式(无进展)、偏离模式(跑偏)
                └── 行动:发送警告 / 强制终止执行

为什么需要异步? 因为如果监督者和主智能体串行运行,主智能体卡死时监督者也无法运行。并行运行确保监督者始终"醒着"。

安全层3:可观测性
复制代码
交互式网页界面
  ├── 事件总线(Event Bus):记录所有工具调用和结果
  ├── 调用图(Call Graph):可视化子智能体之间的调用关系
  └── 实时监控:随时查看智能体在做什么

2.6 SICA 的局限性

局限 原因 影响
推理任务效果有限 基础 LLM 接近天花板 不适合纯数学/逻辑任务
改进幅度递减 越改越好,提升空间越小 存在改进天花板
依赖基础 LLM 底层模型能力决定上限 换更强的 LLM 才能突破
安全风险 自我修改可能引入 bug 需要严格的回滚机制
计算成本高 每轮改进都要跑基准测试 不适合资源有限的环境

三、AlphaEvolve 深入:LLM + 进化的威力

3.1 AlphaEvolve vs SICA:本质区别

复制代码
SICA:改进自己的代码(自我修改)
AlphaEvolve:发现新的算法/解决方案(外部发现)

类比

  • SICA = 一个程序员改进自己的编程工具
  • AlphaEvolve = 一个科学家发现新的数学定理

3.2 AlphaEvolve 的两阶段架构

阶段一:广泛探索(Gemini Flash)
复制代码
Gemini Flash(快速、便宜)
  ├── 并行生成大量候选方案(100-1000个)
  ├── 自动评估系统打分
  └── 筛选出 Top-K 进入下一阶段

为什么用 Flash? 因为探索阶段需要数量,不需要质量。Flash 速度快、成本低,适合大量生成。

阶段二:深度优化(Gemini Pro)
复制代码
Gemini Pro(慢、贵、但更强)
  ├── 分析 Top-K 方案的成功/失败原因
  ├── 生成改进方案
  ├── 再次评估
  └── 迭代直到收敛

为什么用 Pro? 因为优化阶段需要深度推理,Pro 的推理能力更强。

3.3 三种反馈机制

复制代码
1. 用户提供的评估函数(User-provided)
   → 最可靠,但需要人工定义评估标准
   
2. LLM 生成的评估(LLM-generated)
   → 用于"某些特性难以精确量化"的场景
   → 例如:代码可读性、算法优雅度
   
3. 进化式反馈(Evolutionary)
   → 基于历史表现动态调整搜索策略
   → "哪些变异策略在过去有效?多用这些"

3.4 实际成果详解

领域 具体成果 意义
数据中心优化 全球算力资源使用降低 0.7% 看似很小,但 Google 级别的数据中心节省数亿美元
TPU 硬件设计 Verilog 代码优化 芯片设计的特定环节被 AI 优化
Gemini 内核 核心计算提速 23% AI 优化了自身的运行效率(递归!)
FlashAttention GPU 指令优化 32.5% 加速了广泛使用的注意力机制实现
矩阵乘法 4×4 复数矩阵仅需 48 次标量乘法 超越人类数学家的最优解
开放数学问题 75% 重新发现最优解,20% 实现突破 在已知难题上有新发现

3.5 AlphaEvolve 的关键设计哲学

复制代码
传统优化:人类设计算法 → 人类分析 → 人类改进
AlphaEvolve:LLM 生成算法 → 自动评估 → LLM 分析反馈 → 生成更好的算法
                              ↑                    ↑
                           客观标准             LLM 的"理解"

核心创新:不是让 LLM 直接解决问题,而是让 LLM "进化"出解决问题的算法。问题可能很难,但"如何找到解决问题的算法"是一个更高级的元问题,LLM 擅长这个。


四、OpenEvolve 深入:开源的进化框架

4.1 OpenEvolve vs AlphaEvolve

复制代码
AlphaEvolve:Google 内部,闭源,绑定 Gemini
OpenEvolve:开源,支持多种 LLM,通用代码优化

4.2 进化策略详解

复制代码
1. 种群初始化
   ├── 从种子程序开始
   └── 用 LLM 生成初始变体(代码 mutation)

2. 选择(Selection)
   ├── 根据评估函数打分
   ├── 保留 Top-K(精英保留)
   └── 淘汰表现差的变体

3. 交叉(Crossover)
   ├── 将两个好的变体的"优点"组合
   └── LLM 负责"理解"哪些部分可以组合

4. 变异(Mutation)
   ├── LLM 对选中的程序进行随机修改
   └── 变异幅度随训练进程调整(前期大、后期小)

5. 评估(Evaluation)
   ├── 并行运行评估(Evaluator Pool)
   └── 支持多目标优化(正确性 + 速度 + 内存)

4.3 OpenEvolve 的配置示例

yaml 复制代码
# config.yaml
evolution:
  population_size: 50        # 种群大小
  elite_count: 5             # 精英保留数量
  mutation_rate: 0.3         # 变异概率
  crossover_rate: 0.5        # 交叉概率
  max_iterations: 1000       # 最大迭代次数
  
evaluation:
  parallel_workers: 8        # 并行评估进程数
  timeout: 60                # 每次评估超时(秒)
  objectives:                # 多目标
    - name: accuracy
      weight: 0.5
    - name: latency
      weight: 0.3
    - name: memory
      weight: 0.2

llm:
  model: "gpt-4"             # 使用的 LLM
  temperature: 0.7           # 生成温度
  max_tokens: 4096           # 最大生成 token 数

五、三种自我改进系统的深度对比

维度 SICA AlphaEvolve OpenEvolve
改进对象 自身源代码 外部算法 外部程序
改进方式 自我修改 LLM + 进化算法 LLM + 进化框架
评估方式 基准测试 自动评估系统 自定义评估函数
LLM 角色 修改者 + 执行者 探索者 + 优化者 变异器
进化机制 版本迭代 种群进化 种群进化
安全措施 Docker + 异步监督者 未详述 未详述
开源 ✅ GitHub ❌ Google 内部 ✅ GitHub
基础 LLM o3-mini Gemini Flash + Pro 可配置
适用场景 智能体自身进化 数学/算法发现 通用代码优化
核心创新 递归自我改进 两阶段探索-优化 多 LLM 多目标进化

六、与实际工作的联系

作为测试开发工程师,这些概念怎么用?

概念 测试开发应用
PPO/DPO/GRPO 理解 AI 测试工具(如 AI 生成测试用例)背后的训练原理
SICA 的自我改进 类比自动化测试框架的自我优化:根据历史测试结果自动改进测试策略
工具进化 测试工具链的演进:从手动 → 自动化 → AI 辅助 → AI 自主
异步监督者 测试监控系统:实时检测测试异常、超时、失败率飙升
Docker 隔离 测试环境的容器化隔离,防止测试影响生产环境
AlphaEvolve 的评估驱动 测试用例的自动生成和优化:评估 → 反馈 → 改进

与前几章的联系

模式 与学习适应的关系
记忆管理(Ch8) 长期记忆存储学习成果,基于记忆的学习依赖记忆系统
反思(Ch4) 反思是学习的基础机制,评估自身输出并改进
工具使用(Ch5) SICA 通过工具修改代码,工具能力决定改进范围
多智能体(Ch7) SICA 的子智能体架构是多智能体协作的应用
异常处理(Ch12) 异步监督者检测异常行为,防止学习过程失控
规划(Ch6) SICA 的自我改进循环本质是一个持续规划过程
相关推荐
call me by ur name4 小时前
ERNIE 5.0 Technical Report论文解读
android·开发语言·人工智能·机器学习·ai·kotlin
冰西瓜6004 小时前
深度学习的数学原理(二十六)—— 多头注意力
人工智能·深度学习
lisw054 小时前
《计算机辅助设计与图形学学报》分析评介!
人工智能·机器学习
航Hang*4 小时前
VMware vSphere 云平台运维与管理基础——第5章:VMware vSphere 5.5 高级特性
运维·服务器·开发语言·windows·学习·虚拟化
新手小新4 小时前
C#学习笔记1-在VS CODE部署C#开发环境
笔记·学习·c#
憨波个4 小时前
【说话人日志】从 LSTM attractor 到 Transformer attractor:EEND-TA
人工智能·深度学习·lstm·transformer·音频·语音识别
徒 花4 小时前
HCIP学习04 STP----生成树协议
学习·hcip
speop4 小时前
TASK02 | Reasoning Kindom 符号的黎明——因果的第一次建模
学习
这张生成的图像能检测吗4 小时前
(论文速读)基于知识图谱构建的大型工业设备故障诊断模型
人工智能·深度学习·知识图谱·故障诊断