ai-center
2022.10
false
AI Center 用户指南
Automation CloudAutomation SuiteStandalone
Last updated 2024年10月17日

完整管道

完整管道用于一次性训练新的机器学习模型并评估此新模型的性能。此外,在训练之前运行预处理步骤,从而允许对经过训练的机器学习模型进行数据操作/训练。

要使用此管道,包必须包含用于处理数据以及训练、评估和保存模型的代码(train.py 文件中的 process_data()train ()evaluate()save() 函数)。此代码与数据集或数据集中的子文件夹以及评估数据集(可选)一起生成新的包版本、分数(evaluate() 函数为新版本的模型返回的内容)以及用户想要保留的任何其他输出。

创建完整管道

此处所述创建新的完整管道。确保提供以下特定于完整管道的信息:
  • 在“管道类型”字段中,选择“完整管道运行”
  • “选择输入数据集”字段中,选择要从中导入数据以进行完整训练的数据集或文件夹。在管道运行时,该数据集/文件夹中的所有文件应在 data_directory 变量中存储的路径上本地可用。
  • (可选)在“选择评估数据集”字段中,选择要从中导入数据以进行评估的数据集或文件夹。在管道运行时,该数据集/文件夹中的所有文件应在 test_data_directory 变量中存储的路径上本地可用。如果未选择任何文件夹,则预计您的管道会将某些内容写入到 process_data 函数的 test_data_directory 变量中存储的目录。如果您未选择文件夹,并且您的 process_data 未写入到 test_data_directory,则传递到评估函数的目录将为空。
  • “输入参数”部分中,输入管道定义和使用的环境变量(如果有)。环境变量包括:
    • training_data_directory,默认值为 dataset/training:定义管道可在本地访问训练数据的位置。此目录用作 train() 函数的输入。大多数用户将不必通过用户界面覆盖此参数,只需将数据写入到 process_data 函数的 os.environ['training_data_directory'] 中,并且预期可以使用 train(self, data_directory 来调用 os.environ['training_data_directory'] 中的参数 data_directory
    • test_data_directory,默认值为 dataset/test:定义管道可在本地访问测试数据的位置。此目录用作 evaluate() 函数的输入。大多数用户将不必通过用户界面覆盖此参数,只需将数据写入到 process_data 函数的 os.environ['test_data_directory'] 中,并且预期可以使用 evaluate(self, data_directory 来调用 os.environ['test_data_directory'] 中的参数 data_directory
    • artifacts_directory,默认值为 artifacts:这定义目录的路径,该目录将保留为与此管道相关的辅助数据。大多数用户(如果不是所有用户)都不必通过用户界面覆盖此参数。管道执行期间可以保存任何内容,包括图像、pdf 和子文件夹。具体而言,代码在路径 os.environ['artifacts_directory'] 指定的目录中写入的所有数据都会在管道运行结束时上传,并且可以从“管道详细信息”页面中查看。
    • save_training_data,默认值为 true:如果设置为 true,则 training_data_directory 文件夹将在管道运行结束时作为管道的输出上传到目录 training_data_directory 下。
    • save_test_data,默认值为 true:如果设置为 true,则 test_data_directory 文件夹将在管道运行结束时作为管道的输出上传到目录 test_data_directory 下。
根据是否选择评估数据集,您可以创建完整管道:
  • 显式选择评估数据

    观看以下视频,了解如何使用新训练的包版本 1.1 来创建完整管道。请务必选择与输入数据集和评估数据集相同的数据集(在本示例中为教程数据集)。

  • 不显式选择评估数据

    观看以下视频,了解如何使用新训练的包版本 1.1 来创建完整管道。选择输入数据集,但取消选择评估数据集。

完整管道运行执行的结果

注意:管道执行可能需要一些时间。稍后请返回以查看其状态。

执行管道后,在“管道”页面中,管道的状态将更改为“成功”“管道详细信息”页面会显示与管道运行相关的任意文件和文件夹。

  • train() 函数在 train.csv 上训练,而不在数据文件夹的未更改内容(example1.txtexample2.txt)上训练。process_data 可用于根据任何用户定义的参数动态拆分数据。
  • 第一个完整管道在包含 example1.txtexample2.txttest.csv 的目录上运行评估。第二个完整管道在仅包含 test.csv 的目录上运行评估。这就是在创建第二个完整管道运行时未显式选择评估集的差异。这样,您可以对 UiPath 机器人中的新数据进行评估,还可以动态拆分项目中已有的数据。
  • 每个单独的组件都可以将任意工件(直方图、TensorBoard 日志和分布图等)写入到管道。
  • ML 包 zip 文件是由训练管道自动生成的新的包版本。
  • artifacts 文件夹(仅在不为空时可见)用于对管道生成的所有工件进行重新分组,并且保存在 artifacts_directory 文件夹下。
  • training 文件夹(仅在 save_training_data 设置为 true 时可见)是 training_data_directory 文件夹的副本。
  • test 文件夹(仅在 save_training_data 设置为 true 时可见)是 test_data_directory 文件夹的副本。

用于构建自己的完整管道的类推

以下是某个包(例如版本 1.1)上的完整管道执行的概念类推,以及版本 1.0 上训练管道的输出。

重要事项:这是一个简化的示例。其目的是说明数据集和包在完整管道中的交互方式。这些步骤仅是概念性步骤,并不代表平台的工作方式。
  1. 将包版本 1.1 复制到 ~/mlpackage
  2. 创建名为 ./dataset 的目录。
  3. 将输入数据集的内容复制到 ./dataset
  4. 如果用户在“选择评估数据集”字段中设置了某些内容,则复制该评估数据集并将其放在 ./dataset/test 中。
  5. 设置环境变量 training_data_directory=./dataset/trainingtest_data_directory=./dataset/test
  6. 执行以下 python 代码:
    from train import Main 
    m = Main() 
    m.process_data('./dataset') 
    m.evaluate(os.environ['test_data_directory']) 
    m.train(os.environ['training_data_directory']) 
    m.evaluate(os.environ['test_data_directory'])from train import Main 
    m = Main() 
    m.process_data('./dataset') 
    m.evaluate(os.environ['test_data_directory']) 
    m.train(os.environ['training_data_directory']) 
    m.evaluate(os.environ['test_data_directory'])
  7. ~/mlpackage 的内容保留为包版本 1.2。如果写入,则保留工件。如果 save_data 设置为 true,则生成数据的快照。
    注意:环境变量 training_data_directorytest_data_directory 的存在意味着 process_data 可以使用这些变量来动态拆分数据。

管道输出

_results.json 文件包含管道运行执行的摘要,并显示完整管道的所有输入/输出和执行时间。
{
    "parameters": {
        "pipeline": "< Pipeline_name >",
        "inputs": {
            "package": "<Package_name>",
            "version": "<version_number>",
      "input_data": "<storage_directory>",       
            "evaluation_data": "<storage_directory>/None",
            "gpu": "True/False"
        },
        "env": {
            "key": "value",
            ...
        }
    },
    "run_summary": {
     "execution_time": <time>, #in seconds 
     "start_at": <timestamp>, #in seconds 
     "end_at": <timestamp>, #in seconds 
     "outputs": {
        "previous_score": <previous_score>, #float
        "current_score": <current_score>, #float
        "training_data": "<training_storage_directory>/None", 
        "test_data": "<test_storage_directory>/None",
        "artifacts_data": "<artifacts_storage_directory>",
        "package": "<Package_name>",
        "version": "<new_version>"  
        }
    }
}{
    "parameters": {
        "pipeline": "< Pipeline_name >",
        "inputs": {
            "package": "<Package_name>",
            "version": "<version_number>",
      "input_data": "<storage_directory>",       
            "evaluation_data": "<storage_directory>/None",
            "gpu": "True/False"
        },
        "env": {
            "key": "value",
            ...
        }
    },
    "run_summary": {
     "execution_time": <time>, #in seconds 
     "start_at": <timestamp>, #in seconds 
     "end_at": <timestamp>, #in seconds 
     "outputs": {
        "previous_score": <previous_score>, #float
        "current_score": <current_score>, #float
        "training_data": "<training_storage_directory>/None", 
        "test_data": "<test_storage_directory>/None",
        "artifacts_data": "<artifacts_storage_directory>",
        "package": "<Package_name>",
        "version": "<new_version>"  
        }
    }
}

模型监管

与其他管道类型一样,如果将参数 save_training_data 设置为 true 并将参数 save_test_data 设置为 true,则可以在快照中保留训练数据和评估数据。
  • 创建完整管道
  • 完整管道运行执行的结果
  • 用于构建自己的完整管道的类推
  • 管道输出
  • 模型监管

此页面有帮助吗?

获取您需要的帮助
了解 RPA - 自动化课程
UiPath Community 论坛
Uipath Logo White
信任与安全
© 2005-2024 UiPath。保留所有权利。