loading

Analyse de cas de la technologie d'apprentissage profond basée sur Spark et Bigdl

Cet article partage principalement l'expérience pratique d'Intel et de JD dans la construction d'un cadre d'extraction d'images à grande échelle basé sur la technologie d'apprentissage profond par étincelle et bigdl. L'extraction de caractéristiques d'image est largement utilisée dans la récupération d'images, la duplication de type similaire, etc. Avant d'utiliser le framework bigdl (qui sera mentionné plus tard), nous avons essayé de développer et de déployer des applications d'extraction de fonctionnalités sur multi-machine, carte multi-GPU et cluster GPU respectivement. Cependant, les cadres ci-dessus ont des inconvénients évidents:

Analyse de cas de la technologie d'apprentissage profond basée sur Spark et Bigdl 1

Dans le cluster GPU, la stratégie d'allocation de ressources basée sur la carte GPU est très complexe et l'allocation de ressources est sujette à des problèmes, tels qu'une mémoire vidéo restante insuffisante, entraînant un crash oom et d'application. Dans le cas d'une seule machine, par rapport au mode cluster, les développeurs doivent effectuer manuellement la fragmentation des données, Tolérance de charge et de panne. L'application du mode GPU, prenant Caffe comme exemple, a de nombreuses dépendances, y compris CUDA, ce qui augmente la difficulté de déploiement et de maintenance. Par exemple, lorsqu'il y a des problèmes avec différentes versions de système d'exploitation et versions de GCC, ils doivent être recompilés et emballés.

Les problèmes ci-dessus font que le programme avancé basé sur GPU est confronté à de nombreux défis d'application technique en architecture.

Regardons la scène elle-même. Étant donné que l'arrière-plan de nombreuses images est complexe et que la proportion d'objets sujets est généralement petite, afin de réduire l'interférence de l'arrière-plan sur la précision de l'extraction des fonctionnalités, le sujet doit être séparé de l'image. Naturellement, le cadre d'extraction de caractéristiques d'image est divisé en deux étapes. Tout d'abord, la cible est détectée par l'algorithme de détection de cible, puis la fonction cible est extraite par l'algorithme d'extraction de caractéristiques. Ici, nous utilisons SSD [1] (détecteur multibox mono-shot) pour la détection de cible et réseau deepbit [2] pour l'extraction de fonctionnalités.

Jingdong a un grand nombre d'images de produits (plus de centaines de millions) dans la base de données open source distribuée grand public. Par conséquent, comment récupérer et traiter efficacement les données dans un environnement distribué à grande échelle est un problème clé du pipeline d'extraction d'images. Les solutions basées sur le GPU existantes sont confrontées à d'autres défis pour résoudre les exigences des scénarios ci-dessus: le téléchargement de données prend beaucoup de temps et le schéma basé sur le GPU ne peut pas bien l'optimiser. Pour les données d'image dans la base de données open source distribuée, le processus de traitement précoce des données du schéma GPU est très complexe, Et il n'y a pas de cadre logiciel mature pour la gestion des ressources, le traitement distribué des données et la gestion de la tolérance aux pannes.

Analyse de cas de la technologie d'apprentissage profond basée sur Spark et Bigdl 2

