Les deux révisions précédentes
Révision précédente
Prochaine révision
|
Révision précédente
|
projet:sujets [2025/08/27 11:14] remy |
projet:sujets [2025/09/03 22:27] (Version actuelle) remy |
| |
| |
===== AM2. Jeu vidéo sous Unity en réseau associé à un test de Turing ===== | ===== AM2. Jeu vidéo sous Unity/UnrealEngine/Godot en réseau associé à un test de Turing ===== |
| |
^ Domaines | Animation/Interaction/Jeu vidéo | | ^ Domaines | Animation/Interaction/Jeu vidéo | |
^ Techniques et langages | C# / Unity | | ^ Techniques et langages | C# / Unity/Unreal/Godot | |
^ Responsable du sujet | Alexandre Meyer | | ^ Responsable du sujet | Alexandre Meyer | |
^ Difficulté | Raisonnable / Intermédiaire | | ^ Difficulté | Raisonnable / Intermédiaire | |
| |
L'objectif de ce sujet est de développer un jeu vidéo sous Unity se jouant en réseau. A la fin de la partie, le(s) joueur(s) humain(s) indique s'ils avoir jouer avec un autre humain ou avec une machine. Le jeu peut être simple. Ce n'est pas forcément un jeu de plateau. Cela peut-être un Mario plateau ou un Bomberman ou une mini-course de voiture ou un FPS :-) L'humain pilote Mario en 2D avec des plateforme, un autre humain ou une IA pilote les monstres. Le réseau est important car chaque joueur doit être dans une salle différente. Il faudra juste pouvoir proposer un algorithme pour faire jouer l'ordinateur. | L'objectif de ce sujet est de développer un jeu vidéo sous un moteur de jeu (Unity/Godot/Unreal) se jouant en réseau. A la fin de la partie, le(s) joueur(s) humain(s) indique s'ils avoir jouer avec un autre humain ou avec une machine. Le jeu peut être simple. Ce n'est pas forcément un jeu de plateau. Cela peut-être un Mario plateau ou un Bomberman ou une mini-course de voiture ou un FPS :-) L'humain pilote Mario en 2D avec des plateforme, un autre humain ou une IA pilote les monstres. Le réseau est important car chaque joueur doit être dans une salle différente. Il faudra juste pouvoir proposer un algorithme pour faire jouer l'ordinateur. |
| |
Vous allez découvrir Unity, la programmation d'un jeu vidéo, les échanges réseaux, l'"IA", etc. Il existe de nombreux codes pour faire du réseau en Unity. | Vous allez découvrir un moteur, la programmation d'un jeu vidéo, les échanges réseaux, l'"IA", etc. Il existe de nombreux codes pour faire du réseau en Unity et sûrement sur les autres moteurs aussi. |
| |
| |
Sujet mélangeant simulation, rendu 3D, optimisation, framework de calcul, etc. | Sujet mélangeant simulation, rendu 3D, optimisation, framework de calcul, etc. |
| |
Il existe plusieurs frameworks de calcul proposant une manière de paralléliser et d'optimiser efficacement. Typiquement les framework de Deep learning ou Taishi propose un cadre efficace de calcul où un algorithme est représenté par un arbre de calcul où chaque noeud est différentiable. De plus ces framework permettent facilement de paralléliser du code pour profiter d'un GPU par exemple. De plus, ces frameworks facilitent l'optimisation grâce au fait que chaque noeud comporte du code inversible. Ne prenez pas peur, tout ceci est transparent quand vous écrivez le code. Par exemple, avec Taishi, le code se réalise en python avec quelques balises pour aider au paralélisme. | Il existe plusieurs frameworks de calcul proposant une manière de paralléliser et d'optimiser efficacement. Typiquement les framework de Deep learning ou autre (Taishi, Genesis) propose un cadre efficace de calcul où un algorithme est représenté par un arbre de calcul où chaque noeud est différentiable. De plus, ces frameworks permettent facilement de paralléliser du code pour profiter d'un GPU par exemple. Ces frameworks sont rapide et facilitent l'optimisation grâce au fait que chaque noeud comporte du code inversible. |
| |
Ce sujet propose de réaliser deux parties. Une partie réalisant le calcul d'une image à partir soit d'un fluide, soit d'un nuage de points représentant un objet. Et une partie autour du problème inverse qui va chercher à guider la simulation de fluide vers une cible (une forme particulière ou une vidéo), où guider le nuage de points vers l'apparence d'un objet. | Ne prenez pas peur, tout ceci est transparent quand vous écrivez le code. Par exemple, avec Taishi, le code se réalise en python avec quelques balises pour aider au parallélisme. |
| |
Une manière de représenter la fumée est dans un tableau 3D (grille régulière) stockant des mesures physiques (densité de fumée, vitesse, etc.) dans chaque case (voxel). Les étapes de simulation sont assez simple, du pseudo code sera donné. La prise en main de Taishi permettra d'accélérer les calculs, sans compléxifier le code. | Ce sujet propose de réaliser deux parties. Une partie réalisant le calcul d'une simulation de fluide (eau ou fumée) parallélisée . Et une partie autour du problème inverse qui va chercher à guider la simulation de fluide vers une cible (une forme particulière), où guider le nuage de points vers l'apparence d'un objet. Une manière de représenter la fumée est dans un tableau 3D (grille régulière) stockant des mesures physiques (densité de fumée, vitesse, etc.) dans chaque case (voxel). Les étapes de simulation sont assez simple, du pseudo code sera donné. La prise en main de Taishi permettra d'accélérer les calculs, sans complexifier le code. |
| |
Pour la partie inverse, le modèle sera initialisé au hasard : on remplira aléatoirement l'espace de fumée ou on placera les points aléatoirement. Une fonction d'erreur (du code) est à définir. Par exemple, l'affichage de la simulation produit une image. L'erreur sera calculée avec la différence entre cette image et une image cible. L'image cible peut être une image d'une vidéo de fumée ou une image formant un motif particulier ou l'image d'un objet. L'optimisation cherchera à modifier les forces appliquées à chaque voxel pour que la fumée tende vers la cible. | Pour la partie inverse, le modèle sera initialisé au hasard : on remplira aléatoirement l'espace de fumée ou on placera les points aléatoirement. Une fonction d'erreur (du code) est à définir. Par exemple, l'affichage de la simulation produit une image. L'erreur sera calculée avec la différence entre cette image et une image cible. L'image cible peut être une image d'une vidéo de fumée ou une image formant un motif particulier ou l'image d'un objet. L'optimisation cherchera à modifier les forces appliquées à chaque voxel pour que la fumée tende vers la cible. |
| |
On commencera par des choses de très simples et le problème sera complexifié au fur et à mesure. | On commencera par des choses très simples et le problème sera complexifié au fur et à mesure. |
| |
https://www.taichi-lang.org/ | https://www.taichi-lang.org/ |
| https://github.com/Genesis-Embodied-AI/Genesis |
https://fr.wikipedia.org/wiki/D%C3%A9rivation_automatique#:~:text=En%20math%C3%A9matique%20et%20en%20calcul,fonction%20par%20un%20programme%20informatique. | https://fr.wikipedia.org/wiki/D%C3%A9rivation_automatique#:~:text=En%20math%C3%A9matique%20et%20en%20calcul,fonction%20par%20un%20programme%20informatique. |
https://github.com/OutofAi/2D-Gaussian-Splatting | |
| |
| |
===== AM4. Animation physique et optimisation de la morphologie de créatures animées ===== | ===== AM4. Animation physique et optimisation de la morphologie de créatures animées ===== |
^ Domaine | Algorithme évolutionniste, simulation physqiue, méta heuristiques, optimisation, moteur physique | | ^ Domaine | Algorithme évolutionniste, simulation physique, méta heuristiques, optimisation, moteur physique | |
^ Langage | C++ ou python avec BulletPhysics; Ou C# avec Unity; etc. | | ^ Langage | C++ ou python avec BulletPhysics; Genesis etc. | |
^ Responsable du sujet | Fabien Rico et Alexandre Meyer | | ^ Responsable du sujet | Fabien Rico et Alexandre Meyer | |
^ Information à voir || | ^ Information à voir || |
| [[https://www.youtube.com/watch?v=m4E9sj9vH1I]] || | | [[https://www.youtube.com/watch?v=m4E9sj9vH1I]] || |
| |
Les algorithmes évolutionnistes ou génétiques sont des méta-heuristique d'optimisation c'est à dire des méthodes globales pour résoudre des problèmes de toutes sorte qu'il faut adapté à un problème particulier. Comme leur nom l'indique, ils sont basés sur le concepts d'évolution. On génère une famille aléatoire d'individu dont on conserve les plus performant, que l'on mélange pour générer une nouvelle famille ... | Les algorithmes évolutionnistes ou génétiques sont des méta-heuristique d'optimisation c'est à dire des méthodes globales pour résoudre des problèmes de toutes sorte qu'il faut adapté à un problème particulier. Comme leur nom l'indique, ils sont basés sur le concepts d'évolution. On génère une famille aléatoire d'individu dont on conserve les plus performant, que l'on mélange pour générer une nouvelle famille, ... |
| |
Une idée classique de ce choix de projet est d'appliquer ces algorithmes évolutionnistes à un problème de génération de forme de créatures en cherchant à ce que ces créatures réalisent une tâche le mieux possible : par exemple la locomotion. Vous prendrez en main un moteur physique. L'algorithme évolutioniste proposera une série de créatures avec des morphologies différentes encodées par une séquence de "gènes" (un code). La simulation physique donnera une distance de déplacement que l'algo cherchera à maximiser. | Une idée classique de ce choix de projet est d'appliquer ces algorithmes évolutionnistes à un problème de génération de forme de créatures en cherchant à ce que ces créatures réalisent une tâche le mieux possible : par exemple la locomotion. Vous prendrez en main un moteur physique. L'algorithme évolutionniste proposera une série de créatures avec des morphologies différentes encodées par une séquence de "gènes" (un code). La simulation physique donnera une distance de déplacement que l'algo cherchera à maximiser. |
| |
L'implémentation peut se faire en C++ ou en python avec le moteur BulletPhysics; mais également en C# avec Unity. | L'implémentation peut se faire en C++ ou en python avec le moteur BulletPhysics ou avec le nouveau moteur Genesis (https://github.com/Genesis-Embodied-AI/Genesis) |
| |
| |
===== AM5. Modélisation, Rendu, Animation de nuages ou de la surface de l'eau ===== | ===== AM5. Modélisation, Rendu, Animation de nuages ou de la surface de l'eau ===== |
^ Domaine | Synthèse d'images | | ^ Domaine | Synthèse d'images | |
^ Langage | C++ (ou C# avec Unity) | | ^ Langage | C++/OpenGL; ou Python/Genesis ou C#/Unity | |
^ Responsable du sujet | Alexandre Meyer | | ^ Responsable du sujet | Alexandre Meyer | |
^ Information à voir || | ^ Information à voir || |
Les nuages ou l'eau font partis des éléments à modéliser, afficher et animer dans une scène d'extérieure en synthèse d'images. Ce projet se propose d'explorer certains aspects des nuages ou de la surface de l'eau : leur formation, leur mouvement, leur interaction avec la lumière. | Les nuages ou l'eau font partis des éléments à modéliser, afficher et animer dans une scène d'extérieure en synthèse d'images. Ce projet se propose d'explorer certains aspects des nuages ou de la surface de l'eau : leur formation, leur mouvement, leur interaction avec la lumière. |
| |
La réalisation pourra se faire en C++ avec gkit (ou autre code en C++), mais pourra également se réaliser en C# sous Unity. | La réalisation pourra se faire en C++ avec gkit (ou autre code en C++), ou en python avec Genesis ou en C# sous Unity. |
| |
=====RC1. Kaggle Challenge ===== | |
| |
^ Domaines | Machine Learning (IA) | | |
^ Librairies (proposées) | scikit-learn, keras, tensor-flow... | | |
^ Langages (proposé) | Python, autre | | |
^ Responsable du sujet | Rémy Cazabet | | |
^ Informations à voir | [[https://www.kaggle.com/competitions | Challenges Kaggle en cours]] || | |
| || | |
[[https://www.kaggle.com/competitions | Kaggle]] est le site web le plus connu de challenges en machine learning. | |
| |
En 2 mots: des entreprises proposent des challenges auxquels n'importe qui peut tenter de proposer une solution. La meilleure solution gagne. Mais là où Kaggle est particulièrement intéressant, c'est qu'il propose des tutoriels pour résoudre certains problèmes classiques, en utilisant différentes méthodes. Votre objectif: 1) Suivre un/des tutoriels pour résoudre un problème tout fait, 2)Choisir un challenge en cours et appliquer ce que vous avez appris. | =====RC1. Evaluation d'une méthode de clustering de graphe utilisant le deep learning ===== |
| |
| ^ Domaines | Machine Learning, python... | |
=====RC2. Contribution à la librairie python de Machine Learning CDLib (Community Detection Library) ===== | ^ Librairies (proposées) | cdlib, pytorch | |
| |
^ Domaines | Machine Learning, python, developpement logiciel,... | | |
^ Librairies (proposées) | cdlib, networkx, scikit-learn, seaborn, etc. | | |
^ Langages (proposé) | Python | | ^ Langages (proposé) | Python | |
^ Responsable du sujet | Rémy Cazabet | | ^ Responsable du sujet | Rémy Cazabet | |
^ Informations à voir | http://cazabetremy.fr/Teaching/LIFPROJET.html | | ^ Informations à voir | http://cazabetremy.fr/Teaching/LIFPROJET.html | |
| || | |
| |
La librairie python CDlib (Community Detection library) est une librairie spécialisée dans le problème de la détection de communautés dans les graphes, un problème équivalent à celui du clustering mais pour des données de type graphe. Il s’agit de la principale librairie du domaine, avec plus de 100 téléchargements individuels par mois. Je suis l’un des 3 principaux contributeurs de cette librairie. Le sujet consiste à contribuer à la librairie. Je propose soit de faire une nouvelle fonctionnalité (visualisation de graphes interactifs), soit de répondre à l'un des problèmes identifiés de la librairie (lien vers une liste à la fin de la description). | Dans un article récemment publié (https://proceedings.neurips.cc/paper_files/paper/2024/file/1f59562caae05e6aae0ffd1145bea5da-Paper-Conference.pdf), une nouvelle méthode de détection de communautés (clustering de graphe) utilisant du deep learning a été proposé. Dans le cadre d'un projet de recherche, nous comparons de multiples méthodes de détection de communautés sur des graphes standard. Votre objectif sera de tester cette nouvelle méthode sur ces cas standards, et d'évaluer les résultats. Normalement, le code de la méthode est fourni par les auteurs. Un objectif additionnel possible du projet est d'intégrer cette méthode a la librairie CDLIB (https://github.com/GiulioRossetti/cdlib), dont je suis l'un des auteurs, qui est la librairie de référence pour la détection de communautés. |
Il y a 2 aspects: 1)Aspect "machine learning", puisqu’il faudra se plonger dans domaine du machine learning, le clustering de graphe, 2)Un aspect développement logiciel, puisqu’il faudra comprendre le fonctionnement d’une librairie python, de la génération automatique de documentation, et coder avec un niveau de qualité suffisant pour intégrer du code à une librairie utilisée par des centaines de personnes. | |
| |
Références: | |
-Code de la librairie: https://github.com/GiulioRossetti/cdlib | |
-Documentation: https://cdlib.readthedocs.io/en/latest/ | |
-Liste d’améliorations possible identifiées: https://github.com/GiulioRossetti/cdlib/projects/2 | |
| |
=====RC3. Exploration/Analyse de données de votes ===== | |
| |
^ Domaines | Data Mining, Data viz | | | =====RC2. Analyse de grandes données Bitcoin ===== |
^ Librairies | Dash, networkx... | | | |
^ Langages (proposé) | Python(+javascript?) | | | |
^ Responsable du sujet | Rémy Cazabet | | | |
Dans ce sujet, je vous propose de vous intéresser aux données de votes, soit des députés français, via l'API de nosdeputes.fr (https://github.com/regardscitoyens/nosdeputes.fr/blob/master/doc/api.md), soit sur les données du parlement européen (http://www.itsyourparliament.eu/api/). L'objectif sera 1)D'extraire un jeu de données propre facilement réutilisable, permettant de suivre les parcours de votes des députés 2)De prduire un outil de visualisation/exploration de ces données 3)Si possible, de produire un "compas politique", permettant de positionner les partis/les députés les uns par rapport aux autres (réduction de dimension, etc.) | |
| |
=====RC4. Analyse de grandes données Bitcoin ===== | |
^ Domaines | Big Data, Data Exploration | | | ^ Domaines | Big Data, Data Exploration | | |
^ Librairies | pandas, polars, pySpark | | | ^ Librairies | pandas, polars, pySpark | | |
^ Responsable du sujet | Rémy Cazabet | | | ^ Responsable du sujet | Rémy Cazabet | | |
| |
=====RC5. Site orienté donné de visualisation des décès en France ===== | Dans un projet récent, nous avons produit un grand jeu de données concernant Bitcoin (https://www.nature.com/articles/s41597-025-04595-8#:~:text=The%20dataset%20covers%20all%20Bitcoin,regarding%20daily%2Dbased%20conversion%20rate.). Il est constitué de tous les échanges effectués depuis le début de Bitcoin jusqu'en 2021. Ce jeu de données pose des challenges en terme d'analyse en raison de sa taille. L'objectif sera tout d'abord de décrire ce jeu de données, puis d'essayer de répondre a une question d'intérêt, telle que par exemple l'identification d'acteurs impliqués dans des transactions illégales, la détection de patterns surprenants, le suivi de coins depuis leur minage jusqu'à leur état à la fin du jeu de données pour évaluer la vitesse a laquelle l'argent circule, la description de la popularité et de la chute des grandes plateformes d'Exchange, etc. |
| |
| =====RC3. Site orienté donné de visualisation des décès en France ===== |
| |
^ Domaines | Web, Data Exploration | | | ^ Domaines | Web, Data Exploration | | |
Depuis peu, l'état français fournir un jeu de données très intéressant, car il est détaillé au niveau de l'individu et de la commune: le registre des décès. Pour chaque personne décédé depuis 1970, on dispose ainsi de ses informations: nom, prénom, sexe, date et lieu de naissance (ville, pays), lieu de décès. Je propose de faire un outil pour explorer ce données, permettant par exemple de retracer la mobilité des personnes (est-ce que les personnes décédées en 2022 vivaient plus loin de leur lieu de naissance que les personnes décédées en 2012, 1992... ?), mais cela permet également de tracer des courbes indirectes de popularité des prénoms à la naissance dans certaines villes, etc. Je propose pour faire cet outil de découvrir le framework Dash (https://dash.plotly.com/tutorial), permettant de créer des webapp orienté analyses de données. Si le côté peu réjouissant des données sources sont un problème, on peut envisager des alternatives (mais il n'y a pas l'équivalent pour les naissances ou les mariages, a ma connaissance. Mais il y a beaucoup de données libres fournies par des villes ou l'état français). | Depuis peu, l'état français fournir un jeu de données très intéressant, car il est détaillé au niveau de l'individu et de la commune: le registre des décès. Pour chaque personne décédé depuis 1970, on dispose ainsi de ses informations: nom, prénom, sexe, date et lieu de naissance (ville, pays), lieu de décès. Je propose de faire un outil pour explorer ce données, permettant par exemple de retracer la mobilité des personnes (est-ce que les personnes décédées en 2022 vivaient plus loin de leur lieu de naissance que les personnes décédées en 2012, 1992... ?), mais cela permet également de tracer des courbes indirectes de popularité des prénoms à la naissance dans certaines villes, etc. Je propose pour faire cet outil de découvrir le framework Dash (https://dash.plotly.com/tutorial), permettant de créer des webapp orienté analyses de données. Si le côté peu réjouissant des données sources sont un problème, on peut envisager des alternatives (mais il n'y a pas l'équivalent pour les naissances ou les mariages, a ma connaissance. Mais il y a beaucoup de données libres fournies par des villes ou l'état français). |
| |
=====RC6. Webapp pour comparer les tarifs de location de voiture ===== | =====RC4. Webapp pour comparer les tarifs de location de voiture ===== |
| |
^ Domaines | Web, dataviz... | | ^ Domaines | Web, dataviz... | |
^ Informations à voir | | | ^ Informations à voir | | |
| || | | || |
Aujourd'hui, de nombreuses entreprises proposent de la location de voiture, en particulier de nouveaux acteurs tels que citiz, leo&Go, Drivalia qui ont introduit des facturations a la minute et au km, sur des voitures en libre service. L'objectif est de concevoir un site web, un outil en ligne, permettant de saisir des informations de trajets (distance, temps), et d'être capable de comparer les tarifs de ces diverses solutions. Des graphiques pourront par exemple montrer quand est-ce qu'une solution devient plus intéressante qu'une autre, en fonction du temps de location ou de la distance. | Aujourd'hui, de nombreuses entreprises proposent de la location de voiture, en particulier de nouveaux acteurs tels que citiz, leo&Go, Drivalia qui ont introduit des facturations à la minute et au km, sur des voitures en libre service. L'objectif est de concevoir un site web, un outil en ligne, permettant de saisir des informations de trajets (distance, temps), et d'être capable de comparer les tarifs de ces diverses solutions. Des graphiques pourront par exemple montrer quand est-ce qu'une solution devient plus intéressante qu'une autre, en fonction du temps de location ou de la distance. |
| |
| |
=====RC8. Large language models pour un assistant virtuel hybride ===== | =====RC5. Large language models pour un assistant virtuel hybride ===== |
| |
^ Domaines | IA, ... | | ^ Domaines | IA, ... | |
| || | | || |
Les LLM (Large Languages Models) sont maintenant assez facile à utiliser sur une machine personnelle, notamment en utilisant LM studio. Vous pouvez donc avoir un "chatGPT" personnalisé, qui tourne en local sur votre machine. Votre objectif sera de créer un assistant virtuel composé d'un système hybride, dont l'objectif sera de gérer votre boite mail/vos messages SMS/Whatsapp, etc. Le système est hybride dans le sense où il est composé d'une partie en code classique: interface avec une application, formattage, envoi de requête, etc., et que la parte LLM sert uniquement de "cerveau" à ce système hybride. Le LLM doit par exemple servir non pas uniquement à générer du texte, mais à prendre des décisions, telles que classer le message en spam ou non, répondre ou non, détecter s'il y a un demande de rendez-vous, voire ajouter le rendez-vous dans un agenda automatiquement. Ce genre d'interaction avec ce "cerveau central" LLM pourra se faire via des questions à choix multiple imposé (étant donné le mail de contenu [...], dois-je le classer en spam, répond par OUI/NON). Le projet est ouvert à une autre application utilisant ce même principe de système hybride (e.g., RPG en mode texte sur une carte et des règles de jeux imposées par un code classique, "personnalité artificielle" effectuant des recherches sur le web via des requêtes et stoquant les résultats dans une base de données et/ou alimentant un site web, etc. Note: ce projet est exploratoire et les résultats ne sont pas garantis :) | Les LLM (Large Languages Models) sont maintenant assez facile à utiliser sur une machine personnelle, notamment en utilisant LM studio. Vous pouvez donc avoir un "chatGPT" personnalisé, qui tourne en local sur votre machine. Votre objectif sera de créer un assistant virtuel composé d'un système hybride, dont l'objectif sera de gérer votre boite mail/vos messages SMS/Whatsapp, etc. Le système est hybride dans le sense où il est composé d'une partie en code classique: interface avec une application, formattage, envoi de requête, etc., et que la parte LLM sert uniquement de "cerveau" à ce système hybride. Le LLM doit par exemple servir non pas uniquement à générer du texte, mais à prendre des décisions, telles que classer le message en spam ou non, répondre ou non, détecter s'il y a un demande de rendez-vous, voire ajouter le rendez-vous dans un agenda automatiquement. Ce genre d'interaction avec ce "cerveau central" LLM pourra se faire via des questions à choix multiple imposé (étant donné le mail de contenu [...], dois-je le classer en spam, répond par OUI/NON). Le projet est ouvert à une autre application utilisant ce même principe de système hybride (e.g., RPG en mode texte sur une carte et des règles de jeux imposées par un code classique, "personnalité artificielle" effectuant des recherches sur le web via des requêtes et stoquant les résultats dans une base de données et/ou alimentant un site web, etc. Note: ce projet est exploratoire et les résultats ne sont pas garantis :) |
| |
| =====RC6. Simulation de réseaux sociaux avec des agents LLM ===== |
| |
| ^ Domaines | IA, LLM | |
| ^ Librairies (proposées) | LM Studio, Ysocial | |
| ^ Langages (proposé) | Python | |
| ^ Responsable du sujet | Rémy Cazabet | |
| ^ Informations à voir | | |
| | || |
| Dans le cadre d'un projet de recherche, nous avons développé une librairie python appelée Ysocial (https://ysocialtwin.github.io). Cette plateforme est pensé pour simuler des réseaux sociaux peuplés de LLMs. Cela est conçu pour permettre de tester in-silico des hypotheses, par exemple sur la diffusion d'information, ou sur l'impact des systèmes de recommendations dans les réseaux sociaux. Cette librairie est encore a un stade experimental. Votre objectif sera d'utiliser la librairie pour simuler un petit réseau de discussion autour d'une thématique (par exemple, sport, musique, politique...), et d'évaluer le réalisme des résultats produits. Est-ce que les discussions ont l'air d'avoir du sens ? Est-ce que le comportement des LLMs a l'air d'être réaliste ? Est-ce qu'il y a beaucoup d'hallucinations ? etc. |
| |
| |
Un système a été développé sur ce sujet. Nous pouvons mettre a disposition des étudiants le code associé. | Un système a été développé sur ce sujet. Nous pouvons mettre a disposition des étudiants le code associé. |
Des exemples de développements se trouvent a cette adresse : https://perso.liris.cnrs.fr/samir.aknine/L3/ | Des exemples de développements se trouvent a cette adresse : https://perso.liris.cnrs.fr/samir.aknine/L3/ |
| |
| ===== BY1. Générateur de livres d’histoires pour enfants personnalisables ===== |
| ^ Domaine | Intelligence Artificielle| |
| ^Langage (proposé) | Python | |
| ^ Responsable du sujet | Bruno YUN | |
| Ce stage a pour objectif de développer une plateforme permettant la génération de livres d’histoires personnalisés pour enfants. |
| L’utilisateur pourra définir différents éléments narratifs tels que : le schéma de l’histoire, le genre, les personnages, la morale ou encore le style. La génération du texte reposera sur un grand modèle de langage (LLM), tandis que les illustrations seront produites par des modèles génératifs d’images (par ex. SDXL 1.5 ou Flux). Un travail spécifique portera sur la cohérence visuelle et narrative des personnages et des décors à travers l’ensemble des pages. En option, des modules complémentaires pourront être intégrés : (1) Synthèse vocale avec des modèles tels que XTTS-v2 ou higgs-audio-v2, afin de proposer une lecture automatique de l’histoire. (2) Génération musicale avec des modèles comme MusicGen, permettant d’accompagner le récit par des mélodies adaptées à l’ambiance. |
| L'outil crée s'inspirera de: https://gemini.google/overview/storybook/ |
| |
| |
| ===== BY2. Displaying and interacting with arguments in an augmented environment ===== |
| ^ Domain | HCI/Animation/Jeux vidéo | |
| ^ Langage | Unity/ Occulus Integration/ Meta XR UPM | |
| ^ Responsable du sujet | Bruno YUN| |
| There are many platforms online to display arguments (e.g., https://www.kialo.com/) but there are currently no options to display argumentation graphs in augmented reality environments. In this project, we want to introduce you to the basics of making a Quest 3 XR game using Unity. The application should possess the following capabilities: (1) allowing the user to browse an argumentation graph in a virtual environment, (2) displaying specific arguments to a user in an augmented reality environment, (3) allowing the user to interact with the graph by modifying arguments, and (4) loading existing argumentation graphs from Kialo. |
| |
| The project will focus on making an intuitive interface to enhance the user experience. The project will be released as an application for the Meta Quest 3 headset (provided for the duration of the project). |
| |
| ===== BY3. Visualising acceptability degree space in argumentation ===== |
| |
| ^ Domaines | Web/Argumentation/Visualisation | | |
| ^ Librairies | Plotly | | |
| ^ Langages (proposé) | python, javascript, html... | | |
| ^ Responsable du sujet | Bruno YUN | | |
| |
| In formal argumentation, arguments and their interactions are represented using a directed graphs. On this graph, many semantics can be used to score arguments from the most acceptable (less attacked) to the least (more attacked). Some graphs, called weighted argumentation graphs, are augmented with weights which represent in confidence in the source (author) of the argument. Given an weighted argumentation graph, we can obtain scores on each argument and the acceptability degree space is the set of all scores which can be achieved. The goal of this project is to visualise the acceptability degree space in an online application using multiple carefully selected 3D plots (https://plotly.com/python/3d-charts/). For more details, see https://arxiv.org/pdf/2203.01201.pdf (Figure 2). |
| |
| |