Classi di previsione

L'SDK Vertex AI include le seguenti classi di previsione. Uno. è per le previsioni batch. Le altre riguardano le previsioni online o Previsioni di Vector Search. Per ulteriori informazioni, vedi Panoramica della generazione di previsioni su Vertex AI.

Classe di previsione batch

Una previsione batch è un gruppo di richieste di previsione asincrone. Hai richiesto le previsioni batch dalla risorsa del modello senza dover eseguire il deployment un endpoint. Le previsioni batch sono adatte quando non hai bisogno di un' e vuoi elaborare i dati con una singola richiesta. BatchPredictionJob è l'unico corso nella SDK Vertex AI specifico per le previsioni batch.

BatchPredictionJob

La classe BatchPredictionJob rappresenta un di richieste di previsione asincrone. Esistono due modi per creare un batch job di previsione:

  1. Il modo migliore per creare un job di previsione batch è utilizzare batch_predict sul tuo Model addestrato. Questo metodo richiede seguenti parametri:

    • instances_format: il formato del file di richiesta di previsione batch jsonl. csv, bigquery, tf-record, tf-record-gzip o file-list.
    • prediction_format. Il formato del file di risposta alla previsione batch. jsonl, csv, bigquery, tf-record, tf-record-gzip o file-list.
    • gcs_source: Un elenco di uno o più percorsi Cloud Storage al tuo batch richieste di previsione.
    • gcs_destination_prefix: il percorso di Cloud Storage a cui si riferisce Vertex AI scrive le previsioni.

    Il codice che segue è un esempio di come puoi chiamare Model.batch_predict:

    batch_prediction_job = model.batch_predict(
        instances_format="jsonl",
        predictions_format="jsonl",
        job_display_name="your_job_display_name_string",
        gcs_source=['gs://path/to/my/dataset.csv'],
        gcs_destination_prefix='gs://path/to/my/destination',
        model_parameters=None,
        starting_replica_count=1,
        max_replica_count=5,
        machine_type="n1-standard-4",
        sync=True
    )
    
  2. Il secondo modo per creare un job di previsione batch è chiamare il metodo BatchPredictionJob.create. La Il metodo BatchPredictionJob.create richiede quattro parametri:

    • job_display_name: un nome che assegni al job di previsione batch. Tieni presente che, sebbene job_display_name sia obbligatorio per BatchPredictionJob.create, è facoltativo Model.batch_predict.
    • model_name: il nome completo o l'ID della persona qualificata Model che utilizzi per il job di previsione batch.
    • instances_format: il formato del file di richiesta di previsione batch. jsonl, csv, bigquery, tf-record, tf-record-gzip o file-list.
    • predictions_format. Il formato del file di risposta alla previsione batch. jsonl, csv, bigquery, tf-record, tf-record-gzip o file-list.

Classi di previsione online

Le previsioni online sono richieste sincrone effettuate a un endpoint del modello. Devi eseguire il deployment del modello su un endpoint prima di poter effettuare una richiesta di previsione online. Utilizza le previsioni online se vuoi generare previsioni in base all'input dell'applicazione o quando hai bisogno di una risposta di previsione rapida.

Endpoint

Prima di poter ottenere previsioni online dal modello, devi eseguire il deployment modello a un endpoint. Quando esegui il deployment di un modello in un endpoint, devi associare le risorse di macchine fisiche con il modello, in modo che possa fornire previsioni online.

Puoi eseguire il deployment di più modelli in un endpoint. Puoi anche eseguire il deployment modello a più di un endpoint. Per ulteriori informazioni, vedi Considerazioni per il deployment dei modelli.

Per creare una risorsa Endpoint, devi eseguire il deployment un modello di machine learning. Quando chiami il Model.deploy crea e restituisce un valore Endpoint.

Di seguito è riportato un esempio di snippet di codice che mostra come creare un asset un job di addestramento, creare e addestrare un modello, quindi eseguirne il deployment endpoint.

# Create your custom training job

job = aiplatform.CustomTrainingJob(
    display_name="my_custom_training_job",
    script_path="task.py",
    container_uri="us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-8:latest",
    requirements=["google-cloud-bigquery>=2.20.0", "db-dtypes"],
    model_serving_container_image_uri="us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-8:latest"
)

# Start the training and create your model
model = job.run(
    dataset=dataset,
    model_display_name="my_model_name",
    bigquery_destination=f"bq://{project_id}"
)

# Create an endpoint and deploy your model to that endpoint
endpoint = model.deploy(deployed_model_display_name="my_deployed_model")

# Get predictions using test data in a DataFrame named 'df_my_test_data'
predictions = endpoint.predict(instances=df_my_test_data)

PrivateEndpoint

