L’IGN (Institut National de l’information géographique et forestière) produit diverses bases de données géographiques couvrant l’ensemble du territoire français ainsi que différentes cartographies permettant sa représentation. L’évolution technologique tant au niveau informatique, IA et sur l’évolution des capteurs aériens ou satellitaires a fortement augmenté les possibilités d’automatisation de la création de ces données géographiques. En particulier L’IGN dispose aujourd’hui de modèles IA (type segmentation d’images) entraînés pour faire des détections d’occupation du sol sur des images aériennes (et satellites) avec des résultats satisfaisant pour une utilisation en production. A noter que ces modèles IA sont également diffusés en open-data [1] Depuis ces premiers travaux IA sur la thématique de l’occupation du sol [2], l’IGN poursuit le développement de modèles IA pour d’autres thématiques et besoins (détection de bâtiments, de haies, de vignes et verger..). Cela conduit donc à un besoin récurrent d’inférence de modèle IA sur des images aériennes ou satellitaires, que cela soit lors de l’élaboration d’un modèle IA pour calculer les métriques sur un ensembles de zones tests ou bien pour la production et diffusion des résultats de ces modèles IA [3] (à l’échelle d’un département français, soit 6000km² à des résolution images de 20cm). Or le code utilisé aujourd’hui à l’IGN pour ses productions montre ses limites en termes de flexibilité et de facilité pour déployer de nouveaux modèles IA et dépend de ressources GPU en concurrence avec d’éventuels besoins d’entraînement de modèles IA. L'IGN souhaite donc étudier le prototypage d’un serveur d’inférence IA pour mieux répondre aux besoins cités ci-dessus. Celui-ci doit permettre de lancer des inférences IA sur de larges données images (aériennes ou satellitaires) de façon optimisée sur les ressources de calculs. De plus, ce prototype cherchera à être le plus possible agnostique du framework IA d’entraînement, cela nécessitera donc l'étude et la spécification d'un mode de packaging/déploiement après entraînement et validation des modèles geo-IA. Et enfin l’IGN souhaite en profiter pour étudier les différentes stratégies d’inférences possibles sur des données de types images aériennes ou satellitaires permettant de tirer parti de leur spécificité par rapport aux images naturelles. [1] https://huggingface.co/IGNF : https://huggingface.co/IGNF [2] IGN Intelligence artificielle pour la description de la couverture des sols https://www.youtube.com/watch?v=g1N1PL8j4MY : https://www.youtube.com/watch?v=g1N1PL8j4MY [3] Diffusion open-data des résultats de prédiction IA pour l’occupation du sol : https://cosia.ign.fr/ : https://cosia.ign.fr/ L'objectif du stage est de prototyper un service d'inférence de modèles geo-IA. Cela regroupe un ensemble de tâches constituant le cœur du besoin, pour obtenir une première version du prototype d’inférence, suivi de tâches pour étudier différentes améliorations du prototype. Les tâches prioritaires et permettant d’obtenir une V0 du serveur d’inférence sont : - Mettre au propre un code, le plus indépendant possible, permettant de découper les images aériennes (larges zones/images) à inférer en patch (batch à fournir à l’inférence IA) et l’opération inverse, de reconstruction de l’inférence IA geo à partir des résultats d’inférences des patchs. - Package des modèles IA IGN existant pour permettre de faire des inférences par patchs en s’inspirant de l’existant (par exemple [1]) - Mettre en place (déployer) un serveur d’inférence permettant de produire des prédictions sur des batchs d’images (ou patchs). - Prototyper une application permettant de calculer une inférence IA sur des images aériennes et satellitaires à partir du code de découpage/reconstruction images patches et via des appels ou serveur d’inférence par batch. Une fois cette première version mise en place et si le temps le permet, l’IGN souhaite étudier, tout ou partie des évolutions possibles suivantes, cité par ordre de priorité : - Amélioration du “packaging” d’un modèle IA le plus indépendant possible du Framework IA, notamment via des formats d’export ONNX [2] ou autre, équivalent GGUF [3][4] pour la computer vision (bibliographie à faire sur le sujet). - Rendre le code de « serveur » d’inférence compatible avec des backends de calculs utilisant des systèmes de distribution de calcul comme SLURM et Ray. - Recherche pour optimiser l’inférence du modèle IA (utilisation de librairie d’inférence et compilation de modèles vers des formats optimisés et natifs [5], benchmark sur GPU et CPU, stratégie d’optimisation des poids (quantisation) et taille de modèles similaire à celles utilisée actuellement dans les LLM (Llama). - Étudier, implémenter et tester les différentes stratégies de fusion d’inférence IA au patch vers de larges zones. En particulier on peut penser à étudier des inférences multi-échelles et avec de fort recouvrement permettant en plus du résultat d’inférence d’avoir une information de confiance dans la prédiction. - Si le temps d’inférence sur CPU est ‘acceptable’, test de développement d’un plugin d’inférence IA dans un SIG (outils de traitement de données géographiques) open-source (QGis). Productions attendues : - Des codes (avec documentation) sous forme de librairies python ou applications permettant de réaliser le prototype du serveur d’inférence. - Un exemple de modèle IA ‘packagé’ de la façon la plus optimisée possible et une bibliographie de l’existant sur le sujet. - Un rapport d’étude et bibliographie sur un ou plusieurs des objectifs d’amélioration (optimisation de la taille d’un modèle IA, stratégie de fusion d’inférence sur images aériennes et satellitaires etc..) [1] https://github.com/roboflow/inference : https://github.com/roboflow/inference [2] https://onnx.ai/ : https://onnx.ai/ [3] https://huggingface.co/docs/hub/en/gguf : https://huggingface.co/docs/hub/en/gguf [4] https://medium.com/@phillipgimmi/what-is-gguf-and-ggml-e364834d241c : https://medium.com/@phillipgimmi/what-is-gguf-and-ggml-e364834d241c [5] https://developer.nvidia.com/tensorrt : https://developer.nvidia.com/tensorrt Développeur IA (BAC + 5 de préférence) - Programmation python. La connaissance des librairies scientifiques IA ( pytorch, numpy, pandas, ray) et/ou d’un framework web (fastapi, flask) sera appréciée. - Connaissance générale en informatique (fonctionnement d’architecture web – serveur etc..) - Compétence en développement pour le traitement des données et l’IA - Bon niveau d’anglais lu (lecture d’articles) - Connaissance en programmation C++ appréciée. Les locaux de l’IGN sont placés à proximité du Bois de Vincennes, du métro ligne 1 et du RER ligne A. L’IGN dispose de plusieurs associations sportives et culturelles qui permettent des échanges riches avec l’ensemble du personnel. Une cantine associative permet une restauration de qualité à un prix modéré (tarif préférentiel pour les stagiaires). Vous intégrerez l’équipe de l'IGN dédiée à l’innovation et à l’expérimentation (Département d’Appui à l’Innovation) de la Direction des Systèmes d’Information (DSI). Les développements seront faits de façon open-source sur un répertoire Github de l’IGN. Il n'y a pas de déplacements prévus.
En cliquant sur "JE DÉPOSE MON CV", vous acceptez nos CGU et déclarez avoir pris connaissance de la politique de protection des données du site jobijoba.com.