Jobs

Os jobs do serviço Data Science permitem tarefas personalizadas que você pode aplicar qualquer caso de uso, como preparação de dados, treinamento de modelo, ajuste de hiperparâmetro, inferência de batch etc.

Usando jobs, você pode:

  • Executar tarefas de machine learning (ML) ou ciência de dados fora das sessões de notebook em JupyterLab.

  • Operacionalizar tarefas discretas de ciência de dados e aprendizado de máquina como operações executáveis reutilizáveis.

  • Automatizar o pipeline típico de MLOps ou CI/CD.

  • Executar batches ou cargas de trabalho acionados por eventos ou ações.

  • Fazer inferência a batch, minibatch ou job em batch distribuído.

  • Processar cargas de trabalho em lote.

  • Trazer seu próprio contêiner.

Normalmente, um projeto de ML e ciência de dados é uma série de etapas que incluem:

  1. Acessar

  2. Explorar

  3. Preparar

  4. Criar modelo

  5. Treinar

  6. Validar

  7. Implantar

  8. Testar

Depois que as etapas forem concluídas, você poderá automatizar o processo de exploração de dados, treinamento de modelo, implantação e teste usando jobs. Quando há uma única alteração na preparação de dados ou no treinamento de modelos, experimentos com ajustes de hiperparâmetros podem ser feitos como Job e testados de forma independente.

Os jobs têm duas partes, um job e uma execução de job:

Job

Um job é o modelo que descreve a tarefa. Ele contém elementos como o artefato de job que é imutável e não pode ser alterado após o upload para um job. Além disso, o job contém informações sobre as formas de Computação nas quais o job é executado, opções de registro em log, armazenamento em blocos e outras opções. Você pode adicionar variáveis de ambiente ou argumentos da CLI a jobs para serem exclusivos ou semelhantes em todas as execuções de job futuras. Você pode substituir essas variáveis e argumentos nas execuções de jobs.

Você pode editar a forma de Computação no job e entre as execuções de jobs. Por exemplo, se quiser executar um job em forma mais avançada, você poderá editar a forma de Computação do job e, em seguida, iniciar uma nova execução de job.

Dica

Não é necessário aguardar o término da execução do job para editar a forma.

Execução de Job

Uma execução de job é o processador real do job. Em cada execução do job, você pode substituir algumas opções de configuração do job e, o mais importante, as variáveis de ambiente e os argumentos da CLI. Você pode ter o mesmo job com várias execuções iniciadas de forma sequencial ou simultânea com parâmetros diferentes. Por exemplo, você pode testar como o mesmo processo de treinamento de modelo é executado fornecendo diferentes hiperparâmetros.

Mostra o relacionamento entre jobs e execuções de jobs com as opções que podem ser definidas.

Ciclo de Vida de Jobs

Cada estágio do ciclo de vida do job aciona eventos que você pode usar para enviar notificações, acionar funções de terceiros ou até mesmo outras execuções de jobs.

Criando jobs

Criação de job é quando você cria uma configuração de job, incluindo a especificação de um arquivo de artefato de job. O artefato de job contém o código executável do job. Esse artefato pode ser Python, Bash/Shell, um arquivo zip ou tar compactado contendo um projeto inteiro escrito em Python ou Java.

Além disso, você especifica a forma de Computação para executar o artefato de job, bem como o armazenamento em blocos e a rede. Você tem a flexibilidade de selecionar várias formas de CPU e GPU e um armazenamento em blocos de até 1 TB. A opção de registro em log permite que você defina a criação automática de registro em log para cada execução de job.

As montagens de armazenamento podem ser usadas como segue:

  • Armazene logs durante o treinamento do modelo que podem ser acessados de outro lugar.
  • Armazene pontos de verificação durante o treinamento do modelo para que você possa continuar treinando um modelo a partir do último ponto de verificação e evitar iniciar o treinamento desde o início.
  • O armazenamento e a leitura de dados do sistema de arquivos comum são montados para que você não precise copiar os dados para a máquina que está executando o job.
Iniciando execuções de jobs

Esse é o processador do job. O início de uma execução de job permite que você altere alguns parâmetros configurados para alterar o caso de uso.

A execução de job usa várias operações de ciclo de vida. Para uma execução de job, o serviço Data Science controla o provisionamento da infraestrutura, a execução do artefato de job e o desprovisionamento da infraestrutura quando a execução do artefato de job é concluída.

Um job pode ter várias execuções que podem ser efetuadas em sequência ou simultaneamente. Você pode configurar um runtime máximo para a execução de job. Quando uma execução de job permanece em andamento além do runtime máximo configurado, o serviço Data Science cancela automaticamente a execução. Recomendamos que você configure um runtime máximo em todas as execuções de jobs para evitar fuga de execuções.

Observação

O limite superior para o runtime máximo é de 30 dias para uma execução de job. Se esse valor não estiver configurado, o limite de 30 dias ainda será imposto.

Monitorando

Durante a execução do job, você pode monitorar o processo ativando o registro em log com o serviço Logging. As mensagens são registradas para a execução de job e o arquivo de artefato de job.

O monitoramento ajuda a depurar possíveis erros e monitorar os recursos usados.

Finalizando

Uma execução de job termina com a saída do processo de código. Ela aciona o ciclo de vida final da execução do job, que é o desprovisionamento da infraestrutura. A infraestrutura também é destruída quando você cancela uma execução de job.

Jobs - Acesso a Recursos da Nuvem

Os jobs podem acessar todos os recursos do OCI em uma tenancy, desde que haja uma política de permissão. Você pode executar jobs de dados no ADW ou no Object Storage. Além disso, você pode usar vaults para fornecer uma maneira segura de autenticação de recursos de terceiros. Os jobs poderão acessar origens externas se você tiver configurado a VCN apropriada.

Acesso a Execuções de Job

As execuções de job suportam o SDK e a API do OCI. Você pode executar jobs de todos os possíveis serviços externos de terceiros, por exemplo:

  • Sua máquina cliente, um pipeline MLOps ou CI/CD.
  • Pipelines CI/CD GitHub ou Bitbucket.
  • Serviços do Oracle AI ou de terceiros.
  • Serviço de eventos.

Você pode criar jobs e iniciar execuções de jobs na Console do OCI e também pode criar e executar jobs com:

  • Python

  • Java

  • JavaScript

  • TypeScript

  • Go

  • Ruby

  • CLI do OCI

  • Terraform