Classi di previsione

L'SDK Vertex AI include le seguenti classi di previsione. Una classe è per le previsioni in batch. Le altre sono correlate alle previsioni online o alle previsioni di Vector Search. Per maggiori informazioni, consulta la panoramica su come ottenere previsioni sulla piattaforma agentica Gemini Enterprise.

Classe di previsione in batch

Una previsione in batch è un gruppo di richieste di previsione asincrone. Puoi richiedere previsioni in batch dalla risorsa del modello senza dover eseguire il deployment del modello in un endpoint. Le previsioni in batch sono adatte quando non hai bisogno di una risposta immediata e vuoi elaborare i dati con un'unica richiesta. BatchPredictionJob è l'unica classe nell'SDK Vertex AI specifica per le previsioni in batch.

BatchPredictionJob

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

  1. Il modo preferito per creare un job di previsione in batch è utilizzare il batch_predict metodo sul Modeladdestrato. Questo metodo richiede i seguenti parametri:

    • instances_format: il formato del file di richiesta di previsione in batch: jsonl, csv, bigquery, tf-record, tf-record-gzip, o file-list.
    • prediction_format: il formato del file di risposta di previsione in batch: jsonl, csv, bigquery, tf-record, tf-record-gzip, o file-list.
    • gcs_source: un elenco di uno o più percorsi Cloud Storage alle richieste di previsione in batch.
    • gcs_destination_prefix: il percorso Cloud Storage in cui la piattaforma agentica Gemini Enterprise scrive le previsioni.

    Il seguente codice è un esempio di come potresti 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 in batch è chiamare il BatchPredictionJob.create metodo. Il BatchPredictionJob.create metodo richiede quattro parametri:

    • job_display_name: un nome che assegni al job di previsione in batch. Tieni presente che, sebbene job_display_name sia obbligatorio per BatchPredictionJob.create, è facoltativo per Model.batch_predict.
    • model_name: il nome completo o l'ID del Model addestrato che utilizzi per il job di previsione in batch.
    • instances_format: il formato del file di richiesta di previsione in batch: jsonl, csv, bigquery, tf-record, tf-record-gzip, o file-list.
    • predictions_format: il formato del file di risposta di previsione in 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. Prima di poter effettuare una richiesta di previsione online, devi eseguire il deployment del modello in un endpoint. Utilizza le previsioni online quando vuoi che le previsioni vengano generate 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 eseguirne il deployment in un endpoint. Quando esegui il deployment di un modello in un endpoint, associ le risorse della macchina fisica al modello in modo che possa fornire previsioni online.

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

Per creare una risorsa Endpoint, esegui il deployment del tuo modello. Quando chiami il Model.deploy metodo, viene creato e restituito un Endpoint.

Di seguito è riportato un esempio di codice campione che mostra come creare un job di addestramento personalizzato, creare e addestrare un modello e poi eseguirne il deployment in un 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 è simile a una risorsa Endpoint, tranne per il fatto che le previsioni vengono inviate tramite una rete sicura al servizio di previsione online della piattaforma agentica Gemini Enterprise. Utilizza un endpoint privato se la tua organizzazione vuole mantenere privato tutto il traffico.

Per utilizzare un endpoint privato, devi configurare la piattaforma agentica Gemini Enterprise per il peering con un Virtual Private Cloud (VPC). È necessario un VPC affinché l'endpoint di previsione privato si connetta direttamente alla piattaforma agentica Gemini Enterprise. Per maggiori informazioni, consulta Configurare il peering di rete VPC e Utilizzare endpoint privati per la previsione online.

ModelDeploymentMonitoringJob

Utilizza la ModelDeploymentMonitoringJob risorsa per monitorare il modello e ricevere avvisi se si discosta in modo da influire sulla qualità delle previsioni del modello.

Quando i dati di input si discostano dai dati utilizzati per addestrare il modello, il rendimento del modello può peggiorare, anche se il modello non è cambiato. Il monitoraggio del modello analizza la data di input per il disallineamento e la deviazione delle caratteristiche:

  • Il Skew si verifica quando la distribuzione dei dati delle caratteristiche di produzione si discosta dai dati delle caratteristiche utilizzati per addestrare il modello.
  • La deviazione si verifica quando i dati delle caratteristiche di produzione cambiano in modo significativo nel tempo.

Per maggiori informazioni, consulta Introduzione al monitoraggio dei modelli della piattaforma agentica Gemini Enterprise . Per un esempio di come implementare il monitoraggio della piattaforma agentica Gemini Enterprise con l'SDK Vertex AI, consulta il notebook Monitoraggio dei modelli della piattaforma agentica Gemini Enterprise con attribuzioni delle caratteristiche di AI spiegabile su GitHub.

Classi di previsione di ricerca vettoriale

Vector Search è un servizio gestito che crea indici di similarità, o vettori, per eseguire la corrispondenza di similarità. Esistono due passaggi di alto livello per eseguire la corrispondenza di similarità:

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

  2. Vector Search utilizza gli endpoint dei vettori che crei per eseguire una ricerca di vettori simili su larga scala e a bassa latenza.

Per maggiori informazioni, consulta la panoramica di Vector Search e il notebook Creare un indice di Vector Search su GitHub.

MatchingEngineIndex

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

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

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

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

Il seguente codice è 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" }
)

Il seguente codice è 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 MatchingEngineIndexEndpoint classe per creare e recuperare un endpoint. Dopo aver eseguito il deployment di un modello nell'endpoint, riceverai un indirizzo IP che utilizzerai per eseguire le query.

Il seguente codice è un esempio di creazione di un endpoint indice di Matching Engine e di deployment di un indice di Matching Engine:

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