ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DeepSeek能源设备检修提速:领域适配预训练与多模态特征提取实战

DeepSeek能源设备检修提速:领域适配预训练与多模态特征提取实战 简介面向能源行业设备检修智能化升级场景的完整技术方案围绕DeepSeek大模型系统梳理了以领域适配预训练和多模态特征提取为核心的检修流程优化路径适合设备检修工程师、算法研发人员及能源企业技术管理者参考。包体为单个文档共272页含完整目录书签和阅读器大纲显示支持章节快速定位压缩包约12.18MB目前已有73人学习下载。内容从检修痛点与智能提速需求切入既涵盖能源检修领域语料库构建、专业术语体系搭建、预训练任务定制、掩码语言模型优化、学习率调度与批次大小调整等大模型适配技术也涉及设备图像与红外热成像、振动信号、音频数据特征提取以及多模态对齐与融合、视觉变换器应用等关键方法。全书以60余个章节分层展开目录结构清晰可作为能源行业设备智能检修方案设计与技术落地的实用参考。1. DeepSeek能源行业设备检修智能提速方案两个技术主线一个业务目标你把这272页方案丢给一个干了十年检修的老班长他大概率只关心一句话这玩意儿能不能让我少翻规程、少写工单、别漏掉那台快坏的泵。DeepSeek能源行业设备检修智能提速方案里真正值钱的技术主线只有两条——领域适配预训练和多模态特征提取。前者解决“模型听不懂检修行话”的问题后者解决“模型只看得到文本、看不到红外图和振动波形”的问题最终都指向一个业务目标把检修流程里最贵的成本压下来。这套做法适合电厂、变电站、新能源场站的运维团队也适合正帮能源企业做大模型落地的工程人员。2. 领域适配预训练让DeepSeek先听懂KKS编码和检修规程2.1 通用模型在检修场景的三大失灵点能源行业设备检修的语言体系是高度封闭的。汽轮机轴瓦温度、变压器油色谱、GIS六氟化硫泄漏还有KKS编码这种电厂专用设备编码体系在通用互联网语料里出现频率极低。通用DeepSeek能写出逻辑通顺的检修报告但你把“MAB10AT001振动值爬到6.2mm/s”丢给它它给不出有依据的判断因为训练语料里缺少把编码、振动烈度标准、设备等级关联起来的样本。这是第一个失灵点领域术语理解不到位。第二个失灵点是安全语义混淆。检修规程里的“严禁”“必须”“禁止”是硬约束不是语气词。通用模型容易把“严禁带负荷拉刀闸”理解成一条建议在生成检修步骤时跳过断电、验电、挂地线这些保命环节。这个问题靠调prompt解决不彻底得让模型在领域数据里反复见过“先断电再检修”这类固定逻辑才能形成稳定的行为模式。第三个失灵点是数据形态单一。现场检修的决策依据分布在红外热像图、振动波形、声纹、历史工单里而通用模型的知识底座是文本。所以方案里才有“多模态特征提取”这条线目的就是把非文本信号先转成模型能参与计算的向量再进入判断流程。理解这三个失灵点才能明白为什么不能直接把通用模型拿来就用。2.2 领域适配的三种手段怎么选增量预训练、指令微调、RAG领域适配不是一个动作是三类手段的组合。常见做法是先做增量预训练也叫继续预训练让模型把能源检修的术语、编码规则、规程表述学进权重里再做指令微调让模型学会按检修工单的格式输出最后用RAG兜底解决规程版本更新频繁的问题。三者的分工和成本差异很明显适配手段主攻问题数据要求算力成本适用时机增量预训练设备术语、KKS编码、规程表述大批量无标注检修文本GB级高模型连领域基本概念都不熟指令微调检修建议、工单格式、判断逻辑万级标注问答对中输出格式不稳定、判断逻辑偏差RAG知识增强最新规程引用、历史案例溯源结构化文档库低知识更新频繁、需要出处我一般建议的顺序是先上RAG成本最低能快速验证“把规程放进上下文能不能解决问题”效果不够再上指令微调把输出格式和判断逻辑固定下来如果模型连术语都是错的才考虑增量预训练。标题里的“领域适配预训练”指的就是前面两类尤其是增量预训练它负责把能源检修这个领域真正装进模型权重里而不是每次靠外部检索去临时拼凑知识。2.3 训练数据清洗历史工单和规程怎么变成训练样本做领域适配最花时间的不是训练是数据清洗。能源企业的历史检修工单动辄几十万条但直接能用的往往不到三成。我处理这类数据时第一步先把工单拆成“设备编码、缺陷描述、处理措施、结论备注”四个字段然后按规则过滤。下面这段脚本是常见的清洗框架import json import re # 模拟一条原始检修工单 raw_orders [ { device: 1号汽轮机, kks: MAB10AT001, desc: 3号轴承振动大历史最高6.2mm/s油温偏高, action: 停机检查更换轴瓦重新找中心, note: 待补录详细参数, }, { device: 2号主变, kks: , desc: 油色谱乙炔超标, action: 见附件, note: , }, ] def clean_orders(orders): cleaned [] for item in orders: # 过滤设备编码必须合法描述不能为空动作不能是见附件 if not re.match(r^[A-Z0-9]{9,12}$, item[kks]): continue if not item[desc] or 补录 in item[desc]: continue if not item[action] or 附件 in item[action]: continue # 单位规范化6.2mm/s 保留数值和标准单位 desc re.sub(r(\d(\.\d)?)\s*mm/s, r\1 mm/s, item[desc]) cleaned.append({ instruction: f设备{item[kks]}出现如下异常{desc}, output: item[action], }) return cleaned train_samples clean_orders(raw_orders) with open(energy_train.json, w, encodingutf-8) as f: json.dump(train_samples, f, ensure_asciiFalse, indent2)这段脚本的核心逻辑是过滤和规范化。过滤条件有三个KKS编码要能匹配到标准格式描述里不能出现“补录”“待核实”这类无效内容处理措施不能只写“见附件”。单位规范化的作用是把“6.2 mm/s”“6.2mm/s”这类写法统一避免同一个意思在不同工单里以不同格式出现影响模型学习。注意一点千万不要把备注字段里的模糊信息拼进训练样本模型会把“待核实”这种不确定性也学进去。2.4 用LoRA做领域适配最小可复现的本地微调数据准备好之后下一步是在DeepSeek基座模型上做参数高效微调。为什么用LoRA而不是全参数微调能源企业通常只有单机双卡或四卡的服务器全参数微调不仅慢而且容易把通用能力破坏掉术语懂了但对话能力退化了LoRA只训练一小部分低秩矩阵训练完就是一个独立的adapter文件效果不满意直接删掉重来相当于有后悔药。以LLaMA-Factory这类开源工具为例一次典型的增量预训练和指令微调命令长这样# 阶段一增量预训练让模型学能源检修术语 llamafactory-cli train \ --model_name_or_path /models/deepseek-base \ --stage pt \ --dataset energy_cpt \ --finetuning_type lora \ --lora_rank 16 \ --lora_target q_proj,k_proj,v_proj,o_proj \ --learning_rate 2e-4 \ --num_train_epochs 1.0 \ --max_sample 200000 \ --cutoff_len 2048 \ --output_dir /models/deepseek-energy-pt # 阶段二指令微调让模型学会检修判断和工单输出 llamafactory-cli train \ --model_name_or_path /models/deepseek-base \ --stage sft \ --dataset energy_orders \ --finetuning_type lora \ --lora_rank 32 \ --learning_rate 1e-4 \ --num_train_epochs 3.0 \ --cutoff_len 4096 \ --output_dir /models/deepseek-energy-sft参数上我踩过几个坑。lora_rank在增量预训练阶段取16就够rank太大容易过拟合小数据集指令微调阶段可以提到32因为这一阶段要学更细的输出模式。学习率方面LoRA微调的学习率通常比全参数微调高一到两个数量级2e-4和1e-4是比较稳的起点。num_train_epochs不要贪多增量预训练1个epoch、指令微调2到3个epoch就够跑多了模型会开始复读训练集里的固定说法。训练完用一组真实检修问答做验证不要只看loss曲线loss降了不代表模型能正确回答“该不该停机”。2.5 适配后部署本地化推理与API调用能源企业的部署环境几乎都是内网数据不出厂是硬门槛所以本地部署不是可选项是必选项。我一般会把训练完的模型合并LoRA权重然后用vLLM做推理服务。vLLM在长文本和高并发场景下比原生transformer推理快很多而且兼容OpenAI的API协议上层业务接入成本低。启动命令大致如下python -m vllm.entrypoints.openai.api_server \ --model /models/deepseek-energy-sft \ --tensor-parallel-size 2 \ --gpu-memory-utilization 0.9 \ --max-model-len 8192 \ --quantization awq \ --port 8000tensor-parallel-size设为2表示用两张卡并行推理前提是显存能装下模型本身和KV cache。gpu-memory-utilization留10%余量避免推理峰值显存溢出。max-model-len这里只开到8192不是模型不支持更长而是长序列会成倍吃掉显存检修场景的输入通常不需要整篇规程塞进去长文档交给RAG切片更合理。quantization awq表示用AWQ量化显存紧张时这是最常用的手段。服务起来之后上层业务直接按OpenAI兼容协议调用from openai import OpenAI client OpenAI(base_urlhttp://127.0.0.1:8000/v1, api_keyEMPTY) resp client.chat.completions.create( model/models/deepseek-energy-sft, messages[ {role: system, content: 你是电厂设备检修助手只能依据给出的检修规程和历史案例回答禁止编造安全操作步骤。}, {role: user, content: MAB10AT001振动爬到6.2mm/s油温偏高给出处理建议。}, ], temperature0.2, max_tokens1024, ) print(resp.choices[0].message.content)temperature调到0.2是为了让输出更稳定检修建议场景不需要创造性。system提示词里明确写了“禁止编造安全操作步骤”这是第一道防线后面在业务层还需要做输出校验。到这里领域适配这条线就算完整跑通了数据清洗、LoRA微调、本地部署、API调用每一步都验证过再往下才能接多模态。提示合并LoRA权重时务必确认基础模型版本和训练时一致版本不匹配会出现乱码式的输出这是本地部署最容易被忽略的坑。3. 多模态特征提取把红外图、振动波形和工单文本对齐到同一套检修判断3.1 检修现场的多模态数据各自盯什么缺陷设备检修现场的判断依据从来不是单一信号。老师傅判断一台泵的状态要同时看振动趋势、听声音变化、摸温度、翻历史记录。方案里的多模态特征提取本质上是把这几路信号变成模型能统一处理的向量。常见的模态和它们能提前暴露的问题如下模态类型采集方式能提前发现的缺陷红外热像图红外测温仪、在线监测轴承过热、接头氧化、变压器套管缺陷振动波形加速度传感器不对中、转子松动、齿轮磨损声纹麦克风阵列、听音棒气体泄漏、局部放电SCADA时序DCS监控系统参数趋势渐变异常可见光照片巡检机器人、无人机外观损伤、表计读数识别每一类信号的“提前量”不同这是多模态方案成立的核心原因振动最先暴露机械故障红外图通常滞后于温升声纹对气体泄漏几乎是即时的SCADA趋势数据则擅长抓缓慢劣化。只靠单模态要么漏检要么等故障发展到肉眼可见才报警。特征提取要做的就是把这些不同步、不同尺度的信号统一到同一个时间窗口和同一个判断框架里。3.2 图像特征提取视觉编码器把红外图变成向量DeepSeek本身是文本模型不能直接“看图”。常见做法是在前面挂一个视觉编码器用CLIP系列的ViT结构把红外图转换成特征向量再做映射让文本模型能理解这个向量所代表的视觉内容。实际操作时我习惯把红外图先做预处理再做特征提取import cv2 import numpy as np from transformers import AutoProcessor, AutoModel # 红外图通常是单通道伪彩图先固定色板映射 def preprocess_thermal(image_path): img cv2.imread(image_path, cv2.IMREAD_GRAYSCALE) img cv2.resize(img, (336, 336)) # 归一化到0-1避免不同设备采集的绝对温度偏差影响特征 img (img - np.min(img)) / (np.max(img) - np.min(img) 1e-6) return (img * 255).astype(np.uint8) # 用CLIP系列视觉编码器提特征 processor AutoProcessor.from_pretrained(./weights/thermal_vision) vision_model AutoModel.from_pretrained(./weights/thermal_vision) img preprocess_thermal(/data/infrared/MAB10AT001_20250216.jpg) inputs processor(imagesimg, return_tensorspt) with torch.no_grad(): vision_feature vision_model.get_image_features(**inputs) vision_feature vision_feature / vision_feature.norm(dim-1, keepdimTrue) print(红外图特征维度:, vision_feature.shape)预处理里两个细节容易翻车一是红外图不能直接按自然图的RGB通道处理要当成温度分布图先做灰度化和归一化二是色板映射必须固定不同采集设备如果伪彩映射规则不一致同一个设备的红外图特征会漂移模型判断就不稳定。视觉特征提取出来之后下一步是把特征向量拼到文本输入里这一点在第4章的最小链路里会完整演示。3.3 振动波形与时序特征一维卷积加统计特征振动信号是检修场景里最能提前发现机械故障的模态但它是一维时序不能直接进视觉编码器。我一般分两条路并行处理一条路用统计特征刻画信号整体状态另一条用一维卷积提取局部波形模式。统计特征的计算方式很直接import numpy as np from scipy import stats def extract_vibration_features(waveform, fs25600): 输入一段振动波形返回统计特征 rms np.sqrt(np.mean(waveform ** 2)) peak np.max(np.abs(waveform)) crest_factor peak / (rms 1e-8) # 峰值因子反映冲击性 kurtosis stats.kurtosis(waveform) # 峭度反映脉冲缺陷 # 频域特征主频位置和幅值 fft_vals np.abs(np.fft.rfft(waveform)) freqs np.fft.rfftfreq(len(waveform), 1 / fs) dominant_freq freqs[np.argmax(fft_vals)] return { rms: round(rms, 4), peak: round(peak, 4), crest_factor: round(crest_factor, 4), kurtosis: round(kurtosis, 4), dominant_freq: round(dominant_freq, 2), }峰值因子和峭度这两个指标对早期冲击类故障很敏感轴承点蚀、齿轮断齿都会让这两个值明显抬升。dominant_freq主频能区分转子不平衡和不对中。窗口长度建议取1到2秒采样率越低窗口越长保证每个窗口里包含足够多的旋转周期。波形特征提取完后和图像特征一样需要归一化再进入后续融合模块。3.4 融合策略不是简单拼向量是映射到检修决策槽位多模态特征提取最难的部分不在提取在融合。很多方案把图像向量、波形向量、文本向量直接拼接塞给模型效果往往一般。原因在于检修决策要回答的是固定几个问题——设备健康状态、故障类型、风险等级、建议动作、备件清单。特征拼接前得先把各模态特征映射到这些“决策槽位”上。我常用的做法是混合式融合图像特征和波形特征先各自过一个小的全连接层映射到同一个向量空间再和文本一起拼进输入模板。如果数据量足够也可以在视觉特征和文本之间加一层交叉注意力数据量不够时简单拼接加领域微调更稳。融合策略的选择取决于两个因素训练数据规模和故障类型复杂度。数据少就选简单拼接先跑通链路再迭代。这里要提醒一句多模态特征提取不是完全替代人工判断。现场环境复杂红外图可能拍到遮挡、振动传感器可能松动、工单描述可能张冠李戴。特征融合只是把多路证据汇拢最终是否执行检修动作依然要在业务层留人工确认。这一条做好了整个方案才有落地的信任基础。4. 检修流程落地从数据接入到大模型编排的最小链路4.1 传统检修流程的五个断点方案里讲的“流程优化”不是做一个模型就完事而是把模型嵌进现有检修作业的断点里。传统流程的痛点非常集中巡检靠人手写记录缺陷发现靠老师傅经验方案制定要翻规程查历史工单流转重复录入备件准备经常型号对不上。每个断点其实都能用上一章的特征提取和第二章的适配模型去补位流程环节现状痛点方案提速手段巡检记录手写纸档、拍照后整理耗时红外图、照片自动生成电子巡检记录缺陷发现依赖老师傅听声看温经验波形特征与图像特征异常预警方案制定翻规程、查历史案例费时RAG检索加DeepSeek生成检修建议工单流转人工填写、重复录入结构化工单自动生成与校验备件准备型号规格记忆不准台账信息抽取、备件清单自动匹配这五个断点里见效最快的是巡检记录和方案制定前者是纯文本生成后者是RAG加文本生成不依赖复杂的视觉模型。缺陷发现环节对特征提取的要求最高但一旦跑通价值也最大。4.2 四层架构数据、特征、模型、业务各干各的活整个方案的落地架构我习惯拆成四层。数据层负责把红外图、振动波形、工单、台账、规程文档汇聚到统一存储按设备编码和时间戳组织特征层跑视觉编码器和波形特征提取把原始信号变成向量并做缓存避免重复计算模型层跑领域适配后的DeepSeek对外提供OpenAI兼容API业务层负责编排、输出模板校验和人工确认节点。这四层里最容易做错的是把模型层当全部。模型只负责给出建议业务层的校验才是安全底线。比如生成结果里有“更换轴瓦”业务层要能自动关联到备件台账校验型号是否存在生成结果里有“断电操作”业务层要校验前置步骤里有没有“断开电源”这个动作。不设这层校验模型的效果越好潜在风险越大。4.3 最小可用链路从一条缺陷记录到一份检修建议把前几章的内容串起来跑通一个最小链路只需要下面这段代码。输入是一张红外图、一段振动波形和一条设备台账信息输出是一份结构化检修建议import json from openai import OpenAI from extract_thermal import preprocess_thermal, extract_thermal_feature from extract_vibration import extract_vibration_features import torch def build_prompt(device_info, thermal_feat, vib_feat): return { role: user, content: f设备编码{device_info[kks]}\n f设备类型{device_info[type]}\n f红外特征最高温区域占比{thermal_feat[hot_ratio]} f温升趋势{thermal_feat[temp_trend]}\n f振动特征RMS {vib_feat[rms]}峭度 {vib_feat[kurtosis]} f主频 {vib_feat[dominant_freq]}Hz\n f历史缺陷{device_info[history]}\n f请输出故障类型、风险等级、检修动作、备件清单。 } # 1. 提取多模态特征 img_feat extract_thermal_feature(/data/infrared/MAB10AT001.jpg) vib_feat extract_vibration_features(np.load(/data/vibration/MAB10AT001.npy)) # 2. 组装Prompt并调用本地DeepSeek服务 client OpenAI(base_urlhttp://127.0.0.1:8000/v1, api_keyEMPTY) prompt build_prompt(device_info, img_feat, vib_feat) resp client.chat.completions.create( model/models/deepseek-energy-sft, messages[ {role: system, content: 你是电厂检修助手。只输出JSON字段固定为fault_type, risk_level, actions, parts。不要输出推理过程。}, prompt, ], temperature0.1, max_tokens512, ) # 3. 解析JSON并做字段校验 result json.loads(resp.choices[0].message.content) assert all(k in result for k in (fault_type, risk_level, actions, parts)), 输出字段缺失 print(json.dumps(result, ensure_asciiFalse, indent2))这段代码把前几章的内容全串起来了。红外图和振动波形先提特征拼进Prompt文本模型只负责基于这些特征做判断不接触原始信号。system提示词里明确要求只输出JSON且字段固定这是为了让业务层能稳定解析结果。temperature调到0.1进一步压缩随机性检修场景宁可保守也别乱发挥。字段校验是最后一层防线输出格式不合法就直接丢弃不进入业务流程相当于给模型结果上了保险。4.4 先定基线再谈提速别用模型指标糊弄业务和检修班组汇报方案时最容易翻车的说法是“缺陷识别准确率85%”“模型效果提升显著”。业务人员不关心模型指标他们关心的是单条缺陷处理时长从25分钟降到多少分钟一周少开几次非计划停机检修。所以落地前最重要的一件事是先测量人工基线随机抽一个月的数据统计人工发现缺陷的平均耗时、方案制定平均耗时、备件准备错误率。基线数据有三个作用量化优化空间、确定验收标准、让检修班组直观看到变化。方案里写“检修流程优化”容易变成口号但有基线和没有基线是两个概念。没有基线优化做完也不知道效果有基线就能把“辅助检修”这个模糊概念变成“单条工单响应时间由22分钟降到7分钟”这种业务听得懂、愿意验收的结果。5. 能源检修场景避坑清单六个让我翻过车的真实问题5.1 模型一本正经地编安全规程现象生成的高压开关检修步骤里直接跳过了断电和验电模型还一本正经地写“完成检修后恢复送电”。原因指令微调数据里大量工单省略了安全前置动作把“检修”直接等同于“更换零件”模型学到了不完整的操作模式。解决安全规则不能依赖模型自觉必须在业务层硬编码校验。我把涉及“带电、拆解、动火、开盖”的动作做了动作前置映射表模型输出的操作序列缺少对应安全前置动作时整条结果直接作废并告警人工介入。这是方案上线前必须补的一层防护。5.2 通用视觉编码器处理红外图效果很差现象用通用CLIP模型提取红外图特征发热设备的热斑被模型当成普通亮部区域分类结果乱七八糟。原因红外图是温度分布的可视化不是自然图像通用视觉编码器的预训练分布里几乎没有这类单通道伪彩图。解决先用历史红外图做一遍简单适配让视觉编码器见过设备典型热像同时在预处理阶段固定色板映射和温度归一化。另一个有效做法是把红外图的最高温、温升速率、热斑面积占比等物理量做成辅助特征直接给模型不依赖纯视觉理解。5.3 历史工单数量很大可用数据不足三成现象拿到二十万条历史检修工单清洗完只有四万条能用业务方觉得不可思议。原因现场工单常年存在设备编码填写不规范、描述简写、处理措施写“见附件”、备注字段混入个人记录等问题。解决清洗规则里四个硬条件缺一不可——设备编码合法、描述非空、处理措施非空且不含“见附件”、时间戳合理。数据量不够时不要硬凑训练集宁可做数据增强也不要让模型学习模糊记录里的噪声。5.4 本地算力跑不动大模型现象双卡机器上启动推理服务直接OOM反复调gpu-memory-utilization都没用。原因max-model-len开太高KV cache把显存吃爆了检修场景里还想把整本规程全文塞进上下文显然不现实。解决先把max-model-len压到8192长文档一律走RAG分块检索进上下文的只有命中片段。显存还是不够就上AWQ或GPTQ量化再配合tensor-parallel-size把模型分摊到多卡。另外确认一下后台是否还有别的进程占着显存排查顺序是先看占用再调配置。5.5 RAG检索到过期规程给出被淘汰的工艺现象模型给出的检修工艺是旧版规程里的做法和现场正在执行的工艺完全不一致。原因文档库同时存在多个版本的规程向量检索时旧版本和新版本都命中了模型选了并不代表是错的但确实不该用的旧版本。解决规程入库时把版本号、生效日期、废止标志写进元数据检索时先过滤废止文档同一个设备类型存在多版本时只取最新生效版本。这个坑不排查RAG上线越久过期知识被检索到的概率越大。5.6 上下文窗口限制导致长规程被截断现象喂给模型50页检修规程模型生成的建议明显没有参考规程后半段的内容。原因上下文中段落超过有效长度后后面的内容要么被截断要么离关键指令太远注意力被稀释。解决不整篇塞入把规程按“设备类型、故障现象、检修工序”拆成可检索块先做检索命中的块再接进上下文。常见做法是每块控制在1500字以内带设备类型标签和章节路径既方便检索也方便模型引用时给出处。6. 验证方案是否有效三套指标加一个回测技巧6.1 三套指标模型、流程、业务方案上线后怎么证明有效我习惯分三层看。模型层看缺陷识别准确率、误报率、工单结构合格率这些是内部过程指标衡量的是模型本身干没干对流程层看单条缺陷处理时长、方案制定时长、备件准备时长这是业务感知最强的指标直接对应“提速”两个字业务层看非计划停机次数、平均修复时间、单台设备检修成本这是最终老板关心的结果指标。三层指标的关系是递进的模型指标不好流程指标一定好不了但模型指标好流程指标不一定好因为流程里还隔着人工确认环节和系统衔接。所以验收时不要只看模型层。6.2 回测技巧拿50条历史缺陷单跑一遍验证方案最实用的一个技巧是做历史回测取最近12个月真实处理过的50条缺陷单把当时的红外图、振动波形、台账信息和缺陷描述输入系统让方案生成检修建议再和人工实际处理方案逐条对比。对比维度有三项关键动作是否遗漏、故障等级判定是否一致、备件清单是否匹配。回测结果特别能说明问题。如果模型在30条以上和人工方案核心判断一致说明链路已经具备辅助值班的能力如果只对一半优先排查视觉特征是否准确、检索是否命中正确规程而不是急着换更大的模型。我在这套方案里吃过一个亏上线第一个月只盯模型准确率被检修班组一句“工单该写多少字还是多少字”问住了。后来把指标重心移到流程层和业务层用回测数据说话班组成员才真正愿意在系统里点“确认”而不是关掉页面手写工单。希望帮到你。本文还有配套的精品资源点击获取
返回列表