Esta publicación está escrita en colaboración con Brad Duncan, Rachel Johnson y Richard Alcock de MathWorks.
MATLAB es una herramienta de programación popular para una amplia gama de aplicaciones, como procesamiento de datos, computación paralela, automatización, simulación, aprendizaje automático e inteligencia artificial. Se utiliza mucho en muchas industrias, como la automotriz, aeroespacial, de comunicaciones y de fabricación. En los últimos años, MathWorks ha llevado muchas ofertas de productos a la nube, especialmente en Servicios Web de Amazon (AWS). Para obtener más detalles sobre los productos en la nube de MathWorks, consulte MATLAB y Simulink en la nube or enviar un correo electrónico a Mathworks.
En esta publicación, incorporamos las capacidades de aprendizaje automático de MATLAB Amazon SageMaker, que tiene varios beneficios importantes:
- Recursos informáticos: El uso del entorno informático de alto rendimiento que ofrece SageMaker puede acelerar la capacitación en aprendizaje automático.
- Colaboración: MATLAB y SageMaker juntos proporcionan una plataforma sólida que los equipos pueden utilizar para colaborar de manera efectiva en la creación, prueba e implementación de modelos de aprendizaje automático.
- Despliegue y accesibilidad: Los modelos se pueden implementar como puntos finales en tiempo real de SageMaker, lo que los hace fácilmente accesibles para que otras aplicaciones procesen datos de transmisión en vivo.
Le mostramos cómo entrenar un modelo de aprendizaje automático de MATLAB como un trabajo de entrenamiento de SageMaker y luego implementar el modelo como un punto final en tiempo real de SageMaker para que pueda procesar datos en vivo y en streaming.
Para hacer esto, usaremos un ejemplo de mantenimiento predictivo en el que clasificamos fallas en una bomba operativa que transmite datos de sensores en vivo. Tenemos acceso a un gran repositorio de datos etiquetados generados a partir de un enlace simultáneo Simulación que tiene tres posibles tipos de fallas en varias combinaciones posibles (por ejemplo, uno saludable y siete estados defectuosos). Como tenemos un modelo del sistema y las fallas son raras en el funcionamiento, podemos aprovechar los datos simulados para entrenar nuestro algoritmo. El modelo se puede ajustar para que coincida con los datos operativos de nuestra bomba real utilizando técnicas de estimación de parámetros en MATLAB y Simulink.
Nuestro objetivo es demostrar el poder combinado de MATLAB y Amazon SageMaker utilizando este ejemplo de clasificación de fallas.
Comenzamos entrenando un modelo clasificador en nuestro escritorio con MATLAB. Primero, extraemos características de un subconjunto del conjunto de datos completo usando el Diseñador de funciones de diagnóstico app y luego ejecute el entrenamiento del modelo localmente con un modelo de árbol de decisión de MATLAB. Una vez que estemos satisfechos con la configuración de los parámetros, podemos generar una función MATLAB y enviar el trabajo junto con el conjunto de datos a SageMaker. Esto nos permite ampliar el proceso de capacitación para dar cabida a conjuntos de datos mucho más grandes. Después de entrenar nuestro modelo, lo implementamos como un punto final en vivo que se puede integrar en una aplicación o panel de control posterior, como una aplicación web MATLAB.
Este ejemplo resumirá cada paso y brindará una comprensión práctica de cómo aprovechar MATLAB y Amazon SageMaker para tareas de aprendizaje automático. El código completo y la descripción del ejemplo están disponibles en este repositorio.
Requisitos previos
- Entorno de trabajo de MATLAB 2023a o posterior con MATLAB Compiler y Statistics and Machine Learning Toolbox en Linux. Aquí hay un guía rápida sobre cómo ejecutar MATLAB en AWS.
- Docker configurado en un Nube informática elástica de Amazon (Amazon EC2) instancia donde se está ejecutando MATLAB. Cualquiera Ubuntu or Linux.
- Instalación de Interfaz de línea de comandos de AWS (AWS CLI), Configuración de AWSy Python3.
- AWS CLI ya debería estar instalado si siguió la guía de instalación de paso 1.
- Configurar AWS Configurar para interactuar con los recursos de AWS.
- Verifique su instalación de python3 ejecutando
python -V
orpython --version
comando en su terminal. Instale Python si es necesario.
- Copie este repositorio a una carpeta en su máquina Linux ejecutando:
- Verifique el permiso en la carpeta del repositorio. Si no tiene permiso de escritura, ejecute el siguiente comando de shell:
- Construya el contenedor de entrenamiento de MATLAB y empújelo al Registro de contenedores elásticos de Amazon (Amazon ECR).
- Navegar a la carpeta
docker
- Cree un repositorio de Amazon ECR utilizando la CLI de AWS (reemplace REGION con su región de AWS preferida)
- Ejecute el siguiente comando de la ventana acoplable:
- Navegar a la carpeta
- Abra MATLAB y abra el script en vivo llamado
PumpFaultClassificationMATLABSageMaker.mlx
en la carpetaexamples/PumpFaultClassification
. Haga de esta carpeta su carpeta de trabajo actual en MATLAB.
Parte 1: preparación de datos y extracción de funciones
El primer paso en cualquier proyecto de aprendizaje automático es preparar sus datos. MATLAB proporciona una amplia gama de herramientas para importar, limpiar y extraer funciones de sus datos:
La SensorData.mat
El conjunto de datos contiene 240 registros. Cada registro tiene dos horarios: flow
y pressure
. La columna de destino es faultcode
, que es una representación binaria de tres posibles combinaciones de fallas en la bomba. Para esas tablas de series temporales, cada tabla tiene 1,201 filas que imitan 1.2 segundos de medición de presión y flujo de bomba con un incremento de 0.001 segundos.
A continuación, la aplicación Diagnostic Feature Designer le permite extraer, visualizar y clasificar una variedad de funciones a partir de los datos. Aquí usas Funciones automáticas, que extrae rápidamente un amplio conjunto de características de dominio de tiempo y frecuencia del conjunto de datos y clasifica a los principales candidatos para el entrenamiento de modelos. Luego puede exportar una función de MATLAB que volverá a calcular las 15 características mejor clasificadas a partir de nuevos datos de entrada. Llamemos a esta función extractFeaturesTraining
. Esta función se puede configurar para recibir datos en un solo lote o como transmisión de datos.
Esta función produce una tabla de características con códigos de falla asociados, como se muestra en la siguiente figura:
Parte 2: Organizar datos para SageMaker
A continuación, debe organizar los datos de una manera que SageMaker pueda utilizar para la capacitación en aprendizaje automático. Normalmente, esto implica dividir los datos en conjuntos de entrenamiento y validación y dividir los datos predictores de la respuesta objetivo.
En esta etapa, es posible que se requieran otras operaciones de limpieza y filtrado de datos más complejas. En este ejemplo, los datos ya están limpios. Potencialmente, si el procesamiento de datos es muy complejo y requiere mucho tiempo, los trabajos de procesamiento de SageMaker se pueden utilizar para ejecutar estos trabajos además del entrenamiento de SageMaker, de modo que se puedan separar en dos pasos.
trainPredictors = trainingData(:,2:end);
trainResponse = trainingData(:,1);
Parte 3: entrenar y probar un modelo de aprendizaje automático en MATLAB
Antes de pasar a SageMaker, es una buena idea crear y probar el modelo de aprendizaje automático localmente en MATLAB. Esto le permite iterar y depurar rápidamente el modelo. Puede configurar y entrenar localmente un clasificador de árbol de decisión simple.
classifierModel = fitctree(...
trainPredictors,...
trainResponse,...
OptimizeHyperparameters='auto');
El trabajo de capacitación aquí debería tardar menos de un minuto en finalizar y genera algunos gráficos para indicar el progreso de la capacitación. Una vez finalizada la formación, se produce un modelo de aprendizaje automático de MATLAB. El Aprendiz de clasificación La aplicación se puede utilizar para probar muchos tipos de modelos de clasificación y ajustarlos para obtener el mejor rendimiento, luego producir el código necesario para reemplazar el código de entrenamiento del modelo anterior.
Después de verificar las métricas de precisión del modelo entrenado localmente, podemos trasladar el entrenamiento a Amazon SageMaker.
Parte 4: Entrenar el modelo en Amazon SageMaker
Una vez que esté satisfecho con el modelo, puede entrenarlo a escala utilizando SageMaker. Para comenzar a llamar a los SDK de SageMaker, debe iniciar una sesión de SageMaker.
session = sagemaker.Session();
Especificar una ejecución de SageMaker Rol de IAM que se utilizarán los trabajos de capacitación y el alojamiento de terminales.
role = "arn:aws:iam::ACCOUNT:role/service-role/AmazonSageMaker-ExecutionRole-XXXXXXXXXXXXXXX";
Desde MATLAB, guarde los datos de entrenamiento como un archivo .csv en un Servicio de almacenamiento simple de Amazon (Amazon S3) Cubeta.
writetable(trainingData,'pump_training_data.csv');
trainingDataLocation = "s3:// "+session.DefaultBucket+ +"/cooling_system/input/pump_training";
copyfile("pump_training_data.csv", trainingDataLocation);
Crear un estimador de SageMaker
A continuación, debe crear un estimador de SageMaker y pasarle todos los parámetros necesarios, como una imagen de la ventana acoplable de entrenamiento, una función de entrenamiento, variables de entorno, tamaño de la instancia de entrenamiento, etc. El URI de la imagen de entrenamiento debe ser el URI de Amazon ECR que creó en el paso de requisitos previos con el formato ACCOUNT.dkr.ecr.us-east-1.amazonaws.com/sagemaker-matlab-training-r2023a:latest
. La función de entrenamiento debe proporcionarse en la parte inferior del script en vivo de MATLAB.
Enviar trabajo de formación de SageMaker
Llamar al método de ajuste desde el estimador envía el trabajo de capacitación a SageMaker.
est.fit(training=struct(Location=trainingDataLocation, ContentType="text/csv"))
También puede verificar el estado del trabajo de capacitación desde la consola de SageMaker:
Una vez finalizados los trabajos de capacitación, al seleccionar el enlace del trabajo se accederá a la página de descripción del trabajo donde podrá ver el modelo de MATLAB guardado en el depósito S3 dedicado:
Parte 5: Implementar el modelo como un punto final de SageMaker en tiempo real
Después del entrenamiento, puede implementar el modelo como un punto final de SageMaker en tiempo real, que puede utilizar para hacer predicciones en tiempo real. Para hacer esto, llame al método de implementación desde el estimador. Aquí es donde puede configurar el tamaño de instancia deseado para el alojamiento según la carga de trabajo.
Detrás de escena, este paso crea una imagen de la ventana acoplable de inferencia y la envía al repositorio de Amazon ECR; no se requiere nada por parte del usuario para crear el contenedor de inferencia. La imagen contiene toda la información necesaria para atender la solicitud de inferencia, como la ubicación del modelo, información de autenticación de MATLAB y algoritmos. Después de eso, Amazon SageMaker crea una configuración de punto final de SageMaker y finalmente implementa el punto final en tiempo real. El punto final se puede monitorear en la consola de SageMaker y se puede cancelar en cualquier momento si ya no se usa.
Parte 6: Probar el punto final
Ahora que el punto final está en funcionamiento, puede probarlo dándole algunos registros para predecir. Utilice el siguiente código para seleccionar 10 registros de los datos de entrenamiento y enviarlos al punto final para su predicción. El resultado de la predicción se envía desde el punto final y se muestra en la siguiente imagen.
Parte 7: Integración del panel
Muchos servicios nativos de AWS pueden llamar al punto final de SageMaker. También se puede utilizar como API REST estándar si se implementa junto con una AWS Lambda función y puerta de enlace API, que se puede integrar con cualquier aplicación web. Para este caso de uso particular, puede utilizar la ingesta de streaming con Amazon SageMaker Feature Store y Amazon Managed Streaming para Apache Kafka, MSK, para tomar decisiones respaldadas por aprendizaje automático casi en tiempo real. Otra posible integración es utilizar una combinación de Kinesis amazónica, SageMaker y Apache Flink para crear una aplicación administrada, confiable, escalable y de alta disponibilidad que sea capaz de realizar inferencias en tiempo real en un flujo de datos.
Después de implementar los algoritmos en un punto final de SageMaker, es posible que desee visualizarlos utilizando un panel que muestre predicciones de transmisión en tiempo real. En la aplicación web personalizada de MATLAB que aparece a continuación, puede ver datos de presión y flujo por bomba, y predicciones de fallas en vivo desde el modelo implementado.
En este panel se incluye un modelo de vida útil restante (RUL) para predecir el tiempo hasta la falla de cada bomba en cuestión. Para aprender a entrenar algoritmos RUL, consulte Caja de herramientas de mantenimiento predictivo.
Limpiar
Después de ejecutar esta solución, asegúrese de limpiar todos los recursos de AWS innecesarios para evitar costos inesperados. Puede limpiar estos recursos utilizando el SDK de SageMaker Python o la Consola de administración de AWS para los servicios específicos que se utilizan aquí (SageMaker, Amazon ECR y Amazon S3). Al eliminar estos recursos, evita cargos adicionales por los recursos que ya no utiliza.
Conclusión
Hemos demostrado cómo puede llevar MATLAB a SageMaker para un caso de uso de mantenimiento predictivo de bombas con todo el ciclo de vida del aprendizaje automático. SageMaker proporciona un entorno totalmente administrado para ejecutar cargas de trabajo de aprendizaje automático e implementar modelos con una gran selección de instancias informáticas que satisfacen diversas necesidades.
Observación: El código utilizado en esta publicación es propiedad de MathWorks y lo mantiene. Consulte los términos de la licencia en el repositorio de GitHub. Para cualquier problema con el código o solicitudes de funciones, abra un problema de GitHub en el repositorio.
Referencias
Acerca de los autores
brad duncan es el gerente de producto para capacidades de aprendizaje automático en Statistics and Machine Learning Toolbox en MathWorks. Trabaja con clientes para aplicar la IA en nuevas áreas de la ingeniería, como la incorporación de sensores virtuales en sistemas de ingeniería, la creación de modelos de aprendizaje automático explicables y la estandarización de flujos de trabajo de IA utilizando MATLAB y Simulink. Antes de llegar a MathWorks, dirigió equipos de simulación 3D y optimización de la aerodinámica de vehículos, experiencia de usuario para simulación 3D y gestión de productos para software de simulación. Brad también es profesor invitado en la Universidad de Tufts en el área de aerodinámica de vehículos.
Richard Alcock es el gerente senior de desarrollo de integraciones de plataformas en la nube en MathWorks. En este puesto, desempeña un papel decisivo a la hora de integrar perfectamente los productos de MathWorks en plataformas de nube y contenedores. Crea soluciones que permiten a ingenieros y científicos aprovechar todo el potencial de MATLAB y Simulink en entornos basados en la nube. Anteriormente trabajó como ingeniero de software en MathWorks y desarrolló soluciones para soportar flujos de trabajo informáticos paralelos y distribuidos.
Rachel Johnson es el gerente de producto para el mantenimiento predictivo en MathWorks y es responsable de la estrategia y el marketing generales del producto. Anteriormente fue ingeniera de aplicaciones y apoyó directamente a la industria aeroespacial en proyectos de mantenimiento predictivo. Antes de MathWorks, Rachel fue ingeniera de simulación de propulsión y aerodinámica para la Marina de los EE. UU. También pasó varios años enseñando matemáticas, física e ingeniería.
Shun Mao es arquitecto senior de soluciones de socios de IA/ML en el equipo de tecnologías emergentes de Amazon Web Services. Le apasiona trabajar con clientes y socios empresariales para diseñar, implementar y escalar aplicaciones de IA/ML para obtener sus valores comerciales. Fuera del trabajo, le gusta pescar, viajar y jugar al ping-pong.
Ramesh Jatiya es arquitecto de soluciones en el equipo de proveedores de software independientes (ISV) de Amazon Web Services. Le apasiona trabajar con clientes ISV para diseñar, implementar y escalar sus aplicaciones en la nube para obtener sus valores comerciales. También está cursando un MBA en aprendizaje automático y análisis empresarial en Babson College, Boston. Fuera del trabajo, le gusta correr, jugar tenis y cocinar.
- 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/machine-learning-with-matlab-and-amazon-sagemaker/
- :posee
- :es
- :no
- :dónde
- $ UP
- 001
- 1
- 10
- 100
- 15%
- 152
- 19
- 20
- 3d
- 7
- 8
- a
- Nuestra Empresa
- arriba
- de la máquina
- accesible
- acomodar
- Mi Cuenta
- la exactitud
- Ventaja
- Aeroespacial
- Después
- AI
- AI / ML
- algoritmo
- algoritmos
- Todos
- permite
- a lo largo de
- ya haya utilizado
- también
- Amazon
- Amazon EC2
- Amazon SageMaker
- Amazon Web Services
- an
- Analytics
- y
- Otra
- cualquier
- APACHE
- aparte
- abejas
- applicación
- la aplicación permite
- Aplicación
- aplicaciones
- Aplicá
- somos
- Reservada
- áreas
- artificial
- inteligencia artificial
- AS
- asociado
- At
- Autenticación
- auto
- Automatización
- automotor
- Hoy Disponibles
- evitar
- AWS
- Consola de administración de AWS
- Babson
- Atrás
- BE
- porque
- antes
- comenzar
- beneficios
- MEJOR
- Boston
- Fondo
- Brad
- llevar
- general
- Traído
- build
- Construir la
- construye
- by
- llamar al
- , que son
- llamar
- PUEDEN
- candidatos
- capacidades
- capaz
- case
- cargos
- comprobar
- comprobación
- clasificación
- clasificar
- limpia
- Limpieza
- Soluciones
- Plataforma en la nube
- código
- los códigos de
- colaboran
- colaboración
- Financiamiento para la
- Columna
- COM
- combinación
- combinaciones
- combinado
- viniendo
- Comunicación
- integraciones
- Calcular
- informática
- Configuración
- configurado
- Consola
- consumidor
- Envase
- contiene
- Precio
- Para crear
- creado
- crea
- Current
- personalizado
- Clientes
- página de información de sus operaciones
- datos
- Preparación de datos
- proceso de datos
- conjuntos de datos
- Koops
- decisiones
- a dedicados
- demostrar
- demostrado
- Dependiente
- desplegar
- desplegado
- Desplegando
- despliega
- derivar
- descripción
- Diseño
- Designer
- deseado
- computadora de escritorio
- detalles
- el desarrollo
- Desarrollo
- diagnóstico
- directamente
- distribuidos
- Computación distribuída
- do
- Docker
- sí
- dominio
- Duncan
- cada una
- de manera eficaz
- ya sea
- emergentes
- tecnologías emergentes
- habilitar
- final
- Punto final
- ingeniero
- ingeniería
- Ingeniería
- certificados
- Empresa
- Todo
- Entorno
- ambientes
- especialmente
- ejemplo
- ejecución
- experience
- exportar
- extraerlos
- Extractos
- Fracaso
- fallas
- defectuoso
- Feature
- Caracteristicas
- pocos
- Figura
- Archive
- filtración
- Finalmente
- acabado
- Nombre
- Pesca deportiva
- cómodo
- de tus señales
- seguido
- siguiendo
- siguiente
- formato
- Frecuencia
- Desde
- ser completados
- completamente
- función
- promover
- puerta
- generar
- generado
- genera
- GitHub
- Diezmos y Ofrendas
- candidato
- gráficos
- maravillosa
- Invitad@s
- guía
- aprovechar
- Tienen
- he
- Salud
- saludable
- fuertemente
- esta página
- Alto rendimiento
- altamente
- hosting
- Cómo
- Como Hacer
- HTML
- HTTPS
- idea
- if
- imagen
- importador
- in
- incluye
- incorporando
- incremento
- independientes
- indicar
- industrias
- energético
- información
- iniciar
- Las opciones de entrada
- instalar
- instalación
- instalado
- ejemplo
- instrumental
- COMPLETAMENTE
- Integración
- integración
- integraciones
- Intelligence
- interactuar
- Interfaz
- dentro
- cuestiones
- Isv
- IT
- Trabajos
- Empleo
- Johnson
- jpg
- large
- mayores
- luego
- más reciente
- APRENDE:
- aprendizaje
- LED
- menos
- Apalancamiento
- Licencia
- Vida
- ciclo de vida
- LINK
- Linux
- para vivir
- localmente
- Ubicación
- Inicie sesión
- por más tiempo
- máquina
- máquina de aprendizaje
- un mejor mantenimiento.
- para lograr
- Realizar
- gestionado
- Management
- gerente
- Fabricación
- muchos
- Marketing
- Match
- las matemáticas
- multiplataforma
- Método
- Métrica
- podría
- minuto
- ML
- modelo
- modelos
- Monitorear
- monitoreado
- más,
- movimiento
- emocionante
- mucho más
- Llamado
- nativo
- Cerca
- necesario
- ¿ Necesita ayuda
- Nuevo
- no
- nada
- objetivo
- of
- Ofrecido
- Lista de ofrendas
- on
- una vez
- ONE
- habiertos
- Inteligente
- operativos.
- Operaciones
- optimización
- or
- Otro
- "nuestr
- salida
- afuera
- total
- propiedad
- página
- Paralelo
- parámetro
- parámetros
- particular
- Socio
- socios
- pass
- apasionado
- actuación
- permiso
- Física
- plataforma
- Plataformas
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- jugando
- Por favor
- Popular
- posible
- Publicación
- posible
- la posibilidad
- industria
- Metodología
- predecir
- predicción
- Predicciones
- Predictor
- preferido
- preparación
- Preparar
- presión
- evitar
- previamente
- Anterior
- tratamiento
- producir
- producido
- produce
- Producto
- gestión de producto
- gerente de producto
- Productos
- Programación
- Progreso
- proyecto
- proyecta
- propulsión
- proporcionar
- previsto
- proporciona un
- proporcionando
- bomba
- Push
- empuja
- Python
- pregunta
- con rapidez
- distancia
- clasificar
- clasificado
- Ocupa el lugar
- RARO
- fácilmente
- real
- en tiempo real
- reciente
- grabar
- archivos
- remitir
- región
- registro
- confianza
- restante
- reemplazar
- repositorio
- representación
- solicita
- solicitudes
- Requisitos
- Recursos
- respuesta
- responsable
- RESTO
- resultado
- Dick
- robusto
- Función
- Ejecutar
- correr
- sabio
- satisfecho
- Satisfecho con
- Guardar
- salvado
- escalable
- Escala
- Escenas
- los científicos
- guión
- SDK
- sin problemas
- segundos
- ver
- seleccionar
- selección
- envío
- mayor
- sensor
- expedido
- Serie
- ayudar
- de coches
- Servicios
- servicio
- Sesión
- set
- Sets
- ajustes
- siete
- Varios
- ella
- Cáscara
- tienes
- Mostrar
- mostrado
- importante
- sencillos
- simulación
- Tamaño
- So
- Software
- Ingeniería de software
- a medida
- Soluciones
- algo
- soluciones y
- velocidad
- gastado
- Etapa
- estándar
- estandarizando
- comienzo
- Zonas
- statistics
- Estado
- paso
- pasos
- STORAGE
- tienda
- Estrategia
- stream
- en streaming
- tal
- resumir
- SOPORTE
- Apoyar
- seguro
- te
- Todas las funciones a su disposición
- mesa
- ETIQUETA
- ¡Prepárate!
- toma
- Target
- tareas
- Educación
- equipo
- equipos
- técnicas
- Tecnologías
- terminal
- términos
- test
- Pruebas
- que
- esa
- La
- El Área
- su
- Les
- luego
- Estas
- ellos
- así
- aquellos
- Tres
- equipo
- Series de tiempo
- a
- juntos
- del IRS
- Herramientas
- parte superior
- Entrenar
- Formación
- Viajar
- árbol
- try
- melodía
- sintonizado
- dos
- tipos
- típicamente
- comprensión
- Inesperado
- universidad
- us
- utilizan el
- caso de uso
- usado
- Usuario
- experiencia como usuario
- usando
- validación
- Valores
- variedad
- diversos
- vehículo
- vendedor
- muy
- Virtual
- visualizar
- quieres
- fue
- Camino..
- we
- web
- aplicaciones web
- servicios web
- que
- amplio
- Amplia gama
- seguirá
- Actividades:
- flujos de trabajo
- trabajando
- funciona
- escribir
- escrito
- años
- Usted
- tú
- zephyrnet