[PYTHON] Environnement d'analyse de données centré sur Datalab (+ GCP)

Cette entrée est une suite des deux entrées suivantes.

Examen de l'environnement d'analyse centré sur Datalab

En ce qui concerne l'environnement d'analyse des données, il existe différentes manières de penser concernant le nombre d'analystes, le type d'entreprise de l'entreprise, le sens de l'échelle, etc. J'ai une idée de l'avenir de Datalab, mais en conclusion, malheureusement, Datalab à lui seul ne semble pas suffisamment fonctionnel. Cependant, maintenant que la nouvelle technologie d'analyse appelée apprentissage en profondeur est devenue dans une certaine mesure la norme de facto, je pense qu'il est important de réorganiser l'environnement d'analyse, je vais donc l'écrire.

Importance d'investir dans un environnement analytique

Le cas de Retty est devenu un sujet brûlant et m'a été utile. L'apprentissage profond est devenu populaire ces jours-ci, donc en pratique, il s'installera dans cette direction. Notre société a créé un environnement d'analyse dans une direction similaire.

De plus, comme on l'a vu dans l'industrie du jeu social il y a longtemps, l'amélioration du jeu avec l'exploration de données a fait un profit de ○ milliards de yens, bien que cela n'ait pas autant d'impact, a mentionné M. Retty ci-dessus récupération plus que le montant de l'investissement semble avoir été terminé, et il semble qu'il y ait certainement un point à investir dans l'environnement d'analyse.

Exigences supposées de l'environnement d'analyse

Quant à l'histoire d'ici, ce qui suit est supposé.

--Il y a plusieurs analystes (un nombre raisonnable) ――Les thèmes à analyser sont diversifiés dans une certaine mesure

Configuration de l'environnement d'analyse des données

Je vais l'écrire avec la transition de l'environnement d'analyse.

Chaque personne construit un environnement à portée de main

Cela ressemblera à ceci au début de l'analyse.

分析環境その1.png

--Chaque personne construit un environnement d'analyse au besoin ――Les sources de données sont également différentes, et on a l'impression que chaque personne saisit ce dont elle a besoin pour l'analyse. ―― Comme il n'est pas clair quelles données peuvent être utilisées et quelles données peuvent être utilisées, nous allons les explorer dans son ensemble.

Je pense que c'est inévitable si le nombre de personnes est petit et le coût de l'analyse ne peut être dépensé.

Je souhaite aligner les sources de données

Comme prochaine étape, je pense que vous voulez avoir des sources de données.

分析環境その2.png

--Préparez le stockage partagé, le stockage cloud, etc., et y agrégez les sources de données --Introduire DWH commercial, Hadoop, etc. pour effectuer le traitement des données et le traitement primaire

Comme d'habitude, l'environnement d'analyse lui-même semble différent, mais je pense qu'il y a beaucoup d'améliorations apportées par la centralisation des sources de données. Cependant, faute d'environnement d'analyse, il est coûteux d'effectuer une analyse en équipe, et chaque personne reste au niveau d'un travail d'analyse indépendant.

Je souhaite préparer un environnement d'analyse

La prochaine étape consiste à collaborer sur le travail d'analyse. À ce stade, si l'environnement d'analyse n'est pas préparé, il est difficile de diviser le travail d'analyse et de faire des choses comme la FCE, il est donc nécessaire de préparer l'environnement d'analyse.

分析環境その3.png

―― Dans la plupart des cas, vous laisserez la procédure d'installation, etc. dans le document, et si vous êtes nouveau sur le site, vous devrez créer votre propre environnement d'analyse. --Utilisation de Jupyter pour préparer les versions Python, comme ... ―― La bonne chose est, par exemple, que vous pouvez fournir à une machine virtuelle un environnement d'analyse construit, ou organiser l'environnement d'exécution au niveau de l'image du docker et partager le fichier notebook (ipynb).

Progressivement, ce sera une phase importante pour standardiser et partager l'environnement d'analyse du point de vue de l'ingénieur. Avant l'avènement du deep learning, on peut dire qu'un environnement d'analyse assez satisfaisant a été créé à ce stade.

Problèmes jusqu'à présent: problème de requête putain

Il y a des problèmes pour le faire fonctionner comme environnement d'analyse avec la configuration jusqu'à ce point.

En effet, parce que la partie traitement des données (DWH, Hadoop / Hive, Redshift, etc.) est partagée, des requêtes (putains de requêtes) qui dérangent les autres et l'administrateur sont créées. L'administrateur de la partie DWH doit garder un œil sur la putain de requête et la tuer.

