大规模数据帧分析
编辑大规模数据帧分析
编辑数据帧分析作业具有众多配置选项。其中一些选项可能会对模型训练所需时间产生重大影响。训练时间取决于各种因素,例如数据的统计特征、提供的超参数数量、分析中包含的特征数量、使用的硬件等等。本指南包含一些注意事项,可帮助您规划大规模训练数据帧分析模型并优化训练时间。
在本指南中,您将了解如何
- 了解配置选项对数据帧分析作业模型训练时间的影响。
先决条件
本指南假设您已熟悉
- 如何创建数据帧分析作业。如果尚未了解,请参阅 概述。
- 数据帧分析作业的工作原理。如果尚未了解,请参阅 数据帧分析作业的工作原理。
需要注意的是,训练时间、模型复杂度、数据大小和分析结果质量之间存在相关性。但是,质量的提高与训练数据量不成线性关系;对于非常大的源数据,训练模型可能需要花费数小时才能获得非常小的质量提升。当您使用数据帧分析进行大规模操作时,您需要确定对您的用例来说可接受的结果质量。确定接受标准后,您就能更好地了解在仍然达到目标的同时可以权衡的因素。
以下建议并非按顺序排列 - 数字只是为了帮助在列表项之间导航;您可以按任何顺序对其中一个或多个建议采取行动。
0.从小规模开始并快速迭代
编辑训练是一个迭代过程。尝试不同的设置和配置选项(包括但不限于超参数和特征重要性),然后评估结果并确定结果是否足够好或需要进一步实验。
每次迭代都需要时间,因此从一小部分数据开始迭代非常有用,然后在此基础上构建。
1. 设置较小的训练百分比
编辑(此步骤仅适用于回归和分类作业。)
用于训练模型的文档数量会影响训练时间。较高的训练百分比意味着较长的训练时间。
考虑从少量训练数据开始,以便更快地完成迭代。对配置满意后,增加训练百分比。根据经验,如果您的数据集包含超过 100,000 个数据点,则从 5% 或 10% 的训练百分比开始。
2. 禁用特征重要性计算
编辑(此步骤仅适用于回归和分类作业。)
特征重要性 指示哪些字段对分析生成的每个预测影响最大。根据数据集的大小,特征重要性可能需要很长时间才能计算出来。
为了缩短运行时间,如果您不需要特征重要性,请考虑为某些或所有迭代禁用它。
3. 优化包含的字段数量
编辑您可以通过仅分析相关字段来加快运行速度。
默认情况下,分析类型支持的所有字段都包含在分析中。通常,分析的字段越多,所需的资源和训练时间就越长,包括自动特征选择所需的时间。为了减少训练时间,请考虑将分析范围限制为有助于预测的相关字段。您可以通过排除不相关字段或包含相关字段来实现此目的。
特征重要性可以帮助您确定对预测贡献最大的字段。但是,由于计算特征重要性会增加训练时间,因此这可以在迭代训练过程中进行评估。
4. 增加最大线程数
编辑您可以设置分析期间使用的最大线程数。 max_num_threads
的默认值为 1。根据数据的特征,使用更多线程可能会减少训练时间,但代价是增加 CPU 使用率。请注意,尝试使用的线程数超过 CPU 内核数没有优势。
超参数优化和计算特征重要性从增加的线程数中获益最多。这可以在 coarse_parameter_search
、fine_tuning_parameters
和 writing_results
阶段看到。其余阶段不受线程数增加的影响。
要详细了解各个阶段,请参阅 数据帧分析作业的工作原理。
如果您的机器学习节点正在运行并发异常检测或数据帧分析作业,那么您可能希望将最大线程数设置为较低的值(例如默认值 1),以防止作业争夺资源。
5. 优化源索引的大小
编辑即使训练百分比较低,重新索引源索引(这是作业创建过程中的一个强制步骤)也可能需要很长时间。在重新索引期间,源索引或索引中的文档会被复制到目标索引,因此您拥有分析数据的静态副本。
如果您的数据量很大,并且不需要在整个源索引或索引上进行测试和训练,则可以通过使用源数据的子集来降低重新索引的成本。这可以通过在数据帧分析作业配置中为源索引定义过滤器来实现,或者通过手动重新索引此数据的子集以用作备用源索引来实现。
6. 配置超参数
编辑(此步骤仅适用于回归和分类作业。)
超参数优化 是模型训练过程中最复杂的数学过程,可能需要很长时间。
默认情况下,会自动选择优化的超参数值。如果您完全了解超参数的目的并为任何或所有超参数提供了合理的值,则可以通过手动配置超参数来减少此步骤所需的时间。这减少了计算负载,从而减少了训练时间。