En raison des limites du logiciel GPU et du cadre matériel, il est très difficile d'étendre le schéma GPU pour traiter les images à grande échelle. Dans l'environnement de production, l'utilisation des installations logicielles et matérielles existantes améliorera considérablement l'efficacité de la production (comme la réduction du R). & D temps de nouveaux produits) et réduire le coût. Dans ce cas, les données sont stockées sur la base de données open source distribuée grand public dans le cluster de données volumineuses. Si l'application d'apprentissage en profondeur peut utiliser le cluster Big Data existant (tel que Hadoop ou le cluster d'étincelles) pour l'informatique, elle peut facilement résoudre les défis ci-dessus.

Le projet bigdl open source d'Intel [3] est un cadre d'apprentissage en profondeur distribué sur l'étincelle, qui fournit un support complet de l'algorithme d'apprentissage en profondeur. Bigdl peut être facilement étendu à des centaines ou des milliers de nœuds avec l'évolutivité distribuée de la plate-forme d'étincelle. Dans le même temps, bigdl utilise la bibliothèque informatique mathématique Intel MKL et la technologie de calcul parallèle pour atteindre des performances élevées sur le serveur Intel Xeon (la puissance de calcul peut être comparable aux performances du GPU grand public). Dans notre scénario, bigdl est personnalisé pour prendre en charge divers modèles (détection et classification); Le modèle est transplanté de n'être applicable qu'à un environnement spécifique à un environnement bigdl big data prenant en charge le modèle général (café, torche, tensorflow); L'ensemble du processus de pipeline a été optimisé et accéléré. Le pipeline d'extraction de fonctionnalités dans l'environnement d'étincelles via bigdl est illustré à la figure 1:

Utilisez Spark pour lire des centaines de millions d'images originales à partir de la base de données open source distribuée et créer une étincelle RDUse pour prétraiter les images, y compris le redimensionnement, la soustraction de la valeur moyenne et la composition du Données dans un batchEn utilisant bigdl pour charger le modèle SSD, une détection de cible à grande échelle et distribuée est effectuée sur l'image par étincelle, et une série de coordonnées de détection et de scores correspondants sont obtenus

Le résultat de détection avec le score le plus élevé est conservé comme cible du sujet, et l'image cible est obtenue en coupant l'image d'origine selon les coordinatesde détection Prétraiter le RDD de la cible L'image, y compris le redimensionnement, pour former un batchBigdl est utilisée pour charger le modèle de deepbit, et l'étincelle est utilisée pour extraire les caractéristiques distribuées de l'image cible détectée afin d'obtenir le correspondant Caractéristiques

Les résultats de détection (fonction cible extraite RDD) sont stockés sur HDFS. L'ensemble du pipeline d'analyse de données, y compris la lecture de données, le partitionnement de données, le prétraitement, la prédiction et le stockage de résultats, peut être facilement implémenté dans l'étincelle via bigdl. Sur le cluster Big Data existant (Hadoop / spark), les utilisateurs peuvent exécuter des applications d'apprentissage en profondeur à l'aide de bigdl sans modifier aucune configuration de cluster. De plus, bigdl peut facilement être étendu à un grand nombre de nœuds et de tâches en utilisant l'évolutivité élevée de la plate-forme d'étincelle, ce qui accélère considérablement le processus d'analyse des données. En plus de la prise en charge de l'apprentissage profond distribué, bigdl fournit également de nombreux outils faciles à utiliser, tels que la bibliothèque de prétraitement d'images, les outils de chargement de modèles (Y compris le chargement de modèles de cadre d'apprentissage en profondeur tiers), ce qui est plus pratique pour les utilisateurs pour construire l'ensemble du pipeline.

PréprocessingBigdl fournit une bibliothèque de prétraitement d'images [4] basée sur OpenCV [5], qui prend en charge diverses fonctions courantes de conversion d'image et d'amélioration d'image. Les utilisateurs peuvent facilement utiliser ces fonctions de base pour créer un pipeline de prétraitement d'image. De plus, les utilisateurs peuvent également appeler la fonction opencv fournie par la bibliothèque pour opérer une conversion d'image personnalisée. Le pipeline de prétraitement de cet échantillon convertit un RDD original en un lot RDD via une série de transformations. Parmi eux, bytetomat convertit l'image d'octet dans le format de stockage de tapis d'OpenCV, redimensionner ajuste la taille de l'image à 300x300, et mattofloats enregistre les pixels dans le tapis dans le format du tableau flottant et soustrait la valeur moyenne du canal correspondant. Enfin, roiimagetobatch forme les données en un lot, qui est utilisé comme entrée du modèle pour la prédiction ou l'entraînement.

Modèle de chargement Les utilisateurs peuvent facilement utiliser bigdl pour charger le modèle pré-formé et l'utiliser directement dans le programme Spark. Compte tenu du fichier de modèle bigdl, vous pouvez appeler module.load pour obtenir le modèle. De plus, bigdl prend également en charge l'importation de modèles de framework d'apprentissage profond tiers, tels que Caffe, torche et tensorflow.

Les utilisateurs peuvent facilement charger le modèle qualifié pour la prédiction des données, l'extraction des fonctionnalités, la mise au point du modèle, etc. Prenant Caffe comme exemple, le modèle de Caffe se compose de deux fichiers, un fichier de définition de prototext de modèle et un fichier de paramètre de modèle. Comme indiqué ci-dessous, les utilisateurs peuvent facilement charger le modèle Caffe pré-formé dans des programmes d'étincelle et de bigdl. performanceNous comparons les performances de la solution de cluster GPU basée sur Caffe et la solution de cluster Xeon basée sur bigdl. Les tests s'exécutent dans l'environnement de cluster interne de JD.

Standardde test Fin à la fin du pipeline de traitement et d'analyse d'images, y compris: Lire des images à partir de la base de données open source distribuée (télécharger des images de la source d'image à la mémoire)

Entrée dans le modèle de détection cible et le modèle d'extraction de fonctionnalités pour l'extractionSauvegardez les résultats (chemins d'image et fonctionnalités) dans le système de fichiers Remarque: le facteur de téléchargement est devenu un facteur important affectant le débit global de bout en bout. Dans ce cas, cette partie du temps de traitement représente environ la moitié du temps total de traitement (fonctionnalités de détection de téléchargement). Le serveur GPU ne peut pas utiliser GPU pour accélérer le traitement du téléchargement.

Test EnvironmentGPU: NVIDIA Tesla K40, 20 cartes exécutées de manière concurrente CPU: processeur Intel (R) Xeon (R) e5-2650 V4 à 2,20 GHz, 1200 cœurs logiques au total (chaque serveur dispose de 24 cœurs physiques, permet l'hyper filetage et est configuré comme 50 noyaux logiques de fil)

Résultat du test La figure 2 montre que le débit de Caffe de 20 K40 images de traitement simultanées est d'environ 540 images/s, tandis que le débit de bigdl sur le groupe de fils (Xeon) avec 1200 cœurs logiques est d'environ 2070 images/s. Le débit de bigdl sur le cluster Xeon est environ 3,83 fois supérieur à celui du cluster GPU, ce qui raccourcit considérablement le temps de traitement des images à grande échelle. Les résultats des tests montrent que bigdl fournit une meilleure prise en charge dans les applications d'extraction d'images à grande échelle. La haute évolutivité, les performances élevées et la facilité d'utilisation de Bigdl aident JD à faire face plus facilement à la croissance massive et explosive de l'échelle d'image. Sur la base de ces résultats de test, JD met à niveau l'implémentation de l'extraction des caractéristiques d'image Caffe basée sur le schéma de cluster GPU en bigdl basé sur le cluster Xeon et le déploie pour déclencher un environnement de production de cluster.

La figure 2 compare le débit de K40 et Xeon dans la photo. L'extraction des caractéristiques de pipeline, la haute évolutivité, les performances élevées et la facilité d'utilisation de JD aident plus facilement à utiliser la technologie d'apprentissage en profondeur pour traiter des images massives. JD continuera d'appliquer bigdl à un plus large éventail d'applications d'apprentissage approfondi, telles que la formation sur modèle distribué.

[1]. Liu, Wei et coll. SSD: Détecteur MulTIbox à coup unique. Conférence européenne sur la vision par ordinateur. Springer, Cham, 2016.[2]. Lin, Kevin et coll. Apprendre des descripteurs binaires compacts avec des réseaux de neurones profonds non supervisés. Actes de la conférence IEEE sur la vision par ordinateur et la reconnaissance de modèles, 2016.[3]. Https://github.com/intel-analyTIcs/BigDL

[4]. Https://github.com/intel-analytics/analytics-zoo/tree/master/transform/vision[5].

Prenez contact avec nous
Articles recommandés
Cas
Introduction au distributeur de tickets de stationnementIl est difficile de donner une description claire de la même chose. Beaucoup de gens utilisent le même format, ce qui facilite la compréhension
Ce qu'il faut rechercher dans le distributeur de tickets de stationnement La plupart du temps, vous constaterez qu'il existe de nombreux types de tickets de stationnement. Vous serez fatigué
L'introduction du distributeur de tickets de parkingLe distributeur de tickets de parking est un type de jeton extrêmement courant que les gens utilisent pour acheter des biens et des services. Quand vous
Comment fonctionnent les distributeurs de tickets de parking Vous pouvez acheter des tickets de parking en ligne en achetant des tickets de parking est facile, mais vous pouvez également payer avec votre carte de débit, carte de crédit, chèque
L'introduction du distributeur de tickets de parkingLe distributeur de tickets de parking est un moyen innovant d'éliminer les tracas liés au paiement des tickets de parking. Pour les gens w
Qu'est-ce qu'un système d'horodateur ?Système d'horodateur ? Qu'est-ce que le système d'horodateur ? système d'horodateur?Système d'horodateur
Comment fonctionnent les distributeurs de tickets de parkingLes distributeurs de tickets de parking fonctionnent noche esta edicin flickerrolls politika sin sadismo cigarettes shuhua nga qiaomiao miaoxian o harakk
Comment fonctionnent les distributeurs de tickets de stationnement Si vous ne l'aimez pas, éloignez-vous et laissez-le. C'est ainsi que les gens qui roulent en voiture ont toujours conduit. Le
Introduction au distributeur de tickets de parking Il existe de nombreuses façons de disposer d'un ticket de parking. Il est possible de garer sa voiture sur un piédestal spécial, je
Introduction au système de distributeurs de tickets de stationnementLe système de distributeurs de tickets de parking est un domaine très complexe et spécialisé qui nécessite une attention particulière. La majorité des t
pas de données
Shenzhen Tiger Wong Technology Co., Ltd est le principal fournisseur de solutions de contrôle d'accès pour le système de stationnement intelligent des véhicules, le système de reconnaissance de plaque d'immatriculation, le tourniquet de contrôle d'accès des piétons, les terminaux de reconnaissance faciale et Solutions de stationnement LPR .
pas de données
CONTACT US

Technologie Cie., Ltd de Shenzhen TigerWong

Tel:86 13717037584

E-mail: info@sztigerwong.com

Ajouter : 1er étage, bâtiment A2, parc industriel numérique de Silicon Valley Power, No. 22 route Dafu, rue Guanlan, district de Longhua,

Shenzhen, province du Guangdong, Chine  

                    

Droit d'auteur©Shenzhen TigerWong Technology Co.,Ltd 2021  | Plan du site
Contact us
skype
whatsapp
messenger
contact customer service
Contact us
skype
whatsapp
messenger
Annuler
Customer service
detect