PLONGÉE PROFONDE DANS LA RECONNAISSANCE AUTOMATIQUE DE LA PAROLE : TEST DE L’IMPLEMENTATION DE WHISPER JAX ET PYTORCH SUR PLUSIEURS PLATEFORMES
La vitesse et l’exactitude sont des éléments essentiels dans le domaine de la reconnaissance automatique de la parole. Toutefois, la taille des données et des modèles ne cesse de croître, rendant difficile l’efficacité. Dans cet article, nous nous concentrons sur Whisper JAX, une récente implémentation de Whisper qui utilise un framework backend différent et qui semble fonctionner 70 fois plus rapidement que l’implémentation PyTorch d’OpenAI. Nous avons testé les implémentations CPU et GPU, mesuré l’exactitude et les temps d’exécution, et défini des expériences pour les modèles de petite et grande taille tout en paramétrant la taille des lots et les types de données pour voir si nous pouvions encore l’améliorer.
Whisper est un modèle de reconnaissance de la parole polyvalent qui excelle dans diverses tâches de traitement de la parole. Il peut effectuer la reconnaissance de la parole multilingue, la traduction et même la détection d’activité vocale. Il utilise une architecture de séquence-à-séquence Transformer pour prédire des mots et des tâches conjointement. L’un des inconvénients de Whisper est son efficacité ; il est souvent assez lent par rapport à d’autres modèles de pointe.
Dans les sections suivantes, nous abordons les détails des changements apportés par cette nouvelle approche. Nous comparons Whisper et Whisper JAX, soulignons les principales différences entre PyTorch et JAX et développons une pipeline pour évaluer la vitesse et l’exactitude entre les deux implémentations.
Nous avons utilisé un long clip audio de plus de 30 minutes pour évaluer les performances des variantes de Whisper, avec une implémentation PyTorch et JAX. Les expériences ont été menées sur un CPU doté d’une architecture x86_64 avec un total de 112 cœurs, alimenté par un processeur Intel(R) Xeon(R) Gold 6258R fonctionnant à 2,70 GHz, et une GPU NVIDIA Quadro RTX 8000 avec 48 Go de VRAM.
Nos résultats fournissent des informations sur la vitesse et l’efficacité des deux implémentations sur les plates-formes GPU et CPU. Notre première expérience a consisté à exécuter un long audio (plus de 30 minutes) en utilisant le GPU et le modèle Whisper le plus grand (large-v2) qui nécessite environ 10 Go de VRAM. Contrairement à ce que prétendent les auteurs de Whisper JAX, nos résultats indiquent que l’implémentation JAX est plus lente que la version PyTorch. Même avec l’incorporation de la demi-précision et du batching, nous n’avons pas pu dépasser les performances de l’implémentation PyTorch en utilisant Whisper JAX. Whisper JAX a pris presque deux fois plus de temps que l’implémentation PyTorch pour effectuer une transcription similaire. Nous avons également observé un temps de transcription anormalement long lorsque la demi-précision et le batching étaient utilisés.
En revanche, lorsque nous avons comparé les performances du CPU, nos résultats montrent que Whisper JAX surpasse l’implémentation PyTorch. Le facteur d’accélération était environ deux fois plus rapide pour Whisper JAX par rapport à PyTorch. Ces résultats suggèrent que les performances dépendent de la plate-forme utilisée et que JAX fonctionne mieux sur les CPUs.
En conclusion, grâce à cette expérience, nous avons pu constater que les performances dépendent de la plate-forme et de la tâche en question. Bien que Whisper JAX ne soit pas toujours la solution la plus rapide, il offre un potentiel pour accélérer les tâches de reconnaissance de la parole sur CPU. Ces résultats ouvrent de nouvelles perspectives pour d’autres expériences visant à améliorer la reconnaissance automatique de la parole en exploitant le potentiel de ces deux implémentations de Whisper.
Cet article fait partie de « Large Language Models Chronicles : Navigating the NLP Frontier », une nouvelle série d’articles hebdomadaires qui exploreront comment exploiter la puissance de grands modèles pour diverses tâches NLP. En plongeant dans ces technologies de pointe, nous voulons donner aux développeurs, chercheurs et enthousiastes les moyens d’exploiter le potentiel de NLP et de débloquer de nouvelles possibilités.