Cree una API de aprendizaje automático ridículamente simple con GCP

Blog

HogarHogar / Blog / Cree una API de aprendizaje automático ridículamente simple con GCP

Nov 13, 2023

Cree una API de aprendizaje automático ridículamente simple con GCP

Historia exclusiva para miembros Jason Huynh Seguir DataDrivenInvestor -- 1 Escuchar Compartir En el

Historia solo para miembros

jason huynh

Seguir

Inversor impulsado por datos

--

1

Escuchar

Compartir

En el mundo de la IA, se trata de las entradas que puede poner en un modelo de aprendizaje profundo. Por ejemplo, entradas de texto en GPT-3 que resumen automáticamente las notas de su reunión o entradas en DALL-E que conducen a imágenes asombrosas.

Sin embargo, descubrí que no siempre necesito dichas API de aprendizaje automático.

A veces, solo necesito una API que haya etiquetado automáticamente algunos datos.

Por ejemplo, soy bastante vago en el trabajo. Realmente no me gusta tener que hacer todo manualmente, especialmente cuando tiene que ver con el etiquetado manual de conjuntos de datos.

Sé que puedo crear reglas 'if else' para etiquetar cada fila por separado, pero si mis experiencias de vida me han enseñado algo cuando escribo más de 3 líneas de código, probablemente ya haya escrito un error.

Entonces, tuve esta idea de por qué no usar el aprendizaje automático para etiquetar los datos automáticamente para mí, y eso es exactamente lo que hice, excepto que pronto me di cuenta de que necesitaba tener estos datos en un tablero para verlos.

¿Ahora que?

Entonces, tuve esta otra idea brillante, ¿por qué no simplemente crear una API e introducirla en el tablero?

Entonces, eso es exactamente lo que hice.

Ahora, solo pretendo estar trabajando duro en hojas de cálculo mientras dejo que la magia de la computación en la nube haga su trabajo.

En este artículo, usaremos Google Cloud Platform para crear una API de salida de aprendizaje automático ridículamente simple.

Antes de comenzar, aquí está el repositorio si primero desea echar un vistazo al código.

Antes incluso de comenzar con Google Cloud Platform (GCP), la primera parte es hacer la disputa de datos y hacer que nuestra función de aprendizaje automático funcione.

Puede hacer esto en cualquier IDE, como VS Code, Google Colab o Kaggle, por nombrar algunos.

Para mí, haremos esto en Kaggle porque creo que son bastante generosos con sus servicios y el IDE se ve elegante.

Solo necesitamos 2 bibliotecas simples para esta API: Pandas y Sci-kit learn.

Seguí adelante y decidí qué algoritmo usaré para este artículo.

Usaremos Kmeans como nuestro aprendizaje automático porque solo usaremos datos numéricos y queremos un etiquetado automático basado en elementos comunes, lo que significa que solo necesitamos un algoritmo de aprendizaje automático no supervisado para este tutorial.

Para este artículo, usaremos el conjunto de datos de millas por galón porque es simple.

Este conjunto de datos es sobre las conclusiones de combustible en los automóviles. Puede obtener más información en el sitio web de la Universidad de California en Irvine.

Además, no quiero aburrirlos ni confundirlos con los pasos de limpieza de datos como nuestro objetivo para crear una API de aprendizaje automático rápidamente.

En este caso, importaré un CSV pero, de manera más realista, consultará desde una base de datos SQL o no SQL, o realizará llamadas a la API.

Digamos con qué estamos trabajando.

No soy realmente un gran admirador de los campos de objetos cuando trato de trabajar con un algoritmo simple como Kmeans.

Claro, podemos codificarlos en caliente, pero solo escribir el código de limpieza de datos perdería el tiempo que lleva leer este artículo, así que deshagámonos de las columnas que no necesitamos.

Como se mencionó, nuestro objetivo es ser simple, por lo que eliminaremos las columnas que contengan cadenas y solo mantendremos aquellas con campos numéricos.

Tenemos algunos números enteros en el conjunto de datos, también los convertiremos en números para mantener la coherencia.

Kmeans funciona midiendo la distancia que tiene un punto de datos a otro punto. Los puntos de datos cercanos entre sí forman un grupo. Esta distancia se mide por la distancia euclidiana. Básicamente, imagina la hipotenusa de un triángulo y esa es la distancia. Puede obtener más información del artículo de Wikipedia aquí.

