Vertex AI Feature Store verwenden

In diesem Dokument wird beschrieben, wie Sie mit Vertex AI Feature Store Aufgaben wie das Synchronisieren eines Onlinespeichers, das Bereitstellen von Features aus einem Onlinespeicher und die Suche in einem Online-Feature Store mithilfe einer Entität oder Einbettungen mit dem Vertex AI SDK für ABAP ausführen.

Vertex AI Feature Store ist ein verwalteter, cloudnativer Feature Store-Dienst. Er optimiert die ML-Featureverwaltung und die Onlinebereitstellungsprozesse, da Sie die Featuredaten in einer BigQuery-Tabelle oder -Ansicht verwalten können.

In einem typischen Workflow einer Vertex AI Feature Store-Einrichtung bereiten Sie zuerst Ihre SAP-Datenquelle in BigQuery vor, registrieren Ihre Datenquellen durch Erstellen von Featuregruppen und Features und richten den Onlinespeicher und die Featureansicht-Ressourcen ein. Sie können dann die neuesten Featurewerte online aus einer Featureansicht bereitstellen oder eine Ähnlichkeitssuche im Online-Feature Store durchführen. Informationen zum Einrichten von Vertex AI Feature Store finden Sie unter Vertex AI Feature Store.

Sobald Ihr Vertex AI Feature Store für die Onlinebereitstellung bereit ist, können Sie das Vertex AI SDK für ABAP für Folgendes verwenden:

  • Damit Sie während der Modellvorhersage aktuelle und genaue Featurewerte für die Echtzeitbereitstellung bereitstellen können, sollten Sie Ihren Onlinespeicher mit der Featuredatenquelle in BigQuery synchronisieren.
  • Wenn Sie Featurewerte aus einem Onlinespeicher für Echtzeitanwendungen bereitstellen möchten, müssen Sie die Features aus dem Onlinespeicher bereitstellen.
  • Wenn Sie eine Liste semantisch ähnlicher oder verwandter Entitäten aus dem Onlinespeicher abrufen möchten, verwenden Sie eine Entität oder Einbettung für die Suche.

Hinweise

Bevor Sie das Vertex AI SDK für ABAP mit dem Vertex AI Feature Store verwenden, müssen Sie oder Ihre Administratoren die folgenden Voraussetzungen erfüllen:

ABAP-Klasse für Vertex AI Feature Store installieren

Wenn Sie den Vertex AI Feature Store in Ihrer ABAP-Anwendung verwenden möchten, müssen Sie die Klasse /GOOG/CL_FEATURE_STORE instanziieren.

DATA(lo_client) = NEW /goog/cl_feature_store(
                          iv_key_name         = 'CLIENT_KEY'
                          iv_location         = 'LOCATION_ID'
                          iv_feature_store_id = 'FEATURE_ONLINE_STORE_NAME' ).

Ersetzen Sie Folgendes:

  • CLIENT_KEY: Der für die Authentifizierung konfigurierte Clientschlüssel.
  • LOCATION_ID: Die Region, in der sich der Onlinespeicher befindet, z. B. us-central1.
  • FEATURE_ONLINE_STORE_NAME: Der Name des Onlinespeichers, der die Featureansicht enthält.

Onlinespeicher synchronisieren

Damit Ihr Onlinespeicher die aktuellen und genauesten Featurewerte für die Echtzeitbereitstellung während der Modellvorhersage hat, müssen Sie die Featureansicht-Ressourcen in Ihrem Onlinespeicher mit der Feature-Datenquelle in BigQuery synchronisieren.

Hinweise

