ai-center
2022.4
false
Guia do usuário do AI Center
Automation CloudAutomation SuiteStandalone
Last updated 17 de out de 2024

Pipelines completos

Um pipeline completo é usado para treinar um novo modelo de aprendizado de máquina e avaliar o desempenho desse novo modelo, tudo de uma vez. Além disso, uma etapa de pré-processamento é executada antes do treinamento, permitindo a manipulação de dados/treinamento de um modelo de machine learning treinado.

Para usar esse pipeline, o pacote deve conter o código para processar dados, treinar, avaliar e salvar um modelo (as funções process_data(), train () evaluate() e save() no arquivo train.py). Esse código, juntamente com um conjunto de dados ou uma subpasta dentro de um conjunto de dados e, opcionalmente, um conjunto de avaliação, produz uma nova versão do pacote, uma pontuação (o retorno da função evaluate() para a nova versão do modelo) e quaisquer saídas arbitrárias que o usuário gostaria de persistir, além da pontuação.

Criação de pipelines completos

Crie um novo pipeline completo, conforme descrito aqui. Certifique-se de fornecer as seguintes informações específicas do pipeline completo:

  • No campo Pipeline type, selecione Full Pipeline run.
  • No campo Choose input dataset, selecione um conjunto de dados ou uma pasta da qual você deseja importar dados para o treinamento completo. Todos os arquivos nesse conjunto de dados/pasta devem estar disponíveis localmente durante o tempo de execução do pipeline no caminho armazenado na variável data_directory.
  • Opcionalmente, no campo Escolher conjunto de dados de avaliação, selecione um conjunto de dados ou uma pasta da qual você deseja importar dados para a avaliação. Todos os arquivos nesse conjunto de dados/pasta devem estar disponíveis localmente durante o tempo de execução do pipeline no caminho armazenado na variável test_data_directory. Se nenhuma pasta estiver selecionada, espera-se que seu pipeline grave algo na variável de diretório test_data_directory na função process_data. Se você não selecionar uma pasta e seu process_data não gravar em test_data_directory, então o diretório passado para a função de avaliação estará vazio.
  • Na seção Inserir parâmetros, insira as variáveis de ambiente definidas e usadas por seu pipeline, se houver. As variáveis de ambiente são:
    • training_data_directory, com o valor padrão dataset/training: define onde os dados do treinamento estão acessíveis localmente para o pipeline. Esse diretório é usado como entrada para a função train(). A maioria dos usuários nunca terá que substituir isso por meio da UI e pode apenas gravar dados em os.environ['training_data_directory'] na função process_data e pode apenas esperar que o argumento data_directory em train(self, data_directory seja chamado com os.environ['training_data_directory'].
    • test_data_directory com o valor padrão dataset/test: define onde os dados do teste estão acessíveis localmente para o pipeline. Esse diretório é usado como entrada para a função evaluate(). A maioria dos usuários nunca terá que substituir isso por meio da UI e pode apenas gravar dados em os.environ['test_data_directory'] na função process_data e pode apenas esperar que o argumento data_directory em evaluate(self, data_directory seja chamado com os.environ['test_data_directory'].
    • artifacts_directory, com valor padrão artifacts: define o caminho para um diretório que será persistente como dados auxiliares relacionados a esse pipeline. A maioria, se não todos os usuários, nunca terá a necessidade de substituir isso por meio da UI. Qualquer coisa pode ser salva durante a execução do pipeline, incluindo imagens, PDFs e subpastas. Concretamente, quaisquer dados que seu código gravar no diretório especificado pelo caminho os.environ['artifacts_directory'] serão carregados no final da execução do pipeline e serão visualizáveis na página Detalhes do pipeline.
    • save_training_data, com o valor padrão true: se estiver definido como true, a pasta training_data_directory será carregada no final da execução do pipeline como uma saída do pipeline no diretório training_data_directory.
    • save_test_data, com o valor padrão true: se estiver definido como true, a pasta test_data_directory será carregada no final da execução do pipeline como uma saída do pipeline no diretório test_data_directory.

Dependendo de sua escolha de selecionar ou não um conjunto de dados de avaliação, é possível criar pipelines completos da seguinte forma:

Seleção explícita dos dados de avaliação

Assista ao seguinte vídeo para saber como criar um pipeline completo com a versão do pacote recém-treinado 1.1. Certifique-se de selecionar o mesmo conjunto de dados (em nosso exemplo, tutorialdataset) tanto como o conjunto de dados de entrada quanto como o conjunto de dados de avaliação.



Sem seleção explícita dos dados de avaliação

Assista ao seguinte vídeo para saber como criar um pipeline completo com a versão do pacote recém-treinado 1.1. Selecione o conjunto de dados de entrada, mas deixe o conjunto de dados de avaliação não selecionado.



Resultados da execução de um pipeline completo

Observação: a execução do pipeline pode levar algum tempo. Verifique novamente depois de algum tempo para ver seu status.

Após o pipeline ter sido executado, na página Pipelines, o status do pipeline é alterado para Bem-sucedido. A página Detalhes do pipeline exibe os arquivos arbitrários e pastas relacionados à execução do pipeline.

  • A função train() é treinada em train.csv, e não no conteúdo inalterado da pasta de dados (exemploexample1.txt, e example2.txt). O process_data pode ser usado para dividir dinamicamente dados com base em quaisquer parâmetros definidos pelo usuário.
  • O primeiro pipeline completo executa avaliações em um diretório com exemplo1.txt,example2.txt, test.csv. O segundo pipeline completo executa avaliações em um diretório apenas com test.csv. Essa é a diferença em não selecionar um conjunto de avaliação explicitamente ao criar a segunda execução do pipeline completo. Dessa forma, você pode ter avaliações de novos dados dos UiPath Robots, bem como dados divididos dinamicamente já em seu projeto.
  • Cada componente individual pode gravar artefatos arbitrários como parte de um pipeline (histogramas, logs do TensorBoard, plotagens de distribuição etc.).
  • O arquivo zip do pacote de ML é a nova versão do pacote gerado automaticamente pelo pipeline de treinamento.
  • A pasta Artefatos, visível apenas se não estiver vazia, é a pasta que reagrupa todos os artefatos gerados pelo pipeline, e está salva sob a pasta artifacts_directory.
  • A pasta de treinamento, visível apenas se save_training_datafoi definido como true, é uma cópia da pasta training_data_directory.
  • A pasta de teste, visível apenas se save_training_data foi definido como true, é uma cópia da pasta test_data_directory.

Analogia conceitual para criar seus próprios pipelines completos

Aqui está uma execução conceitualmente análoga de um completo de avaliação em algum pacote, como por exemplo, a versão 1.1, a saída de um pipeline de treinamento na versão 1.0.

Importante: esse é um exemplo simplificado. Seu objetivo é ilustrar como os conjuntos de dados e pacotes interagem em um pipeline completo. As etapas são meramente conceituais e não representam como a plataforma funciona.
  1. Copie a versão 1.1 do pacote para ~/mlpackage.
  2. Crie um diretório chamado ./dataset.
  3. Copie o conteúdo do conjunto de dados da entrada em ./dataset.
  4. Se o usuário definir algo no campo Choose evaluation dataset, copie esse conjunto de dados da avaliação e o coloque em ./dataset/test.
  5. Defina as variáveis de ambiente training_data_directory=./dataset/training e test_data_directory=./dataset/test.
  6. Execute o seguinte 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. Persiste o conteúdo de ~/mlpackage como a versão do pacote 1.2. Os artefatos persistem se estiverem gravados, e os dados dos instantâneos, se save_data estiver definido como true.
    Observação: a existência das variáveis de ambiente training_data_directory e test_data_directory significa que process_data pode usar essas variáveis para dividir os dados dinamicamente.

Saídas dos pipelines

O arquivo _results.json contém um resumo da execução do pipeline, expondo todas as entradas/saídas e tempos de execução para um pipeline 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>"  
         }
    }
}

Governança do modelo

Como em outros tipos de pipeline, os dados de treinamento e avaliação podem ser preservados em um instantâneo se você definir os parâmetros save_training_data = true e save_test_data = true.

Esta página foi útil?

Obtenha a ajuda que você precisa
Aprendendo RPA - Cursos de automação
Fórum da comunidade da Uipath
Uipath Logo White
Confiança e segurança
© 2005-2024 UiPath. Todos os direitos reservados.