Utilizza ML e AI con BigQuery DataFrames
La libreria bigframes.ml in BigQuery DataFrames ti consente di integrare le funzionalità di AI e machine learning (ML) nei tuoi flussi di lavoro di analisi dei dati. La pre-elaborazione dei dati, l'addestramento dei modelli e la creazione di pipeline ML direttamente in BigQuery ti consentono di scalare l'analisi senza estrarre i set di dati dal data warehouse.
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 progetto:
-
Utilizza modelli remoti o funzionalità AI:
Amministratore connessione BigQuery (
roles/bigquery.connectionAdmin) -
Utilizza BigQuery DataFrames in un blocco note BigQuery:
- BigQuery User (
roles/bigquery.user) - Notebook Runtime User (
roles/aiplatform.notebookRuntimeUser) - Code Creator (
roles/dataform.codeCreator)
- BigQuery User (
-
Utilizza la connessione BigQuery predefinita:
- BigQuery Data Editor (
roles/bigquery.dataEditor) - BigQuery Connection Admin (
roles/bigquery.connectionAdmin) - Cloud Functions Developer (
roles/cloudfunctions.developer) - Utente Service Account (
roles/iam.serviceAccountUser) - Storage Object Viewer (
roles/storage.objectViewer)
- BigQuery Data Editor (
-
Utilizza i modelli remoti di 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à di BigQuery ML.
Pre-elabora i dati
Crea trasformatori per preparare i dati per l'utilizzo negli estimatori (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 nell'intervallo
[-1, 1]in base al suo valore assoluto massimo, utilizza la classeMaxAbsScalernel modulobigframes.ml.preprocessing.Per standardizzare le caratteristiche scalando ciascuna nell'intervallo
[0, 1], utilizza la classeMinMaxScalernel modulobigframes.ml.preprocessing.Per standardizzare le caratteristiche rimuovendo la media e scalando alla 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 dei DataFrame, utilizza la classe
ColumnTransformernel modulobigframes.ml.compose.
Addestra i modelli
Puoi creare estimatori per addestrare i modelli in BigQuery DataFrames.
Modelli di clustering
Puoi creare estimatori 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 dati suddivisi per l'addestramento o la valutazione.
Puoi utilizzare il modulo bigframes.ml.cluster per creare estimatori 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 scomposizione
Puoi creare estimatori 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 i componenti principali e utilizzarli per eseguire un cambio di base sui dati. L'utilizzo della classe PCA consente di ridurre la dimensionalità proiettando ogni punto dati solo sui primi componenti principali per ottenere dati di dimensioni inferiori, preservando al contempo la maggior parte della variazione dei dati.
Modelli di insieme
Puoi creare estimatori per i modelli di ensemble utilizzando il modulo bigframes.ml.ensemble.
Per creare modelli di classificatore di foresta casuale, utilizza la classe
RandomForestClassifier. Utilizza questi modelli per creare alberi decisionali con più metodi di apprendimento per la classificazione.Per creare modelli di regressione con foresta casuale, utilizza la classe
RandomForestRegressor. Utilizza questi modelli per creare alberi decisionali con più metodi di apprendimento per la regressione.Per creare modelli di classificatore ad albero con gradient boosting, utilizza la classe
XGBClassifier. Utilizza questi modelli per creare in modo additivo alberi decisionali con più metodi di apprendimento per la classificazione.Per creare modelli di regressione con gradient boosting, utilizza la classe
XGBRegressor. Utilizza questi modelli per creare in modo additivo alberi decisionali con più metodi di apprendimento per la regressione.
Modelli di previsione
Puoi creare estimatori 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 estimatori per i modelli importati utilizzando il modulo bigframes.ml.imported.
Per importare i 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 estimatori per i 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.
- Pulire e preparare i dati di addestramento.
- Crea e applica un modello di regressione bigframes.ml.LinearRegression.
Modelli linguistici di grandi dimensioni
Puoi creare estimatori per gli LLM utilizzando il
modulo bigframes.ml.llm.
Per creare modelli di generatore di testo Gemini, utilizza la classe
GeminiTextGenerator. Utilizza questi modelli per le attività di generazione di testo.Per creare estimatori 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 di BigQuery DataFrames ML (bigframes.ml.remote
o bigframes.ml.llm), devi abilitare le seguenti API:
Quando utilizzi i modelli remoti di 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. 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 di BigQuery DataFrames ML, il service account ha il ruolo Agent Platform User (
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 saltata. Al account di servizio per la connessione predefinita viene concesso il ruolo Agent Platform User (roles/aiplatform.user) nel progetto.
Crea pipeline
Puoi creare pipeline ML utilizzando il modulo bigframes.ml.pipeline.
Le pipeline consentono di assemblare diversi passaggi di ML per la convalida incrociata, impostando al contempo 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 suddividere i set di dati di addestramento e test e selezionare i modelli migliori, utilizza il modulo bigframes.ml.model_selection:
Per suddividere i dati in set di addestramento e test (valutazione), come mostrato nell'esempio di codice seguente, 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 con più fold per addestrare e valutare i modelli, come mostrato nell'esempio di codice seguente, utilizza la classe
KFolde il metodoKFold.split. 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 nell'esempio di codice seguente, 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 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 BigQuery DataFrames.