使用 Python 设置自动化机器学习训练

适用于:Python SDK azureml v1

在本指南中,了解如何使用 Azure 机器学习自动化机器学习将自动化机器学习训练设置为通过 Azure 机器学习 Python SDK 来运行。 自动化 ML 将自动选择算法和超参数,并生成随时可用于部署的模型。 本指南提供了可用于配置自动化机器学习试验的各种选项的详细信息。

有关端到端示例,请参阅教程:自动化机器学习 - 训练回归模型

如果你更喜欢无代码体验,还可以 在 Azure 机器学习工作室中设置无代码自动化机器学习训练

先决条件

在本文中,你需要:

选择试验类型

在开始试验之前,应确定要解决的机器学习问题类型。 自动化机器学习支持 classificationregressionforecasting 任务类型。 详细了解任务类型

注意

支持自然语言处理 (NLP) 任务:图像分类(多类和多标签)以及命名实体识别以公共预览版提供。 详细了解自动化 ML 中的 NLP 任务

这些预览版功能现已推出,但未提供服务级别协议。 某些功能可能不受支持或者受限。 有关详细信息,请参阅适用于 Azure 预览版的补充使用条款

下面的代码使用 AutoMLConfig 构造函数中的 task 参数将试验类型指定为 classification

from azureml.train.automl import AutoMLConfig

# task can be one of classification, regression, forecasting
automl_config = AutoMLConfig(task = "classification")

数据源和格式

自动化机器学习支持驻留在本地桌面上或云中(例如 Azure Blob 存储)的数据。 数据可以读入 Pandas 数据帧或 Azure 机器学习 TabularDataset 中 。 了解有关数据集的详细信息

机器学习中对训练数据的要求:

  • 数据必须为表格格式。
  • 要预测的值(目标列)必须位于数据中。

重要

自动化 ML 试验不支持通过使用基于标识的数据访问的数据集进行训练。

对于远程试验,必须能够从远程计算访问训练数据。 自动化 ML 仅在处理远程计算时才接受 Azure 机器学习 TabularDataset

Azure 机器学习数据集公开的功能可以:

  • 轻松地将数据从静态文件或 URL 源传输到工作区。
  • 在云计算资源上运行时,使数据可用于训练脚本。 有关使用 Dataset 类将数据装载到远程计算目标的示例,请参阅如何使用数据集进行训练

下面的代码从一个 Web URL 创建 TabularDataset。 有关如何从其他源(例如本地文件和数据存储)创建数据集的代码示例,请参阅创建 TabularDataset

from azureml.core.dataset import Dataset
data = "https://automlsamplenotebookdata.blob.core.chinacloudapi.cn/automl-sample-notebook-data/creditcard.csv"
dataset = Dataset.Tabular.from_delimited_files(data)

对于本地计算试验,我们建议使用 pandas 数据帧以提高处理速度。

import pandas as pd
from sklearn.model_selection import train_test_split

df = pd.read_csv("your-local-file.csv")
train_data, test_data = train_test_split(df, test_size=0.1, random_state=42)
label = "label-col-name"

训练、验证和测试数据

可以直接在 AutoMLConfig 构造函数中指定单独的训练数据和验证数据集。 详细了解如何为 AutoML 试验配置训练、验证、交叉验证和测试数据

如果未显式指定 validation_datan_cross_validation 参数,则自动化 ML 将应用默认技术来决定如何执行验证。 此决定依赖于分配给 training_data 参数的数据集中的行数。

训练数据大小 验证技术
大于 20,000 行 将应用训练/验证数据拆分。 默认行为是将初始训练数据集的 10% 用作验证集。 然后,该验证集将用于指标计算。
小于 20,000 行 将应用交叉验证方法。 默认折数取决于行数。
如果数据集小于 1,000 行,则使用 10 折。
如果行数在 1,000 到 20,000 之间,则使用 3 折。

提示

你可以上传测试数据(预览)来评估自动化 ML 为你生成的模型。 这些功能属于试验性预览功能,可能随时更改。 了解如何:

如果你偏好无代码体验,请参阅“使用工作室 UI 设置 AutoML”中的步骤 12

大型数据

自动化 ML 支持使用有限数量的算法针对大型数据进行训练,以便在小型虚拟机上成功生成大数据的模型。 自动化 ML 启发式方法依据数据大小、虚拟机内存大小、试验超时和特征化设置等属性来确定是否应该应用这些大型数据算法。 详细了解自动化 ML 支持哪些模型

