Los beneficios de usar Amazon Machine Learning es que podemos usar los algoritmos internos de AWS a bajo costo. Con este servicio, los científicos de datos deberían poder ahorrar tiempo al no escribir algoritmos complejos por sí mismos. El servicio detecta modelos de predicción útiles basados en sus datos, por lo que siempre que tenga habilidades básicas en métodos estadísticos y para leer gráficos, puede beneficiarse de estos algoritmos.
AWS menciona que han basado Amazon Machine Learning en la tecnología ML que han estado utilizando internamente, por lo que podemos imaginar que escalará bastante bien dependiendo de la cantidad de datos involucrados.
Construido sobre esta plataforma escalable, parecía una oferta de servicios muy atractiva, por lo que decidimos probarlo con nuestros datos de muestra almacenados en Amazon Redshift.
Uso de Amazon Machine Learning
Amazon Machine Learning actualmente admite S3 o Amazon Redshift como fuente de datos (mencionan MySQL en RDS en su sitio web, pero parece que todavía no lo admiten). Para probarlo, tomamos algunos datos de uso agregados de nuestro servicio FlyData Sync. Agregamos los pasos que tomamos para que pueda seguirlos (utilizando sus datos) si lo desea. Veamos qué podemos obtener de Amazon Machine Learning.
Empezando
Aquí está la página principal de Amazon Machine Learning (Fig. 1). Después de hacer clic en “Comenzar”, la siguiente pantalla mostró dos opciones de configuración, por lo que seleccionamos la “Configuración estándar” e hicimos clic en el botón “Iniciar”. Luego, a través del asistente de configuración (Fig. 2) seleccionamos Redshift como fuente de datos.
(Figura 1)
(Fig. 2) Como puede ver, hay varios detalles que completar. Establecer una función de IAM fue lo primero que se requirió para que Amazon Machine Learning se conectara a Redshift y a un depósito S3 provisional, así que comenzamos allí.
Crear un rol de IAM
Crear roles de IAM podría parecer complicado al principio, pero afortunadamente AWS lo hizo bastante simple para Amazon Machine Learning. La forma más sencilla es utilizar la plantilla de rol de IAM preparada por Amazon, a la que puede acceder con varios clics. Aquí están los pasos.
Primero vaya a Amazon IAM y seleccione “Rol” en el menú derecho, luego haga clic en “Crear nuevo rol”. Después de ingresar un nuevo nombre de rol, puede encontrar el rol preestablecido “Rol de Amazon Machine Learning para la fuente de datos Redshift”. Haga clic en “Seleccionar” y vaya al resto del asistente para crear el rol.
Crear un cubo S3
Después de crear el rol de IAM, tuvimos que crear un depósito S3. Amazon Machine Learning organizará los datos de Redshift en este depósito, antes de crear su objeto de origen de datos.
Simplemente cree un depósito S3 y copie la URL de ese depósito. A continuación, puede completar esta URL de depósito S3 en el formulario de Amazon Machine Learning.
También debe preparar una consulta SQL, que se utilizará para extraer sus datos de Redshift. Amazon Machine Learning solo lee de un archivo plano almacenado en S3, por lo que si está analizando datos en varias tablas, deberá crear una consulta SQL que se una correctamente a sus tablas.
Una vez realizada la preparación anterior, podemos hacer clic en “Verificar”, que comienza a verificar los datos de Redshift. La siguiente pantalla le mostrará el esquema del conjunto de datos que el servicio detectó automáticamente en función de sus datos SQL y Redshift. Puede modificar el tipo de datos según sea necesario.
A continuación, seleccionará el objetivo del análisis. Por ejemplo, si elige un objetivo numérico, el análisis será una regresión numérica.
En esta página objetivo, está configurando un valor objetivo (valor Y) para sus datos. Una vez que seleccione el destino, Amazon Machine Learning comenzará a crear un objeto de fuente de datos, así como a presentar estadísticas básicas y algunas estadísticas avanzadas sobre los datos.
Este es uno de los resultados que obtuvimos.
Creando el modelo
El siguiente paso es crear el modelo. Para hacerlo, puede seleccionar “Crear modelo ML (entrenar)” en los detalles de la fuente de datos. Si utiliza la configuración predeterminada para su modelo de predicción, utilizará el 70% de los datos para el entrenamiento y el 30% restante para evaluar el modelo.
Después de crear el modelo de predicción, puede verificar el residuo de su modelo.
Realizar predicciones
El último paso es hacer predicciones utilizando el modelo de predicción que se creó. Vaya a los detalles de la fuente de datos y haga clic en el menú desplegable “Usar la fuente de datos para” y luego seleccione “Generar predicción por lotes”.
En la siguiente pantalla, puede seleccionar el modelo de predicción a usar, los datos a analizar y el depósito S3 para almacenar su resultado. Una vez que haga clic en el botón “Finalizar” en la pestaña “Paso 4. Revisar”, Amazon Machine Learning ejecutará el algoritmo en sus datos y guardará los resultados en el depósito S3 que especificó.
El resultado solo está disponible en S3, por lo que deberá descargar los datos desde allí.
Desglose de precios
El precio no fue inmediatamente evidente para nosotros (no pudimos adivinar de inmediato cuánto costará, en función de nuestro tamaño de datos), por lo que esperamos que el siguiente desglose de los cargos en los que incurrimos lo ayude a tener una idea de los costos.
Para nuestros datos de prueba, teníamos unos 300 MB de datos, lo que nos costó un total de $ 0,42 por unos minutos en la creación del modelo y $ 0,10 por las tarifas de predicción.
Estructura de costo
La estructura de costos para Amazon Machine Learning se puede dividir en dos aspectos.
- Análisis de datos y tarifas de construcción de modelos
- Tarifas de predicción
Su costo total será la suma de los dos costos.
Análisis de datos y tarifas de construcción de modelos
Estas tarifas son para crear su modelo. Los factores que afectan el análisis de datos y las tarifas de construcción del modelo son:
- El tamaño de los datos de entrada;
- El número de atributos dentro de él; y,
- El número y los tipos de transformaciones aplicadas.
Según estos factores, cambiará la cantidad de tiempo de computación que necesita. Este tiempo de computación se factura a $ 0.42 / hora.
Tarifas de predicción
Estas tarifas son para aplicar su modelo a cada uno de sus datos. Puede elegir Batch o Real-time, según su situación. Para este artículo, probamos la opción Batch. Los costos son los siguientes.
- ¿Cuáles son algunos otros casos de uso para los robots SPIDER de Lockheed?
- ¿Cómo se relacionan la inteligencia humana y el talento humano?
- ¿Qué métodos están disponibles en el procesamiento del lenguaje natural para cuantificar las emociones?
- ¿Cuál es el futuro de la máquina y el aprendizaje profundo?
- ¿Qué laboratorios universitarios están trabajando en inteligencia artificial explicable?
- Lote
- $ 0.10 por 1,000 predicciones, redondeadas a las siguientes 1,000
- Tiempo real
- $ 0.0001 por predicción, redondeado al centavo más cercano
Nuestros costos reales
Para nuestros datos de prueba, teníamos aproximadamente 300 MB de datos, lo que nos costó un total de $ 2.25 por 10 a 15 minutos más o menos en la creación del modelo y $ 0.10 por las tarifas de predicción. Una cosa a tener en cuenta es que el cargo está en “Instance-hours”, que podría ser mucho más que el tiempo de espera real que experimenta. Nuestro tiempo de espera de 10 a 15 minutos llegó a más de 5 horas de “Instance-hours”. En nuestro caso, el cargo real no fue mucho, pero es algo a tener en cuenta.
Aquí está la página oficial de precios de AWS.
Otros consejos
Actualmente, Amazon Machine Learning está disponible solo en la región estándar de EE. UU. (Us-east-1). Si su clúster Redshift está en otra región, debe transferir su instantánea e iniciar otro clúster en la región US-EAST por ahora.
Otro consejo misceláneo: su precio de $ 0.42 / hora para crear modelos posiblemente podría haber venido desde aquí.
Resumen
En general, la experiencia de probar Amazon Machine Learning fue un poco más complicada de lo que esperábamos, pero vimos cómo esto podría abrir el aprendizaje automático a un público mucho más amplio. Por ejemplo, configurar el rol de IAM, crear un depósito de S3, pensar en la consulta de unión SQL, etc., fueron pasos un poco engorrosos. Pero la facilidad con la que pudimos obtener el modelo de predicción (sin pensar demasiado en el algoritmo) fue bastante impresionante.
Otro gran beneficio que vemos es que esto se construyó con la suposición de conjuntos de datos realmente grandes. El hecho de que AWS haya basado esto en sus algoritmos de ML internos, y de que ya tienen Amazon Redshift como fuente de datos, sugiere que Amazon Machine Learning anticipa conjuntos de datos de un tamaño considerable. Esta escalabilidad, a este precio, es bastante notable.
Dicho esto, solo realizamos una ejecución de prueba simple, por lo que estamos seguros de que hay muchas características que nos perdimos en nuestra primera ejecución. La función de predicciones en tiempo real, en particular, parece muy interesante y es algo que nos encantaría probar. Actualizaremos nuestro blog a medida que aprendamos más sobre el uso de Amazon Machine Learning.