Melhorar o desempenho do modelo com o ajuste de hiperparâmetros


Neste tutorial, mostramos como usar o ajuste de hiperparâmetros no BigQuery ML especificando a opção de treinamento NUM_TRIALS para ativar um conjunto de testes de treinamento de modelo.

Neste tutorial, você usa a tabela de amostra tlc_yellow_trips_2018 para criar um modelo que prevê a dicas de viagem de táxi. Com o ajuste de hiperparâmetro, o modelo mostra uma melhoria de desempenho de cerca de 40% no objetivo de ajuste de hiperparâmetros R2_SCORE.

Objetivos

Neste tutorial, você usará:

  • o BigQuery ML para criar um modelo de regressão linear usando a instrução CREATE MODEL com NUM_TRIALS definido como 20;
  • a função ML.TRIAL_INFO para verificar a visão geral de todos os 20 testes;
  • a função ML.EVALUATE para avaliar o modelo de ML;
  • a função ML.PREDICT para fazer previsões usando o modelo de ML.

Custos

Neste tutorial, há componentes faturáveis do Google Cloud, entre eles:

  • BigQuery
  • BigQuery ML

Para mais informações sobre os custos do BigQuery, consulte a página de preços.

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  6. O BigQuery é ativado automaticamente em novos projetos. Para ativar o BigQuery em um projeto preexistente, acesse

    Enable the BigQuery API.

    Enable the API

Etapa 1: criar conjunto de dados de treinamento

Crie um conjunto de dados do BigQuery para armazenar o modelo de ML:

  1. No console do Google Cloud, acesse a página do BigQuery.

    Acesse a página do BigQuery

  2. No painel Explorer, clique no nome do seu projeto.

  3. Clique em Conferir ações > Criar conjunto de dados.

    Criar conjunto de dados.

  4. Na página Criar conjunto de dados, faça o seguinte:

    • Para o código do conjunto de dados, insira bqml_tutorial.

    • Em Tipo de local, selecione Multirregião e EUA (várias regiões nos Estados Unidos).

      Os conjuntos de dados públicos são armazenados na multirregião US. Para simplificar, armazene seus conjuntos de dados no mesmo local.

    • Mantenha as configurações padrão restantes e clique em Criar conjunto de dados.

      Página Criar conjunto de dados.

Etapa 2: criar a tabela de entrada de treinamento

Nesta etapa, você vai materializar a tabela de entrada de treinamento com 100 mil linhas.

  1. Veja o esquema da tabela de origem tlc_yellow_trips_2018.

    Esquema de tabela.

  2. Crie a tabela de dados de entrada de treinamento.

CREATE TABLE `bqml_tutorial.taxi_tip_input` AS
SELECT
  * EXCEPT(tip_amount), tip_amount AS label
FROM
  `bigquery-public-data.new_york_taxi_trips.tlc_yellow_trips_2018`
WHERE
  tip_amount IS NOT NULL
LIMIT 100000

Etapa 3: criar o modelo

Em seguida, crie um modelo de regressão linear com ajuste de hiperparâmetro usando a tabela de amostra tlc_yellow_trips_2018 no BigQuery. A consulta do GoogleSQL a seguir é usada para criar o modelo com ajuste de hiperparâmetros.

CREATE MODEL `bqml_tutorial.hp_taxi_tip_model`
OPTIONS
  (MODEL_TYPE='LINEAR_REG',
   NUM_TRIALS=20,
   MAX_PARALLEL_TRIALS=2) AS
SELECT
  *
FROM
  `bqml_tutorial.taxi_tip_input`

Detalhes da consulta

O modelo LINEAR_REG tem dois hiperparâmetros ajustáveis: l1_reg e l2_reg. A consulta acima usa o espaço de pesquisa padrão. Também é possível especificar o espaço de pesquisa explicitamente:

OPTIONS
  (...
    L1_REG=HPARAM_RANGE(0, 20),
    L2_REG=HPARAM_CANDIDATES([0, 0.1, 1, 10]))

Além disso, essas outras opções de treinamento de ajuste de hiperparâmetros também usam os valores padrão:

  • HPARAM_TUNING_ALGORITHM: "VIZIER_DEFAULT"
  • HPARAM_TUNING_OBJECTIVES: ["r2_score"]

