Solo un asesor
"Vizier" es el título que recibe el asesor de un rey, derivado del árabe وزير wazīr a través del persa y del turco. El Vizier asesora sobre la política real, pero no la decide. Y así funciona la optimización de caja negra de Vizier: no ejecuta los trials de optimización por ti. En cambio, los servicios de ajuste de hiperparámetros de GCP y AWS se encargan de todo. Tú les indicas un rango de hiperparámetros; por ejemplo, la tasa de aprendizaje variando de forma continua entre 0 y 1, o el peso mínimo del hijo como un parámetro entero entre 1 y 3. Creas el cliente del ajustador de hiperparámetros y luego lo lanzas y te olvidas, llamando a una función como fit(). Esa función corre durante un rato, quizá unas horas, y por dentro ejecuta múltiples iteraciones de entrenamiento, eligiendo distintos hiperparámetros sobre la marcha. Al final, el ajustador devuelve el mejor modelo que logró encontrar.
El proceso de optimización de caja negra está fuera de tu control y resulta invisible para ti. (Al menos en lo que respecta a la API: por lo general hay sistemas de monitoreo en marcha).
Nota: "caja negra" significa que tus trials son invisibles para Vizier. No sabe nada del entrenamiento de ML ni del test A/B. No sabe nada de los gradientes ni de los altibajos de la función que se está optimizando dentro de cada trial.
Para ti, en cambio, esos trials son totalmente "de caja blanca": tú llevas la batuta.
Ventajas
Un servicio de ajuste de hiperparámetros parece más simple que Vizier, y de hecho Google construyó Vertex AI AutoML y sus ajustadores de hiperparámetros en la AI Platform (la marca anterior) sobre un motor basado en Vizier. Pero el enfoque de caja negra, en el que tú interactúas con Vizier, también tiene sus ventajas.
Control
Con la optimización de caja negra ganas más control.
Los trials suelen estar dentro de tu campo de experiencia. Los desarrolladores de tu sitio conocen al detalle cómo funciona; tus científicos de datos dominan los pormenores de la algorítmica de ML. Has pensado a fondo cómo sacarle el máximo partido a tus sistemas al menor costo. Con Vizier mantienes el control total del entrenamiento real de ML: qué infraestructura o APIs usar, cuántas y cuáles GPUs o TPUs, etc.
Incluso puedes ignorar las sugerencias de Vizier y usar tus propios parámetros. Por supuesto, lo habitual es seguir las sugerencias: al fin y al cabo, para eso recurres a Vizier. Por ejemplo, quizá leas sobre un nuevo algoritmo para tu ML, o si los product managers quieren probar una variante nueva que no estaba en el test A/B del sitio, puedes lanzarte y probarla. Aun cuando ejecutes el trial con tus propios parámetros, puedes igualmente alimentar esos parámetros y métricas a Vizier, y aprenderá de ello tal como lo hace cuando usas los parámetros que él te sugiere.
Escalabilidad
Vizier solo se ocupa de la parte "fácil": optimizar a lo largo de múltiples trials. No carga con el trabajo pesado del ML, que puede exigir mucho hardware especializado. Tampoco asume el trabajo pesado de los tests A/B de un sitio web ni de operar una fábrica. Eso lo hace escalable, porque tú gestionas el entrenamiento real u otro proceso a optimizar —la parte más intensa del flujo— y por lo tanto puedes aplicar las mejores prácticas que se ajusten a tu setup específico. (En la Figura 1 más abajo, tus máquinas de entrenamiento son los "Evaluation workers" bajo la API REST de Vizier).
Mientras tanto, Vizier despliega workers de forma escalable para generar sugerencias o indicar cuándo conviene detenerse. Como su estado se guarda en una base de datos, y no dentro del contexto de una única ejecución de optimización, puede recuperarse ante fallos. Y dado que los workers de sugerencias solo hacen hiperoptimización y no tu "trabajo pesado", Vizier puede escalarlos de manera eficiente.

Figura 1. Diagrama de arquitectura (basado en el diagrama del artículo de investigación. )
Multiobjetivo
La mayoría de los procesos de optimización, y la mayoría de los ajustadores de hiperparámetros, buscan maximizar una sola métrica. Ese también es el uso más común de Vertex AI Vizier. Pero quizá quieras optimizar varias métricas a la vez. En un test A/B de un sitio web podrías querer maximizar a la vez los ingresos y el tiempo en el sitio. O podrías tener un mercado de dos lados y querer que los compradores consigan buenas ofertas, pero también que los vendedores maximicen sus ganancias.
Como ejemplo simple para ilustrar el concepto, puedes echar un vistazo a este notebook de muestra de Google que maximiza dos funciones trigonométricas de los mismos dos parámetros de entrada.

Figura 2. No existe un único punto óptimo para ambas funciones.
Claramente no hay un único punto donde ambas métricas se maximicen, así que Vertex AI Vizier descubre la frontera de Pareto: una línea a un lado de la cual no puedes mejorar una métrica sin empeorar la otra. El óptimo no es un punto, es una frontera.
A continuación: flexibilidad y los primeros notebooks de ML con Vizier
Vizier es un sistema sencillo, y puedes (y en general, deberías) usarlo con la configuración por defecto. Aun así, también puedes afinar aún más sus capacidades. En el próximo artículo te mostraremos cómo hacerlo y, además, compartiremos algunos ejemplos de código.