Die folgenden Best Practices helfen Ihnen, Vertex AI Feature Store (Legacy) in verschiedenen Szenarien zu planen und zu verwenden. Diese Anleitung ist nicht vollständig.
Modellmerkmale, die mehrere Entitäten zusammen beschreiben
Einige Features gelten möglicherweise für mehrere Entitätstypen. Sie haben beispielsweise einen berechneten Wert, der die Klicks pro Produkt nach Nutzer aufzeichnet. Dieses Feature beschreibt gemeinsam Produkt-Nutzer-Paare.
Die Best Practice besteht in diesem Fall darin, einen separaten Entitätstyp zu erstellen, um gemeinsame Features zu gruppieren. Sie können einen Entitätstyp wie product-user
erstellen, der die gemeinsamen Features enthalten soll.
Verketten Sie für die Entitäts-IDs die IDs der einzelnen Entitäten, z. B. die Entitäts-IDs des einzelnen Produkts und des Nutzers. Die einzige Voraussetzung ist, dass die IDs Strings sind. Diese kombinierten Entitätstypen werden als zusammengesetzte Entitätstypen bezeichnet.
Weitere Informationen finden Sie unter Entitätstyp erstellen.
IAM-Richtlinien verwenden, um den Zugriff über mehrere Teams hinweg zu steuern
Mit IAM-Rollen und -Richtlinien können Sie unterschiedliche Zugriffsebenen für verschiedene Nutzergruppen festlegen. Beispielsweise benötigen ML-Forscher, Data Scientists, DevOps und Site Reliability Engineers Zugriff auf denselben Feature Store, ihre Zugriffsebene kann sich jedoch unterscheiden. DevOps-Nutzer benötigen beispielsweise Berechtigungen zum Verwalten eines Feature Stores, aber nicht auf den Inhalt des Feature Stores.
Sie können den Zugriff auf einen bestimmten Feature Store oder Entitätstyp auch mithilfe von IAM-Richtlinien auf Ressourcenebene einschränken.
Angenommen, Ihre Organisation enthält die folgenden Identitäten. Da jeder Identität eine andere Zugriffsebene erfordert, wird jeder Identität eine andere vordefinierte IAM-Rolle zugewiesen. Sie können auch eigene benutzerdefinierte Rollen erstellen und verwenden.
Identität | Beschreibung | Vordefinierte Rolle |
---|---|---|
ML-Forscher oder Business-Analyst | Nutzer, die nur Daten zu bestimmten Entitätstypen aufrufen | roles/aiplatform.featurestoreDataViewer (kann auf Projekt- oder Ressourcenebene gewährt werden) |
Data Scientists oder Data Engineers | Nutzer, die mit bestimmten Entitätstypressourcen arbeiten. Für die eigenen Ressourcen können sie den Zugriff an andere Hauptkonten delegieren. | roles/aiplatform.entityTypeOwner (kann auf Projekt- oder Ressourcenebene gewährt werden) |
IT oder DevOps | Nutzer, die die Leistung bestimmter Feature Stores verwalten und optimieren müssen, aber keinen Zugriff auf die Daten benötigen. | roles/aiplatform.featurestoreInstanceCreator (kann auf Projekt- oder Ressourcenebene gewährt werden) |
Automatisierte Pipeline zum Datenimport | Anwendungen, die Daten in bestimmte Entitätstypen schreiben | roles/aiplatform.featurestoreDataWriter (kann auf Projekt- oder Ressourcenebene gewährt werden) |
Site Reliability Engineer | Nutzer, die bestimmte Feature Stores oder alle Feature Stores in einem Projekt verwalten | roles/aiplatform.featurestoreAdmin (kann auf Projekt- oder Ressourcenebene gewährt werden) |
Global (beliebiger Vertex AI Feature Store-Nutzer (Legacy)) | Nutzern ermöglichen, vorhandene Features aufzurufen und zu suchen Wenn sie ein Feature finden, mit dem sie arbeiten möchten, können sie von den Feature-Inhabern Zugriff anfordern. Nutzer der Google Cloud Console benötigen außerdem die Vertex AI Feature Store-Landingpage (Legacy), die Seite für die Importjobs und die Seite für die Batchbereitstellung. |
Gewähren Sie auf Projektebene die Rolle roles/aiplatform.featurestoreResourceViewer . |
Ressourcen im Blick behalten und optimieren, um den Batchimport zu optimieren
Bei Batchimportjobs müssen Worker Daten verarbeiten und schreiben, was die CPU-Auslastung Ihres Feature Stores erhöhen und die Leistung der Onlinebereitstellung beeinträchtigen kann. Wenn die Beibehaltung der Leistung bei der Onlinebereitstellung eine Priorität hat, beginnen Sie mit einem Worker pro zehn Onlinebereitstellungsknoten. Beobachten Sie während des Imports die CPU-Auslastung des Onlinespeichers. Wenn die CPU-Auslastung niedriger als erwartet ist, erhöhen Sie die Anzahl der Worker für zukünftige Batchimportjobs, um den Durchsatz zu erhöhen. Wenn die CPU-Auslastung höher als erwartet ist, erhöhen Sie die Anzahl der Onlinebereitstellungsknoten, um die CPU-Kapazität zu erhöhen, oder verringern Sie die Anzahl der Worker zum Batchimport. Beides kann die CPU-Auslastung senken.
Wenn Sie die Anzahl der Knoten für die Onlinebereitstellung erhöhen, dauert es etwa 15 Minuten, bis Vertex AI Feature Store (Legacy) nach der Aktualisierung eine optimale Leistung erzielt.
Weitere Informationen finden Sie unter Featurestore aktualisieren und Featurewerte für den Batchimport.
Weitere Informationen zum Monitoring von Featurestores finden Sie unter Cloud Monitoring-Messwerte.
Verwenden Sie das Feld disableOnlineServing
beim Backfill von Verlaufsdaten
Backfills sind Prozesse, die historische Featurewerte importieren, und die keine Auswirkung auf die neuesten Featurewerte haben. In diesem Fall können Sie die Onlinebereitstellung deaktivieren. Dadurch werden alle Änderungen am Onlinespeicher übersprungen. Weitere Informationen finden Sie unter Verlaufsdaten für Backfill.
Mit Autoscaling können Sie Kosten bei Lastschwankungen reduzieren.
Wenn Sie den Vertex AI Feature Store (Legacy) ausgiebig verwenden und häufige Lastschwankungen in Ihren Trafficmustern auftreten, können Sie mit Autoscaling die Kosten optimieren. Mit Autoscaling kann Vertex AI Feature Store (Legacy) die Zugriffsmuster prüfen und die Anzahl der Knoten je nach CPU-Auslastung automatisch nach oben oder unten anpassen, anstatt eine hohe Knotenanzahl beizubehalten. Diese Option eignet sich gut für Trafficmuster, die graduell zu- und abnehmen.
Weitere Informationen zum Autoscaling finden Sie unter Skalierungsoptionen.
Leistung von Onlinebereitstellungsknoten für die Echtzeitbereitstellung testen
Sie können die Leistung Ihres Feature Stores bei der Echtzeit-Onlinebereitstellung sicherstellen, indem Sie die Leistung Ihrer Onlinebereitstellungsknoten testen. Sie können diese Tests anhand verschiedener Benchmarking-Parameter wie Abfragen pro Sekunde, Latenz und API ausführen. Befolgen Sie diese Richtlinien, um die Leistung von Onlinebereitstellungsknoten zu testen:
Alle Testclients aus derselben Region ausführen, vorzugsweise in Compute Engine oder Google Kubernetes Engine: Dadurch werden Abweichungen aufgrund von Netzwerklatenz von Hops in verschiedenen Regionen verhindert.
gRPC API im SDK verwenden: Die gRPC API funktioniert besser als die REST API. Wenn Sie die REST API verwenden müssen, aktivieren Sie die HTTP-Keep-Alive-Option, um HTTP-Verbindungen wiederzuverwenden. Andernfalls wird für jede Anfrage eine neue HTTP-Verbindung erstellt, was die Latenz erhöht.
Tests mit längerer Dauer ausführen: Führen Sie Tests mit einer längeren Dauer (15 Minuten oder mehr) und mindestens 5 Abfragen pro Sekunde aus, um genauere Messwerte zu berechnen.
„Aufwärmphase” hinzufügen: Wenn Sie nach einer Inaktivitätsphase testen, beobachten Sie möglicherweise eine hohe Latenz, während die Verbindungen wiederhergestellt werden. Zur Berücksichtigung des anfänglichen Zeitraums mit hoher Latenz können Sie diesen Zeitraum als "Aufwärmphase” festlegen, wenn die ersten Datenlesevorgänge ignoriert werden. Alternativ können Sie eine niedrige, aber konstante Rate von künstlichem Traffic an den Feature Store senden, um die Verbindung aktiv zu halten.
Aktivieren Sie Autoscaling, falls Sie eine allmähliche Zunahme und einen Rückgang des Onlinetraffics erwarten. Wenn Sie die automatische Skalierung auswählen, ändert Vertex AI automatisch die Anzahl der Online-Ausführungsknoten basierend auf der CPU-Auslastung.
Weitere Informationen zur Onlinebereitstellung. Weitere Informationen zu Onlinebereitstellungsknoten.
Startzeit für die Optimierung der Offlinespeicherkosten während Batchbereitstellung und Batch-Export angeben
Wenn Sie die Offlinespeicherkosten während der Batchbereitstellung und des Batch-Exports optimieren möchten, können Sie in Ihrer batchReadFeatureValues
- oder exportFeatureValues
-Anfrage eine startTime
angeben. Bei der Anfrage wird eine Abfrage auf einer Teilmenge der verfügbaren Feature-Daten ausgeführt, die auf der angegebenen startTime
basiert. Andernfalls wird bei der Anfrage das gesamte verfügbare Volumen an Feature-Daten abgefragt, was zu hohen Kosten für die Offlinespeichernutzung führt.