Cloud Intelligence™Cloud Intelligence™

Cloud Intelligence™

As vantagens da abordagem Black Box do Vizier

By Joshua FoxAug 17, 20235 min read

Esta página também está disponível em English, Deutsch, Español, Français, Italiano e 日本語.

Na Parte 1, falamos sobre os desafios de processos de otimização lentos e caros, que nunca saem bons de primeira.

Vizier’s Black Box

Parte 2

Na Parte 1, falamos sobre os desafios de processos de otimização lentos e caros, que nunca saem bons de primeira. Seja em treinamento de Machine Learning (ML), em testes A/B de sites ou na escolha das entradas certas para uma fábrica, cada ciclo é caro, e a ideia é convergir para um bom resultado o mais rápido possível. O Vertex AI Vizier no Google Cloud faz isso acontecer ao sugerir parâmetros para cada trial.

Apenas um conselheiro

"Vizier" (vizir) é o título do conselheiro de um rei, derivado do árabe وزير wazīr, passando pelo persa e pelo turco. O vizir aconselha sobre a política real, mas não decide nada. E é assim que funciona a otimização black-box do Vizier: ele não executa os trials de otimização por você. Já os serviços de hyperparameter tuner oferecidos por GCP e AWS fazem tudo por você. Você passa um intervalo de hiperparâmetros — por exemplo, a learning rate variando continuamente de 0 a 1; ou o minimum child weight como um parâmetro inteiro de 1 a 3. Você cria o cliente do hyperparameter tuner e, então, é só chamar uma função como fit() no esquema "fire and forget". Essa função roda por um tempo, talvez algumas horas, e internamente executa várias iterações de treinamento, escolhendo diferentes hiperparâmetros pelo caminho. No fim, o tuner devolve o melhor modelo que conseguiu encontrar.

O processo de otimização Black Box fica fora do seu controle e é invisível para você. (Pelo menos do ponto de vista da API: normalmente existem sistemas de monitoramento por trás.)

Observação: "Black Box" significa que seus trials são invisíveis para o Vizier. Ele não sabe nada sobre o treinamento de ML nem sobre o teste A/B. Não sabe nada sobre os gradientes, sobre os altos e baixos da função que está sendo otimizada dentro de cada trial.

Para você, por outro lado, esses trials são totalmente "white-box": quem está no comando é você.

Vantagens

Um serviço de hyperparameter tuner parece mais simples do que o Vizier — e, de fato, o Google construiu o Vertex AI AutoML e os hyperparameter tuners da AI Platform (a marca antiga) em cima de um motor baseado em Vizier. Mas a abordagem Black Box, em que você interage com o Vizier, tem suas vantagens.

Controle

Você ganha mais controle com a Black Box Optimization.

Os trials geralmente estão na sua área de domínio. Seus desenvolvedores conhecem cada detalhe do site; seus cientistas de dados entendem os pormenores dos algoritmos de ML. Você já pensou com cuidado em como tirar o máximo dos seus sistemas com o menor custo. Com o Vizier, você mantém o controle total do treinamento de ML em si: qual infraestrutura ou APIs usar, quantas e quais GPUs ou TPUs etc.

Você pode até ignorar as sugestões do Vizier e usar seus próprios parâmetros. Claro que, no dia a dia, você vai usar as sugestões — afinal, é por isso que está recorrendo ao Vizier. Mas, por exemplo, você pode ler sobre um novo algoritmo para o seu ML, ou os product managers podem querer testar uma variante nova que não estava no teste A/B do site — e aí você pode ir em frente e experimentar. Mesmo quando roda o trial com seus próprios parâmetros, dá para alimentar o Vizier com os parâmetros e métricas, e ele vai aprender com isso, exatamente como faz quando você usa os parâmetros sugeridos por ele.

Escalabilidade

O Vizier só faz a parte "fácil" de otimizar entre múltiplos trials. Ele não faz o trabalho pesado do ML, que pode exigir muito hardware especializado. Da mesma forma, não faz o trabalho pesado dos testes A/B de um site nem da operação de uma fábrica. É isso que o torna escalável: você cuida do treinamento em si ou de outro processo otimizado — a parte mais intensa de todo o workflow — e, com isso, pode aplicar as melhores práticas mais adequadas à sua configuração específica. (Na Figura 1 abaixo, suas máquinas de treinamento são os "Evaluation workers" sob a API REST do Vizier.)

Enquanto isso, o Vizier escala workers para gerar sugestões ou indicar quando parar. Como o estado dele fica armazenado em um banco de dados, e não dentro do contexto de uma única execução de otimização, ele consegue se recuperar de falhas. E, como os workers de sugestão fazem só hiperotimização, e não o seu "trabalho pesado", o Vizier consegue escalar esses workers de forma eficiente.

Vizier’s Black Box

Figura 1. Diagrama de arquitetura (baseado no diagrama do artigo de pesquisa.)

Multiobjetivo

A maioria dos processos de otimização e dos hyperparameter tuners busca maximizar uma única métrica. Esse também é o uso mais comum do Vertex AI Vizier. Mas pode ser que você queira otimizar várias métricas ao mesmo tempo. Em um teste A/B de site, você pode querer maximizar tanto a receita quanto o tempo de permanência. Ou pode ter um mercado de dois lados e querer que os compradores consigam bons negócios, ao mesmo tempo em que os vendedores maximizam os lucros.

Como exemplo simples para ilustrar o conceito, dê uma olhada neste Notebook de exemplo do Google, que maximiza duas funções trigonométricas a partir dos mesmos dois parâmetros de entrada.

Vertex AI Vizier

Figura 2. Não existe um único ponto ótimo para as duas funções.

Claramente, não há um único ponto em que as duas métricas atinjam o máximo, então o Vertex AI Vizier descobre a fronteira de Pareto: uma linha em que, de um lado, você não consegue melhorar uma métrica sem piorar a outra. O ótimo não é um ponto, é uma fronteira.

A seguir: flexibilidade e os primeiros notebooks de ML do Vizier

O Vizier é um sistema direto, e você pode (e, em geral, deve) usá-lo com as configurações padrão. Mesmo assim, dá para ajustar ainda mais suas capacidades. No próximo artigo, vamos mostrar como fazer isso e também trazer alguns exemplos de código.

Veja a Parte 3 " Além do básico: configurabilidade do Vizier e exemplos de código"