Usar Vertex AI Feature Store

En este documento, se describe cómo usar Vertex AI Feature Store para realizar tareas como sincronizar una tienda en línea, entregar atributos desde una tienda en línea y buscar un almacén de atributos en línea con una entidad o incorporaciones con el SDK de Vertex AI para ABAP.

Vertex AI Feature Store es un servicio administrado de almacenamiento de atributos nativo de la nube. Permite optimizar los procesos de administración de atributos de aprendizaje automático y de entrega en línea, ya que te permite administrar tus datos de atributos en una tabla o vista de BigQuery.

En un flujo de trabajo típico de una configuración de Vertex AI Feature Store, primero preparas tu fuente de datos de SAP en BigQuery, registras tus fuentes de datos creando grupos de atributos y atributos, y configuras la tienda en línea y los recursos de vista de atributos. Luego, puedes entregar los valores de atributos más recientes en línea desde una vista de atributos o realizar una búsqueda de similitud en el almacén de atributos en línea. Para obtener información sobre cómo configurar Vertex AI Feature Store, consulta Vertex AI Feature Store.

Una vez que tu Vertex AI Feature Store esté listo para la entrega en línea, puedes usar el SDK de Vertex AI para ABAP para lo siguiente:

  • Para proporcionar los valores de atributos más actualizados y precisos para la publicación en tiempo real durante la predicción del modelo, sincroniza tu tienda en línea con la fuente de datos de atributos en BigQuery.
  • Para proporcionar valores de atributos desde una tienda en línea para aplicaciones en tiempo real, entrega atributos desde la tienda en línea.
  • Para recuperar una lista de entidades semánticamente similares o relacionadas de la tienda en línea, realiza la búsqueda con una entidad o incorporación.

Antes de comenzar

Antes de usar el SDK de Vertex AI para ABAP con Vertex AI Feature Store, asegúrate de que tú o tus administradores hayan completado los siguientes requisitos previos:

Crea una instancia de la clase ABAP para Vertex AI Feature Store

Para usar Vertex AI Feature Store en tu aplicación ABAP, debes crear una instancia de la clase /GOOG/CL_FEATURE_STORE.

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' ).

Reemplaza lo siguiente:

  • CLIENT_KEY: Es la clave del cliente configurada para la autenticación.
  • LOCATION_ID: región en donde se encuentra la tienda en línea, como us-central1.
  • FEATURE_ONLINE_STORE_NAME: Es el nombre de la tienda en línea que contiene la vista de atributos.

Sincroniza la tienda en línea

Para asegurarte de que tu tienda en línea tenga los valores de atributos más actualizados y precisos para la publicación en tiempo real durante la predicción del modelo, debes sincronizar los recursos de vista de atributos de tu tienda en línea con la fuente de datos de atributos en BigQuery.

Antes de comenzar

Como accedes a Vertex AI Feature Store a través de un extremo regional, debes crear un destino de RFC para establecer la conexión con la API de Vertex AI. Luego, especificas el destino de RFC en la tabla de asignación de servicios.

  1. Crea un destino de RFC para la API de Vertex AI con el extremo regional en el que reside tu Vertex AI Feature Store. Por ejemplo, si tu Vertex AI Feature Store reside en us-east1, el extremo del host de destino sería us-east1-aiplatform.googleapis.com. Para obtener información sobre los extremos regionales, consulta Extremo de servicio. Para crear un destino de RFC, realiza los siguientes pasos:

    1. En la GUI de SAP, ejecuta el código de transacción SM59.

    2. Crea un nuevo destino de RFC. Para los destinos de RFC que creaste, asegúrate de que el Tipo de conexión esté configurado de la siguiente manera: G - HTTP connection to external server.

    3. Ve a la pestaña Configuración técnica y, luego, ingresa los siguientes detalles:

      • Host de destino: Proporciona el extremo regional en el que reside tu Vertex AI Feature Store.

      • Número de servicio: Ingresa 443. Este número de puerto se usa para la comunicación segura.

    4. Ve al Inicio de sesión y seguridad y asegúrate de que el Certificado SSL se establece el campo con la opción Cliente SSL de CDAULT (estándar).

    5. Guarda los cambios.

  2. Configura la tabla de asignación de servicios para la API de Vertex AI:

    1. En la GUI de SAP, ejecuta el código de transacción /GOOG/SDK_IMG.

      Como alternativa, ejecuta el código de transacción SPRO y, luego, haz clic en IMG de referencia de SAP.

    2. Haz clic en SDK de ABAP para Google Cloud > Configuración básica > Configurar asignación de servicios.

    3. Haz clic en Entradas nuevas.

    4. Especifica el destino de RFC para la API de Vertex AI:

      Nombre Nombre del servicio Destino de RFC
      Clave de cliente para la autenticación. aiplatform:v1 Es el nombre del destino de RFC.
    5. Guarda la entrada nueva.

