ai-center
2022.4
true
UiPath logo, featuring letters U and I in white
Guía del usuario de AI Center
Automation CloudAutomation SuiteStandalone
Last updated 6 de jun. de 2024

Procesos completos

Un proceso completo se utiliza para entrenar un nuevo modelo de aprendizaje automático y evaluar el rendimiento de este nuevo modelo, todo de una vez. Además, se ejecuta un paso de preprocesamiento antes del entrenamiento, lo que permite la manipulación o el entrenamiento de un modelo de aprendizaje automático entrenado.

Para utilizar este proceso, el paquete debe contener código para procesar datos, entrenar, evaluar y guardar un modelo (las funciones process_data(), train (), evaluate() y save() en el archivo train.py). Este código, junto con un conjunto de datos o una subcarpeta dentro de un conjunto de datos, y opcionalmente un conjunto de evaluación, produce una nueva versión de paquete, una puntuación (el resultado de la función evaluate() para la nueva versión del modelo) y cualquier output arbitrario que el usuario quisiera mantener además de la puntuación.

Crear procesos completos

Crea un nuevo proceso completo como se describe aquí. Asegúrate de proporcionar la siguiente información específica del proceso completo:

  • En el campo Tipo de proceso, selecciona Ejecución de proceso completo.
  • En el campo Elegir conjunto de datos de input, selecciona un conjunto de datos o una carpeta desde la que quieres importar datos para el entrenamiento completo. Todos los archivos en este conjunto de datos/carpeta deben estar disponibles localmente durante el tiempo de ejecución del proceso en la ruta almacenada en la variable data_directory.
  • De manera opcional, en el campo Elegir conjunto de datos de evaluación, selecciona un conjunto de datos o una carpeta desde la que quieres importar datos para la evaluación. Todos los archivos en este conjunto de datos/carpeta deben estar disponibles localmente durante el tiempo de ejecución del proceso en la ruta almacenada en la variable test_data_directory. Si no se selecciona ninguna carpeta, se espera que el proceso escriba algo en la variable test_data_directory del directorio en la función process_data. Si no seleccionas una carpeta y process_data no escribe en test_data_directory, el directorio traspasado a la función de evaluación estará vacío.
  • En la sección Introducir parámetros, escribe las variables de entorno definidas y utilizadas por tu proceso, si las hubiera. Las variables de entorno son:
    • training_data_directory, con el valor del conjunto de datos/entrenamiento predeterminado: define dónde son accesibles localmente los datos de entrenamiento para el proceso. Este directorio se utiliza como input para la función train(). La mayoría de usuarios nunca tendrá que anular esto a través de la IU y podrán únicamente escribir datos en os.environ['training_data_directory'] en la función process_data, además de esperar únicamente que el argumento data_directory en train(self, data_directory se llame con os.environ['training_data_directory'].
    • test_data_directory con el valor predeterminado del conjunto de datos/prueba: define dónde son accesibles localmente los datos de prueba para el proceso. Este directorio se utiliza como input para la función evaluate(). La mayoría de usuarios nunca tendrá que anular esto a través de la IU y podrán únicamente escribir datos en os.environ['test_data_directory'] en la función process_data, además de esperar únicamente que el argumento data_directory en evaluate(self, data_directory se llame con os.environ['test_data_directory'].
    • artifacts_directory, con artefactos de valor predeterminado: define la ruta a un directorio que será persistente como datos auxiliares relacionados con este proceso. La mayoría, si no todos los usuarios, nunca tendrá la necesidad de anular esto a través de la IU. Todo lo que puede guardarse durante la ejecución del proceso, incluidas imágenes, pdfs y subcarpetas. En concreto, cualquier dato que tu código escriba en el directorio especificado por la ruta os.environ['artifacts_directory'] se cargará al final de la ejecución del proceso y se podrá ver desde la página Detalles del proceso.
    • save_training_data, con el valor predeterminado true: si se establece en true, la carpeta training_data_directory se cargará al final de la ejecución del proceso como un output del proceso en el directorio training_data_directory.
    • save_test_data, con el valor predeterminado true: si se establece en true, la carpeta test_data_directory se cargará al final de la ejecución del proceso como un output del proceso en el directorio test_data_directory.

Dependiendo de tu elección para seleccionar o no un conjunto de datos de evaluación, puedes crear procesos completos de la siguiente manera:

Selección explícita de datos de evaluación

Mira el siguiente vídeo para obtener más información sobre cómo crear un proceso completo con la versión 1.1 del paquete recién entrenado. Asegúrate de seleccionar el mismo conjunto de datos (en nuestro ejemplo, tutorialdataset) tanto como conjunto de datos de input como conjunto de datos de evaluación.



Sin una selección explícita de datos de evaluación

Mira el siguiente vídeo para obtener más información sobre cómo crear un proceso completo con la versión 1.1 del paquete recién entrenado. Selecciona el conjunto de datos de input, pero deja el conjunto de datos de evaluación sin seleccionar.



Resultados de una ejecución de proceso completo

Aviso: La ejecución del proceso puede tardar algún tiempo. Échale un vistazo después de un tiempo para ver su estado.

Después de ejecutarse el proceso, en la página Procesos, el estado del proceso cambia a Con éxito. La página Detalles del proceso muestra los archivos y carpetas arbitrarios relacionados con la ejecución del proceso.

  • La función train() se entrena en train.csv y no en el contenido inalterado de la carpeta de datos (example1.txt y example2.txt). process_data puede utilizarse para dividir datos de forma dinámica según cualquier parámetro definido por el usuario.
  • El primer proceso completo ejecuta evaluaciones en un directorio con example1.txt, example2.txt y test.csv. El segundo proceso completo ejecuta evaluaciones en un directorio solo con test.csv. Esta es la diferencia de no seleccionar un conjunto de evaluación explícitamente al crear la segunda ejecución de proceso completo. De esta forma, puedes tener evaluaciones sobre nuevos datos de UiPath Robots, así como datos divididos de forma dinámica ya en tu proyecto.
  • Cada componente individual puede escribir artefactos arbitrarios como parte de un proceso (histogramas, registros de tensorboard, trazas de distribución, etc.).
  • El archivo .zip del paquete ML es la nueva versión del paquete generada automáticamente por el proceso de entrenamiento.
  • La carpeta Artefactos, solo visible si no está vacía, es la carpeta que reagrupa todos los artefactos generados por el proceso, y se guarda en la carpeta artifacts_directory.
  • La carpeta Entrenamiento, solo visible si se estableció save_training_data en true, es una copia de la carpeta training_data_directory.
  • La carpeta Prueba, solo visible si se estableció save_training_data en true, es una copia de la carpeta test_data_directory.

Analogía conceptual para crear tus propios procesos completos

Aquí se muestra una ejecución conceptualmente analógica de un proceso completo en un paquete, por ejemplo, la versión 1.1, el output de un proceso de entrenamiento llevado a cabo en la versión 1.0.

Importante: Este es un ejemplo simplificado. Su propósito es ilustrar cómo los conjuntos de datos y los paquetes interactúan en un proceso completo. Los pasos son meramente conceptuales y no representan cómo funciona la plataforma.
  1. Copia la versión 1.1 del paquete en ~/mlpackage.
  2. Crea un directorio llamado ./dataset.
  3. Copia el contenido del conjunto de datos de input en ./dataset.
  4. Si el usuario establece algo en el campo Elegir conjunto de datos de evaluación, copia ese conjunto de datos de evaluación y pégalo en ./dataset/test.
  5. Establece las variables de entorno training_data_directory=./dataset/training y test_data_directory=./dataset/test.
  6. Ejecuta el siguiente código 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. Mantén el contenido de ~/mlpackage como versión del paquete 1.2. Mantén los artefactos si se escriben, haz una instantánea de los datos si save_data está establecido en true.
    Aviso: La existencia de las variables de entorno training_data_directory y test_data_directory significa que process_data puede utilizar estas variables para dividir los datos de forma dinámica.

Outputs de un proceso

El archivo _results.json contiene un resumen de la ejecución del proceso y expone todas los inputs/outputs y los tiempos de ejecución para un proceso completo.
{
    "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>"  
         }
    }
}

Control del modelo

Como en otros tipos de proceso, los datos de entrenamiento y evaluación pueden conservarse en una instantánea si estableces los parámetros save_training_data = true y save_test_data = true.

¿Te ha resultado útil esta página?

Obtén la ayuda que necesitas
RPA para el aprendizaje - Cursos de automatización
Foro de la comunidad UiPath
Uipath Logo White
Confianza y seguridad
© 2005-2024 UiPath. Todos los derechos reservados.