MAX_PARALLEL_TRIALS é definido como 2 para acelerar o processo de ajuste. Com 2 testes em execução a qualquer momento, o ajuste inteiro leva cerca de 10 jobs de treinamento em série em vez de 20. No entanto, observe que os dois testes simultâneos não podem se beneficiar dos resultados de treinamento uns dos outros.

Executar a consulta CREATE MODEL

Para executar a consulta CREATE MODEL para criar e treinar seu modelo:

  1. No console do Google Cloud, clique no botão Escrever nova consulta.

  2. Insira a seguinte consulta do GoogleSQL na área de texto do Editor de consultas.

  3. Clique em Executar.

    A consulta leva cerca de 17 minutos para ser concluída. Acompanhe o progresso do ajuste nos detalhes da execução em "Estágios":

    Progresso do ajuste.

Etapa 4: receber informações sobre os testes

Para ter uma visão geral de todos os testes, incluindo hiperparâmetros, objetivos, status e o teste ideal, use a função ML.TRIAL_INFO. É possível ver os resultados no console do Google Cloud depois de executar o SQL.

SELECT *
FROM
  ML.TRIAL_INFO(MODEL `bqml_tutorial.hp_taxi_tip_model`)

É possível executar essa consulta SQL assim que um teste for concluído. Se o ajuste for interrompido no meio, todos os testes já concluídos permanecerão disponíveis para uso.

Etapa 5: avaliar o modelo

Depois de criar o modelo, é possível conseguir as métricas de avaliação de todos os testes usando a função ML.EVALUATE ou por meio do Console do Google Cloud.

Executar ML.EVALUATE

SELECT *
FROM
  ML.EVALUATE(MODEL `bqml_tutorial.hp_taxi_tip_model`)

Este SQL busca métricas de avaliação para todos os testes calculados a partir dos dados TEST. Para mais informações sobre a diferença entre os objetivos ML.TRIAL_INFO e as métricas de avaliação ML.EVALUATE, consulte Funções de disponibilização de modelos.

Você também pode avaliar um teste específico fornecendo seus próprios dados. Para mais informações, consulte Funções de exibição de modelo.

Verifique as métricas de avaliação no Console do Google Cloud

Também é possível verificar as métricas de avaliação selecionando a guia EVALUATION.

Avaliação do ajuste.

Etapa 6: usar seu modelo para prever gorjetas de táxi

Agora que você avaliou seu modelo, a próxima etapa é usá-lo para prever a gorjeta de táxi.

A consulta usada para prever a gorjeta é a seguinte:

SELECT
  *
FROM
  ML.PREDICT(MODEL `bqml_tutorial.hp_taxi_tip_model`,
    (
    SELECT
      *
    FROM
      `bqml_tutorial.taxi_tip_input`
    LIMIT 10))

Detalhes da consulta

A principal instrução SELECT recupera todas as colunas, incluindo a predicted_label. Essa coluna é gerada pela função ML.PREDICT. Ao usar a função ML.PREDICT, o nome da coluna de saída para o modelo é predicted_label_column_name.

A previsão é feita no teste ideal por padrão. É possível selecionar outro teste especificando o parâmetro trial_id.

SELECT
  *
FROM
  ML.PREDICT(MODEL `bqml_tutorial.hp_taxi_tip_model`,
    (
    SELECT
      *
    FROM
      `bqml_tutorial.taxi_tip_input`
    LIMIT
      10),
    STRUCT(3 AS trial_id))

Para mais detalhes sobre como usar as funções de disponibilização do modelo, consulte Funções de disponibilização do modelo.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.

  • exclua o projeto que você criou; ou
  • Mantenha o projeto e exclua o conjunto de dados.

Excluir o conjunto de dados

A exclusão do seu projeto removerá todos os conjuntos de dados e tabelas no projeto. Caso prefira reutilizá-lo, exclua o conjunto de dados criado neste tutorial:

  1. Se necessário, abra a página do BigQuery no console do Google Cloud.

    Acesse a página do BigQuery

  2. No painel de navegação, clique no conjunto de dados bqml_tutorial que você criou.

  3. No lado direito da janela, clique em Excluir conjunto de dados. Essa ação exclui o conjunto, a tabela e todos os dados.

  4. Na caixa de diálogo Excluir conjunto de dados, confirme o comando de exclusão digitando o nome do seu conjunto de dados (bqml_tutorial) e clique em Excluir.

Excluir o projeto

Para excluir o projeto:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

A seguir