Bonjour,
Je dois travailler dans le cadre d’un stage sur un programme d’apprentissage machine. C’est passionnant, mais mon niveau est un peu limite. En gros les différentes technologies employée et les algo ne sont pas si compliquées, mais j’ai du mal à comprendre comment elle interagissent entre elles.
On a :
- Du Python. Ça va, je connais
- PyTorch. Avec la doc ça ira.
- Du C++, pour certains calculs un peu intensif lors de la préparation des données. Sur le principe je connais un peu, mais embed dans Python, je ne comprends pas trop comment ça marche. En l’état actuel il semble que le compilateur soit intégré au module et que la compilation se fasse lorsque l’on installe le module avec pip.
- cuda, et son api C++ pour utiliser un filtre de convolution maison. Là c’est un peu bordélique. En plus du problème de C++ embed, il y a des problème de compatibilité de version. En l’état ils, ont mis tout le code dans un docker pour éviter d’avoir à mettre à jours le code pour cuda 12. On aimerait bien s’en libérer et pouvoir juste installer les dépendances dans un venv.
Dit autrement, les algo sont déjà écrit, et pas forcément très compliqués, par contre on a une usine à gaz infernale à installer et à migrer d’une machine à l’autre ou d’un OS à l’autre. L’idée et de reprendre le code existant de refaire un module propre, qui puisse fonctionner sur linux ou windows.
Je ne sais pas trop par où commencer. Pour le moment, le point qui me bloque le plus, c’est les modules C++ intégrés à Python. Ensuite, il y aura cette histoire de cuda, qui fonctionne pas de la même manière selon les version, et semble-t-il, selon les cartes graphiques.
Donc, j’aurai besoin de quelques conseils méthodologiques pour me lancer la dedans. Et surtout d’un bon tutoriel pas à pas sur l’utilisation de PyTorch et la customisation de cuda.
Merci d’avance pour votre aide.