如果要替代这些启发式方法,请应用以下设置:

任务 设置 说明
阻止数据流式处理算法 AutoMLConfig 对象中使用 blocked_models,并列出不希望使用的模型。 导致运行失败或运行时间过长
使用数据流式处理算法 AutoMLConfig 对象中使用 allowed_models,并列出要使用的模型。
使用数据流式处理算法
(工作室 UI 试验)
阻止除要使用的大数据算法之外的所有模型。

用于运行试验的计算环境

接下来,确定要在何处训练模型。 自动化机器学习训练试验可在以下计算选项中运行。

  • 选择本地计算:如果你的方案涉及到使用小数据和短训练(即,每个子运行持续几秒或几分钟)进行初始探索或演示,则可能更适合在本地计算机上进行训练。 这样就无需进行设置,并且可以直接使用基础结构资源(电脑或 VM)。 有关本地计算示例,请参阅此笔记本

  • 选择远程 ML 计算群集:如果使用较大的数据集进行训练(例如,在生产训练中创建需要较长时间训练的模型),则远程计算可以提供好得多的端到端时间性能,因为 AutoML 会在群集节点之间并行化训练。 在远程计算中,内部基础结构的启动时间将遵循每个子运行增加约 1.5 分钟的规律,如果 VM 尚未启动并运行,群集基础结构的启动时间将增加额外的时间。Azure 机器学习托管计算是一项托管服务,能够在 Azure 虚拟机群集上训练机器学习模型。 计算实例也支持作为计算目标。

  • Azure 订阅中的 Azure Databricks 群集。 有关更多详细信息,可参阅为自动化 ML 设置 Azure Databricks 群集。 有关包含 Azure Databricks 的示例 Notebook,请参阅此 GitHub 站点

选择计算目标时请考虑以下因素:

