Dans la partie 1, nous évoquions les processus d'optimisation lents et coûteux qui n'aboutissent jamais à un résultat satisfaisant du premier coup.

Partie 2
Dans la partie 1, nous évoquions les processus d'optimisation lents et coûteux qui n'aboutissent jamais à un résultat satisfaisant du premier coup. Qu'il s'agisse d'entraînement de Machine Learning (ML), de tests A/B sur un site web ou du choix des bons paramètres d'entrée pour une usine, chaque cycle coûte cher et l'on cherche à converger vers un bon résultat le plus vite possible. Vertex AI Vizier sur Google Cloud y parvient en suggérant des paramètres pour chaque essai.
Un simple conseiller
Le mot Vizier désigne le conseiller d'un roi ; il vient de l'arabe وزير wazīr, transmis par le persan et le turc. Le vizir conseille la politique royale, mais ne la décide pas. C'est exactement ainsi que fonctionne l'optimisation black-box de Vizier : il n'effectue pas les essais d'optimisation à votre place. À l'inverse, les services de tuning d'hyperparamètres proposés par GCP et AWS s'occupent de tout. Vous leur fournissez une plage d'hyperparamètres ; par exemple, un learning rate variant continûment de 0 à 1, ou un poids minimum d'enfant sous forme d'entier compris entre 1 et 3. Vous instanciez le client de tuning d'hyperparamètres, puis vous lancez la procédure et n'y pensez plus en appelant une fonction comme fit(). Celle-ci s'exécute pendant un certain temps, parfois plusieurs heures, et déclenche en interne plusieurs itérations d'entraînement, en faisant varier les hyperparamètres à chaque passage. Le tuner renvoie ensuite le meilleur modèle qu'il a pu trouver.
Le processus d'optimisation Black Box échappe à votre contrôle et reste invisible à vos yeux (du moins du point de vue de l'API : il existe en général des systèmes de monitoring en place).
Remarque : " Black Box " signifie que vos essais sont invisibles pour Vizier. Il ne sait rien de l'entraînement ML ni du test A/B. Il ignore tout des gradients, des hauts et des bas de la fonction optimisée à l'intérieur de chaque essai.
Pour vous, en revanche, ces essais sont totalement " white-box " : c'est vous qui êtes aux commandes.
Avantages
Un service de tuning d'hyperparamètres paraît plus simple que Vizier, et de fait Google a bâti Vertex AI AutoML ainsi que les tuners d'hyperparamètres de l'AI Platform (l'ancienne marque) sur un moteur reposant sur Vizier. Mais l'approche Black Box, dans laquelle vous interagissez directement avec Vizier, présente plusieurs atouts.
Contrôle
L'optimisation Black Box vous donne davantage la main.
Les essais relèvent en général de votre domaine d'expertise. Vos développeurs web connaissent les moindres recoins de votre site ; vos data scientists maîtrisent les rouages des algorithmes de ML. Vous avez longuement réfléchi à la meilleure façon de tirer parti de vos systèmes au coût le plus faible. Avec Vizier, vous gardez la pleine maîtrise de l'entraînement ML lui-même : quelle infrastructure ou quelles API utiliser, combien et quels GPU ou TPU, etc.
Vous pouvez même ignorer les suggestions de Vizier et utiliser vos propres paramètres. Bien entendu, en règle générale, vous suivrez les suggestions : c'est précisément la raison pour laquelle vous faites appel à Vizier. Si, par exemple, vous découvrez un nouvel algorithme pour votre ML, ou si les product managers veulent essayer une variante absente du test A/B initial, rien ne vous en empêche. Et même lorsque vous lancez un essai avec vos propres paramètres, vous pouvez toujours transmettre ces paramètres et les métriques associées à Vizier, qui en tirera les enseignements, exactement comme avec ses propres suggestions.
Scalabilité
Vizier ne prend en charge que la partie " facile " de l'optimisation à travers plusieurs essais. Il ne s'occupe pas du gros œuvre du ML, qui peut exiger beaucoup de matériel spécialisé. De même, il ne pilote ni les tests A/B d'un site web ni le fonctionnement d'une usine. C'est ce qui le rend scalable : vous gérez l'entraînement réel ou tout autre processus à optimiser, qui constitue la partie la plus intensive du workflow global, ce qui vous permet d'appliquer les bonnes pratiques les mieux adaptées à votre configuration. (Dans la figure 1 ci-dessous, vos machines d'entraînement correspondent aux " Evaluation workers " sous l'API REST de Vizier.)
De son côté, Vizier instancie des workers de manière scalable pour générer des suggestions ou indiquer quand s'arrêter. Comme son état est stocké dans une base de données plutôt que dans le contexte d'une seule exécution d'optimisation, il peut se rétablir en cas de panne. Et puisque les workers de suggestion ne font que de l'hyperoptimisation, sans assumer le " gros œuvre ", Vizier peut les faire monter en charge efficacement.

Figure 1. Schéma d'architecture (d'après le schéma de l'article de recherche.)
Multi-objectif
La plupart des processus d'optimisation, et la plupart des tuners d'hyperparamètres, cherchent à maximiser une seule métrique. C'est aussi l'usage le plus courant de Vertex AI Vizier. Mais il arrive que vous souhaitiez optimiser plusieurs métriques à la fois. Dans un test A/B sur un site web, vous pouvez vouloir maximiser à la fois le chiffre d'affaires et le temps passé sur le site. Ou bien, sur un marché à deux faces, vous voulez que les acheteurs fassent de bonnes affaires tout en permettant aux vendeurs de maximiser leurs profits.
Pour illustrer simplement ce concept, vous pouvez consulter ce notebook d'exemple de Google, qui maximise deux fonctions trigonométriques partageant les deux mêmes paramètres d'entrée.

Figure 2. Il n'existe pas de point unique optimal pour les deux fonctions.
De toute évidence, aucun point unique ne maximise les deux métriques en même temps ; Vertex AI Vizier identifie donc la frontière de Pareto, une ligne au-delà de laquelle on ne peut plus améliorer une métrique sans dégrader l'autre : l'optimum n'est pas un point, c'est une frontière.
À suivre : flexibilité et premiers notebooks ML Vizier
Vizier est un système simple d'emploi, et vous pouvez (et devriez en général) l'utiliser avec ses paramètres par défaut. Rien ne vous empêche toutefois d'aller plus loin pour affiner ses capacités. Dans le prochain article, nous verrons comment, avec quelques exemples de code à l'appui.
Voir la partie 3 " Au-delà des bases : configurabilité de Vizier et exemples de code "