Sincroniza Vertex AI Feature Store

Para iniciar una sincronización de datos en una vista de atributos, usa el método SYNC_FEATURE_DATA_TO_FS.

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

Reemplaza FEATURE_VIEW_NAME por el nombre de la vista de componentes para la que deseas iniciar la sincronización de datos.

Este método muestra un ID de sincronización de vista de componentes, que se puede usar para verificar el estado de la sincronización.

Obtén el estado de la sincronización de Vertex AI Feature Store

Para obtener el estado de una sincronización de Vertex AI Feature Store, puedes usar el método GET_FEATURE_SYNC_STATUS.

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( ).

Reemplaza lo siguiente:

  • FEATURE_VIEW_NAME: Es el nombre de la vista de atributos de la que deseas verificar el estado de sincronización.
  • FEATURE_VIEW_SYNC_ID: El ID de sincronización de la vista de funciones que se recibió de Sync Vertex AI Feature Store.

    Este método muestra uno de los siguientes estados junto con el mensaje de error, si corresponde: C: Complete, R: Running o F: Failed.

Sincroniza Vertex AI Feature Store con un trabajo en segundo plano de SAP

Para iniciar una sincronización de datos en una vista de atributos con un trabajo en segundo plano de SAP, puedes usar el método SYNC_FEATURE_DATA_TO_FS_BGJOB.

Este método crea un trabajo en segundo plano en tu sistema SAP, que inicia la sincronización de Feature Store y verifica el estado de la sincronización de Feature Store cada 30 segundos. Si el estado de sincronización de la tienda de funciones se completa o falla, el trabajo en segundo plano se completa con un mensaje según corresponda. Si la sincronización de Feature Store se está ejecutando, la tarea en segundo plano se ejecuta hasta que se alcanza el valor de TIMEOUT especificado. Después del tiempo de espera, se completa la tarea en segundo plano, sin embargo, la sincronización de la tienda de funciones sigue ejecutándose.

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( ).

Reemplaza lo siguiente:

  • FEATURE_VIEW_NAME: Es el nombre de la vista de atributos de la que deseas iniciar manualmente la sincronización de datos.
  • TIMEOUT: Es el tiempo en segundos después del cual se agota el tiempo de espera del trabajo en segundo plano. Esto no afecta la sincronización de Vertex AI Feature Store.

Este método muestra el nombre de una tarea en segundo plano y el ID correspondiente. Se puede supervisar esta tarea desde SAP para verificar el estado de la sincronización de la tienda de componentes.

Publica funciones desde una tienda en línea

Puedes publicar valores de atributos desde una tienda en línea para aplicaciones en tiempo real, como las recomendaciones de productos. Según el tipo de entrega en línea que configuraste para tu tienda en línea, puedes entregar valores de atributos de una de las siguientes maneras:

  • Recupera valores de atributos mediante la entrega en línea de Bigtable
  • Recupera valores de atributos mediante la entrega en línea optimizada con un extremo público.
  • Recupera valores de atributos mediante la entrega en línea optimizada con un extremo de Private Service Connect.

Para obtener más información sobre la entrega de valores de atributos, consulta Cómo publicar atributos desde una tienda en línea.

Antes de comenzar