Cependant, du point de vue de l'analyste, s'il n'y a pas de règles claires, il y a une tendance à procéder au traitement des données avec des requêtes autant que possible, et les personnes nouvellement jointes émettront de putains de requêtes sans malveillance et deviendront aptes. Je vais. Le putain de problème de requête est généralement un désordre et la perception qu'il n'y a pas de solution fondamentale.

Je souhaite sécuriser et partager des ressources informatiques plus riches

Ensuite, en tant que tendance récente, il y a une tendance à introduire le GPU pour aborder correctement l'apprentissage en profondeur. En général, les machines GPU sont un peu plus chères à se procurer que les machines à processeur, et ne sont pas encore bon marché et faciles à utiliser dans le cloud. De plus, au lieu de vouloir une grande quantité de ressources GPU, il y a une tendance à introduire des GPU hautes performances et plusieurs GPU pour une analyse au mieux à titre d'essai, et il y a un cas où l'environnement lui-même où plusieurs GPU peuvent être utilisés est créé sur site. Semble être le plus.

Dans ce cas, la machine GPU est souvent partagée, et dans ce cas, il semble que l'image Docker soit souvent utilisée. La même chose est vraie pour le cas de Retty. Étant donné que le deep learning nécessite beaucoup de données, il est naturel d'attacher un grand disque à la machine GPU et de le placer à proximité.

分析環境その4.png

Problème ici: problème d'emprunt GPU

Bien sûr, le GPU est partagé, donc des échanges tels que l'emprunt du GPU et son retour commenceront à se produire dans les chats et autres. Pour aggraver les choses, l'apprentissage en profondeur prend du temps à apprendre, donc une fois que vous l'empruntez, vous ne pouvez pas le retourner facilement. Lorsqu'il arrive que le travail qui veut utiliser le GPU se chevauche, les ressources s'épuisent immédiatement, et inversement, lorsqu'il n'est pas utilisé, il ne l'est pas du tout. Étant donné que les données sont également exploitées sur site, des problèmes tels que la sauvegarde et la capacité peuvent survenir.

Considérons donc un workflow centré sur Datalab

Comment le workflow centré sur Datalab s'intègre-t-il ici? Je pense que ce sera pour la suite.

分析環境その5.png

Problème d'administration côté DWH (contre-mesures pour les putains de problèmes de requête)

Séparation des ressources informatiques (contre-mesures aux problèmes d'emprunt de GPU)

――Vous pouvez défendre ceux qui utilisent GCE

Problème fini de capacité de données (contre-mesure du problème d'emprunt GPU)

--Datalab a accès à GCS, donc le problème de capacité est susceptible d'être pratiquement résolu

Divers autres

Datalab tout semble fonctionner (je voulais dire)

Alors, Datalab, utilisons-le tous! Je voudrais dire, mais il s'est effondré parce que je ne peux pas utiliser GPU Instant (rires) C'est regrettable, regrettable. De plus, comme certains l'ont souligné, Datalab a également des problèmes système Python 2.

Il reste encore de nombreux problèmes à résoudre, mais je voudrais personnellement prêter attention à l'environnement d'analyse de données sur GCP centré sur Datalab.

L'histoire est couverte avec Cloud NEXT Extended [Session d'étude à l'extérieur qui se tiendra le 1er avril](https :: //algyan.connpass.com/event/52494/).

Recommended Posts

Environnement d'analyse de données centré sur Datalab (+ GCP)
[Python] Notes sur l'analyse des données
Créer un environnement d'analyse de données python sur Mac (El Capitan)
Préparer un environnement de langage de programmation pour l'analyse des données
Analyse de données python
Analyse des données Titanic 1
Créez un environnement Flask Python3 + sur Compute Engine de GCP
Essayez une analyse rudimentaire des sentiments sur les données de l'API Twitter Stream.
Construction d'un environnement d'analyse de données avec Python (notebook IPython + Pandas)
Analyse de données avec python 2
Analyse des données à l'aide de xarray
Construction de l'environnement: GCP + Docker
Analyse de données avec Python
Créez un environnement d'analyse de données avec Kedro + MLflow + Github Actions
Dockerfile pour créer un environnement de science des données basé sur pip3
Analyse des données basée sur les résultats des élections du gouverneur de Tokyo (2020)
[Introduction] Analyse de données satellitaires artificielles à l'aide de Python (environnement Google Colab)