opensearch-project/ml-commons

GitHub: opensearch-project/ml-commons

该项目为 OpenSearch 提供内置的通用机器学习算法库与任务管理框架,使开发者无需导出数据即可在集群内完成模型训练与推理。

Stars: 154 | Forks: 216

[![测试工作流](https://static.pigsec.cn/wp-content/uploads/repos/cas/7a/7a2a2e8c5951b3367a32fd3504bde54ad6e2036dca7241bba684aef7a675b30b.svg)](https://github.com/opensearch-project/ml-commons/actions) [![codecov](https://codecov.io/gh/opensearch-project/ml-commons/branch/main/graph/badge.svg)](https://codecov.io/gh/opensearch-project/ml-commons) [![文档](https://img.shields.io/badge/api-reference-blue.svg)](https://opensearch.org/docs/latest/ml-commons-plugin/api/) [![聊天](https://img.shields.io/badge/chat-on%20forums-blue)](https://forum.opensearch.org/c/plugins/ml/46) ![欢迎 PR!](https://img.shields.io/badge/PRs-welcome!-success) - [OpenSearch Machine Learning Commons](#opensearch-machine-learning-commons) - [贡献](#contributing) - [行为准则](#code-of-conduct) - [安全](#security) - [许可证](#license) - [版权](#copyright) ## OpenSearch Machine Learning Commons OpenSearch 的 Machine Learning Commons 是一个新的解决方案,旨在让开发新的机器学习功能变得更加容易。它允许工程师利用现有的开源机器学习算法,并减少构建任何新机器学习功能的工作量。它还免去了工程师管理机器学习任务的必要性,这将有助于加快功能开发过程。 ### 问题陈述 直到今天,在 OpenSearch 内部构建一个新的机器学习功能仍然面临着巨大的挑战。原因包括: * **对 OpenSearch 核心功能的干扰。** 机器学习的计算量非常大。但是目前在 OpenSearch 中没有办法为机器学习作业添加专用的计算资源,因此这些作业必须与核心功能(例如:索引和搜索)共享相同的资源。这可能会导致搜索请求的延迟增加,并导致内存使用出现断路器异常。为了解决这个问题,我们必须仔细地分发模型并限制运行 AD 作业的数据大小。当越来越多的 ML 功能被添加到 OpenSearch 中时,管理起来将会变得更加困难。 * **缺乏对机器学习算法的支持。** 客户需要 OpenSearch 内提供更多的算法,否则需要将数据导出到 OpenSearch 之外,例如先存入 s3 才能执行作业,这将带来额外的成本和延迟。 * **缺乏在多个机器学习作业之间的资源管理机制。** 很难在多个功能之间协调资源。 与此同时,我们观察到越来越多的机器学习功能需要在 OpenSearch 中得到支持,以满足最终用户的业务需求。例如: * **预测:** 预测在时间序列数据分析中非常流行。虽然过去的数据并不总是未来的指标,但它仍然是在某些用例中使用的非常强大的工具,例如在 IT 运维中进行容量规划以扩展或缩减服务主机。 * **DevOps 中的根因分析:** 如今一些客户使用 OpenSearch 进行 IT 运维。由于需要收集生态系统中的所有信息(例如日志、链路追踪、指标),确定故障或事件的根本原因变得越来越复杂。机器学习技术非常适合通过自动构建系统的拓扑模型,以及理解事件之间的相似性和因果关系等来解决这个问题。 * **SIEM 中的机器学习:** SIEM(安全信息和事件管理)是 OpenSearch 中的另一个领域。机器学习在 SIEM 中也非常有用,可以帮助促进安全分析,减少处理复杂任务的工作量,实现实时威胁分析并发现异常。 ### 解决方案 解决方案是在 OpenSearch 集群中引入一个新的 Machine Learning 库。此解决方案的主要功能包括: * **统一的客户端接口:** 客户端可以使用通用接口进行训练和推理任务,然后根据算法接口提供正确的输入参数,例如输入数据、超参数。将构建一个客户端库以便于使用。 * **ML 插件:** ML 插件将帮助启动 ML 节点,并为每个请求选择合适的节点和分配资源,通过监控和故障处理支持来管理机器学习任务,并存储模型结果;它将作为 OpenSearch 进程与 ML 引擎之间通信的桥梁。 * **ML 引擎:** 该引擎将成为 ML 算法的宿主。首个版本将支持基于 Java 的机器学习算法。 该解决方案使得开发新的机器学习功能变得容易。它允许工程师利用现有的开源机器学习算法,并减少构建任何新机器学习功能的工作量。它还免去了工程师管理机器学习任务的必要性,这将有助于加快功能开发过程。 ### 如何将其用于新功能开发 请参阅[如何添加新函数](docs/how-to-add-new-function.md)。 ## 行为准则 本项目已采纳 [Amazon 开源行为准则](CODE_OF_CONDUCT.md)。有关更多信息,请参阅[行为准则 FAQ](https://aws.github.io/code-of-conduct-faq),如有任何其他问题或意见,请联系 [opensource-codeofconduct@amazon.com](mailto:opensource-codeofconduct@amazon.com)。 ## 安全 如果您在本项目中发现潜在的安全问题,我们要求您通过发送邮件至 security@opensearch.org 直接通知 OpenSearch Security。请**不要**创建公开的 GitHub issue。 ## 许可证 本项目基于 [Apache v2.0 许可证](LICENSE) 授权。 ## 版权 版权所有 2020-2021 Amazon.com, Inc. 或其附属公司。保留所有权利。
标签:Apex, JS文件枚举, 人工智能, 域名枚举, 插件, 机器学习, 用户模式Hook绕过, 算法库