限制
Elastic Stack Serverless
以下限制和已知问题适用于 Elastic 数据框架分析功能的 9.0.0 版本。这些限制分为以下几类:
当同时运行许多机器学习作业且 CPU 资源不足时,必须优先考虑 JVM 性能,以使搜索和索引延迟保持在可接受的范围内。 为此,当 Linux 和 MacOS 环境中的 CPU 受到限制时,本机分析进程的 CPU 调度优先级会降低,以支持 Elasticsearch JVM。 此改进不适用于 Windows 环境。
数据框架分析不支持跨集群搜索。
数据框架分析作业不支持嵌套字段。 在分析期间,这些字段将被忽略。 如果选择嵌套字段作为分类或回归分析的因变量,则会发生错误。
您无法更新数据框架分析配置。 相反,请删除数据框架分析作业并创建一个新作业。
数据框架分析只能执行适合机器学习可用内存的分析。 目前不可能溢出到磁盘。 有关常规机器学习设置,请参阅Elasticsearch 中的机器学习设置。
当您创建数据框架分析作业并且由于模型太大而无法放入 JVM 中导致该过程的推理步骤失败时,请按照此 GitHub 问题中的步骤进行解决。
无法启动将使用超过 232 个文档进行训练的数据框架分析作业。 此限制仅适用于参与训练模型的文档。 如果您的源索引包含超过 232 个文档,请将training_percent
设置为一个表示少于 232 个文档的值。
在 7.8.0 版本中创建的训练模型与旧节点版本不向后兼容。 在混合集群环境中,所有节点必须至少为 7.8.0 才能使用在 7.8.0 节点上创建的模型。
删除数据框架分析作业 API不会删除包含数据框架分析的带注释数据的目标索引。 必须单独删除该索引。
数据框架分析作业的运行时取决于许多因素,例如数据集中的数据点数量、分析类型、分析中包含的字段数量、提供的超参数、分析字段的类型等等。 因此,不存在适用于所有或大多数情况的通用运行时值。 数据框架分析作业的运行时可能需要几分钟到极端情况下的几个小时。
运行时随着分析字段数量的增加而呈近似线性增加。 对于超过 100,000 个点的数据集,请从较低的训练百分比开始。 运行几个数据框架分析作业,以了解运行时如何随数据点数量的增加而扩展,以及结果的质量如何随训练百分比的增加而扩展。
在以下情况下,数据框架分析作业可能会从头开始重新启动:
- 作业在 Elasticsearch 更新期间正在进行中,
- 作业在版本更高的节点上恢复,
- 结果格式已更改,需要在目标索引中使用不同的映射。
如果满足这些条件中的任何一个,则数据框架分析作业的目标索引将被删除,并且作业将从头开始重新启动 - 无论作业处于哪个阶段。
如果文档中分析字段(数据框架分析的主题)的值是具有多个元素的数组,则在分析期间会跳过包含此字段的文档。
异常值检测需要数字或布尔数据才能进行分析。 这些算法不支持缺失值,因此将忽略具有数字或布尔类型以外的数据类型的字段。 包含字段包含缺失值、空值或数组的文档也会被忽略。 因此,目标索引可能包含没有异常值分数的文档。 这些文档仍然从源索引重新编入目标索引,但不包括在异常值检测分析中,因此不会计算异常值分数。
回归支持数字、布尔值、文本、关键字和 IP 字段。 它还可以容忍缺失值。 支持的字段包含在分析中,其他字段将被忽略。 包含字段包含数组的文档也会被忽略。 目标索引中不包含结果字段的文档不包括在回归分析中。
分类支持具有数字、布尔值、文本、关键字或 IP 数据类型的字段。 它还可以容忍缺失值。 支持的字段包含在分析中,其他字段将被忽略。 包含字段包含数组的文档也会被忽略。 目标索引中不包含结果字段的文档不包括在分类分析中。
如果您的训练数据非常不平衡,则分类分析可能无法提供良好的预测。 尽量避免高度不平衡的情况。 我们建议每个类至少有 50 个示例,并且训练数据中多数类与少数类标签的比率不超过 10 比 1。 如果您的训练数据集非常不平衡,请考虑对多数类进行降采样、对少数类进行升采样或收集更多数据。
如果您运行推理的数据包含一系列具有点分隔符和嵌套字段组合的文档(例如:{"a.b": "c", "a": {"b": "c"},...}
),则操作的性能可能会略有下降。 考虑使用尽可能简单的映射以获得最佳性能。
对于复杂的模型(例如具有许多深层树的模型),特征重要性的计算需要花费更多时间。 如果减少运行时对您很重要,请尝试禁用特征重要性、减少训练数据量(例如,通过降低训练百分比)、设置超参数值或仅选择与分析相关的字段等策略。