Antes de comenzar a publicar valores de atributos desde una tienda en línea, debes recuperar el nombre de dominio del extremo público de los detalles de la tienda en línea, crear un destino de RFC para el extremo y, luego, especificarlo en la tabla de asignación de servicios.

  1. Recupera el nombre de dominio del extremo público de la tienda en línea

    1. En la GUI de SAP, ejecuta el código de transacción /GOOG/SDK_IMG.

      Como alternativa, ejecuta el código de transacción SPRO y, luego, haz clic en IMG de referencia de SAP.

    2. Haz clic en SDK de ABAP para Google Cloud > Utilidades > SDK de Vertex AI: Obtén información de RFC para Feature Store y Vector Search.
    3. Selecciona Obtener detalles de Feature Store.
    4. Ingresa los siguientes parámetros:

      • Nombre de la clave de Google Cloud: Es la clave de cliente para la autenticación en Google Cloud.
      • Ubicación: Es la región en la que se encuentra la tienda en línea.
      • ID de Feature Store: Es el nombre de la tienda en línea que contiene la vista de atributos.
    5. Haz clic en Ejecutar para ver los detalles. Anota el nombre de dominio del extremo público junto a la etiqueta Host.

  2. Crea un destino de RFC para el extremo regional, el nombre de dominio del extremo público o el extremo de Private Service Connect de la tienda en línea. Para crear un destino de RFC, realiza los siguientes pasos:

    1. En la GUI de SAP, ejecuta el código de transacción SM59.

    2. Crea un nuevo destino de RFC. Para los destinos de RFC que creaste, asegúrate de que el Tipo de conexión esté configurado de la siguiente manera: G - HTTP connection to external server.

    3. Ve a la pestaña Configuración técnica y, luego, ingresa los siguientes detalles:

      • Host de destino: Proporciona el nombre de dominio del extremo público en el que reside tu Vertex AI Feature Store.

      • Número de servicio: Ingresa 443. Este número de puerto se usa para la comunicación segura.

    4. Ve al Inicio de sesión y seguridad y asegúrate de que el Certificado SSL se establece el campo con la opción Cliente SSL de CDAULT (estándar).

    5. Guarda los cambios.

  3. Configura la tabla de asignación de servicios para la API de Vertex AI:

    1. En la GUI de SAP, ejecuta el código de transacción /GOOG/SDK_IMG.

      Como alternativa, ejecuta el código de transacción SPRO y, luego, haz clic en IMG de referencia de SAP.

    2. Haz clic en SDK de ABAP para Google Cloud > Configuración básica > Configurar asignación de servicios.

    3. Haz clic en Entradas nuevas.

    4. Especifica el destino de RFC para la API de Vertex AI:

      Nombre Nombre del servicio Destino de RFC
      Clave de cliente para la autenticación. apiinvoker:v1 Es el nombre del destino de RFC.
    5. Guarda la entrada nueva.

Recupera valores de funciones

En Vertex AI Feature Store, una entidad hace referencia a un elemento del que deseas hacer un seguimiento de atributos, como un cliente, un producto o cualquier otro dato. Cada entidad está asociada con un conjunto de atributos y sus valores correspondientes.

Para recuperar valores de atributos especificando un solo ID de entidad, usa el método 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( ).

Reemplaza lo siguiente:

  • FEATURE_VIEW_NAME: El nombre de la vista de atributos desde la que deseas entregar valores de atributos.
  • ENTITY_ID: Es el valor de la columna de ID en el registro de atributos desde el que deseas publicar los valores de atributos más recientes. Como alternativa, puedes proporcionar un array de partes para construir el ID de la entidad. Asegúrate de que las columnas de ID estén en el mismo orden que se define en la vista de atributos.

Busca vecinos más cercanos aproximados

En el caso de las tiendas en línea creadas para la entrega en línea optimizada, puedes realizar una búsqueda de similitud de vectores para recuperar una lista de entidades semánticamente similares o relacionadas, también llamadas vecinos más cercanos aproximados. Puedes buscar vecinos más cercanos aproximados según un ID de entidad o una incorporación.

Antes de comenzar

