系统设置¶
exclusive_mode
¶
Exclusive level of access to node resources
有三个访问级别:
安全:此级别假设在同一节点上还可能运行着另一实验。
中级:此级别假设在同一节点上不运行其他实验或任务,但在此等级上仍然只使用物理核心计数。
最高:此级别假设在同一节点上绝对不运行除相应实验以外的任何其他实验或任务。
默认级别为 “安全”,等效的 config.toml 参数为 exclusive_mode
。如果 multinode 已启用,则此选项将不起作用,除非在仍将应用此选项时,worker_remote_processors=1。可以选择每种独占模式,然后使用各个专家设置进行微调。更改独占模式会将所有与独占模式相关的选项重置为默认值,然后重新应用新模式的特定规则,这一操作将撤销对独占模式规则中的专家选项进行的任何微调。如果您选择根据父实验执行新/持续/调整/重新训练实验,则不会重新应用所有模式规则,而且保留任何微调。要重置模式行为,可以在“安全”和所需模式之间切换。这样,新的子实验将使用所选模式的默认系统资源。
max_cores
¶
Number of Cores to Use
指定每个实验使用的核心数量。请注意,如果您将此值指定为 0,将使用所有可用的核心。使用更小的值能降低内存占用,但可能减慢实验的速度。默认值为 0(all)。我们也可以使用环境变量 OMP_NUM_THREADS 或 OPENBLAS_NUM_THREADS (例如 Bash 中的:’export OMP_NUM_THREADS=32’ 或 ‘export OPENBLAS_NUM_THREADS=32’) 来设置该值。
max_fit_cores
¶
Maximum Number of Cores to Use for Model Fit
指定模型拟合调用需使用的最大核心数量。请注意,如果您将此值指定为 0,将使用所有可用的核心。默认值为 10。
use_dask_cluster
¶
If full dask cluster is enabled, use full cluster
指定使用全多节点分布式聚类 (True) 还是单节点 dask (False) 。在某些情况下,使用整个聚类的效率会非常低。例如,如果针对中等大小的数据一次使用一个 DGX,使用多个 DGX 节点会更高效。等效的 config.toml 参数为 use_dask_cluster
.
max_predict_cores
¶
Maximum Number of Cores to Use for Model Predict
指定模型预测调用需使用的最大核心数量。请注意,如果您将此值指定为 0,将使用所有可用的核心。默认值为 0(all)。
max_predict_cores_in_dai
¶
Maximum Number of Cores to Use for Model Transform and Predict When Doing MLI, AutoDoc
指定当在 Driverless AI MLI GUI 和 Driverless AI R 客户端和 Python 客户端中执行操作时,模型转换和预测调用需使用的最大核心数量。请注意,如果您将此值指定为 0,将使用所有可用的核心。默认值为 4。
batch_cpu_tuning_max_workers
¶
Tuning Workers per Batch for CPU
指定在 CPU 模式下用于调优的工作线程数量。如果值为 0,将使用插槽数,而如果值为 -1,将使用大于或等于 1 的所有物理核心。默认值为 0(socket count)。
cpu_max_workers
¶
Number of Workers for CPU Training
指定在 CPU 模式下用于训练的工作线程数量:
0:使用插槽数(默认值)
-1:使用所有 >= 1 的物理核心
num_gpus_per_experiment
¶
#GPUs/Experiment
指定每个实验使用的 GPU 数量。如果此值为 -1(默认值),则使用所有可用的 GPU。此值必须至少与针对每个模型需使用的 GPU 数量相等(或为 -1)。当使用 dask时,在多节点环境下,此值被称为单节点值。
min_num_cores_per_gpu
¶
Num Cores/GPU
指定针对每个 GPU 需使用的 CPU 核心的数量。为了针对每个 GPU 使用足够数量的核心,此设置限制使用的 GPU 的数量。默认值为 2。
num_gpus_per_model
¶
#GPUs/Model
指定每个模型需使用的 GPU 数量。等效的 config.toml 参数为 num_gpus_per_model
,默认值为 1 。目前,如果 num_gpus_per_model 不等于 1,则会禁用 GPU 锁定,因此只推荐将此参数用于单个实验和单个用户。将此参数设置为 -1 意味着对每个模型使用所有的 GPU。在所有情况下,XGBoost 树和线性模型都使用针对每个模型指定的 GPU 的数量,而 LightGBM 和 Tensorflow 则是每个模型使用 1 GPU,并在多个 GPU 上运行多个模型。FTRL 不使用 GPU。Rulefit 则在涉及使用 LightGBM 获得树的各个部分中使用 GPU。当使用 dask 时,在多节点环境下,此参数也被称为单节点值。
num_gpus_for_prediction
¶
Num. of GPUs for Isolated Prediction/Transform
指定当在 fit
/fit_transform
以外运行时,模型的 predict
和转换器的 transform
需使用 GPU 数量。如果 predict
或 transform
在同一进程中被调用为 fit
/fit_transform
,则 GPU 的数量会匹配。新进程会将此计数用于适用的模型和转换器。注意,启用 tensorflow_nlp_have_gpus_in_production
会对相关 TensorFlow NLP 转换器覆盖此设置。等效的 config.toml 参数为 num_gpus_for_prediction
,默认值为 “0”。
请注意:当使用 GPU 时,TensorFlow、PyTorch 模型和转换器以及 RAPIDS 会依据 GPU 进行预测。而 RAPIDS 会要求在 GPU 上使用 Driverless AI Python 评分包。当使用 dask 时,在多节点环境下,此参数被称为单节点值。
gpu_id_start
¶
GPU Starting ID
指定从哪个 gpu_id 开始。如果使用 CUDA_VISIBLE_DEVICES=… 控制 GPU (首选方法),gpu_id=0 为该受限制设备列表中的第一个设备。例如,如果 CUDA_VISIBLE_DEVICES='4,5'
,则 gpu_id_start=0
表示设备 #4。
在专家模式下,若要在 2 个 GPU 的其中一个上运行 2 个实验,则:
实验 1: num_gpus_per_model=1, num_gpus_per_experiment=1, gpu_id_start=0
实验 2: num_gpus_per_model=1, num_gpus_per_experiment=1, gpu_id_start=1
在专家模式下,若要在 2 个 GPU 的其中一个上运行 8 个实验,则:
实验 1: num_gpus_per_model=1, num_gpus_per_experiment=4, gpu_id_start=0
实验 2: num_gpus_per_model=1, num_gpus_per_experiment=4, gpu_id_start=4
若每个模型都要在所有 4 个 GPU 上运行,则
实验 1: num_gpus_per_model=4, num_gpus_per_experiment=4, gpu_id_start=0
实验 2: num_gpus_per_model=4, num_gpus_per_experiment=4, gpu_id_start=4
如果 num_gpus_per_model!=1,则会禁用全局 GPU 锁定。造成此种结果的原因是底层算法不支持任意 GPU Id,而只支持顺序 ID,因此必须确保正确设置此值以避免所有用户重复执行所有实验。
更多信息,请访问 https://github.com/NVIDIA/nvidia-docker/wiki/nvidia-docker#gpu-isolation。请注意,选择 GPU 并不会导致封装,因此 gpu_id_start + num_gpus_per_model 必须小于可见 GPU 的数量。
assumed_simultaneous_dt_forks_munging
¶
Assumed/Expected number of munging forks
用于确保数据表不会导致系统过载的预期最大分叉数。如果在实际情况下超过此数值,则系统将开始出现速度变慢的问题。默认值为 3。
max_max_dt_threads_munging
¶
Maximum of threads for datatable for munging
用于数据再处理的数据表的最大线程数。
max_dt_threads_munging
¶
Max Number of Threads to Use for datatable and OpenBLAS for Munging and Model Training
指定在数据再处理进程中用于数据表和 OpenBLAS 的最大线程数(针对每个进程应用):
0 = 使用所有线程
-1 = 自动选择线程数量(默认值)
max_dt_threads_readwrite
¶
Max Number of Threads to Use for datatable Read and Write of Files
指定在数据读写进程中用于数据表和 OpenBLAS 的最大线程数(针对每个进程应用):
0 = 使用所有线程
-1 = 自动选择线程数量(默认值)
max_dt_threads_stats_openblas
¶
Max Number of Threads to Use for datatable Stats and OpenBLAS
指定用于数据表统计和 OpenBLAS 最大线程数(针对每个进程应用):
0 = 使用所有线程
-1 = 自动选择线程数量(默认值)
allow_reduce_features_when_failure
¶
Whether to reduce features when model fails (GPU OOM Protection)
(用于大数据或具有大量特征的)大模型会耗尽 GPU 的内存。此选项是主要用于避免因 GPU 内存溢出 (OOM) 而导致模型构建失败。目前在正常拟合或使用 Optuna 时适用于所有非 dask XGBoost 模型(即 GLMModel、XGBoostGBMModel、XGBoostDartModel、XGBoostRFModel)。
在模型未失败之前,可以通过减少特征数量来实现。例如,如果 XGBoost 耗尽 GPU 内存,将会检测出这一事件,并且(无论是否设置 skip_model_failures)我们可使用 XGBoost 对特征的子集执行特征选择,这样就会将数据集逐步减小到原来的 1/2,从而会有更多的模型来覆盖所有特征。此拆分一直持续到不再失败。之后,使用所有子模型通过绝对信息增益来估算变量重要性,以判断需要包括哪些特征。最终,将使用不会导致 OOM 发生的特征计数来构建具有最重要特征的单个模型。
请注意:
默认情况下,此选项被设置为 ‘auto’ -> ‘on’,即只要条件允许,就将此选项设置为 ‘on’。
开启此选项时并不能保证再现性。因此,如果用户针对实验启用再现性,’auto’ 会自动将此选项设置为 ‘off’。这是因为对于同一实验种子而言,运行 OOM 的条件会发生变化。
在特征选择阶段中,只减少特征而不减少行。
另请参见 reduce_repeats_when_failure 和 fraction_anchor_reduce_features_when_failure.
reduce_repeats_when_failure
¶
Number of repeats for models used for feature selection during failure recovery
通过使用 allow_reduce_features_when_failure,此选项可控制子模型用于特征选择的次数。单次只会使子模型考虑特征的单个子集,而多次则会考虑更多的特征,从而有更大的机会重要的交互。次数越多,准确度越高。此选项的代价与重复次数成正比。默认值为 1 。
fraction_anchor_reduce_features_when_failure
¶
Fraction of features treated as anchor for feature selection during failure recovery
通过使用 allow_reduce_features_when_failure,此选项可控制充当锚点的特征比例,对于所有子模型,这些特征都固定。在每次重复时都将获得新的锚点。对于调优和演化,概率取决于其他个体的任何先验重要性(如果存在),而最终模型会对锚点特征使用统一的概率。此比例默认为 0.1 。
xgboost_reduce_on_errors_list
¶
Errors From XGBoost That Trigger Reduction of Features
来自 XGBoost 的错误字符串,用于在减小的子模型上触发调整。请参见 allow_reduce_features_when_failure。
lightgbm_reduce_on_errors_list
¶
Errors From LightGBM That Trigger Reduction of Features
来自 LightGBM 的错误字符串,用于在减小的子模型上触发调整。请参见 allow_reduce_features_when_failure。
num_gpus_per_hyperopt_dask
¶
GPUs / HyperOptDask
指定每个模型 hyperopt 训练任务要使用的 GPU 数量。若要使用所有 GPU,将此值设置为 -1。例如,当此值设置为 -1 且有 4 个 GPU 可用时,所有 GPU 都可以用于单个模型在整个 Dask 聚类内的训练。如果 GPU 被禁用或系统上没有 GPU,则忽略此设置。在多节点上下文中,此设置表示每个节点的值。
detailed_traces
¶
Enable Detailed Traces
指定在运行实验时是否在 Driverless AI 跟踪功能中启用详细跟踪。默认禁用此选项。
debug_log
¶
Enable Debug Log Level
如果启用,日志文件也会包括调试日志。默认禁用此选项。
log_system_info_per_experiment
¶
Enable Logging of System Information for Each Experiment
指定在每个实验日志启动时是否包括 CPU、GPU 和硬盘空间等系统信息。请注意,系统日志中已经包括这些信息。默认启用此选项。