Da Sie über einen regionalen Endpunkt auf den Vertex AI Feature Store zugreifen, müssen Sie ein RFC-Ziel erstellen, um eine Verbindung zur Vertex AI API herzustellen. Geben Sie dann das RFC-Ziel in der Dienstzuordnungstabelle an.

  1. Erstellen Sie ein RFC-Ziel für die Vertex AI API mit dem regionalen Endpunkt, an dem sich Ihr Vertex AI Feature Store befindet. Wenn sich Ihr Vertex AI Feature Store beispielsweise unter us-east1 befindet, lautet der Endpunkt für den Zielhost us-east1-aiplatform.googleapis.com. Informationen zu regionalen Endpunkten finden Sie unter Dienstendpunkt. So erstellen Sie ein RFC-Ziel:

    1. Führen Sie in der SAP-GUI den Transaktionscode SM59 aus.

    2. Erstellen Sie ein neues RFC-Ziel. Achten Sie darauf, dass für das von Ihnen erstellte RFC-Ziel der Verbindungstyp so festgelegt ist: G - HTTP connection to external server.

    3. Öffnen Sie den Tab Technische Einstellungen und geben Sie folgende Details ein:

      • Zielhost: Geben Sie den regionalen Endpunkt an, an dem sich Ihr Vertex AI Feature Store befindet.

      • Dienstnummer: Geben Sie 443 ein. Diese Portnummer wird für die sichere Kommunikation verwendet.

    4. Gehen Sie zum Tab Anmeldung und Sicherheit und prüfen Sie, ob Feld SSL-Zertifikat auf die Option DEFAULT-SSL-Client (Standard) festgelegt ist.

    5. Speichern Sie die Änderungen.

  2. Konfigurieren Sie die Dienstzuordnungstabelle für die Vertex AI API:

    1. Führen Sie in der SAP-GUI den Transaktionscode /GOOG/SDK_IMG aus.

      Alternativ können Sie den Transaktionscode SPRO ausführen und dann auf SAP-Referenz-IMG klicken.

    2. Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Dienstzuordnung konfigurieren.

    3. Klicken Sie auf Neue Einträge.

    4. Geben Sie das RFC-Ziel für die Vertex AI API an:

      Name Dienstname RFC-Ziel
      Clientschlüssel für die Authentifizierung. aiplatform:v1 Name des RFC-Ziels.
    5. Speichern Sie den neuen Eintrag.

Vertex AI Feature Store synchronisieren

Verwenden Sie die Methode SYNC_FEATURE_DATA_TO_FS, um eine Datensynchronisierung in einer Featureansicht zu starten.

DATA(lv_feature_view_sync_id) = lo_client->sync_feature_data_to_fs(
                                             iv_feature_view_id = 'FEATURE_VIEW_NAME'
                                        )->get_feature_sync_id( ).

Ersetzen Sie FEATURE_VIEW_NAME durch den Namen der Datenansicht, für die Sie die Datensynchronisierung starten möchten.

Diese Methode gibt eine Synchronisierungs-ID für die Infoseite zurück, mit der Sie den Status der Synchronisierung prüfen können.

Status der Vertex AI Feature Store-Synchronisierung abrufen

Mit der Methode GET_FEATURE_SYNC_STATUS können Sie den Status einer Vertex AI Feature Store-Synchronisierung abrufen.

DATA(ls_status) = lo_client->get_feature_sync_status(
                               iv_feature_view_id     = 'FEATURE_VIEW_NAME'
                               iv_feature_sync_id     = 'FEATURE_VIEW_SYNC_ID'
              )->get_feature_sync_status( ).

Ersetzen Sie Folgendes:

  • FEATURE_VIEW_NAME: Der Name der Featureansicht, für die Sie den Synchronisierungsstatus prüfen möchten.
  • FEATURE_VIEW_SYNC_ID: Die Synchronisierungs-ID der Feature-Ansicht, die von Vertex AI Feature Store synchronisieren empfangen wurde.

    Diese Methode gibt einen der folgenden Status zusammen mit der Fehlermeldung zurück, falls vorhanden: C: Complete, R: Running oder F: Failed.

Vertex AI Feature Store mit einem SAP-Hintergrundjob synchronisieren

Wenn Sie eine Datensynchronisierung in einer Featureansicht mit einem SAP-Hintergrundjob starten möchten, können Sie die Methode SYNC_FEATURE_DATA_TO_FS_BGJOB verwenden.

Bei dieser Methode wird in Ihrem SAP-System ein Hintergrundjob erstellt, der die Feature Store-Synchronisierung startet und alle 30 Sekunden den Status der Feature Store-Synchronisierung prüft. Wenn der Synchronisierungsstatus des Feature-Stores „Abgeschlossen“ oder „Fehlgeschlagen“ lautet, wird der Hintergrundjob mit einer entsprechenden Meldung abgeschlossen. Wenn die Feature Store-Synchronisierung ausgeführt wird, wird der Hintergrundjob bis zum angegebenen TIMEOUT-Wert ausgeführt. Nach Ablauf der Zeitüberschreitung wird der Hintergrundjob abgeschlossen, die Feature Store-Synchronisierung wird jedoch fortgesetzt.

DATA(ls_bgjob_details) = lo_client->sync_feature_data_to_fs_bgjob(
                                      iv_feature_view_id = 'FEATURE_VIEW_NAME'
                                      iv_timeout         = TIMEOUT
                                 )->get_background_job_details( ).

