Giter VIP home page Giter VIP logo

Comments (13)

wanghuaway avatar wanghuaway commented on May 9, 2024 27

感谢windlike0103提到的一些问题,Metis开源项目的侧重点在学件的实现,各学件以接口形式提供服务,旨在用新的方法改进一些老的基于规则的处理方式,从而解决一些运维场景的问题,但确实在工程方面的重视度不够,很多问题客观存在,参照您的建议,我们会就这些问题进行改进,做一下说明回复:
1、提到的views.py文件中接口代码冗余的问题确实存在,这里可以用设计模式优化,感谢反馈,我们进行优化。
2、采用mysql存放样本数据的原因,因为并没有存放时序,只存放检测点和对比数据,所以对数据存放这里最初规划的时候是以样本形式存储数据,并不是严格的时序数据。这里后续我们也会考虑下有没有更合适的存储方式。
3、docker部署的问题,这一步做的确实有不妥,进行优化,比如:(1) Metis各组件(mysql,django webserver)拆分成独立container部署,并使用compose打包部署,使用docker重启策略实现组件的自愈;(2) 持久化数据会通过Volume的方式挂载给容器使用,提升IO性能。
4、这版Metis开源主要是为了交流学件和算法,工程化能力确实和内部运行环境有巨大的差距,后续版本会不断提升。
5、对底层海量数据的存储能力和加工处理并没有体现在开源项目中,内部用的moniter时序存储,支持200w以上指标。monitor存储方案本质上是分布式的kv存储,开源的方案有hbase,influxdb等。在内部使用自研的存储方案基于多阶hash表实现,并做了冷热数据分离。2天内的热数据存储在内存,2天前的冷数据转存到文件。应用于智能检测时为提升检测性能,每天定时将历史数据从冷数据存储批量拉入执行检测的机器的内存中,实时的时序数据每分钟从分布式内存存储中拉取,从而实现基于内存数据的高并发异常检测。
6、参考论文:之前并没有读过这两篇论文,我们参考的是清华大学裴丹教授的论文,Opprentice: Towards Practical and Automatic Anomaly Detection Through Machine Learning,它使用了人工特征 + Random Forest 的方法。issue中提到的论文我们也学习下。
7、特征工程:Metis 的特征层有一部分用了 tsfresh 的特征,有一些是 Opprentice 里使用了一些拟合特征,有一些是结合自身业务所写的同环比类特征,其函数是 time_series_periodic_features。有监督学习模型使用的是开源的 GBDT 和 XGBoost。
8、系统创新:系统有所改进的地方是在第一层增加了统计判别算法和无监督算法,第二层才使用有监督算法。在实际环境中,如果只使用有监督算法,需要计算特征并且使用有监督算法进行判断,比较耗费时间。因此,在有监督算法前加上统计判别算法和无监督算法进行数据的过滤,只有当第一层输出异常的时候,才会给有监督算法进行判断。
9、论文创新:目前 Metis 内部正在尝试做一些不同于之前的时间序列异常检测算法,后续逐步对外开放。
开源Metis的目的是希望集合社区的力量共同建设运维学件,欢迎大家加入。
再次感谢!

from metis.

sakura1357 avatar sakura1357 commented on May 9, 2024 2

LZ说出了我的想法,确实有点像实习生做的,顺手搜了一下提代码的人,找到了简历,应该是实习生没错了,无意冒犯。只是觉得如果真的是想开源出来的话,希望能认真出一版工程化代码,供大家学习交流,共同进步。

from metis.

boatonsea avatar boatonsea commented on May 9, 2024 1

几个月前 Metis 对外公开 API 测试时就开始关注,但 issue 中描述的问题确实客观存在。如果说项目仍处于初期尚可理解,但从 PPT 宣讲来看,织云内部已经有大量应用,支持了 240w+ 指标,明显不是目前公开的代码能处理的。不能为了开源而开源。

from metis.

liuguiyangnwpu avatar liuguiyangnwpu commented on May 9, 2024 1