Puede establecer la cantidad de clústeres en el algoritmo y si desea que las salidas sean las mismas según el estado aleatorio con el que comience. Puede leer más sobre la implementación de kmeans de sci-kit learn aquí.

Ahora tenemos etiquetas, así que todo lo que tenemos que hacer es adjuntarlas a nuestro conjunto de datos. Estos son básicamente los grupos en los que cae cada fila de datos.

Así es como aparecen los resultados como un marco de datos.

Ahora que tenemos un conjunto de datos que podemos API, todo lo que tenemos que hacer es transformar los datos en JSON para que otros sistemas puedan interpretarlos fácilmente.

Así es como aparecen los resultados como JSON.

Y, solo para finalizar todo, lo envolveremos todo en una función. Esto es necesario cuando ponemos código en producción.

Esto creará un pequeño archivo de texto que le ayudará a decirle a Google qué paquetes son necesarios.

Si se hace correctamente, los resultados finales deberían verse como a continuación.

No estoy afiliado a Google Cloud Platform, así que confía en mí, no estoy vendiendo nada aquí. De hecho, para este tutorial, probablemente incluso podría usar AWS o Azure si lo desea, pero soy partidario de GCP.

El primer paso es configurar una cuenta de GCP. Puedes hacerlo aquí y seguir las instrucciones de cómo hacerlo.

Google Cloud Functions es básicamente una plataforma sin servidor que le permite ejecutar sus propias funciones en la nube. Esto se usa principalmente para crear aplicaciones y se activa mediante solicitudes HTTPS.

En este caso, lo usaremos para un aprendizaje automático simple.

Use la barra de búsqueda de GCP para encontrar Cloud Functions.

Si desea saber más sobre las funciones de la nube, puede leer sobre esto aquí.

Para nuestros propósitos, no hay mucho que configurar. GCP brinda generosamente 2 millones de invocaciones gratuitas cada mes, e incluso entonces, no parece haber muchas limitaciones sobre cómo se supone que debe configurar la función antes de que se le cobre.

Pero, para nuestros propósitos, me gusta mantener la región como centro de EE. UU. 1 para evitar costos ocultos. US-central 1, US-east 1 y US-west 1 tienen principalmente funciones gratuitas, por lo que tiendo a quedarme con estas regiones.

Además, cambié la autenticación a 'Permitir invocaciones no autenticadas' porque para este experimento, soy demasiado perezoso para configurar la seguridad. (Lo sé. ¡No son buenas prácticas de ciberseguridad!)

Eso es prácticamente todo lo que hay que hacer.

Ahora, estamos en la página de creación de funciones.

Nuestra función en realidad está envuelta alrededor de una función de matraz, por lo que no necesitamos hacer una configuración para configurar nuestro código como una API. Google hace esto automáticamente.

Todo lo que tenemos que hacer es definir la función que usaremos. Aquí están los pasos:

Ahora, simplemente haga clic en crear, espere y pruebe la función.

Navegue a la pestaña de prueba, haga clic en "función de prueba" y vea si está de acuerdo con los resultados.

Mi producción se ve bien, así que estoy feliz.

Como puede ver, esto es bastante fácil.

Ni siquiera necesita saber cómo hacer programación front-end o incluso computación en la nube para comenzar. Siempre que sepa cómo construir una función de Python, todo estará bien.

Lo que sí tengo que señalar es que acabamos de crear una API que realizará llamadas API automáticas, transformará los datos y los enviará como JSON. Este es un camino unidireccional muy específico.

Sin embargo, si desea hacer algo un poco más complejo, lo guardaremos para un artículo futuro.

Aquí está el repositorio de GitHub si quieres probarlo por ti mismo. Ya he envuelto el código alrededor del frasco, para imitar cómo debería actuar como lo haría en Google Cloud Platform. Solo asegúrese de ejecutarlo en algo como VSCode en lugar de un Juypter Notebook, ya que el script abrirá una página web separada.

jdwag123.medium.com

Suscríbase a DDIntel aquí.

Únase a nuestra red aquí: https://datadriveninvestor.com/collaborate