Intel - Machine Learning - Reconnaissance vocale : optimiser la performance de la reconnaissance vocale
Avec la bibliothèque Intel Math Kernel

Le , par Stéphane le calme, Chroniqueur Actualités
La plateforme Euler de Qihoo360 est une plateforme de calcul distribué hors ligne pour le traitement des données à grande échelle et qui adopte principalement le modèle de calcul intégralement en mémoire. Elle fournit une API, une bibliothèque (C++ uniquement) et se sert du modèle de formation hors ligne pour les activités de Qihoo360, incluant son modèle d’estimation de taux de clic, le positionnement de la page, l’inscription dans la liste des pages blanches, les recommandations d’un assistant mobile, le calcul de similarité d’images dans les recherches d’images, le modèle d’analyse des comportements d’attaques réseau, le modèle word2vec, et la reconnaissance vocale.

Concernant la reconnaissance vocale, les ingénieurs de Qihoo360 et d’Intel ont collaboré étroitement à l’optimisation de son module clé sur la plateforme Euler de Qihoo360. La reconnaissance vocale, ou encore « reconnaissance vocale automatique » (ASR), transcrit les mots parlés sous forme de texte. Pour le module typique de calcul intensif à grande échelle, des réseaux neuronaux profonds (DNN) ont été utilisés pour cette tâche.

Comment cela se passe-t-il ? Après le prétraitement d’une grande quantité de données vocales, toutes les données en virgule flottante ont été introduites dans le DNN. Après des itérations répétées, un modèle acoustique a pu être établi. Durant le traitement, l’énorme quantité d’opérations matricielles et vectorielles est devenue un goulot d’étranglement pour l’ensemble du projet


Reconnaissance vocale à grand vocabulaire de la plateforme Euler

Pour améliorer la vitesse de calcul du module ASR Euler dans l'architecture Intel, les ingénieurs vont s'intéresser à la bibliothèque Intel MKL et au compilateur Intel C++. Pour rappel, ces compilateurs sont livrés avec la suite d'outils de développement logiciel Intel Parallel Studio XE. Intel C++ est destiné à l'obtention d'une performance de pointe avec les processeurs Intel et les processeurs compatibles. Il génère automatiquement un code optimisé pour toutes les plateformes basées sur l’architecture Intel, comprenant la vectorisation et la parallélisation automatiques, le tuning de la mémoire et de la ligne de cache, ainsi qu’une capacité d’optimisation de haut niveau. Le compilateur cherche les façons d’accomplir les tâches avec un nombre minimal de cycles du CPU. Il effectue également des mises à l’échelle vers des systèmes multicœurs, manycore et multiprocesseurs avec OpenMP, du parallélisme automatique, et avec soutien du coprocesseur Intel Xeon Phi.

Intel MKL pour sa part est une bibliothèque mathématique haute performance et riche en fonctionnalités, permettant d’élaborer des applications scientifiques, d’ingénierie et financières. Le but est de fournir aux développeurs une meilleure performance, moyennant un effort minimal. Il peut libérer les capacités maximales de calcul et de traitement parallèle des familles de produits Intel Xeon et Xeon Phi. Intel MKL offre des fonctions puissantes, incluant des sous-programmes d’algèbre linéaire élémentaire (BLAS) et les routines d’algèbre linéaire (LAPACK), des transformées de Fourier rapides, des fonctions mathématiques vectorielles, des fonctions de génération de nombres aléatoires, et autres fonctionnalités. Il procure aussi des interfaces aux API standards dans des langages comme le C++, Fortran, C#, Java, Python, et R.

Les concepteurs avancent que la plateforme Euler est conçue pour traiter efficacement les modèles de calcul les plus compliqués de manière efficace, tels que l’apprentissage automatique. Ce dernier est un sujet qui revient souvent dans l'actualité comme avec l'algorithme AlphaGo qui a battu Lee Sedol au jeu de go ou le chatbo Tay de Microsoft pour ne citer que ceux-là. Parmi les fonctionnalités qu'elle embarque figurent :
  • la gestion de ressources ;
  • la planification de tâches ;
  • la partition de données ;
  • le calcul en parallèle ;
  • la dépendance des données ;
  • la communication réseau ;
  • le barrage de données ;
  • un cadre distribué tolérant aux erreurs ;
  • une structure de données distribuée.


en savoir plus en téléchargeant gratuitement le livre blanc Intel Math Kernel


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :
Contacter le responsable de la rubrique Accueil