Usa AA y IA con BigQuery DataFrames
BigQuery DataFrames proporciona capacidades de AA y de IA para BigQuery DataFrames con la biblioteca bigframes.ml.
Puedes preprocesar datos, crear estimadores para entrenar modelos en BigQuery DataFrames, crear canalizaciones de AA y dividir conjuntos de datos de entrenamiento y prueba.
Roles obligatorios
Para obtener los permisos que necesitas para completar las tareas de este documento, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
-
Usar modelos remotos o funcionalidades de IA:
Administrador de conexión de BigQuery (
roles/bigquery.connectionAdmin) -
Usa BigQuery DataFrames en un notebook de BigQuery:
-
Usuario de BigQuery (
roles/bigquery.user) -
Usuario del entorno de ejecución del notebook (
roles/aiplatform.notebookRuntimeUser) -
Creador de código (
roles/dataform.codeCreator)
-
Usuario de BigQuery (
-
Usar la conexión predeterminada de BigQuery:
-
Editor de datos de BigQuery (
roles/bigquery.dataEditor) -
Administrador de conexión de BigQuery (
roles/bigquery.connectionAdmin) -
Desarrollador de Cloud Functions (
roles/cloudfunctions.developer) -
Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) -
Visualizador de objetos de Storage (
roles/storage.objectViewer)
-
Editor de datos de BigQuery (
-
Usa modelos remotos de BigQuery DataFrames ML:
Administrador de conexión de BigQuery (
roles/bigquery.connectionAdmin)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Ubicaciones de AA
La biblioteca de bigframes.ml admite las mismas ubicaciones que BigQuery ML. La predicción de modelos de BigQuery ML y otras funciones del AA son compatibles con todas las regiones de BigQuery. La compatibilidad de la entrenamiento de modelos varía según la región. Para obtener más información, consulta Ubicaciones de BigQuery ML.
Preprocesar datos
Crear transformadores para preparar datos para usar en estimadores (modelos) con el módulo bigframes.ml.preprocessing y el módulo bigframes.ml.compose
BigQuery DataFrames ofrece las siguientes transformaciones:
Para agrupar datos continuos en intervalos, usa la clase
KBinsDiscretizeren el módulobigframes.ml.preprocessing.Para normalizar las etiquetas de destino como valores de números enteros, usa la clase
LabelEncoderen el módulobigframes.ml.preprocessing.Para escalar cada atributo al rango
[-1, 1]según su valor absoluto máximo, usa la claseMaxAbsScaleren el módulobigframes.ml.preprocessing.Para estandarizar atributos escalando cada uno al rango
[0, 1], usa la claseMinMaxScaleren el módulobigframes.ml.preprocessing.Para estandarizar atributos quitando la media y escalando a la varianza de unidades, usa la clase
StandardScaleren el módulobigframes.ml.preprocessing.Para transformar valores categóricos en formato numérico, usa la clase
OneHotEncoderen el módulobigframes.ml.preprocessing.Para aplicar transformadores a las columnas de DataFrames, usa la clase
ColumnTransformeren el módulobigframes.ml.compose.
Entrena modelos
Puedes crear estimadores para entrenar modelos en BigQuery DataFrames.
Modelos de agrupamiento,
Puedes crear estimadores para los modelos de agrupamiento en clústeres con el módulo bigframes.ml.cluster.
Para crear modelos de agrupamiento en clústeres de k-means, usa la clase KMeans. Usa estos modelos para la segmentación de datos. Por ejemplo, identificar segmentos de clientes. K-means es una técnica de aprendizaje no supervisada, por lo que el entrenamiento de modelos no requiere etiquetas ni datos divididos para el entrenamiento o la evaluación.
Puedes usar el módulo bigframes.ml.cluster para crear estimadores para los modelos de agrupamiento en clústeres.
En la siguiente muestra de código, se usa la clase bigframes.ml.cluster KMeans para crear un modelo de agrupamiento en clústeres de k-means para la segmentación de datos:
Modelos de descomposición
Puedes crear estimadores para los modelos de descomposición con el módulo bigframes.ml.decomposition.
Para crear modelos de análisis de componentes principales (PCA), usa la clase PCA. Usa estos modelos para calcular los componentes principales y usarlos a fin de realizar un cambio de base en los datos. El uso de la clase PCA proporciona una reducción de la dimensionalidad proyectando cada punto de datos solo en los primeros componentes principales para obtener datos de menor dimensión y, al mismo tiempo, conservar la mayor variación posible de los datos.
Ensamblar modelos
Puedes crear estimadores para modelos de ensamble con el módulo bigframes.ml.ensemble.
Para crear modelos clasificadores de bosque aleatorio, usa la clase
RandomForestClassifier. Usa estos modelos para construir varios árboles de decisión de métodos de aprendizaje para la clasificación.Para crear modelos de regresión de bosque aleatorio, usa la clase
RandomForestRegressor. Usa estos modelos para construir varios árboles de decisión de métodos de aprendizaje para la regresión.Para crear modelos clasificadores de árbol mejorado con gradiente, usa la clase
XGBClassifier. Usa estos modelos para construir de forma aditiva varios árboles de decisión de métodos de aprendizaje para la clasificación.Para crear modelos de regresión de árbol mejorado con gradiente, usa la clase
XGBRegressor. Usa estos modelos para construir de forma aditiva varios árboles de decisión de métodos de aprendizaje para la regresión.
Modelos de previsión
Puedes crear estimadores para los modelos de previsión con el módulo bigframes.ml.forecasting.
Para crear modelos de previsión de series temporales, usa la clase ARIMAPlus.
Modelos importados
Puedes crear estimadores para modelos importados con el módulo bigframes.ml.imported.
Para importar modelos de Open Neural Network Exchange (ONNX), usa la clase
ONNXModel.Para importar el modelo de TensorFlow, usa la clase
TensorFlowModel.Para importar modelos XGBoostModel, usa la clase
XGBoostModel.
Modelos lineales
Crea estimadores para modelos lineales con el módulo bigframes.ml.linear_model.
Para crear modelos de regresión lineal, usa la clase
LinearRegression. Usar estos modelos para la previsión, como la previsión de las ventas de un artículo en un día determinadoPara crear modelos de regresión logística, usa la clase
LogisticRegression. Usa estos modelos para la clasificación de dos o más valores posibles, por ejemplo, si una entrada eslow-value,medium-valueohigh-value.
En la siguiente muestra de código, se usa bigframes.ml para hacer lo siguiente:
- Carga datos de BigQuery.
- Limpia y prepara los datos de entrenamiento.
- Crea y aplica un modelo de regresión bigframes.ml.LinearRegression.
Modelos de lenguaje grandes
Puedes crear estimadores para LLMs con el módulo bigframes.ml.llm.
Para crear modelos de generador de texto de Gemini, usa la clase
GeminiTextGenerator. Usa estos modelos para tareas de generación de texto.Para crear estimadores para modelos remotos de lenguaje grande (LLM), usa el módulo
bigframes.ml.llm.
En la siguiente muestra de código, se usa la clase bigframes.ml.llm
GeminiTextGenerator
para crear un modelo de Gemini para la generación de código:
Modelos remotos
Para usar los modelos remotos de AA de BigQuery DataFrames (bigframes.ml.remote o bigframes.ml.llm), debes habilitar las siguientes APIs:
API de BigQuery Connection (
bigqueryconnection.googleapis.com)API de Cloud Resource Manager (
cloudresourcemanager.googleapis.com)
Cuando usas modelos remotos de AA de BigQuery DataFrames, necesitas el rol de administrador de IAM del proyecto (roles/resourcemanager.projectIamAdmin) si usas una conexión predeterminada de BigQuery o el rol de navegador (roles/browser) si usas una conexión preconfigurada. Para evitar este requisito, configura la opción bigframes.pandas.options.bigquery.skip_bq_connection_check en True, en cuyo caso la conexión (predeterminada o preconfigurada) se usará tal como está sin ninguna existencia o permiso. Si usas la conexión preconfigurada y omites la verificación de conexión, verifica lo siguiente:
- La conexión se crea en la ubicación correcta.
- Si usas modelos remotos de AA de BigQuery DataFrames, la cuenta de servicio tiene el rol de usuario de Vertex AI (
roles/aiplatform.user) en el proyecto.
Cuando se crea un modelo remoto en BigQuery DataFrames, se crea una conexión de BigQuery.
De forma predeterminada, se usa una conexión con el nombre bigframes-default-connection. Si lo prefieres, puedes usar una conexión de BigQuery preconfigurada, en cuyo caso se omite la creación de la conexión. A la cuenta de servicio de la conexión predeterminada se le otorga el rol de usuario de Vertex AI (roles/aiplatform.user) en el proyecto.
Crear canalizaciones
Puedes crear canalizaciones de AA con el módulo bigframes.ml.pipeline.
Las canalizaciones te permiten ensamblar varios pasos del AA para realizar una validación cruzada mientras se configuran diferentes parámetros. Esto simplifica tu código y te permite implementar pasos de procesamiento previo de datos y un estimador juntos.
Para crear una canalización de transformaciones con un estimador final, usa la clase Pipeline.
Selecciona modelos
Para dividir tus conjuntos de datos de entrenamiento y prueba, y seleccionar los mejores modelos, usa el módulo bigframes.ml.model_selection:
Para dividir los datos en conjuntos de entrenamiento y prueba (evaluación), como se muestra en el siguiente muestra de código, usa la función
train_test_split:X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)Para crear conjuntos de entrenamiento y prueba de varios pliegues para entrenar y evaluar modelos, como se muestra en la siguiente muestra de código, usa la clase
KFoldy el métodoKFold.split. Esta función es valiosa para los conjuntos de datos pequeños.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 setsPara crear automáticamente conjuntos de entrenamiento y prueba de varios pliegues, entrenar y evaluar el modelo, y obtener el resultado de cada pliegue, como se muestra en el siguiente muestra de código, usa la función
cross_validate:scores = cross_validate(model, X, y, cv=5)
¿Qué sigue?
- Obtén información sobre el sistema de tipos de datos de BigQuery DataFrames.
- Aprende a generar código de BigQuery DataFrames con Gemini.
- Aprende a analizar las descargas de paquetes de PyPI con BigQuery DataFrames.
- Consulta el código fuente, los notebooks de muestra y los ejemplos de BigQuery DataFrames en GitHub.
- Explora la referencia de la API de BigQuery DataFrames.