Page 153 - 《软件学报》2026年第7期
P. 153
2838 软件学报 2026 年第 37 卷第 7 期
[ ( )]
L CLIP (θ) = E t min r t (θ) ˆ A t , CLIP(r t (θ),1−ε,1+ε) ˆ A t
8. 更新策略参数 θ 以最大化 L CLIP (θ)
ϕ:
9. 通过最小化以下函数更新价值函数参数
[ ]
VF ( ) 2
L (ϕ) = E t V ϕ (s t )−R t
10. endfor
11. 更新旧策略 θ k−1 ← θ k
12. endfor
13. return 最终策略参数 θ
3.3 异常检测与反馈调节机制
训练完成后, 模型可部署于日志异常检测任务中, 根据异常的表现形式与语义特征, 日志异常可划分为 3 类:
日志点异常 (log point anomaly)、日志执行序列异常 (log execution sequence anomaly)、日志模板变更引发的新型
异常.
日志点异常是指单个日志事件在时间间隔或内容特征上偏离正常分布的情况. 为了刻画正常行为, 系统在训
练阶段统计各类型日志事件之间的平均时间间隔及其方差范围, 并构建基于上下文的语义嵌入分布. 在推理阶段,
系统实时监测输入事件的时间间隔与语义一致性, 当观测到的间隔偏离超过阈值 δ t 或嵌入距离超过预设限度时,
即判定该事件为点异常. 此类异常通常反映了模块延迟、执行阻塞或参数异常等问题. 模型输出的点异常不仅可
独立作为检测结果, 也作为辅助信号参与序列异常的判断. 如 HDFS 数据集中“Block 分配”类日志正常间隔均值
为 2.1 s, 某条日志间隔达 15 s; 内容维度异常表现为参数格式错误, 如日志参数 “blk\_abc”不符合“blk+数字”的正
常格式. 检测时通过统计时间间隔均值与参数正则规则, 偏离阈值 (3 倍标准差) 则判定为异常.
日志执行序列异常则关注事件顺序或逻辑关系的异常模式. 本文将日志序列的演化建模为一个强化学习过
程: 当前日志序列的语义表示作为状态 s t , 下一个标准化日志事件作为动作 , 并通过近端策略优化 (PPO) 算法学
a t
g 个高概
习正常状态转移规律. 在推理阶段, 模型根据策略分布 π(a t |s t ) 生成多个候选事件; 若真实事件未出现在前
率候选中, 则判定为执行序列异常. 该类异常多对应系统内部逻辑紊乱、调用链异常或依赖关系错误等情况 (如正
常序列“5→5→22→26→23→21”变为“22→5→9→3→23→21”的顺序异常).
日志模板变更引发的新型异常则是由于系统升级导致日志模板新增或修改, 现有模型未学习过该模板正常模
式的异常. 如 BGL 超级计算机硬件升级后, 新增“GPUTempMonitor: Temperature of GPU [gpu-id] is [temp] °C”模板,
原有模型易将正常温度监测日志误判为异常. 检测时通过性能监控识别模板变更, 收集新增模板正常日志微调模
型以适配.
此外, 为应对日志模板演化带来的概念漂移问题, 当系统检测到未见事件时, 模型输出特殊标记<UNK>, 并将
其纳入反馈池. 随后, 通过行为克隆模块利用反馈样本进行微调, 使模型能够快速适应新的日志模式, 从而保持检
测性能的稳定性与鲁棒性.
通过引入上述机制, PCLog 实现了对时间偏差、顺序异常以及概念漂移的综合检测与自适应修正, 为复杂动
态系统环境下的智能日志分析提供了更加稳健的解决方案.
给定一个日志序列 L = [e 1 ,e 2 ,e 3 ] 及其对应的句子嵌入向量 V = [v 1 ,v 2 ,v 3 ], 系统首先将第 1 个嵌入向量 v 1 作为
模型输入. 模型输出对可能的下一个日志事件的概率分布. 若实际出现的下一个事件 e 2 位于概率最高的前 g 个事
g 条件时, 整个日
件之中, 则判定为正常事件. 该过程对序列中的每个后续事件重复执行. 仅当所有事件都满足前
志序列才被视为正常; 否则, 该序列将被标记为异常.
在自动化运维环境中, 异常检测模型往往难以持续保持高检测性能. 特别是在增量训练过程中, 随着新数据不
断涌入, 模型可能逐渐偏离初始优化轨迹, 进而影响日志异常检测的整体表现. 实践中, 这种偏离主要表现为对已
知异常检测的精确率下降, 导致系统难以同时满足实时性和精确性双重要求.