Ersetzen Sie Folgendes:

  • FEATURE_VIEW_NAME: Der Name der Featureansicht, für die Sie die Datensynchronisierung manuell starten möchten.
  • TIMEOUT: Zeit in Sekunden, nach der der Hintergrundjob das Zeitlimit überschreitet. Dies hat keine Auswirkungen auf die Synchronisierung mit Vertex AI Feature Store.

Diese Methode gibt den Namen eines Hintergrundjobs und die entsprechende ID zurück. Dieser Job kann in SAP überwacht werden, um den Status der Feature Store-Synchronisierung zu prüfen.

Features aus einem Onlinespeicher bereitstellen

Sie können Featurewerte aus einem Onlineshop für Echtzeitanwendungen wie Produktempfehlungen bereitstellen. Abhängig von der für Ihren Onlinespeicher konfigurierten Art der Onlinebereitstellung können Featurewerte auf eine der folgenden Arten bereitgestellt werden:

  • Featurewerte mit der Cloud Bigtable-Onlinebereitstellung abrufen
  • Featurewerte mithilfe der optimierten Onlinebereitstellung mit einem öffentlichen Endpunkt abrufen
  • Featurewerte mit der optimierten Onlinebereitstellung mit einem Private Service Connect-Endpunkt abrufen

Weitere Informationen zum Bereitstellen von Feature-Werten finden Sie unter Features aus einem Onlinespeicher bereitstellen.

Hinweise

Bevor Sie mit der Bereitstellung von Featurewerten aus einem Onlinespeicher beginnen können, müssen Sie den Domainnamen des öffentlichen Endpunkts aus den Details des Onlinespeichers abrufen, ein RFC-Ziel für den Endpunkt erstellen und dann das RFC-Ziel in der Dienstzuordnungstabelle angeben.

  1. Rufen Sie den Domainnamen des öffentlichen Endpunkts für den Onlinespeicher ab:

    1. Führen Sie in der SAP-GUI den Transaktionscode /GOOG/SDK_IMG aus.

      Alternativ können Sie den Transaktionscode SPRO ausführen und dann auf SAP-Referenz-IMG klicken.

    2. Klicken Sie auf ABAP SDK for Google Cloud > Dienstprogramme > Vertex AI SDK: RFC-Informationen für Feature Store und Vektorsuche abrufen.
    3. Wählen Sie Feature Store-Details abrufen aus.
    4. Geben Sie die folgenden Parameter ein:

      • Google Cloud-Schlüsselname: Der Clientschlüssel für die Authentifizierung bei Google Cloud.
      • Standort: Die Region, in der sich der Onlinespeicher befindet.
      • Feature Store-ID: Der Name des Onlinespeichers, der die Featureansicht enthält.
    5. Klicken Sie auf Ausführen, um die Details aufzurufen. Notieren Sie sich den Domainnamen des öffentlichen Endpunkts unter dem Label Host.

  2. Erstellen Sie ein RFC-Ziel für den regionalen Endpunkt, den Domainnamen des öffentlichen Endpunkts oder den Private Service Connect-Endpunkt des Onlinespeichers. So erstellen Sie ein RFC-Ziel:

    1. Führen Sie in der SAP-GUI den Transaktionscode SM59 aus.

    2. Erstellen Sie ein neues RFC-Ziel. Achten Sie darauf, dass für das von Ihnen erstellte RFC-Ziel der Verbindungstyp so festgelegt ist: G - HTTP connection to external server.

    3. Öffnen Sie den Tab Technische Einstellungen und geben Sie folgende Details ein:

      • Zielhost: Geben Sie den Domainnamen des öffentlichen Endpunkts an, an dem sich Ihr Vertex AI Feature Store befindet.

      • Dienstnummer: Geben Sie 443 ein. Diese Portnummer wird für die sichere Kommunikation verwendet.

    4. Gehen Sie zum Tab Anmeldung und Sicherheit und prüfen Sie, ob Feld SSL-Zertifikat auf die Option DEFAULT-SSL-Client (Standard) festgelegt ist.

    5. Speichern Sie die Änderungen.

  3. Konfigurieren Sie die Dienstzuordnungstabelle für die Vertex AI API:

    1. Führen Sie in der SAP-GUI den Transaktionscode /GOOG/SDK_IMG aus.

      Alternativ können Sie den Transaktionscode SPRO ausführen und dann auf SAP-Referenz-IMG klicken.

    2. Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Dienstzuordnung konfigurieren.

    3. Klicken Sie auf Neue Einträge.

    4. Geben Sie das RFC-Ziel für die Vertex AI API an:

      Name Dienstname RFC-Ziel
      Clientschlüssel für die Authentifizierung. apiinvoker:v1 Name des RFC-Ziels.
    5. Speichern Sie den neuen Eintrag.

