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 el proyecto:
-
Usar modelos remotos o funcionalidades de IA:
Administrador de conexión de BigQuery (
roles/bigquery.connectionAdmin) -
Usar 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 cuenta de servicio (
roles/iam.serviceAccountUser) -
Visualizador de objetos de almacenamiento (
roles/storage.objectViewer)
-
Editor de datos de BigQuery (
-
Usar modelos remotos de AA de BigQuery DataFrames:
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 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 con el entrenamiento de modelos varía según la región. Para obtener más información, consulta
Ubicaciones de BigQuery ML.
Preprocesar datos
Crea transformadores para preparar datos para usar en estimadores (modelos) mediante
el
bigframes.ml.preprocessing módulo
y el
bigframes.ml.compose módulo.
BigQuery DataFrames ofrece las siguientes transformaciones:
Para agrupar datos continuos en intervalos, usa la
KBinsDiscretizerclase en elbigframes.ml.preprocessingmódulo.Para normalizar las etiquetas de destino como valores de números enteros, usa la
LabelEncoderclase en elbigframes.ml.preprocessingmódulo.Para escalar cada atributo al rango
[-1, 1]según su valor absoluto máximo, usa laMaxAbsScalerclase en elbigframes.ml.preprocessingmódulo.Para estandarizar atributos mediante el escalamiento de cada atributo al rango
[0, 1], usa laMinMaxScalerclase en el módulobigframes.ml.preprocessing.Para estandarizar atributos mediante la eliminación de la media y la varianza de unidades, usa la
StandardScalerclase en elbigframes.ml.preprocessingmódulo.Para transformar los valores categóricos en formato numérico, usa la
OneHotEncoderclase en elbigframes.ml.preprocessingmódulo.Para aplicar transformadores a las columnas de DataFrames, usa la
ColumnTransformerclase en elbigframes.ml.composemódulo.
Entrenar modelos
Puedes crear estimadores para entrenar modelos en BigQuery DataFrames.
Modelos de agrupamiento,
Puedes crear estimadores para los modelos de agrupamiento en clústeres mediante el
bigframes.ml.cluster módulo.
Para crear modelos de agrupamiento en clústeres de K-means, usa la
KMeans clase. 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
Crea estimadores para los modelos de descomposición mediante el
bigframes.ml.decomposition módulo.
Usa la PCA
clase para crear modelos de análisis de componentes principales (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 mediante la proyección de cada dato a 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
Crea estimadores para modelos de ensamble con el
bigframes.ml.ensemble módulo.
Usa la
RandomForestClassifierclase para crear modelos clasificadores de bosque aleatorios. Usa estos modelos a fin de construir varios árboles de decisión de métodos de aprendizaje para la clasificación.Usa la
RandomForestRegressorclase para crear modelos de regresión de bosque aleatorios. Usa estos modelos para construir varios árboles de decisión de métodos de aprendizaje para la regresión.Usa la
XGBClassifierclase para crear modelos clasificadores de árbol mejorado con gradiente. Usa estos modelos para construir de forma aditiva varios árboles de decisión de métodos de aprendizaje para la clasificación.Usa la
XGBRegressorclase para crear modelos de regresión de árbol mejorado con gradiente. 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
Crea estimadores para los modelos de previsión mediante el
bigframes.ml.forecasting módulo.
Usa la
ARIMAPlus clase para crear modelos de previsión de series temporales.
Modelos importados
Crea estimadores para modelos importados mediante el
bigframes.ml.imported módulo.
Usa la clase
ONNXModelpara importar modelos de Open Neural Network Exchange (ONNX).Para importar el modelo de TensorFlow, usa la
TensorFlowModelclase.Usa la
XGBoostModelclase para importar modelos XGBoostModel.
Modelos lineales
Crea estimadores para modelos lineales mediante el
bigframes.ml.linear_model módulo.
Usa la
LinearRegressionclase para crear modelos de regresión lineal. Usa estos modelos para la previsión, como la previsión de las ventas de un artículo en un día determinado.Usa la
LogisticRegressionclase para crear modelos de regresión logística. 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 bigframes.ml.LinearRegression.
Modelos de lenguaje grandes
Crea estimadores para LLM con el
bigframes.ml.llm módulo.
Usa la
GeminiTextGeneratorclass para crear modelos de generador de texto de Gemini. Usa estos modelos para tareas de generación de texto.Para crear estimadores para modelos remotos de lenguaje grande (LLM), usa el
bigframes.ml.llmmódulo.
En la siguiente muestra de código, se usa la bigframes.ml.llm
GeminiTextGenerator
clase para crear un modelo de Gemini para la generación de código:
Modelos remotos
Para usar los modelos remotos de BigQuery DataFrames AA (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 BigQuery DataFrames ML, necesitas el
rol de Administrador de IAM del proyecto (roles/resourcemanager.projectIamAdmin)
si usas una conexión de BigQuery predeterminada o el
rol de navegador (roles/browser)
si usas una conexión preconfigurada. Puedes evitar este requisito si configuras la opción bigframes.pandas.options.bigquery.skip_bq_connection_check en True, en cuyo caso la conexión (predeterminada o preconfigurada) se usa tal cual sin ninguna verificación de 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 BigQuery DataFrames ML, 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
para 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
bigframes.ml.pipeline módulo.
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
Pipeline clase.
Seleccionar modelos
Para dividir tus conjuntos de datos de entrenamiento y prueba, y seleccionar los mejores modelos, usa el
bigframes.ml.model_selection módulo
módulo:
Para dividir los datos en conjuntos de entrenamiento y prueba (conjuntos de evaluación), como se muestra en la siguiente muestra de código, usa la
train_test_splitfunción: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 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 la siguiente muestra de código, usa la
cross_validatefunción: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 las muestras de BigQuery DataFrames en GitHub.
- Explora la referencia de la API de BigQuery DataFrames.