Visão geral da inferência de modelos

Neste documento, descrevemos os tipos de inferência compatíveis com o BigQuery ML.

A inferência de machine learning é o processo de execução de pontos de dados em um modelo de machine learning para calcular uma saída, como uma única pontuação numérica. Esse processo também é conhecido como "operar um modelo de machine learning" ou "colocar um modelo de machine learning em produção".

A inferência de machine learning no BigQuery ML inclui tarefas de machine learning, como as seguintes:

Para mais informações sobre tipos de modelos compatíveis e funções SQL para cada tipo de inferência, consulte a Jornada do usuário completa de cada modelo.

Previsão

Nas seções a seguir, descrevemos as maneiras disponíveis de realizar a previsão no BigQuery ML.

Inferência usando modelos treinados do BigQuery ML

A predição no BigQuery ML é usada não apenas para modelos de aprendizado supervisionado, mas também não supervisionados. Ela é usada apenas para modelos treinados com dados independentes e distribuídos de maneira idêntica (IID, na sigla em inglês). Para dados de série temporal que não são IID, o termo previsão é usado. Consulte a seção previsão abaixo.

O BigQuery ML é compatível com funcionalidades de previsão por meio da função ML.PREDICT com os seguintes modelos:

Categoria do modelo Tipos de modelos O que ML.PREDICT faz
Aprendizado supervisionado Regressão linear e logística

Árvores aprimoradas

Floresta aleatória

Redes neurais profundas

Amplitude e profundidade

Tabelas do AutoML
Prever o rótulo, seja um valor numérico para tarefas de regressão ou um valor categórico para tarefas de classificação.
Aprendizado não supervisionado K-means Atribua o cluster à entidade.
PCA Aplique a redução de dimensionalidade à entidade transformando-a no espaço estendido pelos autovetores.
Codificador automático Transforme a entidade no espaço incorporado.

Para inferência do modelo de fatoração de matrizes, consulte Recomendação.

Inferência usando modelos importados

Com essa abordagem, você cria e treina um modelo fora do BigQuery, importa-o usando a instrução CREATE MODEL e, em seguida, executa a inferência usando a função ML.PREDICT. Todo o processamento de inferência ocorre no BigQuery, usando dados do BigQuery. Os modelos importados podem realizar aprendizado supervisionado ou não supervisionado.

O BigQuery ML é compatível com os seguintes tipos de modelos importados:

Use essa abordagem para usar modelos personalizados desenvolvidos com uma variedade de frameworks de ML e aproveitar a velocidade de inferência e a colocalização do BigQuery ML com dados.

Para saber mais, siga um dos seguintes tutoriais:

Inferência usando modelos remotos

Com essa abordagem, você pode criar uma referência a um modelo hospedado emPrevisão da Vertex AI usando a declaração CREATE MODEL e, em seguida, executar a inferência usando a função ML.PREDICT. Todo o processamento de inferência ocorre na Vertex AI usando dados do BigQuery. Os modelos remotos podem realizar aprendizado supervisionado ou não supervisionado.

Use essa abordagem para executar a inferência em modelos grandes que exigem o suporte de hardware da GPU fornecido pela Vertex AI. Se a maioria dos seus modelos for hospedada pela Vertex AI, isso também permitirá que você execute inferência nesses modelos usando SQL, sem precisar criar pipelines de dados manualmente para enviar dados à Vertex AI e gerar previsão de volta ao BigQuery.

Para instruções passo a passo, consulte Fazer previsões com modelos remotos na Vertex AI.

Previsão

A previsão é uma técnica que usa dados históricos como entradas para fazer estimativas informadas no futuro. No BigQuery ML, a previsão é aplicada a dados de série temporal. Para dados de IID, consulte predição.

O BigQuery ML é compatível com funcionalidades de previsão com a função ML.FORECAST com os modelos ARIMA_PLUS e ARIMA_PLUS_XREG. O modelo de série temporal não é um modelo único, mas um pipeline de modelagem de série temporal que inclui vários modelos e algoritmos. Veja o pipeline de modelagem de série temporal para mais detalhes.

Recomendação

Os sistemas de recomendação são uma das aplicações mais bem-sucedidas e generalizadas das tecnologias de machine learning para empresas. Um sistema de recomendação ajuda os usuários a encontrar conteúdo atrativo em um grande volume de trabalho. Por exemplo, a Google Play Store oferece milhões de apps, enquanto o YouTube fornece bilhões de vídeos, com mais apps e vídeos adicionados todos os dias. Para encontrar conteúdo novo e atrativo, os usuários podem usar a pesquisa. No entanto, um mecanismo de recomendação pode exibir conteúdo que os usuários talvez não tenham pensado em pesquisar por conta própria. Consulte a Visão geral dos sistemas de recomendação para mais informações.

Os algoritmos de aprendizado de máquina em sistemas de recomendação geralmente são classificados em duas categorias: métodos de filtragem baseada em conteúdo e colaboração.

TipoDefiniçãoExemplo
Filtro com base no conteúdo Usa similaridade entre itens para recomendar itens semelhantes ao que o usuário gosta. Se o usuário A assistir a dois vídeos de gatinhos fofos, o sistema poderá recomendar vídeos de animais fofos a ele.
Filtragem colaborativa Usa similaridades entre consultas e itens simultaneamente para fornecer recomendações. Se o usuário A for semelhante ao usuário B e o usuário B gostar do vídeo 1, o sistema poderá recomendar o vídeo 1 ao usuário A, mesmo que o usuário A não tenha visto vídeos semelhantes ao vídeo 1.

