Les bonnes pratiques suivantes vous aideront à planifier et à utiliser Vertex AI Feature Store (ancien) dans divers scénarios. Ce guide n'est pas pour vocation d'être exhaustif.
Modéliser des caractéristiques décrivant plusieurs entités en même temps
Certaines fonctionnalités peuvent s'appliquer à plusieurs types d'entités. Par exemple, vous pouvez avoir une valeur calculée qui enregistre les clics par produit par utilisateur. Cette fonctionnalité décrit conjointement des paires produit-utilisateur.
Dans ce cas, la bonne pratique consiste à créer un type d'entité distinct pour regrouper les caractéristiques partagées. Vous pouvez créer un type d'entité, tel que product-user
, pour contenir les caractéristiques partagées.
Pour les ID d'entité, concaténez les ID de chaque entité, tels que les ID d'entité du produit et de l'utilisateur. La seule exigence est que les ID doivent être des chaînes. Ces types d'entités combinées sont appelés types d'entités composites.
Pour plus d'informations, consultez la section Créer un type d'entité.
Utiliser les stratégies IAM pour contrôler les accès entre plusieurs équipes
Utilisez les rôles et les stratégies IAM pour définir différents niveaux d'accès à différents groupes d'utilisateurs. Par exemple, les chercheurs en ML, les data scientists, les DevOps et les ingénieurs en fiabilité des sites ont tous besoin d'accéder au même magasin de caractéristiques, mais leur niveau d'accès peut différer. Par exemple, les utilisateurs DevOps peuvent avoir besoin d'autorisations pour gérer un magasin de caractéristiques, mais ils n'ont pas besoin d'accéder à son contenu.
Vous pouvez également restreindre l'accès à un magasin de caractéristiques ou un type d'entité particulier à l'aide de stratégies IAM au niveau des ressources.
Par exemple, imaginons que votre organisation inclut les personas suivants. Comme chaque persona nécessite un niveau d'accès différent, chacun d'eux se voit attribuer un rôle IAM prédéfini différent. Vous pouvez également créer et utiliser vos propres rôles personnalisés.
Personna | Description | Rôle prédéfini |
---|---|---|
Chercheur en ML ou analyste commercial | Utilisateurs qui n'affichent que les données de types d'entités spécifiques | roles/aiplatform.featurestoreDataViewer (peut être attribué au niveau du projet ou de la ressource) |
Data scientists ou ingénieurs de données | Utilisateurs qui travaillent avec des ressources de type d'entité spécifiques. Pour les ressources dont ils sont propriétaires, ils peuvent déléguer l'accès à d'autres comptes principaux. | roles/aiplatform.entityTypeOwner (peut être attribué au niveau du projet ou de la ressource) |
Informaticien ou DevOps | Utilisateurs qui doivent maintenir et ajuster les performances de magasins de caractéristiques spécifiques, mais n'ont pas besoin d'accéder aux données. | roles/aiplatform.featurestoreInstanceCreator (peut être attribué au niveau du projet ou de la ressource) |
Pipeline d'importation de données automatisé | Applications qui écrivent des données dans des types d'entités spécifiques | roles/aiplatform.featurestoreDataWriter (peut être attribué au niveau du projet ou de la ressource) |
Ingénieur en fiabilité des sites | Utilisateurs qui gèrent des magasin de caractéristiques spécifiques ou tous les magasin de caractéristiques d'un projet | roles/aiplatform.featurestoreAdmin (peut être attribué au niveau du projet ou de la ressource) |
Global (tous les utilisateurs de Vertex AI Feature Store (ancien)) | Permet aux utilisateurs d'afficher et de rechercher des fonctionnalités existantes. S'ils trouvent une fonctionnalité qu'ils souhaitent utiliser, ils peuvent demander l'accès aux propriétaires de la fonctionnalité. Pour les utilisateurs de la console Google Cloud, ce rôle est également requis pour afficher la page de destination de Vertex AI Feature Store (ancien), la page des jobs d'importation et la page des jobs de diffusion par lot. |
Attribue le rôle roles/aiplatform.featurestoreResourceViewer au niveau du projet. |
Surveiller et régler les ressources en conséquence pour optimiser l'importation par lots
Les jobs d'importation par lots nécessitent des nœuds de calcul pour traiter et écrire des données, ce qui peut augmenter l'utilisation de processeur de votre featurestore et affecter les performances de diffusion en ligne. Si les performances de diffusion en ligne sont prioritaires, commencez avec un nœud de calcul pour dix nœuds de diffusion en ligne. Pendant l'importation, surveillez l'utilisation du processeur du stockage en ligne. Si l'utilisation du processeur est inférieure à celle attendue, augmentez le nombre de nœuds de calcul pour les futurs jobs d'importation par lots afin d'augmenter le débit. Si l'utilisation du processeur est plus élevée que prévu, augmentez le nombre de nœuds de diffusion en ligne pour augmenter la capacité du processeur ou diminuez le nombre de nœuds de calcul d'importation par lots. Ces deux actions peuvent réduire l'utilisation du processeur.
Si vous augmentez le nombre de nœuds de diffusion en ligne, sachez que Vertex AI Feature Store (ancien) prend environ 15 minutes pour atteindre des performances optimales après la mise à jour.
Pour plus d'informations, consultez les sections Mettre à jour un featurestore et Importer des valeurs de caractéristiques par lot.
Pour plus d'informations sur la surveillance des featurestores, consultez la section sur les métriques Cloud Monitoring.
Utilisez le champ disableOnlineServing
lors du remplissage des données de l'historique
Le remplissage est le processus d'importation de valeurs de caractéristiques historiques et n'a pas d'incidence sur les valeurs les plus récentes. Dans ce cas, vous pouvez désactiver la diffusion en ligne, ce qui ignore les modifications apportées au magasin en ligne. Pour en savoir plus, consultez la section Remplir les données de l'historique.
Utiliser l'autoscaling pour réduire les coûts lors des fluctuations de charge
Si vous utilisez fréquemment Vertex AI Feature Store (ancien) et que vous rencontrez des fluctuations de charge fréquentes dans vos modèles de trafic, utilisez l'autoscaling pour optimiser les coûts. L'autoscaling permet à Vertex AI Feature Store d'examiner les modèles de trafic et d'ajuster automatiquement le nombre de nœuds en fonction de l'utilisation du processeur, plutôt que de conserver un nombre élevé de nœuds. Cette option est adaptée aux modèles de trafic qui connaissent une croissance progressive suivie d'un déclin.
Pour en savoir plus sur l'autoscaling, consultez la page Options de scaling.
Tester les performances des nœuds de diffusion en ligne pour la diffusion en temps réel
Vous pouvez garantir les performances de votre magasin de caractéristiques pendant la diffusion en ligne en temps réel en testant les performances de vos nœuds de diffusion en ligne. Vous pouvez effectuer ces tests en fonction de divers paramètres d'analyse comparative, tels que le RPS, la latence et l'API. Suivez ces consignes pour tester les performances des nœuds de diffusion en ligne :
Exécutez tous les clients de test depuis la même région, de préférence sur Compute Engine ou Google Kubernetes Engine : cela évite les écarts liés à la latence du réseau résultant de sauts entre les régions.
Utilisez l'API gRPC dans le SDK : l'API gRPC est plus performante que l'API REST. Si vous devez utiliser l'API REST, activez l'option HTTP "keep-alive" pour réutiliser les connexions HTTP. Sinon, chaque requête entraîne la création d'une connexion HTTP, ce qui augmente la latence.
Effectuez des tests de plus longue durée : effectuez des tests plus longs (15 minutes ou plus) et avec un minimum de 5 RPS pour calculer des métriques plus précises.
Ajoutez une période "d'échauffement" : si vous commencez à effectuer des tests après une période d'inactivité, vous risquez d'observer une latence élevée pendant le rétablissement des connexions. Pour tenir compte de la période initiale de latence élevée, vous pouvez désigner cette période comme "période d'échauffement", au cours de laquelle les lectures de données initiales sont ignorées. Vous pouvez également envoyer un trafic artificiel faible mais cohérent au magasin de caractéristiques pour que la connexion reste active.
Si nécessaire, activez l'autoscaling : si vous prévoyez des évolutions progressives (croissances comme baisses) de votre trafic en ligne, activez l'autoscaling. Si vous choisissez l'autoscaling, Vertex AI modifie automatiquement le nombre de nœuds de diffusion en ligne en fonction de l'utilisation du processeur.
Pour en savoir plus sur la diffusion en ligne, consultez la page Diffusion en ligne. Pour en savoir plus sur les nœuds de diffusion en ligne, consultez la page Nœuds de diffusion en ligne.
Spécifier une heure de début pour optimiser les coûts du stockage hors connexion lors de la diffusion et de l'exportation par lot
Pour optimiser les coûts de stockage hors connexion lors de la diffusion et de l'exportation par lot, vous pouvez spécifier un startTime
dans votre requête batchReadFeatureValues
ou exportFeatureValues
. La requête exécute une requête sur un sous-ensemble des données de caractéristiques disponibles, en fonction de la valeur de startTime
spécifiée. Sinon, la requête interroge l'ensemble du volume de données de caractéristiques disponible, ce qui entraîne des coûts de stockage hors connexion élevés.
Étapes suivantes
Découvrez les bonnes pratiques Vertex AI Feature Store (ancien) de mise en œuvre de modèles de ML personnalisés sur Vertex AI.