优点(优势) 缺点(劣势)
本地计算目标
  • 无需花费时间来启动环境
  • 特征子集
  • 无法并行化运行
  • 对于大数据表现较差。
  • 训练时无数据流式处理
  • 没有基于 DNN 的特征化
  • 仅限 Python SDK
  • 远程 ML 计算群集
  • 完整的特征集
  • 并行化子运行
  • 大数据支持
  • 基于 DNN 的特征化
  • 计算群集的按需动态可伸缩性
  • 还提供无代码体验 (Web UI)
  • 需要花费时间来启动群集节点
  • 需要花费时间来启动每个子运行
  • 配置试验设置

    可以使用多个选项来配置自动化机器学习试验。 通过实例化 AutoMLConfig 对象来设置这些参数。 有关参数的完整列表,请参阅 AutoMLConfig 类

    以下示例是针对分类任务的。 该试验使用加权 AUC 作为主要指标,并将试验超时设置为 30 分钟,且包含 2 折交叉验证。

        automl_classifier=AutoMLConfig(task='classification',
                                       primary_metric='AUC_weighted',
                                       experiment_timeout_minutes=30,
                                       blocked_models=['XGBoostClassifier'],
                                       training_data=train_data,
                                       label_column_name=label,
                                       n_cross_validations=2)
    

    你还可以配置需要额外设置的预测任务。 有关更多详细信息,请参阅为时序预测设置自动化机器学习一文。

        time_series_settings = {
                                'time_column_name': time_column_name,
                                'time_series_id_column_names': time_series_id_column_names,
                                'forecast_horizon': n_test_periods
                               }
        
        automl_config = AutoMLConfig(
                                     task = 'forecasting',
                                     debug_log='automl_oj_sales_errors.log',
                                     primary_metric='normalized_root_mean_squared_error',
                                     experiment_timeout_minutes=20,
                                     training_data=train_data,
                                     label_column_name=label,
                                     n_cross_validations=5,
                                     path=project_folder,
                                     verbosity=logging.INFO,
                                     **time_series_settings
                                    )
    

    支持的模型

    在自动化和优化过程中,自动化机器学习会尝试各种模型和算法。 用户不需要指定算法。

    这三个不同的 task 参数值确定要应用的算法或模型的列表。 使用 allowed_modelsblocked_models 参数通过要包含或排除的可用模型来进一步修改迭代。 下表按任务类型汇总了支持的模型。

    注意

    如果计划将自动化 ML 创建的模型导出为 ONNX 模型,则只有那些标有 *(星号)的算法才能转换为 ONNX 格式。 详细了解如何将模型转换为 ONNX

    另请注意,ONNX 目前只支持分类和回归任务。

    分类 回归 时序预测
    逻辑回归* 弹性网络* AutoARIMA
    Light GBM* Light GBM* Prophet
    梯度提升* 梯度提升* 弹性网络
    决策树* 决策树* Light GBM
    K 最近的邻域* K 最近的邻域* 渐进提升
    线性 SVC* LARS Lasso* 决策树
    支持矢量分类 (SVC)* 随机梯度下降 (SGD)* Arimax
    随机林* 随机林 LARS Lasso
    极端随机树* 极端随机树* 随机梯度下降 (SGD)
    Xgboost* Xgboost* 随机林
    平均感知器分类器 在线梯度下降回归量 Xgboost
    Naive Bayes* 快速线性回归量 ForecastTCN
    随机梯度下降 (SGD)* Naive
    线性 SVM 分类器* SeasonalNaive
    平均值
    SeasonalAverage
    ExponentialSmoothing

    主要指标

    primary_metric 参数决定了将在模型训练期间用于优化的指标。 可以选择的可用指标由选择的任务类型决定。

    选择自动化机器学习要优化的主要指标取决于许多因素。 建议主要考虑选择最能体现业务需求的指标。 然后考虑指标是否适用于数据集配置文件(数据大小、范围、类分布等)。 以下部分根据任务类型和业务方案总结了推荐的主要指标。

    如需了解上述指标的具体定义,请参阅了解自动化机器学习结果集

    分类方案的指标

    对于类别偏斜严重(类别不均衡)的小型数据集或预期的指标值非常接近 0.0 或 1.0 时,依赖阈值的指标(如 accuracyrecall_score_weightednorm_macro_recallprecision_score_weighted)可能也不是最优的。 在这些情况下,对于主要指标,AUC_weighted 可能是更好的选择。 自动机器学习完成后,可以根据最能满足你业务需求的指标选择所需模型。

    指标 示例用例
    accuracy 图像分类、情绪分析、流失预测
    AUC_weighted 欺诈检测、图像分类、异常检测/垃圾邮件检测
    average_precision_score_weighted 情绪分析
    norm_macro_recall 流失预测
    precision_score_weighted

    回归方案的指标

    r2_scorenormalized_mean_absolute_errornormalized_root_mean_squared_error 均在尝试最大限度减少预测错误。 r2_scorenormalized_root_mean_squared_error 在最大限度减少平均平方误差,同时 normalized_mean_absolute_error 在最大限度减少平均绝对误差值。 绝对值会将所有误差大小均视为错误,而平方误差会对具有较大绝对值的误差实行更多处罚。 可以选择优化平方误差或绝对误差,具体取决于是否错误越大则处罚越多。

    r2_scorenormalized_root_mean_squared_error 的主要区别是二者的标准与含义。 normalized_root_mean_squared_error 是以范围为标准的根均方误差,可解释为预测的平均误差大小。 r2_score 是以数据方差估计值为标准的均方误差。 它是模型可捕获的变化比例。

    注意

    r2_scorenormalized_root_mean_squared_error 的作用类似于主要指标。 如果应用固定验证集,则这两个指标将优化均方误差这一相同目标,并将通过相同的模型进行优化。 如果只有一个训练集且应用交叉验证,则二者将略有不同,原因是 normalized_root_mean_squared_error 的规范化器将固定在训练集范围,而 r2_score 的规范化器作为每个折叠的方差,对于每个折叠均有所不同。

    如果关注点是排序而非精确值,则 spearman_correlation 可能是更好的选择,因为它会衡量实际值与预测值之间的排序相关性。

    然而,当前没有可处理相对差异的主要回归指标。 例如,对于 3 万美元的薪水和 2000 万美元的薪金,如果这两个数据点属于相同的回归数据集或时序标识符指定的同一时序,r2_scorenormalized_mean_absolute_errornormalized_root_mean_squared_error 均会将预测误差视为 2 万美元。 但实际上,在 2000 万美元薪水的基础上增减 2 万美元和增减前的预测应该非常接近(相对差值很小,增减占比 0.1%),而在 3 万美元薪水的基础上增减 2 万美元和增减前的预测应该非常大(相对差值很大,增减占比 67%)。 要处理相对差异的问题,可通过可用主要指标来训练模型,然后选择具有最佳 mean_absolute_percentage_errorroot_mean_squared_log_error 的模型。

    指标 示例用例
    spearman_correlation
    normalized_root_mean_squared_error 价格预测(房屋/产品/小费),查看分数预测
    r2_score 航空延迟、薪金估算、Bug 解决时间
    normalized_mean_absolute_error

    时序预测方案的指标

    这些建议与针对回归方案提供的建议类似。

    指标 示例用例
    normalized_root_mean_squared_error 价格预测(预测)、库存优化、需求预测
    r2_score 价格预测(预测)、库存优化、需求预测
    normalized_mean_absolute_error

    数据特征化

    在每个自动化机器学习实验中,数据都是自动缩放和规范化,以帮助对不同规模上的特征敏感的某些算法。 此缩放和规范化称为特征化。 有关更多详细信息和代码示例,请参阅 AutoML 中的特征化

    注意

    自动化机器学习特征化步骤(特征规范化、处理缺失数据,将文本转换为数字等)成为了基础模型的一部分。 使用模型进行预测时,将自动向输入数据应用在训练期间应用的相同特征化步骤。

    AutoMLConfig 对象中配置试验时,可以启用/禁用设置 featurization。 下表列出了 AutoMLConfig 对象中的特征化的已接受设置。

    特征化配置 说明
    "featurization": 'auto' 指示在处理过程中自动执行数据护栏和特征化步骤。 默认设置。
    "featurization": 'off' 表示不应自动执行特征化步骤。
    "featurization": 'FeaturizationConfig' 指示应当使用自定义特征化步骤。 了解如何自定义特征化

    集成配置

    集成模型默认启用,在 AutoML 运行中显示为最终的运行迭代次数。 目前支持 VotingEnsembleStackEnsemble

    投票采用使用加权平均值的软投票。 堆栈实现使用一个两层实现,其中的第一层具有与投票集成相同的模型,第二层模型用于从第一层中查找模型的最佳组合。

    如果使用 ONNX 模型,或启用了模型可解释性,则会禁用堆栈,仅使用投票。

    可以通过使用 enable_voting_ensembleenable_stack_ensemble 布尔参数来禁用集成训练。

    automl_classifier = AutoMLConfig(
                                     task='classification',
                                     primary_metric='AUC_weighted',
                                     experiment_timeout_minutes=30,
                                     training_data=data_train,
                                     label_column_name=label,
                                     n_cross_validations=5,
                                     enable_voting_ensemble=False,
                                     enable_stack_ensemble=False
                                    )
    

    若要更改默认集成行为,可以将多个默认参数作为 kwargsAutoMLConfig 对象中提供。

    重要

    以下参数不是 AutoMLConfig 类的显式参数。

    • ensemble_download_models_timeout_sec:在 VotingEnsemble 和 StackEnsemble 模型生成期间,会下载来自先前子运行的多个拟合模型。 如果遇到此错误 AutoMLEnsembleException: Could not find any models for running ensembling,则可能需要为要下载的模型提供更多时间。 默认值为 300 秒并行下载这些模型,且没有最大超时限制。 如果需要更多时间,请将此参数配置为大于 300 秒的值。

      注意

      如果已超时且下载了模型,则融合会使用它下载的多个模型继续执行。 并不需要下载所有模型才能在超时内完成。 以下参数只应用于 StackEnsemble 模型:

    • stack_meta_learner_type:元学习器是针对单个异类模型的输出而训练出来的模型。 默认的元学习器是用于分类任务的 LogisticRegression(或为 LogisticRegressionCV,如果启用了交叉验证的话),以及用于回归/预测任务的 ElasticNet(或为 ElasticNetCV,如果启用了交叉验证的话)。 此参数可以是下列字符串之一:LogisticRegressionLogisticRegressionCVLightGBMClassifierElasticNetElasticNetCVLightGBMRegressorLinearRegression

    • stack_meta_learner_train_percentage:指定为训练元学习器而保留的训练集的比例(选择训练的训练和验证类型时)。 默认值为 0.2

    • stack_meta_learner_kwargs:要传递给元学习器的初始值设定项的可选参数。 这些参数和参数类型对来自相应模型构造函数的参数和参数类型进行镜像,然后再转发到模型构造函数。

    下面的代码示例展示了如何在 AutoMLConfig 对象中指定自定义融合行为。

    ensemble_settings = {
                         "ensemble_download_models_timeout_sec": 600
                         "stack_meta_learner_type": "LogisticRegressionCV",
                         "stack_meta_learner_train_percentage": 0.3,
                         "stack_meta_learner_kwargs": {
                                                        "refit": True,
                                                        "fit_intercept": False,
                                                        "class_weight": "balanced",
                                                        "multi_class": "auto",
                                                        "n_jobs": -1
                                                      }
                        }
    automl_classifier = AutoMLConfig(
                                     task='classification',
                                     primary_metric='AUC_weighted',
                                     experiment_timeout_minutes=30,
                                     training_data=train_data,
                                     label_column_name=label,
                                     n_cross_validations=5,
                                     **ensemble_settings
                                    )
    

    退出条件

    可以在 AutoMLConfig 中定义几个选项来结束试验。

    条件 description
    无条件 如果未定义任何退出参数,则试验将继续,直到主要指标不再需要执行其他步骤。
    在一段时间后 在设置中使用 experiment_timeout_minutes 来定义试验应继续运行多长时间(以分钟为单位)。

    若要避免试验超时失败,最少需要 15 分钟,如果行数乘以列数的大小超过 10,000,000,则最少需要 60 分钟。
    在达到分数后 使用 experiment_exit_score 将在达到指定的主要指标分数后完成试验。

    运行试验

    警告

    如果多次使用相同的配置设置和主要指标运行试验,你可能会发现每个试验的最终指标分数与生成的模型之间存在差异。 自动化 ML 使用的算法本身具有随机性,这可能会导致试验输出的模型与建议的模型的最终指标分数(如准确度)之间出现细微差异。 你看到的结果也可能会模型名称相同但使用的超参数不同。

    对于自动化 ML,可以创建 Experiment 对象,这是 Workspace 中用于运行实验的命名对象。

    from azureml.core.experiment import Experiment
    
    ws = Workspace.from_config()
    
    # Choose a name for the experiment and specify the project folder.
    experiment_name = 'Tutorial-automl'
    project_folder = './sample_projects/automl-classification'
    
    experiment = Experiment(ws, experiment_name)
    

    提交试验以运行和生成模型。 将 AutoMLConfig 传递给 submit 方法以生成模型。

    run = experiment.submit(automl_config, show_output=True)
    

    注意

    首先在新的计算机上安装依赖项。 最长可能需要在 10 分钟后才会显示输出。 将 show_output 设置为 True 可在控制台上显示输出。

    群集上的多个子运行

    自动化 ML 试验子运行可以在已经运行另一个试验的群集上执行。 但是,计时取决于群集具有的节点数,以及这些节点是否可用于运行不同的试验。

    群集中的每个节点充当单个可以完成一次训练运行的虚拟机 (VM);对于自动化 ML,这意味着一个子运行。 如果所有节点都处于忙状态,则新的试验将排队。 但是,如果有空闲节点,新的试验将在可用节点/VM 中并行运行自动化 ML 子运行。

    为了管理子运行及其执行时间,建议你为每个试验创建一个专用群集,使试验的 max_concurrent_iterations 数与群集中的节点数匹配。 这样就可以同时使用群集的所有节点以及所需数量的并发子运行/迭代。

    AutoMLConfig 对象中配置 max_concurrent_iterations。 如果未进行配置,则默认情况下每个试验仅允许一个并发子运行/迭代。 对于计算实例,可以将 max_concurrent_iterations 设置为与计算实例 VM 上的核心数相同。

    探索模型和指标

    自动化 ML 提供用于监视和评估训练结果的选项。

    你可以使用自定义代码解决方案 print_model() 查看应用于特定自动化 ML 运行的超参数、缩放和规范化技术以及算法。

    提示

    自动化 ML 还允许你查看为自动 ML 训练的模型生成的模型训练代码。 此功能以公共预览版提供,可以随时更改。

    监视自动化机器学习运行

    对于自动化机器学习运行,若要访问根据以前的运行生成的图表,请将 <<experiment_name>> 替换为相应的试验名称:

    from azureml.widgets import RunDetails
    from azureml.core.run import Run
    
    experiment = Experiment (workspace, <<experiment_name>>)
    run_id = 'autoML_my_runID' #replace with run_ID
    run = Run(experiment, run_id)
    RunDetails(run).show()
    

    自动化机器学习的 Jupyter Notebook 小组件

    测试模型(预览版)

    重要

    使用测试数据集测试模型以评估自动化 ML 生成的模型是一项预览功能。 此功能是一个试验性预览功能,可能会随时更改。

    test_datatest_size 参数传递到 AutoMLConfig 中,会自动触发远程测试运行,该运行使用提供的测试数据来评估自动化 ML 在试验完成后推荐的最佳模型。 确定最佳模型后,便会在试验结束时完成该远程测试运行。 了解如何将测试数据传递到 AutoMLConfig

    获取测试作业结果

    可以从 Azure 机器学习工作室或使用以下代码从远程测试作业中获取预测和指标。

    best_run, fitted_model = remote_run.get_output()
    test_run = next(best_run.get_children(type='automl.model_test'))
    test_run.wait_for_completion(show_output=False, wait_post_processing=True)
    
    # Get test metrics
    test_run_metrics = test_run.get_metrics()
    for name, value in test_run_metrics.items():
        print(f"{name}: {value}")
    
    # Get test predictions as a Dataset
    test_run_details = test_run.get_details()
    dataset_id = test_run_details['outputDatasets'][0]['identifier']['savedId']
    test_run_predictions = Dataset.get_by_id(workspace, dataset_id)
    predictions_df = test_run_predictions.to_pandas_dataframe()
    
    # Alternatively, the test predictions can be retrieved via the run outputs.
    test_run.download_file("predictions/predictions.csv")
    predictions_df = pd.read_csv("predictions.csv")
    
    

    模型测试作业将生成 predictions.csv 文件,该文件存储在与工作区一起创建的默认数据存储中。 此数据存储对使用同一订阅的所有用户可见。 如果用于测试作业或由测试作业创建的任何信息需要保密,则不建议使用测试作业。

    测试现有的自动化 ML 模型

    若要测试创建的其他现有自动化 ML 模型、最佳作业或子作业,请在主 AutoML 运行完成后使用 ModelProxy() 测试模型。 ModelProxy() 已返回预测和指标,无需进一步处理即可检索输出。

    注意

    ModelProxy 是一个试验性预览类,可能会随时更改。

    以下代码演示了如何使用 ModelProxy.test() 方法从任何运行中测试模型。 在 test() 方法中,可以选择指定是否只想使用 include_predictions_only 参数查看测试运行的预测。

    from azureml.train.automl.model_proxy import ModelProxy
    
    model_proxy = ModelProxy(child_run=my_run, compute_target=cpu_cluster)
    predictions, metrics = model_proxy.test(test_data, include_predictions_only= True
    )
    

    注册和部署模型

    测试模型并确认想在生产环境中使用它后,可以注册该模型以备后用,并且

    若要从自动化 ML 运行注册模型,请使用 register_model() 方法。

    
    best_run = run.get_best_child()
    print(fitted_model.steps)
    
    model_name = best_run.properties['model_name']
    description = 'AutoML forecast example'
    tags = None
    
    model = run.register_model(model_name = model_name, 
                                      description = description, 
                                      tags = tags)
    

    有关如何创建部署配置以及将注册模型部署到 Web 服务的详细信息,请参阅如何部署模型以及在何处部署模型

    提示

    对于已注册的模型,可通过 Azure 机器学习工作室获取一键式部署。 请参阅如何从工作室部署已注册的模型

    模型可解释性

    模型可解释性让你可以了解模型进行预测的原因,以及基础特征重要性值。 SDK 包括各种包,这些包用于在训练和推理时间为本地和已部署的模型启用模型可解释性功能。

    了解如何专门在自动化机器学习试验中启用可解释性特征

    有关如何在自动化机器学习之外的 SDK 其他区域中启用模型解释和特征重要性的一般信息,请参阅关于可解释性的概念文章

    注意

    解释客户端目前不支持 ForecastTCN 模型。 如果此模型作为最佳模型返回,则不会返回解释仪表板,并且不支持按需解释运行。

    后续步骤