Utilizzare ML e AI con BigQuery DataFrames
BigQuery DataFrames fornisce funzionalità di ML e AI per BigQuery DataFrames utilizzando la libreria bigframes.ml.
Puoi pre-elaborare i dati, creare stimatori per addestrare 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 per il progetto:
-
Utilizzare modelli remoti o funzionalità di AI:
BigQuery Connection Admin (
roles/bigquery.connectionAdmin) -
Utilizzare BigQuery DataFrames in un notebook BigQuery:
-
BigQuery User (
roles/bigquery.user) -
Notebook Runtime User (
roles/aiplatform.notebookRuntimeUser) -
Code Creator (
roles/dataform.codeCreator)
-
BigQuery User (
-
Utilizzare la connessione BigQuery predefinita:
-
BigQuery Data Editor (
roles/bigquery.dataEditor) -
BigQuery Connection Admin (
roles/bigquery.connectionAdmin) -
Cloud Functions Developer (
roles/cloudfunctions.developer) -
Service Account User (
roles/iam.serviceAccountUser) -
Storage Object Viewer (
roles/storage.objectViewer)
-
BigQuery Data Editor (
-
Utilizzare 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 dei modelli varia in base alla regione. Per saperne di più, consulta
Località BigQuery ML.
Pre-elaborare i dati
Crea trasformatori per preparare i dati da utilizzare negli stimatori (modelli) by
using the
bigframes.ml.preprocessing module
and the
bigframes.ml.compose module.
BigQuery DataFrames offre le seguenti trasformazioni:
Per raggruppare i dati continui in intervalli, utilizza la
KBinsDiscretizerclasse nelbigframes.ml.preprocessingmodulo.Per normalizzare le etichette di destinazione come valori interi, utilizza la
LabelEncoderclasse nelbigframes.ml.preprocessingmodulo.Per scalare ogni caratteristica nell'intervallo
[-1, 1]in base al suo valore assoluto massimo, utilizza laMaxAbsScalerclasse nel modulobigframes.ml.preprocessing.Per standardizzare le caratteristiche scalando ogni caratteristica nell'intervallo
[0, 1], utilizza laMinMaxScalerclasse nel modulobigframes.ml.preprocessing.Per standardizzare le caratteristiche rimuovendo la media e scalando la varianza unitaria, utilizza la
StandardScalerclasse nel modulobigframes.ml.preprocessing.Per trasformare i valori categorici in formato numerico, utilizza la
OneHotEncoderclasse nelbigframes.ml.preprocessingmodulo.Per applicare i trasformatori alle colonne DataFrames, utilizza la
ColumnTransformerclasse nelbigframes.ml.composemodulo.
Addestrare 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
bigframes.ml.cluster modulo.
Per creare modelli di clustering K-means, utilizza la
KMeans classe. 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 dati suddivisi 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 decomposizione utilizzando il
bigframes.ml.decomposition modulo.
Per creare modelli di analisi delle componenti principali (PCA), utilizza la PCA
classe. Utilizza questi modelli per calcolare le componenti principali e utilizzarle per eseguire una modifica della base dei dati. L'utilizzo della classe PCA consente di ridurre la dimensionalità proiettando ogni punto dati solo sulle prime componenti principali per ottenere dati a dimensionalità inferiore, preservando al contempo la maggior parte della variazione dei dati.
Modelli di insieme
Puoi creare stimatori per i modelli di insieme utilizzando il
bigframes.ml.ensemble modulo.
Per creare modelli di classificazione della foresta casuale, utilizza la
RandomForestClassifierclasse. Utilizza questi modelli per costruire più alberi decisionali del metodo di apprendimento per la classificazione.Per creare modelli di regressione della foresta casuale, utilizza la
RandomForestRegressorclasse. Utilizza questi modelli per costruire più alberi decisionali del metodo di apprendimento per la regressione.Per creare modelli di classificazione degli alberi con potenziamento del gradiente, utilizza la
XGBClassifierclasse. Utilizza questi modelli per costruire in modo additivo più alberi decisionali del metodo di apprendimento per la classificazione.Per creare modelli di regressione degli alberi con potenziamento del gradiente, utilizza la
XGBRegressorclasse. 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
bigframes.ml.forecasting modulo.
Per creare modelli di previsione delle serie temporali, utilizza la
ARIMAPlus classe.
Modelli importati
Puoi creare stimatori per i modelli importati utilizzando il
bigframes.ml.imported modulo.
Per importare modelli Open Neural Network Exchange (ONNX), utilizza la
ONNXModelclasse.Per importare il modello TensorFlow, utilizza la
TensorFlowModelclasse.Per importare i modelli XGBoostModel, utilizza la
XGBoostModelclasse.
Modelli lineari
Crea stimatori per i modelli lineari utilizzando il
bigframes.ml.linear_model modulo.
Per creare modelli di regressione lineare, utilizza la
LinearRegressionclasse. Utilizza questi modelli per la previsione, ad esempio per prevedere le vendite di un articolo in un determinato giorno.Per creare modelli di regressione logistica, utilizza la
LogisticRegressionclasse. 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:
- Caricare i dati da BigQuery.
- Pulire e preparare i dati di addestramento.
- Creare e applicare un bigframes.ml.LinearRegression.
Modelli linguistici di grandi dimensioni
Puoi creare stimatori per i modelli linguistici di grandi dimensioni utilizzando il
bigframes.ml.llm modulo.
Per creare modelli di generazione di testo Gemini, utilizza la
GeminiTextGeneratorclasse. Utilizza questi modelli per le attività di generazione di testo.Per creare Estimator per modelli linguistici di grandi dimensioni (LLM) remoti, utilizza il
bigframes.ml.llmmodulo.
Il seguente esempio di codice mostra l'utilizzo della bigframes.ml.llm
GeminiTextGenerator
classe 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 Visualizzatore (roles/browser)
se utilizzi una connessione preconfigurata. Puoi evitare questo requisito impostando l'opzione bigframes.pandas.options.bigquery.skip_bq_connection_check su True. In questo 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 località 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. In questo 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.
Creare pipeline
Puoi creare pipeline ML utilizzando
bigframes.ml.pipeline modulo.
Le pipeline ti consentono di assemblare più passaggi ML da convalidare incrociatamente 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 stimatore.
Per creare una pipeline di trasformazioni con uno stimatore finale, utilizza la
Pipeline classe.
Selezionare i modelli
Per dividere i set di dati di addestramento e test e selezionare i modelli migliori, utilizza il
bigframes.ml.model_selection modulo
modulo:
Per dividere i dati in set di addestramento e test (valutazione), come mostrato nel seguente esempio di codice, utilizza la
train_test_splitfunzione: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
KFoldclasse e ilKFold.splitmetodo. Questa funzionalità è utile per i set di dati di piccole dimensioni.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, addestrare e valutare il modello e ottenere il risultato di ogni fold, come mostrato nel seguente esempio di codice, utilizza la
cross_validatefunzione: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 dei 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 di BigQuery DataFrames.