Tienda de funciones de Amazon SageMaker proporciona una solución de un extremo a otro para automatizar la ingeniería de funciones para el aprendizaje automático (ML). Para muchos casos de uso de ML, los datos sin procesar, como archivos de registro, lecturas de sensores o registros de transacciones, deben transformarse en funciones significativas que estén optimizadas para el entrenamiento de modelos.
La calidad de las funciones es fundamental para garantizar un modelo de aprendizaje automático de alta precisión. A menudo es necesario transformar datos sin procesar en características mediante agregación, codificación, normalización y otras operaciones, y puede requerir un esfuerzo significativo. Los ingenieros deben escribir manualmente una lógica de agregación y preprocesamiento de datos personalizada en Python o Spark para cada caso de uso.
Este trabajo pesado indiferenciado es engorroso, repetitivo y propenso a errores. El Procesador de funciones de la tienda de funciones de SageMaker reduce esta carga al transformar automáticamente los datos sin procesar en características agregadas adecuadas para el entrenamiento por lotes de modelos de aprendizaje automático. Permite a los ingenieros proporcionar funciones simples de transformación de datos y luego se encarga de ejecutarlas a escala en Spark y administrar la infraestructura subyacente. Esto permite a los científicos e ingenieros de datos centrarse en la lógica de ingeniería de funciones en lugar de en los detalles de implementación.
En esta publicación, demostramos cómo una empresa de venta de automóviles puede utilizar el procesador de funciones para transformar datos de transacciones de ventas sin procesar en funciones en tres pasos:
- Ejecuciones locales de transformaciones de datos.
- Ejecuciones remotas a escala usando Spark.
- Operacionalización vía ductos.
Mostramos cómo SageMaker Feature Store ingiere los datos sin procesar, ejecuta transformaciones de funciones de forma remota utilizando Spark y carga las funciones agregadas resultantes en un grupo de características. Estas características de ingeniería se pueden utilizar para entrenar modelos de ML.
Para este caso de uso, vemos cómo SageMaker Feature Store ayuda a convertir los datos sin procesar de ventas de automóviles en funciones estructuradas. Estas funciones se utilizan posteriormente para obtener información como:
- Precio medio y máximo de los convertibles rojos desde 2010
- Modelos con mejor kilometraje vs precio
- Tendencias de ventas de automóviles nuevos frente a usados a lo largo de los años
- Diferencias en el MSRP promedio entre ubicaciones
También vemos cómo los canales de SageMaker Feature Store mantienen las funciones actualizadas a medida que llegan nuevos datos, lo que permite a la empresa obtener información continuamente a lo largo del tiempo.
Resumen de la solución
Trabajamos con el conjunto de datos. car_data.csv
, que contiene especificaciones como modelo, año, estado, kilometraje, precio y MSRP para automóviles nuevos y usados vendidos por la empresa. La siguiente captura de pantalla muestra un ejemplo del conjunto de datos.
El cuaderno de soluciones feature_processor.ipynb
contiene los siguientes pasos principales, que explicamos en esta publicación:
- Cree dos grupos de funciones: uno llamado
car-data
para registros de ventas de automóviles en bruto y otro llamadocar-data-aggregated
para registros agregados de ventas de automóviles. - Ingrese al
@feature_processor
decorador para cargar datos en el grupo de características de datos del automóvil desde Servicio de almacenamiento simple de Amazon (Amazon S3). - Ejecute el
@feature_processor code
de forma remota como una aplicación Spark para agregar los datos. - Poner en funcionamiento el procesador de funciones a través de Tuberías de SageMaker y programar ejecuciones.
- Explore los canales de procesamiento de funciones y linaje in Estudio Amazon SageMaker.
- Utilice funciones agregadas para entrenar un modelo de aprendizaje automático.
Requisitos previos
Para seguir este tutorial, necesita lo siguiente:
Para este post nos referimos a lo siguiente cuaderno, que demuestra cómo comenzar con Feature Processor utilizando el SDK de SageMaker Python.
Crear grupos de características
Para crear los grupos de características, complete los siguientes pasos:
- Crear una definición de grupo de características para
car-data
como sigue:
Las características corresponden a cada columna del car_data.csv
conjunto de datosModel
, Year
, Status
, Mileage
, Price
y MSRP
).
- Agregar el identificador del registro
id
y hora del eventoingest_time
al grupo de características:
- Crear una definición de grupo de características para
car-data-aggregated
como sigue:
Para el grupo de funciones agregadas, las funciones son el estado del año del modelo, el kilometraje promedio, el kilometraje máximo, el precio promedio, el precio máximo, el MSRP promedio, el MSRP máximo y el tiempo de ingesta. Agregamos el identificador del registro. model_year_status
y hora del evento ingest_time
a este grupo de funciones.
- Ahora, crea el
car-data
grupo de características:
- Crea el
car-data-aggregated
grupo de características:
Puede navegar a la opción Tienda de funciones de SageMaker en Datos en SageMaker Studio Inicio menú para ver los grupos de funciones.
Utilice el decorador @feature_processor para cargar datos
En esta sección, transformamos localmente los datos de entrada sin procesar (car_data.csv
) de Amazon S3 al car-data
grupo de funciones utilizando el procesador de funciones del almacén de funciones. Esta ejecución local inicial nos permite desarrollar e iterar antes de ejecutarla de forma remota, y podría realizarse en una muestra de los datos si se desea para una iteración más rápida.
Con la @feature_processor
decorador, su función de transformación se ejecuta en un entorno de ejecución de Spark donde los argumentos de entrada proporcionados a su función y su valor de retorno son Spark DataFrames.
- Instale la SDK del procesador de funciones del desplegable SDK de SageMaker Python y sus extras usando el siguiente comando:
El número de parámetros de entrada en su función de transformación debe coincidir con el número de entradas configuradas en el @feature_processor
decorador. En este caso, el @feature_processor
decorador tiene car-data.csv
como entrada y el car-data
grupo de características como salida, lo que indica que se trata de una operación por lotes con el target_store
as OfflineStore
:
- Definir el
transform()
función para transformar los datos. Esta función realiza las siguientes acciones:- Convierta los nombres de las columnas a minúsculas.
- Agregue la hora del evento a la
ingest_time
columna. - Elimine la puntuación y reemplace los valores faltantes con NA.
- Llama a el
transform()
función para almacenar los datos en elcar-data
grupo de características:
El resultado muestra que los datos se incorporan correctamente al grupo de funciones de datos del automóvil.
La salida del transform_df.show()
la función es la siguiente:
Hemos transformado con éxito los datos de entrada y los hemos ingerido en el car-data
grupo de características.
Ejecute el código @feature_processor de forma remota
En esta sección, demostramos cómo ejecutar el código de procesamiento de funciones de forma remota como una aplicación Spark usando el @remote
decorador descrito anteriormente. Ejecutamos el procesamiento de funciones de forma remota utilizando Spark para escalar a grandes conjuntos de datos. Spark proporciona procesamiento distribuido en clústeres para manejar datos que son demasiado grandes para una sola máquina. El @remote
Decorator ejecuta el código Python local como un trabajo de entrenamiento de SageMaker de uno o varios nodos.
- Ingrese al
@remote
decorador junto con el@feature_processor
decorador de la siguiente manera:
La spark_config
El parámetro indica que esto se ejecuta como un Spark application
. La instancia de SparkConfig configura la configuración y las dependencias de Spark.
- Definir el
aggregate()
función para agregar los datos utilizando PySpark SQL y funciones definidas por el usuario (UDF). Esta función realiza las siguientes acciones:- Concatenar
model
,year
ystatus
crearmodel_year_status
. - Tome el promedio de
price
crearavg_price
. - Tome el valor máximo de
price
crearmax_price
. - Tome el promedio de
mileage
crearavg_mileage
. - Tome el valor máximo de
mileage
crearmax_mileage
. - Tome el promedio de
msrp
crearavg_msrp
. - Tome el valor máximo de
msrp
crearmax_msrp
. - Agrupar por
model_year_status
.
- Concatenar
- Ejecute el
aggregate()
función, que crea un trabajo de entrenamiento de SageMaker para ejecutar la aplicación Spark:
Como resultado, SageMaker crea un trabajo de entrenamiento para la aplicación Spark definida anteriormente. Creará un entorno de ejecución de Spark utilizando el sagemaker-spark-processing image
.
Usamos trabajos de capacitación de SageMaker aquí para ejecutar nuestra aplicación de procesamiento de funciones Spark. Con SageMaker Training, puede reducir los tiempos de inicio a 1 minuto o menos utilizando la agrupación en caliente, que no está disponible en SageMaker Processing. Esto hace que SageMaker Training esté mejor optimizado para trabajos por lotes cortos, como el procesamiento de funciones, donde el tiempo de inicio es importante.
- Para ver los detalles, en la consola de SageMaker, elija Empleos de entrenamiento bajo Formación en el panel de navegación, luego elija el trabajo con el nombre
aggregate-<timestamp>
.
La salida del agregar() La función genera un código de telemetría. Dentro del resultado, verá los datos agregados de la siguiente manera:
Cuando se complete el trabajo de capacitación, debería ver el siguiente resultado:
Poner en funcionamiento el procesador de funciones a través de canalizaciones de SageMaker
En esta sección, demostramos cómo poner en funcionamiento el procesador de funciones promoviéndolo a una canalización de SageMaker y programando ejecuciones.
- Primero, sube el código_transformación.py archivo que contiene la lógica de procesamiento de funciones para Amazon S3:
- A continuación, cree una canalización de procesador de funciones. tubería_de_datos_del_automóvil usando el .to_pipeline() función:
- Para ejecutar la canalización, utilice el siguiente código:
- De manera similar, puede crear una canalización para funciones agregadas llamada
car_data_aggregated_pipeline
y empezar a correr. - Programe el
car_data_aggregated_pipeline
para ejecutarse cada 24 horas:
En la sección de resultados, verá el ARN de la canalización y la función de ejecución de la canalización, y los detalles del cronograma:
- Para obtener todas las canalizaciones del procesador de funciones en esta cuenta, utilice el
list_pipelines()
función en el procesador de funciones:
El resultado será el siguiente:
Hemos creado con éxito canalizaciones del procesador de funciones de SageMaker.
Explore los canales de procesamiento de funciones y el linaje de ML
En SageMaker Studio, complete los siguientes pasos:
- En la consola de SageMaker Studio, en el Inicio menú, seleccione Pipelines.
Deberías ver dos canalizaciones creadas: car-data-ingestion-pipeline
y car-data-aggregated-ingestion-pipeline
.
- Elija el
car-data-ingestion-pipeline
.
Muestra los detalles de la ejecución en el Ejecuciones .
- Para ver el grupo de características poblado por la tubería, elija Tienda de características bajo Datos y elige
car-data
.
Verá los dos grupos de funciones que creamos en los pasos anteriores.
- Elija el
car-data
grupo de características.
Verá los detalles de las funciones en el Caracteristicas .
Ver ejecuciones de canalización
Para ver las ejecuciones de la canalización, complete los siguientes pasos:
- En Ejecución de canalizaciónpestaña s, seleccione
car-data-ingestion-pipeline
.
Esto mostrará todas las ejecuciones.
- Elija uno de los enlaces para ver los detalles de la carrera.
- Para ver el linaje, elija Linaje.
El linaje completo de car-data
muestra la fuente de datos de entrada car_data.csv
y entidades upstream. El linaje para car-data-aggregated
muestra la entrada car-data
grupo de características.
- Elige Cargar características y luego elige Consultar linaje ascendente on
car-data
ycar-data-ingestion-pipeline
para ver todas las entidades ascendentes.
El linaje completo de car-data
El grupo de funciones debería verse como la siguiente captura de pantalla.
De manera similar, el linaje de los car-aggregated-data
El grupo de funciones debería verse como la siguiente captura de pantalla.
SageMaker Studio proporciona un entorno único para realizar un seguimiento de los procesos programados, ver ejecuciones, explorar el linaje y ver el código de procesamiento de funciones.
Las características agregadas como precio promedio, precio máximo, kilometraje promedio y más en el car-data-aggregated
El grupo de características proporciona información sobre la naturaleza de los datos. También puede utilizar estas funciones como conjunto de datos para entrenar un modelo para predecir los precios de los automóviles o para otras operaciones. Sin embargo, entrenar el modelo está fuera del alcance de esta publicación, que se centra en demostrar las capacidades del almacén de funciones de SageMaker para la ingeniería de funciones.
Limpiar
No olvide limpiar los recursos creados como parte de esta publicación para evitar incurrir en cargos continuos.
- Deshabilite la tubería programada a través del
fp.schedule()
método con el parámetro de estado comoDisabled
:
- Elimine ambos grupos de funciones:
Los datos que residen en el depósito de S3 y en el almacén de funciones fuera de línea pueden generar costos, por lo que debe eliminarlos para evitar cargos.
- Eliminar los objetos S3.
- Eliminar los registros de la tienda de funciones.
Conclusión
En esta publicación, demostramos cómo una empresa de venta de automóviles utilizó el procesador de funciones de la tienda de funciones SageMaker para obtener información valiosa a partir de sus datos de ventas sin procesar:
- Ingerir y transformar datos por lotes a escala usando Spark
- Poner en funcionamiento flujos de trabajo de ingeniería de funciones a través de canalizaciones de SageMaker
- Proporcionar seguimiento de linaje y un entorno único para monitorear tuberías y explorar características.
- Preparación de funciones agregadas optimizadas para entrenar modelos de ML
Siguiendo estos pasos, la empresa pudo transformar datos que antes no se podían utilizar en características estructuradas que luego podrían usarse para entrenar un modelo para predecir los precios de los automóviles. SageMaker Feature Store les permitió centrarse en la ingeniería de funciones en lugar de en la infraestructura subyacente.
Esperamos que esta publicación le ayude a desbloquear información valiosa sobre aprendizaje automático a partir de sus propios datos utilizando el procesador de funciones de SageMaker Feature Store.
Para obtener más información sobre esto, consulte Procesamiento de características y el ejemplo de SageMaker en Tienda de funciones de Amazon SageMaker: Introducción al procesador de funciones.
Acerca de los autores
Dhaval Shah es arquitecto de soluciones senior en AWS, especializado en aprendizaje automático. Con un fuerte enfoque en empresas nativas digitales, capacita a los clientes para aprovechar AWS e impulsar el crecimiento de su negocio. Como entusiasta del aprendizaje automático, a Dhaval lo impulsa su pasión por crear soluciones impactantes que generen cambios positivos. En su tiempo libre, se entrega a su amor por los viajes y disfruta de momentos de calidad con su familia.
Ninad Joshi es arquitecto senior de soluciones en AWS y ayuda a los clientes globales de AWS a diseñar soluciones seguras, escalables y rentables en la nube para resolver sus complejos desafíos comerciales del mundo real. Su trabajo en aprendizaje automático (ML) cubre una amplia gama de casos de uso de AI/ML, con un enfoque principal en ML de extremo a extremo, procesamiento de lenguaje natural y visión por computadora. Antes de unirse a AWS, Ninad trabajó como desarrollador de software durante más de 12 años. Fuera de sus actividades profesionales, a Ninad le gusta jugar al ajedrez y explorar diferentes tácticas.
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- PlatoData.Network Vertical Generativo Ai. Empodérate. Accede Aquí.
- PlatoAiStream. Inteligencia Web3. Conocimiento amplificado. Accede Aquí.
- PlatoESG. Carbón, tecnología limpia, Energía, Ambiente, Solar, Gestión de residuos. Accede Aquí.
- PlatoSalud. Inteligencia en Biotecnología y Ensayos Clínicos. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/machine-learning/unlock-ml-insights-using-the-amazon-sagemaker-feature-store-feature-processor/
- :posee
- :es
- :no
- :dónde
- $ UP
- 1
- 10
- 100
- 11
- 116
- 12
- 13
- 14
- 15%
- 16
- 20
- 24
- 26%
- 40
- 7
- 8
- 9
- a
- Poder
- Mi Cuenta
- preciso
- a través de
- acciones
- add
- agregar
- agregación
- AI / ML
- Todos
- permite
- a lo largo de
- también
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- y
- Otra
- cualquier
- Aplicación
- somos
- argumentos
- AS
- At
- automatizado
- automáticamente
- Hoy Disponibles
- promedio
- evitar
- AWS
- básica
- BE
- antes
- MEJOR
- mejores
- Big
- ambas
- llevar
- carga
- negocios
- by
- , que son
- PUEDEN
- capacidades
- de
- carros
- case
- cases
- retos
- el cambio
- cargos
- Ajedrez
- Elige
- Soluciones
- código
- Columna
- Columnas
- proviene
- compañía
- completar
- integraciones
- computadora
- Visión por computador
- Configuración
- configurado
- Consola
- contiene
- continuamente
- convertir
- Cost
- Precio
- podría
- Cubiertas
- Para crear
- creado
- crea
- Creamos
- crítico
- incómodo
- personalizado
- Clientes
- datos
- conjuntos de datos
- se define
- definición
- demostrar
- demostrado
- demuestra
- vas demostrando
- dependencias
- descrito
- descripción
- Diseño
- deseado
- detalles
- desarrollar
- Developer
- una experiencia diferente
- digital
- discapacitados
- mostrar
- distribuidos
- hecho
- el lado de la transmisión
- impulsados
- cada una
- Más temprano
- Eficaz
- esfuerzo
- empodera
- facilita
- permite
- permitiendo
- de extremo a extremo
- esfuerzos
- Ingeniería
- certificados
- garantizar
- entusiasta
- entidades
- Entorno
- Evento
- Cada
- ejemplo
- ejecutar
- ejecución
- Salir
- Explicar
- explorar
- Explorar
- familia
- más rápida
- Feature
- Caracteristicas
- Archive
- archivos
- Focus
- se centra
- seguir
- siguiendo
- siguiente
- fraccionario
- Desde
- ser completados
- función
- funciones
- Obtén
- genera
- obtener
- Buscar
- Grupo procesos
- Grupo
- Crecimiento
- encargarse de
- Manijas
- Tienen
- he
- cabeceras
- pesado
- levantar objetos pesados
- ayudando
- ayuda
- esta página
- destacando
- altamente
- su
- Inicio
- esperanza
- HORAS
- Cómo
- Como Hacer
- Sin embargo
- HTML
- HTTPS
- ID
- identificador
- if
- imagen
- impactante
- implementación
- importar
- importante
- in
- Incluye
- Indica
- info
- información
- EN LA MINA
- inicial
- Las opciones de entrada
- entradas
- dentro
- penetración
- Insights
- instalar
- ejemplo
- dentro
- IT
- iteración
- SUS
- Trabajos
- Empleo
- unión
- jpg
- Guardar
- idioma
- large
- aprendizaje
- menos
- Permíteme
- Apalancamiento
- cirugía estética
- como
- linaje
- enlaces
- Lista
- carga
- cargas
- local
- localmente
- log
- lógica
- Mira
- parece
- amar
- máquina
- máquina de aprendizaje
- Inicio
- HACE
- administrar
- a mano
- muchos
- Match
- max
- máximas
- mdx
- significativo
- Menú
- Método
- minuto
- que falta
- ML
- modelo
- modelos
- Momentos
- Monitorear
- más,
- debe
- nombre
- nombres
- nativo
- Natural
- Procesamiento natural del lenguaje
- Naturaleza
- Navegar
- Navegación
- ¿ Necesita ayuda
- Nuevo
- nodo
- cuaderno
- número
- of
- digital fuera de línea.
- a menudo
- on
- ONE
- en marcha
- , solamente
- Inteligente
- Operaciones
- optimizado
- Optión
- or
- Otro
- nuestros
- salir
- salida
- afuera
- Más de
- EL DESARROLLADOR
- cristal
- parámetro
- parámetros
- parte
- pasión
- Realizar
- realiza
- industrial
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- jugando
- poblado
- positivo
- Publicación
- pr
- predecir
- anterior
- previamente
- precio
- Precios
- primario
- Anterior
- tratamiento
- Procesador
- Profesional
- Promoción
- proporcionar
- previsto
- proporciona un
- Python
- calidad
- distancia
- más bien
- Crudo
- mundo real
- grabar
- archivos
- Rojo
- reducir
- reduce
- remitir
- remove
- repetitivo
- reemplazar
- exigir
- Recursos
- resultado
- resultante
- volvemos
- Función
- Ejecutar
- correr
- corre
- s
- sabio
- Venta
- ventas
- escalable
- Escala
- programa
- programada
- programación
- los científicos
- alcance
- Sdk
- sdn
- segundos
- Sección
- seguro
- ver
- mayor
- Servicios
- En Corto
- tienes
- Mostrar
- Shows
- importante
- sencillos
- soltero
- entorno único
- So
- Software
- vendido
- a medida
- Soluciones
- RESOLVER
- Fuente
- Spark
- especializada
- Especificaciones
- especificado
- Deportes
- comienzo
- fundó
- inicio
- Estado
- Estado
- pasos
- STORAGE
- tienda
- Almacenar los datos
- Cordón
- fuerte
- estructurado
- estudio
- enviar
- Después
- exitosos
- Con éxito
- tal
- adecuado
- mesa
- que
- esa
- La
- El Estado
- su
- Les
- luego
- Estas
- así
- Tres
- equipo
- veces
- a
- demasiado
- parte superior
- seguir
- Seguimiento
- Entrenar
- Formación
- transaccional
- Transformar
- transformaciones
- transformado
- transformadora
- viajes
- Tendencias
- tutoriales
- dos
- tipo
- tipos
- ui
- bajo
- subyacente
- desbloquear
- actualizado
- us
- utilizan el
- caso de uso
- usado
- usando
- Valioso
- propuesta de
- Valores
- diversos
- Vehículos
- vía
- Ver
- visión
- vs
- caliente
- fue
- we
- web
- servicios web
- que
- amplio
- Amplia gama
- seguirá
- Actividades:
- trabajado
- flujos de trabajo
- escribir
- año
- años
- Usted
- tú
- zephyrnet