Créer une API ML ridiculement simple avec GCP

Blog

MaisonMaison / Blog / Créer une API ML ridiculement simple avec GCP

Nov 13, 2023

Créer une API ML ridiculement simple avec GCP

Histoire réservée aux membres Jason Huynh Suivre DataDrivenInvestor -- 1 Écouter Partager dans le

Histoire réservée aux membres

Jason Huynh

Suivre

DataDrivenInvestisseur

--

1

Écouter

Partager

Dans le monde de l'IA, tout dépend des entrées que vous pouvez mettre dans un modèle d'apprentissage en profondeur. Par exemple, des entrées de texte dans GPT-3 qui résument automatiquement vos notes de réunion ou des entrées dans DALL-E qui conduisent à des images étonnantes.

Cependant, j'ai constaté que je n'avais pas toujours besoin de telles API d'apprentissage automatique.

Parfois, j'ai juste besoin d'une API qui a automatiquement étiqueté certaines données.

Par exemple, je suis assez paresseux au travail. Je n'aime vraiment pas devoir tout faire manuellement, surtout quand il s'agit de l'étiquetage manuel des ensembles de données.

Je sais que je peux créer des règles "if else" pour étiqueter chaque ligne séparément, mais si mes expériences de vie m'ont appris quelque chose lorsque j'écris plus de 3 lignes de code, j'ai probablement déjà écrit un bogue.

Donc, j'ai eu cette idée pourquoi ne pas simplement utiliser l'apprentissage automatique pour étiqueter les données automatiquement pour moi, et c'est exactement ce que j'ai fait sauf que j'ai vite réalisé que j'avais besoin d'avoir ces données sur un tableau de bord pour les visualiser.

Maintenant quoi?

Ensuite, j'ai eu cette autre idée brillante, pourquoi ne pas simplement créer une API et l'intégrer au tableau de bord ?

Donc, c'est exactement ce que j'ai fait.

Maintenant, je fais semblant de travailler dur sur des feuilles de calcul au travail tout en laissant la magie du cloud computing faire son travail.

Dans cet article, nous utiliserons Google Cloud Platform pour créer une API de sortie d'apprentissage automatique ridiculement simple.

Avant de commencer, voici le référentiel si vous souhaitez d'abord jeter un coup d'œil au code.

Avant même de commencer sur Google Cloud Platform (GCP), la première partie consiste à traiter les données et à faire fonctionner notre fonction d'apprentissage automatique.

Vous pouvez le faire dans n'importe quel IDE tel que VS Code, Google Colab ou Kaggle pour n'en nommer que quelques-uns.

Pour moi, nous ferons cela sur Kaggle parce que j'ai l'impression qu'ils sont assez généreux avec leurs services et que l'IDE a l'air élégant.

Nous n'avons besoin que de 2 bibliothèques simples pour cette API : Pandas et Sci-kit learn.

Je suis allé de l'avant et j'ai décidé de l'algorithme que j'utiliserai pour cet article.

Nous utiliserons Kmeans comme apprentissage automatique, car nous n'utiliserons que des données numériques et voudrons un étiquetage automatique basé sur des points communs, ce qui signifie que nous n'avons besoin que d'un algorithme d'apprentissage automatique non supervisé pour ce didacticiel.

Pour cet article, nous utiliserons l'ensemble de données mpg car il est simple.

Cet ensemble de données concerne les conclusions sur le carburant dans les voitures. Vous pouvez en savoir plus sur le site Web de l'Université de Californie à Irvine.

De plus, je ne veux pas vous ennuyer et vous confondre avec les étapes de nettoyage des données car notre objectif est de créer rapidement une API ML.

Dans ce cas, j'importerai un fichier CSV mais, de manière plus réaliste, vous interrogerez une base de données SQL ou non SQL, ou effectuerez des appels d'API.

Disons avec quoi nous travaillons.

Je ne suis pas vraiment un grand fan des champs d'objets lorsque j'essaie de travailler avec un algorithme simple tel que Kmeans.

Bien sûr, nous pouvons les encoder à chaud, mais le simple fait d'écrire du code de nettoyage des données ferait exploser le temps qu'il faut pour lire cet article, alors débarrassons-nous simplement des colonnes dont nous n'avons pas besoin.

Comme mentionné, notre objectif est d'être simple, nous allons donc supprimer toutes les colonnes contenant des chaînes et ne conserver que celles avec des champs numériques.

Nous avons des nombres entiers dans l'ensemble de données, nous les transformerons également en nombres pour plus de cohérence.