Featurewerte abrufen

Im Vertex AI Feature Store bezieht sich eine Entität auf ein Element, für das Sie Features erfassen möchten, z. B. einen Kunden, ein Produkt oder einen anderen Datenpunkt. Jede Entität ist mit einer Reihe von Features und ihren entsprechenden Werten verknüpft.

Wenn Sie Featurewerte durch Angabe einer einzelnen Entitäts-ID abrufen möchten, verwenden Sie die Methode SERVE_FEATURE_VALUES.

DATA(lt_features) = lo_client->serve_feature_values(
                         iv_feature_view_id = 'FEATURE_VIEW_NAME'
                             it_entity_id       = 'ENTITY_ID'
                )->get_features( ).

Ersetzen Sie Folgendes:

  • FEATURE_VIEW_NAME: Der Name der Featureansicht, aus der Sie Featurewerte bereitstellen möchten.
  • ENTITY_ID: Der Wert der ID-Spalte im Feature-Eintrag, aus dem Sie die neuesten Featurewerte bereitstellen möchten. Alternativ können Sie ein Array von Teilen angeben, um die Entitäts-ID zu erstellen. Die ID-Spalten müssen in der gleichen Reihenfolge wie in der Feature-Ansicht definiert sein.

Nach ungefähren nächsten Nachbarn suchen

Bei Onlinespeichern, die für die optimierte Onlinebereitstellung erstellt wurden, können Sie eine Suche nach Vektorähnlichkeiten durchführen, um eine Liste von semantisch ähnlichen oder verwandten Entitäten, auch als ungefähre nächste Nachbarn bezeichnet, abzurufen. Sie können nach ungefähren nächsten Nachbarn anhand der Entitäts-ID oder einer Einbettung suchen.

Hinweise

Wenn Sie einen Onlinespeicher für optimierte Onlinebereitstellung erstellen, generiert Vertex AI Feature Store einen öffentlichen Endpunkt-Domainnamen für den Onlinespeicher. Bevor Sie nach den nächsten Nachbarn aus einer Feature-Ansicht im Onlinespeicher suchen können, müssen Sie den Domainnamen des öffentlichen Endpunkts aus den Onlinespeicherdetails abrufen, ein RFC-Ziel für den Endpunkt erstellen und dann das RFC-Ziel in der Dienstzuordnungstabelle angeben.

  1. Rufen Sie den Domainnamen des öffentlichen Endpunkts für den Onlinespeicher ab:

    1. Führen Sie in der SAP-GUI den Transaktionscode /GOOG/SDK_IMG aus.

      Alternativ können Sie den Transaktionscode SPRO ausführen und dann auf SAP-Referenz-IMG klicken.

    2. Klicken Sie auf ABAP SDK for Google Cloud > Dienstprogramme > Vertex AI SDK: RFC-Informationen für Feature Store und Vektorsuche abrufen.
    3. Wählen Sie Feature Store-Details abrufen aus.
    4. Geben Sie die folgenden Parameter ein:

      • Google Cloud-Schlüsselname: Der Clientschlüssel für die Authentifizierung bei Google Cloud.
      • Standort: Die Region, in der sich der Onlinespeicher befindet.
      • Feature Store-ID: Der Name des Onlinespeichers, der die Featureansicht enthält.
    5. Klicken Sie auf Ausführen, um die Details aufzurufen. Notieren Sie sich den Domainnamen des öffentlichen Endpunkts unter dem Label Host.

  2. Erstellen Sie ein RFC-Ziel für den Domainnamen des öffentlichen Endpunkts des Onlinespeichers:

    1. Führen Sie in der SAP-GUI den Transaktionscode SM59 aus.

    2. Erstellen Sie ein neues RFC-Ziel. Achten Sie darauf, dass für das von Ihnen erstellte RFC-Ziel der Verbindungstyp so festgelegt ist: G - HTTP connection to external server.

    3. Öffnen Sie den Tab Technische Einstellungen und geben Sie folgende Details ein:

      • Zielhost: Geben Sie den Domainnamen des öffentlichen Endpunkts für den Onlineshop an.

      • Dienstnummer: Geben Sie 443 ein. Diese Portnummer wird für die sichere Kommunikation verwendet.

    4. Gehen Sie zum Tab Anmeldung und Sicherheit und prüfen Sie, ob Feld SSL-Zertifikat auf die Option DEFAULT-SSL-Client (Standard) festgelegt ist.

    5. Speichern Sie die Änderungen.

  3. Konfigurieren Sie die Dienstzuordnungstabelle für die Vertex AI API:

    1. Führen Sie in der SAP-GUI den Transaktionscode /GOOG/SDK_IMG aus.

      Alternativ können Sie den Transaktionscode SPRO ausführen und dann auf SAP-Referenz-IMG klicken.

    2. Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Dienstzuordnung konfigurieren.

    3. Klicken Sie auf Neue Einträge.

    4. Geben Sie das RFC-Ziel für die Vertex AI API an:

      Name Dienstname RFC-Ziel
      Clientschlüssel für die Authentifizierung. apiinvoker:v1 Name des RFC-Ziels.
    5. Speichern Sie den neuen Eintrag.

