大规模使用数据框分析
编辑大规模使用数据框分析
编辑数据框分析作业有许多配置选项。其中一些选项可能会对训练模型所花费的时间产生重大影响。训练时间取决于各种因素,例如数据的统计特征、提供的超参数数量、分析中包含的特征数量、您使用的硬件等等。本指南包含一系列注意事项,以帮助您规划大规模训练数据框分析模型并优化训练时间。
在本指南中,您将学习如何
- 了解配置选项对训练数据框分析作业模型所花费时间的影响。
前提条件
本指南假定您已经熟悉
- 如何创建数据框分析作业。如果不是,请参阅概述。
- 数据框分析作业的工作原理。如果不是,请参阅数据框分析作业的工作原理。
重要的是要注意,训练时间、模型的复杂性、数据大小以及分析结果的质量之间存在相关性。然而,质量的提高与训练数据的数量并非线性关系;对于非常大的源数据,可能需要花费数小时来训练模型,而质量的提升却很小。当您大规模使用数据框分析时,您需要决定您的用例可以接受哪种质量的结果。当您确定了接受标准后,您就可以更好地了解可以在实现目标的同时进行权衡的因素。
以下建议不是按顺序排列的——这些数字只是为了帮助在列表项之间导航;您可以按任何顺序对其中一个或多个项采取行动。
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. 配置超参数
编辑(此步骤仅适用于回归和分类作业。)
超参数优化是模型训练期间最复杂的数学过程,可能需要很长时间。
默认情况下,会自动选择优化的超参数值。如果完全了解超参数的目的,并且对任何或所有超参数都有合理的值,则可以通过手动配置超参数来减少此步骤所花费的时间。这减少了计算负载,从而减少了训练时间。