À propos du poste
Nous recherchons un(e) stagiaire motivé(e) pour rejoindre notre équipe dynamique. Ce stage vous permettra d'acquérir une expérience précieuse dans un environnement professionnel stimulant tout en contribuant activement à nos projets d'optimisation et de parallélisation des algorithmes de Machine Learning et Deep Learning.
Contexte
Le projet MLCUT vise à développer une plateforme logicielle expérimentale dédiée à l’étude et à l’évaluation de stratégies de parallélisation de réseaux de neurones sur architectures CPU et GPU.
La plateforme repose sur une interface graphique interactive basée sur Streamlit, permettant d’explorer différentes stratégies de découpage et d’orchestration des calculs en fonction des ressources matérielles disponibles.
Une première version fonctionnelle a déjà été développée pour un perceptron multicouche (MLP) appliqué à des tâches de classification binaire sur des données tabulaires normalisées.
Cette version implémente une stratégie de découpage horizontal des couches cachées (H-layer Cut) et prend en charge plusieurs backends d’exécution : threads, multiprocessing, Dask (threads, processes, distributed) ainsi que le calcul GPU via CuPy.
Un orchestrateur automatique sélectionne la stratégie d’exécution la plus adaptée en fonction des ressources et des caractéristiques du problème.
Objectifs du stage
L’objectif du stage est d’étendre et de consolider la plateforme MLCUT, notamment en :
- Étendant les cas d’usage à la classification multiclasse et à la régression
- Définissant une formalisation méthodologique plus rigoureuse des stratégies de parallélisation
- Mettant en place des protocoles expérimentaux reproductibles (speedup, efficacité parallèle, scalabilité forte et faible)
- Améliorant la robustesse, la modularité et la maintenabilité de la plateforme logicielle
Profil recherché
- Étudiant(e) en Master 2 ou en cycle ingénieur
- Bon niveau en programmation Python
- Intérêt marqué pour le calcul parallèle et distribué, les architectures CPU/GPU et l’ingénierie logicielle scientifique
- Des connaissances en HPC, multiprocessing, GPU computing ou systèmes distribués sont un plus
Environnement technique
- Python
- Streamlit
- Threading et multiprocessing
- Dask
- CuPy
- Environnements CPU et GPU
Type d'emploi : Stage
Rémunération : 750,00€ à 950,00€ par mois
Lieu du poste : Télétravail hybride (92100 Boulogne-Billancourt)