Casos de uso
En los siguientes casos de uso se muestra cómo utilizar CREATE MODEL a la medida de sus necesidades.
CREATE MODEL simple
A continuación, se resumen las opciones básicas de la sintaxis de CREATE MODEL.
Sintaxis de CREATE MODEL simple
CREATE MODEL model_name FROM { table_name | ( select_query ) } TARGET column_name FUNCTION prediction_function_name IAM_ROLE { default } SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', [ MAX_CELLS integer ] )
Parámetros de CREATE MODEL simple
- model_name
-
El nombre del modelo. El nombre del modelo en un esquema debe ser único.
- FROM { table_name | ( select_query ) }
-
Se trata del nombre de la tabla o la consulta que especifica los datos de formación. Pueden ser una tabla existente en el sistema o una consulta SELECT compatible con Amazon Redshift entre paréntesis, es decir, (). En el resultado de la consulta, debe haber al menos dos columnas.
- TARGET column_name
-
Se trata del nombre de la columna que se convierte en el objetivo de predicción. La columna debe existir en la cláusula FROM.
- FUNCTION prediction_function_name
-
Se trata de un valor que especifica el nombre de la función de machine learning de Amazon Redshift que generará CREATE MODEL y que se utilizará para generar predicciones con este modelo. La función se crea en el mismo esquema que el objeto del modelo y se puede sobrecargar.
El machine learning de Amazon Redshift es compatible con modelos, como el árbol Xtreme Gradient Boosted (XGBoost) para la regresión y la clasificación.
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' }
-
Utilice la palabra clave predeterminada para que Amazon Redshift utilice el rol de IAM configurado como predeterminado y asociado al clúster cuando se ejecuta el comando CREAT MODEL. También puede especificar el ARN de un rol de IAM para usar ese rol.
- S3_BUCKET 'amzn-s3-demo-bucket'
-
Se trata del nombre del bucket de Amazon S3 que creó anteriormente y que se utiliza para compartir datos de formación y artefactos entre Amazon Redshift y SageMaker. Amazon Redshift crea una subcarpeta en este bucket antes de descargar los datos de formación. Una vez que se completa la formación, Amazon Redshift elimina la subcarpeta creada y su contenido.
- Número entero para MAX_CELLS
-
Se trata del número máximo de celdas que se exportarán desde la cláusula FROM. El valor predeterminado es 1 000 000.
El número de celdas se obtiene de multiplicar el número de filas de los datos de formación (productos de la tabla o la consulta de la cláusula FROM) por el número de columnas. Si el número de celdas de los datos de formación es mayor que el especificado por el parámetro max_cells, CREATE MODEL reduce la cantidad de datos de formación de la cláusula FROM para reducir el tamaño del conjunto de formación debajo de MAX_CELLS. Si se admiten conjuntos de datos de formación más grandes pueden brindar mayor precisión, pero también puede significar que el modelo tarde más en formarse y cueste más.
Para obtener información acerca de los costos que implica usar Amazon Redshift, consulte Costos de utilizar Amazon Redshift ML.
Para obtener más información sobre los costos asociados a los distintos números de celdas y los detalles de la prueba gratuita, consulte Precios de Amazon Redshift
.
CREATE MODEL con guía para el usuario
A continuación, encontrará una descripción de las opciones de CREATE MODEL, además de las opciones descritas en CREATE MODEL simple.
De manera predeterminada, CREATE MODEL busca la mejor combinación de procesamiento previo y modelo para su conjunto de datos específico. Es posible que desee un control adicional o introducir conocimientos de dominio adicionales (como el tipo de problema o el objetivo) sobre su modelo. En un escenario de deserción de clientes, si el resultado “el cliente no está activo” es poco frecuente, se suele preferir el objetivo F1 en lugar del objetivo de precisión. Como los modelos de alta precisión tal vez predicen que “el cliente está activo” en todo momento, esto se traduce en una alta precisión, pero escaso valor empresarial. Para obtener información acerca del objetivo F1, consulte AutoMLJobObjective en la Referencia de la API de Amazon SageMaker.
Luego, CREATE MODEL sigue las sugerencias sobre los aspectos especificados, como el objetivo. Al mismo tiempo, CREATE MODEL descubre de forma automática los mejores procesadores previos y los mejores hiperparámetros.
CREATE MODEL con sintaxis de guía para el usuario
CREATE MODEL ofrece más flexibilidad en los aspectos que se pueden especificar y en los aspectos que Amazon Redshift descubre de forma automática.
CREATE MODEL model_name FROM { table_name | ( select_statement ) } TARGET column_name FUNCTION function_name IAM_ROLE { default } [ MODEL_TYPE { XGBOOST | MLP | LINEAR_LEARNER} ] [ PROBLEM_TYPE ( REGRESSION | BINARY_CLASSIFICATION | MULTICLASS_CLASSIFICATION ) ] [ OBJECTIVE ( 'MSE' | 'Accuracy' | 'F1' | 'F1Macro' | 'AUC') ] SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', | S3_GARBAGE_COLLECT { ON | OFF }, | KMS_KEY_ID 'kms_key_id', | MAX_CELLS integer, | MAX_RUNTIME integer (, ...) )
CREATE MODEL con parámetros de guía para el usuario
- MODEL_TYPE { XGBOOST | MLP | LINEAR_LEARNER }
-
(Opcional) Especifica el tipo de modelo. Puede especificar si desea formar un modelo de un tipo específico, como XGBoost, perceptron multicapa (MLP) o Linear Learner, que son todos algoritmos compatibles con Amazon SageMaker Autopilot. Si no se especifica el parámetro, se buscan todos los tipos de modelos admitidos durante la formación para encontrar el mejor modelo.
- PROBLEM_TYPE ( REGRESSION | BINARY_CLASSIFICATION | MULTICLASS_CLASSIFICATION )
-
(Opcional) Especifica el tipo de problema. Si conoce el tipo de problema, puede restringir a Amazon Redshift a que busque solo el mejor modelo de ese tipo específico. Si no se especifica este parámetro, se detecta un tipo de problema durante la formación, en función de sus datos.
- OBJECTIVE ( 'MSE' | 'Accuracy' | 'F1' | 'F1Macro' | 'AUC')
-
(Opcional) Especifica el nombre de la métrica de objetivo utilizada para medir la calidad predictiva de un sistema de machine learning. Esta métrica se optimiza durante la formación para proporcionar la mejor estimación para los valores del parámetro del modelo a partir de los datos. Si no se especifica una métrica de forma explícita, el comportamiento predeterminado es utilizar automáticamente MSE para regresión, F1 para clasificación binaria y Accuracy para clasificación multiclase. Para obtener más información acerca de los objetivos, consulte AutoMLJobObjective en la Referencia de la API de Amazon SageMaker.
- Número entero para MAX_CELLS
-
(Opcional) Especifica el número de celdas de los datos de formación. Este valor se obtiene de multiplicar el número de registros (en la tabla o en la consulta de formación) por el número de columnas. El valor predeterminado es 1 000 000.
- Número entero para MAX_RUNTIME
-
(Opcional) Especifica la cantidad máxima de tiempo que dura la formación. Los trabajos de formación suelen completarse antes en función del tamaño del conjunto de datos. Especifica la cantidad máxima de tiempo que debería tomar la formación. El valor predeterminado es 5400 (90 minutos).
- S3_GARBAGE_COLLECT { ON | OFF }
-
(Opcional) Especifica si Amazon Redshift realiza la recolección de basura en los conjuntos de datos resultantes utilizados para formar modelos, además de los propios modelos. Si se establece en OFF, los conjuntos de datos resultantes utilizados para formar modelos y los modelos permanecen en Amazon S3 y se pueden utilizar para otros fines. Si se establece en ON, Amazon Redshift elimina los artefactos en Amazon S3 una vez que se completa la formación. El valor predeterminado es ON.
- KMS_KEY_ID 'kms_key_id'
-
(Opcional) Especifica si Amazon Redshift utiliza el cifrado del lado del servidor con una clave de AWS KMS para proteger los datos en reposo. Los datos en tránsito están protegidos con la capa de conexión segura (SSL).
- PREPROCESSORS "string"
-
(Opcional) Especifica ciertas combinaciones de procesadores previos para determinados conjuntos de columnas. El formato es una lista de columnSets y las transformaciones adecuadas que se aplicarán a cada conjunto de columnas. Amazon Redshift aplica todos los transformadores de una lista de transformadores específica a todas las columnas del ColumnSet correspondiente. Por ejemplo, para aplicar OneHotEncoder con Imputer a las columnas t1 y t2, utilice el comando de muestra que aparece a continuación.
CREATE MODEL customer_churn FROM customer_data TARGET 'Churn' FUNCTION predict_churn IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' } PROBLEM_TYPE BINARY_CLASSIFICATION OBJECTIVE 'F1' PREPROCESSORS '[ ... {"ColumnSet": [ "t1", "t2" ], "Transformers": [ "OneHotEncoder", "Imputer" ] }, {"ColumnSet": [ "t3" ], "Transformers": [ "OneHotEncoder" ] }, {"ColumnSet": [ "temp" ], "Transformers": [ "Imputer", "NumericPassthrough" ] } ]' SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket' )
Amazon Redshift es compatible con los siguientes transformadores:
OneHotEncoder: generalmente se utiliza para codificar un valor discreto en un vector binario con un valor distinto de cero. Este transformador es adecuado para muchos modelos de machine learning.
OrdinalEncoder: codifica valores discretos en un solo valor entero. Este transformador es adecuado para determinados modelos de machine learning, como MLP y Linear Learner.
NumericPassthrough: transmite la entrada como está al modelo.
Imputer: completa los valores que faltan y los valores que no son un número (Not a Number, NaN).
ImputerWithIndicator: completa los valores que faltan y los valores NaN. Este transformador también crea un indicador que señala si existen valores que faltaban o que se completaron.
Normalizer: normaliza los valores, lo que puede mejorar el rendimiento de muchos algoritmos de machine learning.
DateTimeVectorizer: crea una integración de vectores, que representa una columna de tipo de datos de fecha y hora que se puede utilizar en modelos de machine learning.
PCA: proyecta los datos en un espacio de dimensiones más pequeñas para reducir el número de características y, al mismo tiempo, conservar la mayor cantidad de información posible.
StandardScaler: estandariza las características mediante la eliminación de la media y el escalado a la varianza unitaria.
MinMax: transforma las características mediante el escalado de cada característica a un rango determinado.
Amazon Redshift ML almacena los transformadores formados y los aplica de forma automática como parte de la consulta de predicción. No es necesario especificarlos cuando se generan predicciones a partir del modelo.
CREATE para modelos XGBoost con AUTO OFF
El comando AUTO OFF CREATE MODEL tiene objetivos generalmente diferentes a los del comando CREATE MODEL predeterminado.
Como usuario avanzado que ya conoce el tipo de modelo que desea y los hiperparámetros que se utilizan para formar estos modelos, puede utilizar CREATE MODEL con AUTO OFF para desactivar la detección automática de CREATE MODEL de procesadores previos e hiperparámetros. Para ello, especifica de forma explícita el tipo de modelo. Actualmente, XGBoost es el único tipo de modelo compatible cuando AUTO está configurado como OFF. Puede especificar hiperparámetros. Amazon Redshift utiliza valores predeterminados para cualquier hiperparámetro que especifique.
CREATE para modelos XGBoost con sintaxis AUTO OFF
CREATE MODEL model_name FROM { table_name | (select_statement ) } TARGET column_name FUNCTION function_name IAM_ROLE { default } AUTO OFF MODEL_TYPE XGBOOST OBJECTIVE { 'reg:squarederror' | 'reg:squaredlogerror' | 'reg:logistic' | 'reg:pseudohubererror' | 'reg:tweedie' | 'binary:logistic' | 'binary:hinge' | 'multi:softmax' | 'rank:pairwise' | 'rank:ndcg' } HYPERPARAMETERS DEFAULT EXCEPT ( NUM_ROUND '10', ETA '0.2', NUM_CLASS '10', (, ...) ) PREPROCESSORS 'none' SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', | S3_GARBAGE_COLLECT { ON | OFF }, | KMS_KEY_ID 'kms_key_id', | MAX_CELLS integer, | MAX_RUNTIME integer (, ...) )
CREATE para modelos XGBoost con parámetros AUTO OFF
- AUTO OFF
-
Desactiva la detección automática de CREATE MODEL de procesadores previos, algoritmos e hiperparámetros.
- MODEL_TYPE XGBOOST
-
Especifica el uso de XGBOOST para formar el modelo.
- OBJECTIVE str
-
Especifica un objetivo reconocido por el algoritmo. Amazon Redshift admite reg:squarederror, reg:squaredlogerror, reg:logistic, reg:pseudohubererror, reg:tweedie, binary:logistic, binary:hinge, multi:softmax. Para obtener más información acerca de estos objetivos, consulte Learning task parameters
en la documentación de XGBoost. - HYPERPARAMETERS { DEFAULT | DEFAULT EXCEPT ( key ‘value’ (,..) ) }
-
Especifica si los parámetros de XGBoost predeterminados se utilizan o se sustituyen con valores especificados por el usuario. Los valores deben ir entre comillas simples. Los siguientes son ejemplos de parámetros para XGBoost y sus valores predeterminados.
Nombre del parámetro Valor del parámetro Valor predeterminado Notas num_class
Entero Es obligatorio para la clasificación multiclase.
N/A num_round
Entero 100
N/A tree_method
Cadena Auto N/A max_depth
Entero 6 [0, 10] min_child_weight Flotante 1 MinValue: 0, MaxValue: 120 subsample Flotante 1 MinValue: 0,5, MaxValue: 1 gamma Flotante 0 MinValue: 0, MaxValue: 5 alpha Flotante 0 MinValue: 0, MaxValue: 1000 eta Flotante 0.3 MinValue: 0,1, MaxValue: 0,5 colsample_byleve Flotante 1 MinValue: 0,1, MaxValue: 1 colsample_bynode Flotante 1 MinValue: 0,1, MaxValue: 1 colsample_bytree Flotante 1 MinValue: 0,5, MaxValue: 1 lambda Flotante 1 MinValue: 0, MaxValue: 1000 max_delta_step Entero 0 [0, 10]
En el siguiente ejemplo, se preparan datos para XGBoost.
DROP TABLE IF EXISTS abalone_xgb; CREATE TABLE abalone_xgb ( length_val float, diameter float, height float, whole_weight float, shucked_weight float, viscera_weight float, shell_weight float, rings int, record_number int); COPY abalone_xgb FROM 's3://redshift-downloads/redshift-ml/abalone_xg/' REGION 'us-east-1' IAM_ROLE default IGNOREHEADER 1 CSV;
En el siguiente ejemplo, se crea un modelo XGBoost con las opciones avanzadas especificadas, como MODEL_TYPE, OBJECTIVE y PREPROCESSORS.
DROP MODEL abalone_xgboost_multi_predict_age; CREATE MODEL abalone_xgboost_multi_predict_age FROM ( SELECT length_val, diameter, height, whole_weight, shucked_weight, viscera_weight, shell_weight, rings FROM abalone_xgb WHERE record_number < 2500 ) TARGET rings FUNCTION ml_fn_abalone_xgboost_multi_predict_age IAM_ROLE default AUTO OFF MODEL_TYPE XGBOOST OBJECTIVE 'multi:softmax' PREPROCESSORS 'none' HYPERPARAMETERS DEFAULT EXCEPT (NUM_ROUND '100', NUM_CLASS '30') SETTINGS (S3_BUCKET 'amzn-s3-demo-bucket');
En el siguiente ejemplo, se utiliza una consulta de inferencia para predecir la edad del pez con un número de registro superior a 2500. Utiliza la función ml_fn_abalone_xgboost_multi_predict_age creada a partir del comando anterior.
select ml_fn_abalone_xgboost_multi_predict_age(length_val, diameter, height, whole_weight, shucked_weight, viscera_weight, shell_weight)+1.5 as age from abalone_xgb where record_number > 2500;
Bring your own model (BYOM): inferencia local
Amazon Redshift ML admite el uso de Bring your own model (BYOM) para inferencias locales.
A continuación, se resumen las opciones para la sintaxis de CREATE MODEL para BYOM. Puede utilizar un modelo formado fuera de Amazon Redshift con Amazon SageMaker para la inferencia local en la base de datos de Amazon Redshift.
Sintaxis de CREATE MODEL para inferencias locales
A continuación, se describe la sintaxis de CREATE MODEL para inferencias locales.
CREATE MODEL model_name FROM ('job_name' | 's3_path' ) FUNCTION function_name ( data_type [, ...] ) RETURNS data_type IAM_ROLE { default } [ SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', | --required KMS_KEY_ID 'kms_string') --optional ];
Actualmente, Amazon Redshift solo admite modelos XGBoost, MLP y Linear Learner con formación previa para BYOM. Puede importar SageMaker Autopilot y modelos formados directamente en Amazon SageMaker para inferencias locales con esta ruta.
Parámetros de CREATE MODEL para inferencias locales
- model_name
-
El nombre del modelo. El nombre del modelo en un esquema debe ser único.
- FROM ('job_name' | 's3_path' )
-
El parámetro job_name utiliza un nombre de trabajo de Amazon SageMaker como entrada. El nombre del trabajo puede ser el nombre de un trabajo de formación de Amazon SageMaker o el nombre de un trabajo de Amazon SageMaker Autopilot. El trabajo debe crearse en la misma cuenta de AWS propietaria del clúster de Amazon Redshift. Para encontrar el nombre del trabajo, inicie Amazon SageMaker. En el menú desplegable de Training (Formación), elija Training jobs (Trabajos de formación).
El parámetro 's3_path' especifica la ubicación de S3 del archivo de artefactos del modelo .tar.gz que se utilizará cuando se cree el modelo.
- FUNCTION function_name ( data_type [, ...] )
-
Se trata del nombre de la función que se creará y los tipos de datos de los argumentos de entrada. Puede proporcionar un nombre de esquema.
- RETURNS data_type
-
El tipo de datos del valor que la función devuelve.
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>'}
-
Utilice la palabra clave predeterminada para que Amazon Redshift utilice el rol de IAM configurado como predeterminado y asociado al clúster cuando se ejecuta el comando CREATE MODEL.
Utilice el nombre de recurso de Amazon (ARN), de un rol de IAM que el clúster utiliza para la autenticación y la autorización.
- SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', | KMS_KEY_ID 'kms_string')
-
La cláusula S3_BUCKET especifica la ubicación de Amazon S3 que se utiliza para almacenar resultados intermedios.
(Opcional) La cláusula KMS_KEY_ID especifica si Amazon Redshift utiliza cifrado del lado del servidor con una clave de AWS KMS para proteger los datos en reposo. Los datos en tránsito están protegidos con la capa de conexión segura (SSL).
Para obtener más información, consulte CREATE MODEL con guía para el usuario.
Ejemplo de CREATE MODEL para inferencias locales
En el siguiente ejemplo, se crea un modelo que se formó previamente en Amazon SageMaker, fuera de Amazon Redshift. Dado que Amazon Redshift ML admite el tipo de modelo para la inferencia local, el siguiente comando CREATE MODEL crea una función que se puede utilizar localmente en Amazon Redshift. Puede proporcionar el nombre de un trabajo de formación de SageMaker.
CREATE MODEL customer_churn FROM 'training-job-customer-churn-v4' FUNCTION customer_churn_predict (varchar, int, float, float) RETURNS int IAM_ROLE default SETTINGS (S3_BUCKET 'amzn-s3-demo-bucket');
Una vez que se creó el modelo, puede utilizar la función customer_churn_predict con los tipos de argumentos especificados para generar predicciones.
Bring your own model (BYOM): inferencia remota
Amazon Redshift ML también admite el uso de Bring your own model (BYOM) para inferencias remotas.
A continuación, se resumen las opciones para la sintaxis de CREATE MODEL para BYOM.
Sintaxis de CREATE MODEL para inferencias remotas
A continuación, se describe la sintaxis de CREATE MODEL para inferencias remotas.
CREATE MODEL model_name FUNCTION function_name ( data_type [, ...] ) RETURNS data_type SAGEMAKER 'endpoint_name'[:'model_name'] IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' } [SETTINGS (MAX_BATCH_ROWS integer)];
Parámetros de CREATE MODEL para inferencias remotas
- model_name
-
El nombre del modelo. El nombre del modelo en un esquema debe ser único.
- FUNCTION fn_name ( [data_type] [, ...] )
-
Se trata del nombre de la función y los tipos de datos de los argumentos de entrada. Consulte Tipos de datos para ver todos los tipos de datos compatibles.
Geography
,geometry
yhllsketch
no son compatibles.También puede proporcionar un nombre de función en un esquema mediante una notación de dos partes, como
myschema.myfunction
. - RETURNS data_type
-
El tipo de datos del valor que la función devuelve. Consulte Tipos de datos para ver todos los tipos de datos compatibles.
Geography
,geometry
yhllsketch
no son compatibles. - SAGEMAKER 'endpoint_name'[:'model_name']
-
Se trata del nombre del punto de conexión de Amazon SageMaker. Si el nombre del punto de conexión apunta a un punto de conexión de múltiples modelos, agregue el nombre del modelo que se utilizará. El punto de conexión debe estar alojado en la misma región de AWS que el clúster de Amazon Redshift. Para buscar el punto de conexión, inicie Amazon SageMaker. En el menú desplegable de Inference (Inferencia), elija Endpoints (Puntos de conexión).
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>'}
-
Utilice la palabra clave predeterminada para que Amazon Redshift utilice el rol de IAM configurado como predeterminado y asociado al clúster cuando se ejecuta el comando CREATE MODEL. También puede especificar el ARN de un rol de IAM para usar ese rol.
- MAX_BATCH_ROWS integer
-
El número máximo de filas que Amazon Redshift envía en una sola solicitud por lotes para una única invocación de SageMaker. Solo se admite para BYOM con inferencia remota. El número real de filas de un lote también depende del tamaño de la entrada, pero es inferior o igual a este valor. El valor mínimo de este parámetro es 1. El valor máximo es
INT_MAX
o 2 147 483 647. Este parámetro solo es necesario cuando el tipo de datos de entrada y de devolución sonSUPER
. El valor predeterminado esINT_MAX
o 2 147 483 647.
Cuando el modelo se implementa en un punto de conexión de SageMaker, este servicio crea la información del modelo en Amazon Redshift. Luego, realiza la inferencia a través de la función externa. Puede utilizar el comando SHOW MODEL para ver la información del modelo en el clúster de Amazon Redshift.
Notas de uso de CREATE MODEL para inferencias remotas
Antes de utilizar CREATE MODEL para inferencias remotas, tenga en cuenta lo siguiente:
-
El punto de conexión debe estar alojado en la misma cuenta de AWS propietaria del clúster de Amazon Redshift.
-
Asegúrese de que el punto de conexión de Amazon SageMaker tenga suficientes recursos para admitir las llamadas de inferencia de Amazon Redshift o de que el punto de conexión de Amazon SageMaker se pueda escalar de forma automática.
-
Si no utiliza el tipo de datos
SUPER
como entrada, el modelo solo acepta entradas en formato de valores separados por comas (CSV), que corresponde a un tipo de contenido detext/CSV
en SageMaker. -
Si no utiliza el tipo de datos
SUPER
como entrada, la salida de los modelos es un único valor del tipo especificado al crear la función. La salida está en el formato de valores separados por comas (CSV) a través de un tipo de contenido detext/CSV
en SageMaker. Los tipos de datosVARCHAR
no pueden estar entre comillas y no pueden contener saltos de línea. Además, cada salida debe estar en una nueva línea. -
Los modelos aceptan valores nulos como cadenas vacías.
Si el tipo de datos de entrada es
SUPER
, solo se admite un argumento de entrada.Si el tipo de datos de entrada es
SUPER
, el tipo de datos de devolución también debe serSUPER
.MAX_BATCH_ROWS es necesario cuando los tipos de datos de entrada y de devolución son SUPER.
Cuando el tipo de datos de entrada es
SUPER
, el tipo de contenido de la invocación del punto de conexión esapplication/json
cuando MAX_BATCH_ROWS es1
oapplication/jsonlines
en todos los demás casos.Cuando el tipo de datos de devolución es
SUPER
, el tipo de aceptación de la invocación del punto de conexión esapplication/json
cuando MAX_BATCH_ROWS es1
oapplication/jsonlines
en todos los demás casos.
Ejemplo de CREATE MODEL para inferencias remotas
En el siguiente ejemplo, se crea un modelo que utiliza un punto de conexión de SageMaker para generar predicciones. Asegúrese de que el punto de conexión se esté ejecutando para generar predicciones y especifique su nombre en el comando CREATE MODEL.
CREATE MODEL remote_customer_churn FUNCTION remote_fn_customer_churn_predict (varchar, int, float, float) RETURNS int SAGEMAKER 'customer-churn-endpoint' IAM_ROLE default;
El siguiente ejemplo crea un BYOM con inferencia remota con un modelo de lenguaje grande (LLM). Los LLM alojados en Amazon Sagemaker Jumpstart aceptan y devuelven el tipo de contenido application/json
y admiten un único JSON por invocación. Los tipos de datos de entrada y de devolución deben ser SUPER
y MAX_BATCH_ROWS debe establecerse a 1.
CREATE MODEL sample_super_data_model FUNCTION sample_super_data_model_predict(super) RETURNS super SAGEMAKER 'sample_super_data_model_endpoint' IAM_ROLE default SETTINGS (MAX_BATCH_ROWS 1);
CREATE MODEL con K-MEANS
Amazon Redshift admite el algoritmo K-Means que agrupa datos que no están etiquetados. Este algoritmo resuelve problemas en clústeres en los que desea descubrir agrupaciones en los datos. Los datos sin clasificar se agrupan y dividen en función de sus similitudes y diferencias.
CREATE MODEL con sintaxis K-MEANS
CREATE MODEL model_name FROM { table_name | ( select_statement ) } FUNCTION function_name IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' } AUTO OFF MODEL_TYPE KMEANS PREPROCESSORS 'string' HYPERPARAMETERS DEFAULT EXCEPT ( K 'val' [, ...] ) SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', KMS_KEY_ID 'kms_string', | -- optional S3_GARBAGE_COLLECT on / off, | -- optional MAX_CELLS integer, | -- optional MAX_RUNTIME integer -- optional);
CREATE MODEL con parámetros K-MEANS
- AUTO OFF
-
Desactiva la detección automática de CREATE MODEL de procesadores previos, algoritmos e hiperparámetros.
- MODEL_TYPE KMEANS
-
Especifica el uso de KMEANS para formar el modelo.
- PREPROCESSORS 'string'
-
Especifica ciertas combinaciones de procesadores previos para determinados conjuntos de columnas. El formato es una lista de columnSets y las transformaciones adecuadas que se aplicarán a cada conjunto de columnas. Amazon Redshift admite 3 procesadores previos de K-Means, a saber, StandardScaler, MinMax y NumericPassthrough. Si no desea aplicar ningún procesamiento previo para K-Means, elija NumericPassthrough explícitamente como transformador. Para obtener más información sobre cómo usar los transformadores admitidos, consulte CREATE MODEL con parámetros de guía para el usuario.
El algoritmo K-Means utiliza la distancia euclidiana para calcular la similitud. El procesamiento previo de los datos garantiza que las características del modelo se mantengan a la misma escala y produzcan resultados confiables.
- HYPERPARAMETERS DEFAULT EXCEPT ( K 'val' [, ...] )
-
Especifica si se utilizan los parámetros K-Means. Cuando se utiliza el algoritmo K-Means debe especificar el parámetro
K
. Para obtener más información, consulte Hiperparámetros de K-Means en la Guía para el desarrollador de Amazon SageMaker
En el siguiente ejemplo, se preparan datos para K-Means.
CREATE MODEL customers_clusters FROM customers FUNCTION customers_cluster IAM_ROLE default AUTO OFF MODEL_TYPE KMEANS PREPROCESSORS '[ { "ColumnSet": [ "*" ], "Transformers": [ "NumericPassthrough" ] } ]' HYPERPARAMETERS DEFAULT EXCEPT ( K '5' ) SETTINGS (S3_BUCKET 'amzn-s3-demo-bucket'); select customer_id, customers_cluster(...) from customers;
customer_id | customers_cluster -------------------- 12345 1 12346 2 12347 4 12348
CREATE MODEL con Forecast
Los modelos de previsión de Redshift ML utilizan Amazon Forecast para crear previsiones de series temporales precisas. Esto le permite utilizar datos históricos de un periodo de tiempo para hacer predicciones sobre eventos futuros. Los casos de uso comunes de Amazon Forecast incluyen el uso de datos de productos minoristas para decidir el precio del inventario, los datos de cantidades de fabricación para predecir la cantidad de un artículo que se debe pedir y los datos de tráfico web para la previsión de la cantidad de tráfico que es posible que reciba un servidor web.
Los límites de cuota de Amazon Forecast se aplican a los modelos de previsión de Amazon Redshift. Por ejemplo, el número máximo de previsiones es 100, pero es ajustable. Al eliminar un modelo de previsión, no se eliminan automáticamente los recursos asociados en Amazon Forecast. Si elimina un clúster de Redshift, también se eliminarán todos los modelos asociados.
Tenga en cuenta que los modelos de previsión actualmente solo están disponibles en las siguientes regiones:
Este de EE. UU. (Ohio) (us-east-2)
Este de EE. UU. (Norte de Virginia) (us-east-1)
Oeste de EE. UU. (Oregón) (us-west-2)
Asia Pacífico (Bombay) (ap-south-1)
Asia-Pacífico (Seúl) (ap-northeast-2)
Asia-Pacífico (Singapur) (ap-southeast-1)
Asia-Pacífico (Sídney) (ap-southeast-2)
Asia-Pacífico (Tokio) (ap-northeast-1)
Europa (Fráncfort) (eu-central-1)
Europa (Irlanda) (eu-west-1)
CREATE MODEL con sintaxis de Forecast
CREATE [ OR REPLACE ] MODEL forecast_model_name FROM { table_name | ( select_query ) } TARGET column_name IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>'} AUTO ON MODEL_TYPE FORECAST SETTINGS ( S3_BUCKET 'amzn-s3-demo-bucket', HORIZON integer, FREQUENCY forecast_frequency [PERCENTILES '0.1', '0.5', '0.9'] )
CREATE MODEL con parámetros de Forecast
- forecast_model_name
-
El nombre del modelo. El nombre del modelo debe ser único.
- FROM { table_name | ( select_query ) }
-
Se trata del nombre de la tabla o la consulta que especifica los datos de formación. Esto puede ser una tabla existente en el sistema o una consulta SELECT compatible con Amazon Redshift entre paréntesis. El resultado de la tabla o consulta debe tener al menos tres columnas: (1) una columna varchar que especifique el nombre de la serie temporal. Cada conjunto de datos puede tener varias series temporales; (2) una columna de fecha y hora; y (3) la columna de destino para predecir. Esta columna de destino debe ser int o flotante. Si proporciona un conjunto de datos que tiene más de tres columnas, Amazon Redshift asume que todas las columnas adicionales forman parte de una serie temporal relacionada. Tenga en cuenta que las series temporales relacionadas deben ser de tipo int o flotante. Para obtener más información sobre series temporales relacionadas, consulte Uso de conjuntos de datos de series temporales relacionadas.
- TARGET column_name
-
Se trata del nombre de la columna que se convierte en el objetivo de predicción. La columna debe existir en la cláusula FROM.
- IAM_ROLE { default | 'arn:aws:iam::<account-id>:role/<role-name>' }
-
Utilice la palabra clave predeterminada para que Amazon Redshift utilice el rol de IAM configurado como predeterminado y asociado al clúster cuando se ejecuta el comando CREAT MODEL. También puede especificar un ARN de un rol de IAM para usar ese rol.
- AUTO ON
-
Activa la detección automática de CREATE MODEL del algoritmo y de la selección de hiperparámetros. Si especifica esta opción al crear un modelo de previsión, se debe utilizar un AutoPredictor de previsión, en el que Amazon Forecast aplica las combinaciones óptimas de algoritmos a cada serie temporal del conjunto de datos.
- MODEL_TYPE FORECAST
-
Especifica el uso de FORECAST para formar el modelo.
- S3_BUCKET 'amzn-s3-demo-bucket'
-
Se trata del nombre del bucket de Amazon Simple Storage Service que creó anteriormente y que se utiliza para compartir datos de formación y artefactos entre Amazon Redshift y Amazon Forecast. Amazon Redshift crea una subcarpeta en este bucket antes de descargar los datos de formación. Una vez que se completa la formación, Amazon Redshift elimina la subcarpeta creada y su contenido.
- HORIZON integer
-
El número máximo de predicciones que puede devolver el modelo de previsión. Una vez que el modelo esté formado, no podrá cambiar este entero.
- FREQUENCY forecast_frequency
-
Especifica el nivel de detalle que desea que tengan las previsiones. Las opciones disponibles son
Y | M | W | D | H | 30min | 15min | 10min | 5min | 1min
. Obligatorio si se entrena un modelo de previsión. - Cadena de PERCENTILES
-
Es una cadena delimitada por comas que especifica los tipos de previsión que se utilizan para entrenar un predictor. Los tipos de previsión pueden ser cuantiles de 0,01 a 0,99, por incrementos de 0,01 o más. También puede especificar la previsión media con la media. Puede especificar un máximo de cinco tipos de previsión.
En el siguiente ejemplo se muestra cómo crear un modelo de previsión sencillo.
CREATE MODEL forecast_example FROM forecast_electricity_ TARGET target IAM_ROLE 'arn:aws:iam::<account-id>:role/<role-name>' AUTO ON MODEL_TYPE FORECAST SETTINGS (S3_BUCKET 'amzn-s3-demo-bucket', HORIZON 24, FREQUENCY 'H', PERCENTILES '0.25,0.50,0.75,mean', S3_GARBAGE_COLLECT OFF);
Tras crear el modelo de previsión, puede crear una tabla nueva con los datos de predicción.
CREATE TABLE forecast_model_results as SELECT Forecast(forecast_example)
A continuación, puede consultar la nueva tabla para obtener predicciones.
SELECT * FROM forecast_model_results