Como treinar usando o algoritmo NCF integrado

O treinamento com algoritmos integrados no AI Platform Training permite enviar o conjunto de dados e treinar um modelo sem a necessidade de escrever código de treinamento. Nesta página, você verá como funciona o algoritmo integrado do NCF e como usá-lo.

Visão geral

Esse algoritmo integrado oferece apenas treinamento:

  1. Treinamento: com o conjunto de dados e os parâmetros do modelo fornecidos por você, o AI Platform Training executa o treinamento usando o Implementação do NCF do TensorFlow.

Limitações

Os recursos a seguir não são compatíveis com o treinamento com o algoritmo integrado NCF:

  • Pré-processamento automático de dados: esta versão do NCF requer que os dados de entrada estejam na forma de TFRecords para treinamento e saída. Um aplicativo de treinamento precisa ser feito para gerenciar automaticamente a entrada não formatada.

Tipos de máquina compatíveis

Os níveis de escalonamento e tipos de máquina do AI Platform Training a seguir são compatíveis:

  • ScaleTier BASIC
  • ScaleTier BASIC_GPU
  • ScaleTier BASIC_TPU
  • CUSTOMNível de escalonamento PERSONALIZADO com qualquer um dos tipos de máquina do Compute Engine compatíveis com o AI Platform Training.
  • CUSTOMNível de escalonamento PERSONALIZADO com qualquer um dos tipos de máquina legados a seguir:
    • standard
    • large_model
    • complex_model_s
    • complex_model_m
    • complex_model_l
    • standard_gpu
    • standard_p100
    • standard_v100
    • large_model_v100
    • complex_model_m_gpu
    • complex_model_l_gpu
    • complex_model_m_p100
    • complex_model_m_v100
    • complex_model_l_v100
    • TPU_V2 (8 núcleos)

Recomenda-se que seja usado um tipo de máquina com acesso a TPUs ou GPUs.

Formatar dados de entrada

Verifique se os dados de entrada e avaliação estão na forma de TFRecords antes do treinamento do modelo.

Verificar as permissões do bucket do Cloud Storage

Para armazenar seus dados, use um bucket do Cloud Storage no mesmo projeto do Google Cloud usado para executar jobs do AI Platform Training. Caso contrário, conceda acesso do AI Platform Training ao bucket do Cloud Storage em que os dados estão armazenados.

Enviar um job de treinamento de NCF

Nesta seção, explicamos como enviar um job de treinamento usando o algoritmo integrado do NCF.

Você encontra explicações breves de cada hiperparâmetro no Console do Google Cloud e uma explicação mais abrangente na referência do algoritmo NCF integrado.

Console

  1. Acesse a página "Jobs" do AI Platform Training no Console do Google Cloud:

    Página "Jobs" do AI Platform Training

  2. Clique no botão Novo job de treinamento. Nas opções exibidas abaixo, clique em Treinamento de algoritmo integrado.

  3. Na página Criar um novo job de treinamento, selecione NCF e clique em Avançar.

  4. Para saber mais sobre todos os parâmetros disponíveis, use os links no Console do Google Cloud e consulte a referência do NCF integrado para mais detalhes.

gcloud

  1. Defina as variáveis de ambiente do seu job:

       # Specify the name of the Cloud Storage bucket where you want your
       # training outputs to be stored, and the Docker container for
       # your built-in algorithm selection.
       BUCKET_NAME='BUCKET_NAME'
       IMAGE_URI='gcr.io/cloud-ml-algos/ncf:latest'
    
       # Specify the Cloud Storage path to your training input data.
       DATA_DIR='gs://$BUCKET_NAME/ncf_data'
    
       DATE="$(date '+%Y%m%d_%H%M%S')"
       MODEL_NAME='MODEL_NAME'
       JOB_ID="${MODEL_NAME}_${DATE}"
    
       JOB_DIR="gs://${BUCKET_NAME}/algorithm_training/${MODEL_NAME}/${DATE}"
    

    Substitua o seguinte:

    • BUCKET_NAME: o nome do bucket do Cloud Storage em que você quer armazenar as saídas de treinamento.
    • MODEL_NAME: um nome para o modelo, para identificar onde os artefatos do modelo são armazenados no seu bucket do Cloud Storage.
  2. Envie o job de treinamento usando gcloud ai-platform jobs training submit. Ajuste este exemplo genérico para trabalhar com seu conjunto de dados:

       gcloud ai-platform jobs submit training $JOB_ID \
          --master-image-uri=$IMAGE_URI --scale-tier=BASIC_TPU --job-dir=$JOB_DIR \
          -- \
          --train_dataset_path=${DATA_DIR}/training_cycle_*/* \
          --eval_dataset_path=${DATA_DIR}/eval_data/* \
          --input_meta_data_path=${DATA_DIR}/metadata \
          --learning_rate=3e-5 \
          --train_epochs=3 \
          --eval_batch_size=160000 \
          --learning_rate=0.00382059 \
          --beta1=0.783529 \
          --beta2=0.909003 \
          --epsilon=1.45439e-07 \
          --num_factors=64 \
          --hr_threshold=0.635 \
          --keras_use_ctl=true \
          --layers=256,256,128,64 \
    
  3. Monitore o status do job de treinamento exibindo os registros com gcloud. Consulte gcloud ai-platform jobs describe e gcloud ai-platform jobs stream-logs.

       gcloud ai-platform jobs describe ${JOB_ID}
       gcloud ai-platform jobs stream-logs ${JOB_ID}
    

Mais recursos de aprendizado