Proporcionar esquemas a Vertex AI Model Monitoring

Para iniciar un trabajo de monitorización, Model Monitoring necesita conocer el esquema de tu conjunto de datos tabular para analizar correctamente la carga útil de entrada.

  • En el caso de los modelos de AutoML, Model Monitoring analiza automáticamente el esquema porque Vertex AI ya tiene acceso a tus datos de entrenamiento.

  • En el caso de los modelos con entrenamiento personalizado:

    • Model Monitoring puede analizar automáticamente los esquemas de los modelos que usan un formato de entrada estándar de pares clave-valor.

    • En el caso de los modelos entrenados de forma personalizada que no usan un formato de entrada de clave-valor, es posible que tengas que proporcionar un esquema al crear tu trabajo de monitorización.

    La generación de esquemas varía en función de si habilitas la monitorización de modelos para un endpoint de inferencia online o para inferencias por lotes.

Análisis de esquemas para endpoints de inferencia online

En el caso de los endpoints de inferencia online, puedes dejar que Model Monitoring analice el esquema automáticamente o subir un esquema al crear una tarea de monitorización.

Análisis automático de esquemas

Después de habilitar la detección de sesgo o deriva en un endpoint online, Model Monitoring suele analizar automáticamente el esquema de entrada. Para el análisis automático del esquema, Model Monitoring analiza las primeras 1000 solicitudes de entrada para determinar el esquema.

El análisis automático de esquemas funciona mejor cuando las solicitudes de entrada tienen el formato de pares clave-valor, donde "key" es el nombre de la función y "value" es el valor de la función. Por ejemplo:

"key":"value"
{"TenYearCHD":"0", "glucose":"5.4", "heartRate":"1", "age":"30",
"prevalentStroke":"0", "gender":"f", "ethnicity":"latin american"}

Si las entradas no están en formato "key":"value", Model Monitoring intenta identificar el tipo de datos de cada característica y asigna automáticamente un nombre predeterminado a cada entrada.

Esquemas de instancias personalizadas

Puede proporcionar su propio esquema de entrada al crear una tarea de Model Monitoring para asegurarse de que Model Monitoring analiza correctamente las entradas de su modelo.

Este esquema se denomina esquema de instancia de análisis. El archivo de esquema especifica el formato de la carga útil de entrada, los nombres de cada función y el tipo de cada función.

El esquema debe escribirse como un archivo YAML en formato Open API. El siguiente ejemplo corresponde a una solicitud de inferencia con el formato object:

type: object
properties:
  age:
    type: string
  BMI:
    type: number
  TenYearCHD:
    type: string
  cigsPerDay:
    type: array
    items:
      type: string
  BPMeds:
    type: string
required:
- age
- BMI
- TenYearCHD
- cigsPerDay
- BPMeds
  • type indica si tu solicitud de inferencia tiene uno de los siguientes formatos:

    • object: pares clave-valor
    • array: similar a un array
    • string: cadena-csv
  • properties indica el tipo de cada función.

  • Si la solicitud está en formato de matriz o de cadena CSV, especifica el orden en el que se enumeran las funciones en cada solicitud en el campo required.

Si tu solicitud de inferencia está en formato de matriz o de cadena CSV, representa las características que falten como valores nulos. Por ejemplo, supongamos que hay una solicitud de inferencia con cinco características:

[feature_a, feature_b, feature_c, feature_d, feature_e]

Si feature_c permite que falten valores, una solicitud de ejemplo en la que falte feature_c sería {[1, 2, , 4, 6]}. La longitud de la lista sigue siendo 5, con un valor nulo en medio.

Análisis de esquemas para inferencias por lotes

En el caso de las inferencias por lotes, puedes dejar que Model Monitoring analice el esquema automáticamente o subir un esquema al crear un trabajo de monitorización.

Análisis automático de esquemas

Si no proporcionas un esquema durante la creación de la tarea de monitorización, Model Monitoring infiere los tipos de datos de tus características y genera el esquema en función de tus datos de entrenamiento.

Monitorización de modelos también necesita saber qué función es la columna de destino, es decir, la función que se está prediciendo. La columna de destino se excluye del esquema y de la métrica de sesgo de características. Puedes especificar la columna de destino al crear un trabajo de monitorización.

Especificación de la columna de destino

Si no especifica la columna de destino al crear un trabajo de monitorización, Model Monitoring etiquetará el último nombre de la función de sus datos de entrenamiento como columna de destino.

Por ejemplo, Monitorización de modelos etiqueta column_c en estos datos de entrenamiento de CSV como columna de destino porque column_c está al final de la primera fila:

column_a, column_b, column_d, column_c
1,"a", 2, "c"
2,"b", 342, "d"

Del mismo modo, Monitorización de modelos etiqueta column_c en este archivo JSONL como columna de destino porque column_c está al final de la primera fila:

{"column_a": 1, "column_b": "a", "column_d": 2, "column_c": "c" }
{"column_a": 2, "column_b": "b", "column_c": "d",  "column_d": 342}

En ambos ejemplos, el esquema final solo contiene column_a, column_b y column_d.

Custom schemas (Esquemas personalizados)

Tu esquema personalizado especifica el formato de la carga útil de entrada, los nombres de cada función y el tipo de cada función.

El esquema debe escribirse como un archivo YAML con sintaxis Open API. El siguiente ejemplo corresponde a una solicitud de inferencia con el formato object:

type: object
properties:
  age:
    type: string
  BMI:
    type: number
  TenYearCHD:
    type: string
  cigsPerDay:
    type: array
    items:
      type: string
  BPMeds:
    type: string
required:
- age
- BMI
- TenYearCHD
- cigsPerDay
- BPMeds

Model Monitoring calcula el sesgo de las características en función del resultado de la inferencia por lotes de JSON Lines. Si el tipo de datos contiene una matriz, la longitud de la matriz en los datos de entrada debe ser igual al número de características especificadas en el archivo YAML. De lo contrario, Model Monitoring excluye la instancia de inferencia con la longitud de array incorrecta del cálculo de la desviación de las características.

Por ejemplo, las matrices de los siguientes tipos de datos contienen dos características:

  • Matriz: {[[1, 2]]}

  • "Key"/"Value": {"key": 0, "values": [[1, 2]]}

El esquema correspondiente también debe especificar dos funciones:

type: object
properties:
  name:
    type: string
  age:
    type: number
required:
- name
- age

Siguientes pasos