Kmeans fonctionne en mesurant la distance entre un point de données et un autre point. Les points de données proches les uns des autres forment un cluster. Cette distance est mesurée par la distance euclidienne. Fondamentalement, imaginez l'hypoténuse d'un triangle et c'est la distance. Vous pouvez en savoir plus sur l'article de Wikipedia ici.

Vous pouvez définir le nombre de clusters dans l'algorithme et si vous souhaitez que les sorties soient identiques en fonction de l'état aléatoire avec lequel vous commencez. Vous pouvez en savoir plus sur l'implémentation de kmeans par sci-kit learn ici.

Maintenant que nous avons des étiquettes, il ne nous reste plus qu'à les attacher à notre ensemble de données. Ce sont essentiellement les clusters dans lesquels chaque ligne de données tombe.

Voici comment les résultats apparaissent sous forme de bloc de données.

Maintenant que nous avons un ensemble de données sur lequel nous pouvons API, tout ce que nous devons faire est de transformer les données en JSON afin qu'elles puissent être facilement interprétées par d'autres systèmes.

Voici comment les résultats apparaissent au format JSON.

Et, juste pour finaliser le tout, nous allons tout encapsuler dans une fonction. Cela est nécessaire lorsque nous mettons du code en production.

Cela créera un petit fichier texte qui vous aidera à indiquer à Google quels packages sont requis.

Si cela est fait correctement, les résultats finaux devraient ressembler à quelque chose comme ci-dessous.

Je ne suis pas affilié à Google Cloud Platform, alors croyez-moi, je ne vends rien ici. En fait, pour ce didacticiel, vous pourriez probablement même utiliser AWS ou Azure si vous le souhaitez, mais je suis un partisan de GCP.

La première étape consiste à créer un compte GCP. Vous pouvez le faire ici et suivre les instructions pour savoir comment procéder.

Google Cloud Functions est essentiellement une plate-forme sans serveur qui vous permet d'exécuter vos propres fonctions dans le cloud. Ceci est principalement utilisé pour créer des applications et est déclenché par des requêtes HTTPS.

Dans ce cas, nous l'utiliserons pour un apprentissage automatique simple.

Utilisez la barre de recherche GCP pour trouver Cloud Functions.

Si vous voulez en savoir plus sur les fonctions du cloud, vous pouvez en savoir plus ici.

Pour nos besoins, il n'y a pas grand-chose à configurer. GCP donne généreusement 2 millions d'appels gratuits chaque mois, et même dans ce cas, il ne semble pas y avoir beaucoup de limitations sur la façon dont vous êtes censé configurer la fonction avant d'être facturé.

Mais, pour nos besoins, j'aime garder la région comme US-central 1 pour éviter les coûts cachés. US-central 1, US-east 1 et US-west 1 ont principalement des fonctionnalités gratuites, donc j'ai tendance à m'en tenir à ces régions.

De plus, j'ai changé l'authentification en "Autoriser les invocations non authentifiées" car pour cette expérience, je suis plutôt trop paresseux pour configurer la sécurité. (Je sais. Pas de bonnes pratiques de cybersécurité !)

C'est à peu près tout ce qu'il y a à faire.

Maintenant, nous sommes à la page de création de fonction.

Notre fonction est en fait enroulée autour d'une fonction flask, nous n'avons donc pas besoin de faire une configuration pour configurer notre code en tant qu'API. Google le fait automatiquement.

Tout ce que nous avons à faire est de définir la fonction que nous allons utiliser. Voici les étapes :

Maintenant, cliquez simplement sur créer, attendez et testez la fonction.

Accédez à l'onglet de test, cliquez sur "fonction de test" et voyez si vous êtes d'accord avec les sorties.

Ma sortie semble bonne, donc je suis content.

Comme vous pouvez le constater, c'est assez facile.

Vous n'avez même pas besoin de savoir comment faire de la programmation frontale ou même du cloud computing pour commencer. Tant que vous savez comment créer une fonction Python, tout va bien.

Ce que je dois souligner, c'est que nous venons de créer une API qui effectuera des appels d'API automatiques, transformera les données et enverra les données au format JSON. Il s'agit d'un chemin à sens unique très spécifique.

Cependant, si vous voulez faire quelque chose d'un peu plus complexe, nous le garderons pour un prochain article.

Voici le référentiel GitHub si vous voulez l'essayer par vous-même. J'ai déjà enveloppé le code autour du flacon, pour imiter la façon dont il devrait agir comme il le ferait dans Google Cloud Platform. Assurez-vous simplement de l'exécuter dans quelque chose comme VSCode plutôt que dans un cahier Juypter, car le script ouvrira une page Web distincte.

jdwag123.medium.com

Abonnez-vous à DDIntel ici.

Rejoignez notre réseau ici : https://datadriveninvestor.com/collaborate