Übereinstimmungen mit den nächsten Nachbarn einer Einbettung abrufen

Sie können nach semantisch verwandten Entitäten suchen, indem Sie eine Einbettung angeben.

Um die nächsten Nachbarn einer Einbettung zu suchen, senden Sie eine Anfrage mithilfe der Methode SEARCH_USING_EMBEDDINGS.

DATA(lt_embeddings) = VALUE /goog/cl_aiplatform_v1=>ty_t_/goog/num_float( EMBEDDING_DATA ).

DATA(lt_neighbours) = lo_client->search_using_embeddings(
  EXPORTING
    iv_feature_view_id = 'FEATURE_VIEW_NAME'
    it_embeddings      = lt_embeddings
    is_search_params   = VALUE #( neighbor_count     = 'NEIGHBOR_COUNT'
                                  return_full_entity = 'RETURN_FULL_ENTITY' )
)->get_neighbours( ).

Ersetzen Sie Folgendes:

  • EMBEDDING_DATA: Die Einbettung, für die Sie die Übereinstimmungen mit nächsten Nachbarn abrufen möchten. Ein Einbettungsvektor wird durch ein Array von Gleitkommawerten dargestellt.
  • FEATURE_VIEW_NAME: Der Name der Featureansicht, in der Sie nach Übereinstimmungen mit den ungefähren nächsten Nachbarn suchen möchten.
  • NEIGHBOR_COUNT: Anzahl der ungefähren nächsten Nachbarn, die Sie abrufen möchten.
  • RETURN_FULL_ENTITY: Optional. Geben Sie an, ob die Features für die Entitäten in die Antwort ein- oder ausgeschlossen werden sollen. Geben Sie ABAP_TRUE ein, um die Features zusammen mit den Entitäten in die Antwort aufzunehmen. Der Standardwert ist ABAP_FALSE.

Übereinstimmungen mit den nächsten Nachbarn einer Entität abrufen

Sie können nach semantisch verwandten Entitäten suchen, indem Sie eine Entitäts-ID angeben.

Um die nächsten Nachbarn einer Entitäts-ID zu suchen, senden Sie eine Anfrage mithilfe der Methode SEARCH_USING_ENTITY.

DATA(lt_neighbours) = lo_client->search_using_entity(
  EXPORTING
    iv_feature_view_id = 'FEATURE_VIEW_NAME'
    iv_entity_id       = 'ENTITY_ID'
    is_search_params   = VALUE #( neighbor_count     = 'NEIGHBOR_COUNT'
                                  return_full_entity = 'RETURN_FULL_ENTITY' )
)->get_neighbours( ).

Ersetzen Sie Folgendes:

  • FEATURE_VIEW_NAME: Der Name der Featureansicht, in der Sie nach Übereinstimmungen mit den ungefähren nächsten Nachbarn suchen möchten.
  • ENTITY_ID:: Entitäts-ID der Entität, für die Sie Übereinstimmungen mit ungefähren nächsten Nachbarn abrufen möchten.
  • NEIGHBOR_COUNT: Anzahl der ungefähren nächsten Nachbarn, die Sie abrufen möchten.
  • RETURN_FULL_ENTITY: Optional. Geben Sie an, ob die Features für die Entitäten in die Antwort ein- oder ausgeschlossen werden sollen. Geben Sie ABAP_TRUE ein, um die Features zusammen mit den Entitäten in die Antwort aufzunehmen. Der Standardwert ist ABAP_FALSE.

Nächste Schritte