在ReadMe中提出,模型是针对业务历史数据进行建模之后提供的,但是却并没有看到有关历史数据的说明,希望官方提供一份可以下载的含有标签的样本数据,也算是为了开源届做了些贡献

from metis.

hhgl avatar hhgl commented on May 9, 2024

的确,满怀期望进来一看,非常失望。太缺乏诚意了。

from metis.

wjj5881005 avatar wjj5881005 commented on May 9, 2024

并不是所有的序列都可以拟合的很好,如何拟合的不好,其实这些提供的算法都是无效的?是否有考虑过通过其它辅助指标协助预测主要的KPI?目前这个版本里的算法都是比较常见的。

from metis.

senseb avatar senseb commented on May 9, 2024

期待基于通用开源数据集,给出平台的准召评测结果。

from metis.

zr9558 avatar zr9558 commented on May 9, 2024

并不是所有的序列都可以拟合的很好,如何拟合的不好,其实这些提供的算法都是无效的?是否有考虑过通过其它辅助指标协助预测主要的KPI?目前这个版本里的算法都是比较常见的。

感谢 wjj5881005 撰写 issue;目前 Metis 提供的是时间序列异常检测学件,这里对您提出的问题有所疑问,请问您的问题是不是这个?

Question:并不是所有的时间序列都可以异常检测得很好,如果异常检测的结果不好,其实这些提供的算法是否是无效的?是否有考虑过通过其它辅助指标来检测主要的KPI?目前这个版本里的算法都是比较常见的。

**Answer:**如果是以上的问题,那么大致的答案如下。
首先,肯定不是所有的时间序列的全部异常点都可以完美得进行异常检测。因为从数学的角度来看总能够找到反例,让该学件无法检测出来;并且由于运维观点和场景的不同,导致不同的公司和人员对异常的标准也是有所差异的。
其次,如果异常检测的结果暂时没有达到标准,那么可以使用我们提供的标注工具进行人工标注,然后把标注后的样本进行重新训练。
再次,如果觉得特征的构造不足以满足业务需求的话,其实可以人工再增加一些特征,并且未来我们也会逐渐丰富特征层的构建。
最后,AIOps其实是把机器学习的各种方法应用到运维领域,并不一定要从零到一地构建所有的机器学习算法。关键是基于运维的实际场景,选择一个最合适的机器学习算法来解决问题。

from metis.

xxllp avatar xxllp commented on May 9, 2024

搞了半天是个0.1版本,加油吧。。。

from metis.

zoobree avatar zoobree commented on May 9, 2024

在实际环境中,如果只使用有监督算法,需要计算特征并且使用有监督算法进行判断,比较耗费时间。因此,在有监督算法前加上统计判别算法和无监督算法进行数据的过滤,只有当第一层输出异常的时候,才会给有监督算法进行判断

-----确认下,量值检测是无监督+有监督,率值检测是无监督?另外代码里面用XBGT和GBDT检测,是两者选其一,对外接口是一样的?

from metis.

zr9558 avatar zr9558 commented on May 9, 2024

在实际环境中,如果只使用有监督算法,需要计算特征并且使用有监督算法进行判断,比较耗费时间。因此,在有监督算法前加上统计判别算法和无监督算法进行数据的过滤,只有当第一层输出异常的时候,才会给有监督算法进行判断

-----确认下,量值检测是无监督+有监督,率值检测是无监督?

原始代码在这里:
https://github.com/Tencent/Metis/blob/master/time_series_detector/detect.py

  • 量值检测:是无监督 + 有监督;
  • 率值检测:是无监督。

from metis.

zkybs avatar zkybs commented on May 9, 2024

工程里面是直接用的xgboost和gbdt,请问为什么没有考虑有监督用集成的方案,是效果没有明显提升?还是线上复杂度的原因?

from metis.

lht1936 avatar lht1936 commented on May 9, 2024

说得好,所以无人维护了,**人做事就是这样不了了之

from metis.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.