Utilizzare ML e AI con BigQuery DataFrames
BigQuery DataFrames fornisce funzionalità di ML e AI per
BigQuery DataFrames utilizzando la libreria bigframes.ml.
Puoi preelaborare i dati, creare stimatori per addestrare i modelli in BigQuery DataFrames, creare pipeline ML e dividere i set di dati di addestramento e test.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per completare le attività descritte in questo documento, chiedi all'amministratore di concederti i seguenti ruoli IAM nel tuo progetto:
-
Utilizza modelli remoti o funzionalità di AI:
BigQuery Connection Admin (
roles/bigquery.connectionAdmin) -
Utilizza BigQuery DataFrames in un notebook BigQuery:
-
Utente BigQuery (
roles/bigquery.user) -
Utente runtime notebook (
roles/aiplatform.notebookRuntimeUser) -
Code Creator (
roles/dataform.codeCreator)
-
Utente BigQuery (
-
Utilizza la connessione BigQuery predefinita:
-
Editor dati BigQuery (
roles/bigquery.dataEditor) -
Amministratore connessioni BigQuery (
roles/bigquery.connectionAdmin) -
Cloud Functions Developer (
roles/cloudfunctions.developer) -
Utente Service Account (
roles/iam.serviceAccountUser) -
Storage Object Viewer (
roles/storage.objectViewer)
-
Editor dati BigQuery (
-
Utilizza i modelli remoti BigQuery DataFrames ML:
BigQuery Connection Admin (
roles/bigquery.connectionAdmin)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Località ML
La libreria bigframes.ml supporta le stesse località di BigQuery ML. La previsione del modello BigQuery ML e altre
funzioni ML sono supportate in tutte le regioni BigQuery. Il supporto per
l'addestramento del modello varia in base alla regione. Per ulteriori informazioni, vedi
Località BigQuery ML.
Pre-elaborare i dati
Crea trasformatori per preparare i dati da utilizzare negli stimatori (modelli) utilizzando il modulo bigframes.ml.preprocessing e il modulo bigframes.ml.compose.
BigQuery DataFrames offre le seguenti trasformazioni:
Per raggruppare i dati continui in intervalli, utilizza la classe
KBinsDiscretizernel modulobigframes.ml.preprocessing.Per normalizzare le etichette target come valori interi, utilizza la classe
LabelEncodernel modulobigframes.ml.preprocessing.Per scalare ogni caratteristica all'intervallo
[-1, 1]in base al suo valore assoluto massimo, utilizza la classeMaxAbsScalernel modulobigframes.ml.preprocessing.Per standardizzare le caratteristiche scalando ciascuna caratteristica all'intervallo
[0, 1], utilizza la classeMinMaxScalernel modulobigframes.ml.preprocessing.Per standardizzare le funzionalità rimuovendo la media e scalando la varianza unitaria, utilizza la classe
StandardScalernel modulobigframes.ml.preprocessing.Per trasformare i valori categorici in formato numerico, utilizza la classe
OneHotEncodernel modulobigframes.ml.preprocessing.Per applicare i trasformatori alle colonne DataFrame, utilizza la classe
ColumnTransformernel modulobigframes.ml.compose.
Addestra i modelli
Puoi creare stimatori per addestrare i modelli in BigQuery DataFrames.
Modelli di clustering
Puoi creare stimatori per i modelli di clustering utilizzando il
modulo bigframes.ml.cluster.
Per creare modelli di clustering K-means, utilizza la
classe KMeans. Utilizza questi modelli per la segmentazione dei dati. Ad esempio, l'identificazione dei segmenti di clienti. K-means è
una tecnica di apprendimento non supervisionato, quindi l'addestramento del modello non
richiede etichette o la suddivisione dei dati per l'addestramento o la valutazione.
Puoi utilizzare il modulo bigframes.ml.cluster per creare stimatori per
i modelli di clustering.
Il seguente esempio di codice mostra l'utilizzo della classe bigframes.ml.cluster KMeans
per creare un modello di clustering k-means per la segmentazione dei dati:
Modelli di decomposizione
Puoi creare stimatori per i modelli di scomposizione utilizzando il
modulo bigframes.ml.decomposition.
Per creare modelli di analisi delle componenti principali (PCA), utilizza la classe PCA. Utilizza questi
modelli per calcolare le componenti principali e utilizzarle per eseguire
un cambio di base sui dati. L'utilizzo della classe PCA consente la riduzione della dimensionalità proiettando ogni punto dati solo sui primi componenti principali per ottenere dati a dimensioni inferiori, preservando al contempo la maggior parte della variazione dei dati.
Modelli di insieme
Puoi creare stimatori per i modelli ensemble utilizzando il
modulo bigframes.ml.ensemble.
Per creare modelli di classificazione random forest, utilizza la classe
RandomForestClassifier. Utilizza questi modelli per costruire più alberi decisionali del metodo di apprendimento per la classificazione.Per creare modelli di regressione foresta casuale, utilizza la classe
RandomForestRegressor. Utilizza questi modelli per costruire più alberi decisionali del metodo di apprendimento per la regressione.Per creare modelli di classificazione basati su Gradient Boosted Decision Tree, utilizza la classe
XGBClassifier. Utilizza questi modelli per costruire in modo additivo più alberi decisionali del metodo di apprendimento per la classificazione.Per creare modelli di regressione basati su Gradient Boosted Decision Tree, utilizza la classe
XGBRegressor. Utilizza questi modelli per costruire in modo additivo più alberi decisionali del metodo di apprendimento per la regressione.
Modelli di previsione
Puoi creare stimatori per i modelli di previsione utilizzando il modulo bigframes.ml.forecasting.
Per creare modelli di previsione delle serie temporali, utilizza la
classe ARIMAPlus.
Modelli importati
Puoi creare stimatori per i modelli importati utilizzando il
modulo bigframes.ml.imported.
Per importare modelli Open Neural Network Exchange (ONNX), utilizza la classe
ONNXModel.Per importare il modello TensorFlow, utilizza la classe
TensorFlowModel.Per importare i modelli XGBoostModel, utilizza la classe
XGBoostModel.
Modelli lineari
Crea stimatori per modelli lineari utilizzando il
modulo bigframes.ml.linear_model.
Per creare modelli di regressione lineare, utilizza la classe
LinearRegression. Utilizza questi modelli per le previsioni, ad esempio per prevedere le vendite di un articolo in un determinato giorno.Per creare modelli di regressione logistica, utilizza la classe
LogisticRegression. Utilizza questi modelli per la classificazione di due o più valori possibili, ad esempio se un input èlow-value,medium-valueohigh-value.
Il seguente esempio di codice mostra l'utilizzo di bigframes.ml per eseguire le seguenti operazioni:
- Carica i dati da BigQuery.
- Pulisci e prepara i dati di addestramento.
- Crea e applica un modello di regressione bigframes.ml.LinearRegression.
Modelli linguistici di grandi dimensioni
Puoi creare stimatori per i modelli LLM utilizzando il
modulo bigframes.ml.llm.
Per creare modelli di generazione di testo Gemini, utilizza la classe
GeminiTextGenerator. Utilizza questi modelli per le attività di generazione di testo.Per creare stimatori per modelli linguistici di grandi dimensioni (LLM) remoti, utilizza il modulo
bigframes.ml.llm.
Il seguente esempio di codice mostra l'utilizzo della classe bigframes.ml.llm
GeminiTextGenerator
per creare un modello Gemini per la generazione di codice:
Modelli remoti
Per utilizzare i modelli remoti BigQuery DataFrames ML (bigframes.ml.remote
o bigframes.ml.llm), devi abilitare le seguenti API:
Quando utilizzi i modelli remoti BigQuery DataFrames ML, devi disporre del
ruolo Amministratore IAM progetto (roles/resourcemanager.projectIamAdmin)
se utilizzi una connessione BigQuery predefinita o del
ruolo Browser (roles/browser)
se utilizzi una connessione preconfigurata. Puoi evitare questo requisito impostando l'opzione bigframes.pandas.options.bigquery.skip_bq_connection_check su True, nel qual caso la connessione (predefinita o preconfigurata) viene utilizzata così com'è senza alcun controllo di esistenza o autorizzazione. Se utilizzi la connessione preconfigurata e salti il controllo della connessione, verifica quanto segue:
- La connessione viene creata nella posizione corretta.
- Se utilizzi i modelli remoti BigQuery DataFrames ML, il service account ha il
ruolo Utente Vertex AI (
roles/aiplatform.user) nel progetto.
La creazione di un modello remoto in BigQuery DataFrames crea una
connessione BigQuery.
Per impostazione predefinita, viene utilizzata una connessione con il nome bigframes-default-connection. Se preferisci, puoi utilizzare una connessione BigQuery preconfigurata, nel qual caso la creazione della connessione viene ignorata. Al account di servizio
per la connessione predefinita viene concesso il
ruolo Utente Vertex AI (roles/aiplatform.user) nel progetto.
Crea pipeline
Puoi creare pipeline ML utilizzando il
modulo bigframes.ml.pipeline.
Le pipeline ti consentono di assemblare diversi passaggi ML da convalidare in modo incrociato insieme
impostando parametri diversi. In questo modo il codice viene semplificato e puoi eseguire il deployment
dei passaggi di pre-elaborazione dei dati e di uno strumento di stima insieme.
Per creare una pipeline di trasformazioni con uno stimatore finale, utilizza la
classe Pipeline.
Seleziona modelli
Per dividere i set di dati di addestramento e test e selezionare i modelli migliori, utilizza il
modulo bigframes.ml.model_selection:
Per dividere i dati in set di addestramento e test (valutazione), come mostrato nel seguente esempio di codice, utilizza la funzione
train_test_split:X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)Per creare set di addestramento e test multi-fold per addestrare e valutare i modelli, come mostrato nel seguente esempio di codice, utilizza la classe
KFolde il metodoKFold.split. Questa funzionalità è utile per i piccoli set di dati.kf = KFold(n_splits=5) for i, (X_train, X_test, y_train, y_test) in enumerate(kf.split(X, y)): # Train and evaluate models with training and testing setsPer creare automaticamente set di addestramento e test multi-fold, addestra e valuta il modello e ottieni il risultato di ogni fold, come mostrato nel seguente esempio di codice, utilizza la funzione
cross_validate:scores = cross_validate(model, X, y, cv=5)
Passaggi successivi
- Scopri di più sul sistema di tipi di dati di BigQuery DataFrames.
- Scopri come generare codice BigQuery DataFrames con Gemini.
- Scopri come analizzare i download di pacchetti da PyPI con BigQuery DataFrames.
- Visualizza il codice sorgente, i notebook di esempio e gli esempi di BigQuery DataFrames su GitHub.
- Esplora il riferimento API BigQuery DataFrames.