O modelo de fatoração de matrizes é amplamente usado como um método de filtragem colaborativa para sistemas de recomendação. O BigQuery ML é compatível com a função ML.RECOMMEND para facilitar o uso da fatoração de matrizes para fins de recomendação. Para mais informações sobre como aplicar a fatoração de matriz à recomendação, consulte Fatoração de matrizes.

Nos mecanismos modernos de recomendação, os modelos de rede neural profunda (DNN, na sigla em inglês), incluindo modelos de amplitude e profundidade, são amplamente usados. Isso pode ser interpretado como uma extensão da filtragem colaborativa baseada em fatoração de matrizes. Ele pode incorporar recursos de consulta e de item para melhorar a relevância das recomendações. Para mais informações, leia Recomendação usando modelos de rede neural profunda, Redes neurais profundas para recomendações do YouTube ou Aprendizado amplo e profundo para sistemas de recomendações. Vale lembrar que qualquer modelo de aprendizado supervisionado pode ser usado para tarefas de recomendação.

Detecção de anomalias

A detecção de anomalias é uma etapa da mineração de dados que identifica pontos de dados, eventos e observações que se desviam do comportamento normal de um conjunto de dados. Os dados anômalos podem indicar incidentes críticos, como problemas técnicos ou oportunidades, como alterações no comportamento do consumidor.

Um desafio com a detecção de anomalias é identificar e definir a anomalia. Com os dados rotulados com anomalias conhecidas, é possível escolher entre os tipos de modelo de machine learning supervisionado que já são compatíveis com o BigQuery ML. Sem um tipo de anomalia conhecida ou dados rotulados, você ainda pode usar machine learning não supervisionado para detectar anomalias. Dependendo se os dados de treinamento são séries temporais, é possível detectar anomalias nos dados de treinamento ou em novos dados de entrada usando a função ML.DETECT_ANOMALIES com os seguintes modelos:

Tipo de dado Tipos de modelos O que ML.DETECT_ANOMALIES faz
Série temporal ARIMA_PLUS Detecte as anomalias na série temporal.
Variáveis aleatórias independentes e distribuídas de maneira idêntica K-means Detecte anomalias com base na menor distância entre as distâncias normalizadas dos dados de entrada para cada centroide do cluster. Para ver uma definição de distâncias normalizadas, consulte ML.DETECT_ANOMALIES.
Codificador automático Detecte anomalias com base na perda de reconstruções em termos de erro quadrático médio. Veja mais informações em ML.RECONSTRUCTION_LOSS. ML.RECONSTRUCTION_LOSS pode recuperar todos os tipos de perda de reconstrução.
PCA Detecte anomalias com base na perda de reconstruções em termos de erro quadrático médio.

Visão computacional

É possível criar uma referência à API Cloud Vision criando um modelo remoto, com um REMOTE_SERVICE_TYPE de CLOUD_AI_VISION_V1 e, em seguida, usando a função com valor de tabela (TVF, na sigla em inglês) ML.ANNOTATE_IMAGE para anotar imagens usando esse serviço. ML.ANNOTATE_IMAGE funciona com tabelas de objetos. Todo o processamento de inferência ocorre na Vertex AI usando dados do BigQuery. Os resultados são armazenados no BigQuery.

Use essa abordagem para executar inferência nos modelos de visão do Google sem precisar aprender Python ou desenvolver familiaridade com a API Vision.

Para saber mais, consulte Fazer anotações em imagens de tabelas de objetos com a função ML.ANNOTATE_IMAGE.

Tradução automática

É possível criar uma referência à API Cloud Translation criando um modelo remoto, com um REMOTE_SERVICE_TYPE de CLOUD_AI_TRANSLATE_V3 e, em seguida, usando o ML.TRANSLATE TVF para interagir com esse serviço. ML.TRANSLATE funciona com tabelas padrão. Todo o processamento de inferência ocorre na Vertex AI usando dados do BigQuery. Os resultados são armazenados no BigQuery.

Use essa abordagem para executar inferência nos modelos de tradução de texto do Google sem precisar aprender Python ou desenvolver familiaridade com a API Cloud Translation.

Para saber mais, consulte Traduzir texto com a função ML.TRANSLATE.

Processamento de linguagem natural

É possível criar uma referência à API Cloud Natural Language criando um modelo remoto, com um REMOTE_SERVICE_TYPE de CLOUD_AI_NATURAL_LANGUAGE_V1 e depois usando o TVF ML.UNDERSTAND_TEXT para interagir com esse serviço. ML.UNDERSTAND_TEXT funciona com tabelas padrão. Todo o processamento de inferência ocorre na Vertex AI usando dados do BigQuery. Os resultados são armazenados no BigQuery.

Use essa abordagem para executar inferência nos modelos de tradução de texto do Google sem precisar aprender Python ou desenvolver familiaridade com a API Natural Language.

Para saber mais, consulte Compreender o texto com a função ML.UNDERSTAND_TEXT.