Un endpoint privato è come una risorsa Endpoint, ad eccezione del fatto che le previsioni vengono inviate su una rete sicura di previsione online. Utilizza un endpoint privato se la tua organizzazione vuole di mantenere privato tutto il traffico.

Per utilizzare un endpoint privato, devi configurare Vertex AI per il peering con una Virtual Private Cloud (VPC). È richiesto un VPC per l'architettura di previsione per la connessione diretta a Vertex AI. Per maggiori informazioni le informazioni, vedi Configura il peering di rete VPC e Utilizza endpoint privati per la previsione online.

ModelDeploymentMonitoringJob

Utilizza la ModelDeploymentMonitoringJob risorsa per monitorare il modello e ricevere avvisi in caso di deviazioni in un modo che potrebbe influire sulla qualità delle previsioni del modello.

Quando i dati di input si discostano da quelli utilizzati per addestrare il modello, il valore le prestazioni possono peggiorare, anche se il modello non è cambiato. Monitoraggio del modello analizza la data di input per l'inclinazione e la deviazione delle caratteristiche:

  • Il disallineamento si verifica quando la distribuzione dei dati delle funzionalità di produzione devia dalla dei dati delle caratteristiche utilizzati per addestrare il modello.
  • La deviazione si verifica quando i dati della funzionalità di produzione cambiano in modo significativo nel nel tempo.

Per ulteriori informazioni, consulta Introduzione al modello Vertex AI e il monitoraggio. Per un esempio di come implementare Vertex AI Monitoring con l'SDK Vertex AI, consulta la funzionalità di monitoraggio dei modelli Vertex AI con Explainable AI attribuzioni su GitHub.

Classi di previsione di Vector Search

Vector Search è un servizio gestito che crea somiglianze degli indici, o vettori, per eseguire la corrispondenza delle somiglianze. Esistono due tipi di regole passaggi per eseguire la corrispondenza delle somiglianze:

  1. Consente di creare una rappresentazione vettoriale dei dati. I dati possono essere testo, immagini, video audio o dati tabulari.

  2. La ricerca vettoriale utilizza le estremità dei vettori che crei per eseguire una ricerca su scala elevata e bassa latenza di vettori simili.

Per ulteriori informazioni, vedi Panoramica della ricerca vettoriale e ai Crea un blocco note con indice di Vector Search su GitHub.

MatchingEngineIndex

La classe MatchingEngineIndex rappresenta gli indici, o vettori, tu crei che Vector Search utilizza per eseguire la ricerca di somiglianze.

Esistono due algoritmi di ricerca che puoi utilizzare per l'indice:

  1. TreeAhConfig utilizza un algoritmo AH (albero superficiale) con hashing asimmetrico. Utilizza MatchingEngineIndex.create_tree_ah_index per creare un indice che utilizza l'algoritmo dell'algoritmo AH,
  2. BruteForceConfig usa una ricerca lineare standard) Utilizza MatchingEngineIndex.create_brute_force_index per creare un indice che impiega una ricerca lineare standard.

Per ulteriori informazioni su come configurare gli indici, consulta Configurare gli indici.

Di seguito è riportato un esempio di creazione di un indice che utilizza l'algoritmo Tree-AH:

my_tree_ah_index = aiplatform.Index.create_tree_ah_index(
    display_name="my_display_name",
    contents_delta_uri="gs://my_bucket/embeddings",
    dimensions=1,
    approximate_neighbors_count=150,
    distance_measure_type="SQUARED_L2_DISTANCE",
    leaf_node_embedding_count=100,
    leaf_nodes_to_search_percent=50,
    description="my description",
    labels={ "label_name": "label_value" }
)

Di seguito è riportato un esempio di creazione di un indice che utilizza l'algoritmo di forza bruta:

my_brute_force_index = aiplatform.Index.create_brute_force_index(
    display_name="my_display_name",
    contents_delta_uri="gs://my_bucket/embeddings",
    dimensions=1,
    approximate_neighbors_count=150,
    distance_measure_type="SQUARED_L2_DISTANCE",
    description="my description",
    labels={ "label_name": "label_value" }
)

MatchingEngineIndexEndpoint

Utilizza la Corso MatchingEngineIndexEndpoint per creare e recuperare un endpoint. Dopo aver eseguito il deployment di un modello nell'endpoint, ottieni l'indirizzo IP che utilizzi per eseguire le query.

Il codice riportato di seguito è un esempio di creazione di un endpoint dell'indice del motore corrispondente quindi eseguendo il deployment di un indice di motore corrispondente:

my_index_endpoint = aiplatform.MatchingEngineIndexEndpoint.create(
    display_name="sample_index_endpoint",
    description="index endpoint description",
    network="projects/123456789123/global/networks/my_vpc"
)

my_index_endpoint = my_index_endpoint.deploy_index(
    index=my_tree_ah_index, deployed_index_id="my_matching_engine_index_id"
)

Passaggi successivi