1. Job Roadmap
  2. Home
  3. Problem Set
  4. codenotelist
  5. Forum
  6. course
  7. Shore Share Sessions
  8. Record
  1. Login
  2. Sign Up
  3. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
    ZhContent TextSol video solution AI分析

解题思路

本题要求对告警信息进行语义聚类,核心是基于余弦相似度的连通分量问题。题目的关键在于理解弱传递聚类规则:如果告警A与B相似,B与C相似,即使A与C不相似,它们也应属于同一聚类。这实际上是一个典型的并查集问题。

首先需要处理输入数据的合法性验证。输入为空或向量维度不一致时直接返回0。对于合法输入,我们需要计算所有告警对之间的余弦相似度。余弦相似度的计算公式为:

cos(A,B) = (A·B) / (|A| × |B|)

其中A·B表示向量点积,|A|和|B|表示向量的欧几里得范数。当余弦相似度大于等于0.95时,认为两条告警语义相似,需要将它们归入同一聚类。

P4238.第2题-利用大规模预训练模型实现智能告警聚类与故障诊断

    1000ms Tried: 2084 Accepted: 530 Difficulty: 5 所属公司 : 华为
    算法与标签>并查集

题目内容

【背景信息】在现代运维体系中,大量告警可能指向同一故障根源(如 “服务器 CPU 利用率过高” 和 “应用响应超时” 可能由同一硬件资源不足导致)。若能将语义相似的告警归为一类,不仅可以减少重复信息的干扰,还能帮助运维人员快速定位故障核心,缩短故障修复时间。

行业内普遍采用自然语言处理(NLP)技术对告警文本进行语义理解,采用基于预训练语言模型(如 BERT、sBERT 等)的语义向量(embedding)转化技术:通过模型处理,每条告警文本被转化为一个高维数值向量,向量的数学特征能够准确反映告警的语义信息,使得两条描述相同故障的告警(即使措辞略有差异),其对应的向量在空间中的距离会非常近;而语义无关的告警,向量距离则较远。

【任务目标】通过语义向量(embedding)对给定的告警信息进行聚类:每条告警包含唯一的 ID 和对应的向量 embedding,要求将余弦相似度≥0.95 的告警归为同一个聚类,并返回数量最大的聚类的告警数量

【规则要求】

聚类判定标准:

1)相似度阈值:当两条告警的余弦相似度 ≥ 0.95 时,判定为语义相似。

2)弱传递聚类(连通图聚类)规则:初始状态:每条告警单独构成一个类别。归入规则:若告警 X 与某类别 C 中的任意一条告警 的余弦相似度 ≥ 0.95,则将 X 归入类别 C。

合并规则:若告警 X 同时满足归入多个类别的条件(即与多个类别中的告警均相似),则这些类别需合并为一个新类别,X 归入该新类别。

传递性保证:聚类过程需确保所有满足相似条件的告警最终被合并到同一类别中。例如:若 A 与 B 相似(余弦相似度 ≥ 0.95),且 B 与 C 相似(余弦相似度 ≥ 0.95),则 A、B、C 必须属于同一类别(即使 A 与 C 的相似度可能 < 0.95)。

输入描述

每一行为一个告警信息,其中第一个字段是告警 ID,后面的字段是告警的嵌入向量。告警信息的总行数不会超过 1000 条。(请注意,测试集中可能包含如样例 2 所示的那种异常情况)

输出描述

找到包含告警数量最多的聚类,输出该聚类的告警数量。若所有告警均无法聚类(即每个类别仅包含 1 条告警),则返回 1;若输入为空列表(无任何告警),或者输入告警信息的向量维度不一致(即不同告警的 embedding 长度不同),则返回 0。

样例1

输入

1 1.0 0.0 0.0  
2 0.99 0.01 0.0  
3 0.0 1.0 0.0  
4 0.0 1.0 0.01  
5 0.1 0.0 0.0 

输出

3

说明

每一行输入的第一个字段是告警 id,后面的字段是告警的嵌入向量,根据余弦相似度≥0.95 的规则,我们得到以下聚类关系:

  • 告警 1、2、5 构成一个聚类;

  • 告警 3、4 构成一个聚类;

    所有聚类的大小分别为 3、2。其中数量最大的为 3,因此输出为 3。

样例2

输入

1 1.0 0.0 0.0  
2 0.99 0.01 0.0 0.98  
3 0.0 1.0 0.0

输出

0

说明

第 2 个告警的嵌入向量维度与其他告警不一致,属于异常情况,返回 0

样例3

输入

1 0.878434 -0.068245 -0.46237 0.099552  
2 0.33961 -0.083281 -0.348141 0.869786  
3 0.326485 -0.071012 -0.353166 0.873865  
4 0.330106 -0.085155 -0.338106 0.87719  
5 0.340185 -0.066865 -0.339054 0.874554  
6 0.482266 -0.483077 0.539977 -0.492423  
7 0.491966 -0.485237 0.526674 -0.495104  
8 0.48426 -0.477249 0.531019 -0.505711  
9 -0.669925 -0.330461 0.409454 -0.523778  
10 -0.668543 -0.331692 0.403806 -0.529123

输出

4

说明

每一行输入的第一个字段是告警 id,后面的字段是告警的嵌入向量,根据余弦相似度≥0.95 的规则,我们得到以下聚类关系:

  • 告警 2、3、4、5 构成一个聚类;

  • 告警 6、7、8 构成一个聚类;

  • 告警 9、10 构成一个聚类;

  • 告警 1 独立成一个聚类;

    综上所述,所有聚类的大小分别为 4、3、2、1。其中数量最大的为 4,因此输出为 4。

开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写

登录后即可使用 AI 分析。

模式
倒计时时长
:

最长 10 小时 59 分;应用后按此时长重新开始。

提示:点击提交记录在左侧题面区域查看详情
题库
AI分析设置
留空使用官方API Key,每天有次数限制(自定义API Key仅限会员和管理员使用,不限次数)
会员和管理员可切换模型;切到 Kimi/智谱/通义/豆包时需填写对应供应商 API Key
升级会员,可将运行与提交冷却时间缩短至 1 秒起

Status

  • Judging Queue
  • Service Status

Development

  • Open Source

Support

  • Help
  • Contact Us

About

  • About
  • Privacy
  • Terms of Service
  • Copyright Complaint
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. Legacy mode
  3. Theme
    1. Light
    2. Dark
  1. 京ICP备2025123107号-1
  2. Worker 0, 44ms
  3. Powered by Hydro v5.0.0-beta.18 Community
CLOSE


ScanQRCodePrompt

请使用微信扫描下方二维码完成注册

Forgot password or username?