Oltre agli schemi di sistema predefiniti, Vertex ML Metadata fornisce
un modello dei dati estendibile
tramite schemi personalizzati. Gli schemi personalizzati sono definiti dall'utente
MetadataSchemas. Utilizza schemi personalizzati per digitare le proprietà dei metadati di controllo e per
query sulle risorse per schema, ad esempio
"elenca tutti gli artefatti di tipo MyCustomModel
.
Per definire uno schema personalizzato, devi creare una risorsa MetadataSchema all'interno di un
un MetadataStore specifico che descrive lo schema previsto. Il formato dello schema è
un sottoinsieme della specifica OpenAPI 3.0{class: external},
con la limitazione che lo schema di primo livello deve essere di tipo object
. Tutti
Tipi di dati supportati da OpenAPI 3.0
(ad esempio, numero intero, numero, stringa, booleano, array, oggetto) sono supportati come
dell'oggetto schema di primo livello. Una restrizione è che ogni campo
nella sezione delle proprietà può essere assegnato a un solo tipo di dati. Tipi misti
non sono supportati. Requisiti avanzati per i dati, come minimi
Non sono supportati nemmeno i formati massimo, multiplo e stringa.
Come registrare gli schemi personalizzati
La procedura per creare un MetadataSchema personalizzato è simile alla procedura di creazione di un nuovo e le risorse di metadati. Le seguenti istruzioni mostrano come creare un esempio MetadataSchema. L'ambito degli schemi dei metadati è limitato solo ai loro MetadataStore.
REST
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- LOCATION_ID: la regione del tuo MetadataStore.
- PROJECT_ID: il tuo ID progetto o numero.
- METADATA_STORE: l'ID dell'archivio di metadati in cui viene creato lo schema Metadata.
L'archivio di metadati predefinito è denominato
default
. A meno che non sia richiesto un nuovo MetadataStore, puoi usare lo store predefinito. - METADATA_SCHEMA_ID: (facoltativo) l'ID del record MetadataSchema. Se l'ID non è specificato, Vertex ML Metadata crea un identificatore univoco per questo MetadataSchema di Google.
- METADATA_SCHEMA_TITLE: il titolo dello schema che descrive il campo dei metadati. Titolo
dello schema deve essere nel formato "
. ". Lo spazio dei nomi deve iniziare con uno lettera minuscola, può contenere caratteri minuscoli e numeri e può avere da due a venti caratteri lunga. Il nome dello schema deve iniziare con una lettera maiuscola, può includere lettere e numeri e possono avere una lunghezza compresa tra 2 e 40 caratteri. - METADATA_SCHEMA_VERSION: (facoltativo) la versione dello schema che descrive i
.
schema_version
deve essere una stringa di tre numeri separati da punti, ad esempio 1.0.0, 1.0.1. Questo formato consente di ordinare e confrontare le versioni. - METADATA_SCHEMA_TYPE: il tipo di risorsa di metadati a cui si applica lo schema creato.
I tipi sono:
ARTIFACT_TYPE
,EXECUTION_TYPE
oCONTEXT_TYPE
. - METADATA_SCHEMA: lo schema dettagliato da creare.
- DESCRIPTION: (facoltativo) una stringa leggibile che descrive lo scopo dell'esecuzione da creare.
- ARTIFACT_ID: (facoltativo) l'ID del record dell'artefatto. Se l'ID artefatto non è specificato, Vertex ML Metadata crea un identificatore univoco per questo artefatto.
- DISPLAY_NAME: (facoltativo) il nome dell'artefatto definito dall'utente.
Metodo HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/metadataSchemas?metadata_schema_id=METADATA_SCHEMA_ID
Corpo JSON della richiesta:
{ "schemaVersion": "0.0.1", "schema": "title: test.Experiment\ntype: object", "schemaType": "CONTEXT_TYPE", }
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti vedere un output simile al seguente. Puoi utilizzare lo METADATA_SCHEMA_ID è l'ID del record MetadataSchema.
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/metadataStores/METADATA_STORE/metadataSchemas/METADATA_SCHEMA_ID", "schemaVersion": "0.0.1", "schema": "title: test.Experiment\ntype: object", "schemaType": "CONTEXT_TYPE", "createTime": "2021-04-06T05:24:04.575481815Z" }
Le chiamate successive per creare, ottenere o elencare gli artefatti possono quindi fare riferimento a questo schema specificando il nome (demo.Artifact) nel campo schema_title e nella versione (0.0.1) nella versione schema_version della risorsa Artifact. Per ulteriori informazioni come creare, recuperare o elencare le risorse di metadati, vedi Tracciare i metadati Vertex ML.
Versione degli schemi
Tutte le risorse MetadataSchema vengono sottoposte al controllo delle versioni. Un utente può creare uno schema utilizza lo stesso schema_title di un altro schema, ma uno schema_version diverso. Per creare una risorsa metadataSchema con una versione diversa, un utente può fornire un numero di versione diverso e contenuti dello schema modificati.
Nell'esempio seguente viene creata una versione 0.0.2 dello schema demo.Artifact:
sample_schema_versioned = aip.MetadataSchema()
sample_schema_versioned.schema_type = aip.MetadataSchema.MetadataSchemaType.ARTIFACT_TYPE
sample_schema_versioned.schema ="title: demo.Artifact\ntype: object\nproperties:\n framework:\n type: string\n description: \"The framework type\"\n model_version:\n type: integer\n description: \"The version of the model\""
sample_schema_versioned.schema_version = "0.0.2"
sample_schema_versioned.description = "sample schema 2"
store_client.create_metadata_schema(parent=metadata_store.name, metadata_schema=sample_schema_versioned)
I campi dello schema sono sempre considerati facoltativi, perciò nessuna compatibilità con le versioni precedenti o future tra le versioni Schema_title. Gli utenti possono comunque utilizzare schema_title per filtrare e raggruppare le risorse per l'analisi. Per ulteriori informazioni su come utilizzare le funzioni di filtro, consulta Analisi di Vertex ML Metadata.