Cuando creas una tienda en línea para la entrega en línea optimizada, Vertex AI Feature Store genera un nombre de dominio de extremo público para el almacén en línea. Antes de comenzar a buscar los vecinos más cercanos desde una vista de atributos en la tienda en línea, debes recuperar el nombre de dominio del extremo público de los detalles de la tienda en línea, crear un destino de RFC para el extremo y, luego, especificar el destino de RFC en la tabla de asignación de servicios.

  1. Recupera el nombre de dominio del extremo público de la tienda en línea

    1. En la GUI de SAP, ejecuta el código de transacción /GOOG/SDK_IMG.

      Como alternativa, ejecuta el código de transacción SPRO y, luego, haz clic en IMG de referencia de SAP.

    2. Haz clic en SDK de ABAP para Google Cloud > Utilidades > SDK de Vertex AI: Obtén información de RFC para Feature Store y Vector Search.
    3. Selecciona Obtener detalles de Feature Store.
    4. Ingresa los siguientes parámetros:

      • Nombre de la clave de Google Cloud: Es la clave de cliente para la autenticación en Google Cloud.
      • Ubicación: Es la región en la que se encuentra la tienda en línea.
      • ID de Feature Store: Es el nombre de la tienda en línea que contiene la vista de atributos.
    5. Haz clic en Ejecutar para ver los detalles. Anota el nombre de dominio del extremo público junto a la etiqueta Host.

  2. Crea un destino de RFC para el nombre de dominio del extremo público de la tienda en línea:

    1. En la GUI de SAP, ejecuta el código de transacción SM59.

    2. Crea un nuevo destino de RFC. Para los destinos de RFC que creaste, asegúrate de que el Tipo de conexión esté configurado de la siguiente manera: G - HTTP connection to external server.

    3. Ve a la pestaña Configuración técnica y, luego, ingresa los siguientes detalles:

      • Host de destino: Proporciona el nombre de dominio del extremo público de la tienda en línea.

      • Número de servicio: Ingresa 443. Este número de puerto se usa para la comunicación segura.

    4. Ve al Inicio de sesión y seguridad y asegúrate de que el Certificado SSL se establece el campo con la opción Cliente SSL de CDAULT (estándar).

    5. Guarda los cambios.

  3. Configura la tabla de asignación de servicios para la API de Vertex AI:

    1. En la GUI de SAP, ejecuta el código de transacción /GOOG/SDK_IMG.

      Como alternativa, ejecuta el código de transacción SPRO y, luego, haz clic en IMG de referencia de SAP.

    2. Haz clic en SDK de ABAP para Google Cloud > Configuración básica > Configurar asignación de servicios.

    3. Haz clic en Entradas nuevas.

    4. Especifica el destino de RFC para la API de Vertex AI:

      Nombre Nombre del servicio Destino de RFC
      Clave de cliente para la autenticación. apiinvoker:v1 Es el nombre del destino de RFC.
    5. Guarda la entrada nueva.

Recupera las coincidencias de vecino más cercano de una incorporación

Para buscar entidades relacionadas semánticamente, especifica una incorporación.

Para buscar vecinos más cercanos para una incorporación, envía una solicitud con el método 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( ).

Reemplaza lo siguiente:

  • EMBEDDING_DATA: Es la incorporación para la que deseas recuperar las coincidencias de vecino más cercano aproximado. Una incorporación se representa con un array de valores de punto flotante.
  • FEATURE_VIEW_NAME: El nombre de la vista de características en la que deseas buscar las coincidencias aproximadas de los vecinos más cercanos.
  • NEIGHBOR_COUNT: La cantidad de vecinos más cercanos aproximados que deseas recuperar.
  • RETURN_FULL_ENTITY: Opcional Especifica si deseas incluir o excluir las funciones de las entidades en la respuesta. Para incluir los atributos junto con las entidades en la respuesta, ingresa ABAP_TRUE. El valor predeterminado es ABAP_FALSE.

Recupera las coincidencias de vecino más cercano de una entidad

Para buscar entidades relacionadas semánticamente, especifica un ID de entidad.

Para buscar vecinos más cercanos de un ID de entidad, envía una solicitud con el método 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( ).

Reemplaza lo siguiente:

  • FEATURE_VIEW_NAME: El nombre de la vista de características en la que deseas buscar las coincidencias aproximadas de los vecinos más cercanos.
  • ENTITY_ID:: El ID de la entidad para la que deseas recuperar las coincidencias de vecino más cercano aproximado.
  • NEIGHBOR_COUNT: La cantidad de vecinos más cercanos aproximados que deseas recuperar.
  • RETURN_FULL_ENTITY: Opcional Especifica si deseas incluir o excluir las funciones de las entidades en la respuesta. Para incluir los atributos junto con las entidades en la respuesta, ingresa ABAP_TRUE. El valor predeterminado es ABAP_FALSE.

¿Qué sigue?