Ubisoft : génération de texte et IA dans les jeux vidéo
Sélectionnez un chapitre
Mélanie travaille chez Ubisoft depuis un an et demi en tant que Data Scientist. Sa spécialité ? Le NLP (Natural Language Processing), c'est-à-dire le traitement automatique du langage. Elle vous présente ce Use Case de la Data dans les jeux vidéo !
La définition de NLP : et dans le jeu vidéo ?
Le NLP consiste à reproduire avec des machines la capacité humaine de comprendre du langage naturel. La différence entre langage naturel et langage formel ? Le langage formel c'est un langage artificiel très normé, par exemple un langage de programmation. Le langage naturel, c’est le langage humain. On dit qu'il est naturel parce qu'il est organique, c'est à dire qu'il évolue de façon imprévisible ou presque imprévisible, en fonction de paramètres très divers.
C’est la raison pour laquelle il est compliqué de faire traiter ce langage par une machine : parce que tous les systèmes de règles sont limités par la variabilité de la donnée qui est inhérente au langage humain.
Donc, généraliser le langage sans perdre toutes les nuances qui sont liées au contexte de la communication est une tâche très complexe.
Le NLP dans notre environnement
Nous sommes tous entourés de NLP dans notre quotidien : la reconnaissance vocale, la synthèse vocale, les chatbots, l’analyse de texte. Par exemple chez Ubisoft, il y avait Sam qui permettait aux joueurs d'avoir leurs statistiques de jeu, donnait des conseils pour mieux jouer, pour les débloquer dans les niveaux, c'était commun à tous les jeux Ubisoft. Maintenant, les spécialistes de la Data chez Ubisoft font de la recherche pour que leurs personnages dans les jeux soient eux-mêmes des chatbots !
Pour donner un exemple plus concret du NLP, on peut parler de Siri : il comprend le langage et sait quoi répondre. Il arrive à synthétiser une parole artificielle.
Les méthodes pour faire du NLP
Il y en a plusieurs et elles évoluent en permanence. Ça ne veut pas dire qu'elles ne peuvent pas coexister. Les professionnels de la Data continuent de faire des systèmes de règles, ce qui permet même d'enrichir les systèmes qui sont fondés sur du deep learning.
Les systèmes de règles
Ces systèmes sont des règles linguistiques pour aider la machine à prendre des décisions. On crée alors des automates qui vont décomposer certains micros-aspects du langage pour faire des choix. Il est donc nécessaire de faire des grammaires, des vocabulaires. C'est long à créer et très difficile à entretenir.
Les méthodes statistiques
Les méthodes statistiques permettent de transformer le langage en structures mathématiques qui sont plus proches du fonctionnement d'un ordinateur et notamment les plongements lexicaux qui consistent à vectoriser le langage. Concrètement : un mot correspond à plusieurs petits morceaux de significations qui peuvent être structurés dans un espace sémantique.
Le NLP et le Deep Learning
Si chaque mot est un vecteur de N dimension, on peut calculer et traiter son sens en traitant ces vecteurs. Par exemple, dans le mot "reine" il y a : royauté, femme et singulier. Si on enlève le paramètre femme, ça devient roi. Donc, c’est indispensable d'arriver à formaliser le langage et de déplacer ces coordonnées dans un espace sémantique.
L’ouverture du paradigme à l’univers du Deep Learning a ouvert des portes vers des analyses à plus grandes échelles. On peut désormais créer des modèles qui sont capables de généraliser le langage et même d'être capable de faire plusieurs tâches à partir de ces vecteurs avec beaucoup de données.
Les outils pour le NLP
Chez Ubisoft, les Data Scientists utilisent Python et toutes ces librairies (Keras, Scikit Learn, Pytorch). Dans le NLP, il y a Stanza et de nombreux autres Framework open source développés par Nvidia. Etant donné que je [Mélanie, Data Scientist NLP @ Ubisoft] suis dans une équipe R&D, on n'a pas de process figé. Ça fait partie de mon travail d'être toujours à la recherche de nouvelles technologies plus performantes et qui sont à la pointe de la recherche parce que c'est un domaine qui avance très vite.
Le traitement de texte dans les jeux vidéos chez Ubisoft
Nous retrouvons du texte partout dans les jeux vidéo : du texte fait par les joueurs et pour les joueurs. Les gamers représentent une communauté très connectée et très vocale. Donc tout ce qu'ils produisent en termes de contenu sur les forums, sur Reddit, sur les chats des jeux, quand ils parlent, que ce soit à l'écrit ou à l'oral, c’est de la donnée sur laquelle on peut travailler, que l'on peut analyser.
C'est un pont indispensable entre les développeurs, les éditeurs et les joueurs, car c'est comme cela que l'on sait comment les communautés de joueurs réagissent au jeu.
En donnée textuelle, nous retrouvons également tout ce qui est lié au récit dans le jeu : les menus, les missions, les descriptions des objets et les descriptions des lieux. Toute l’ histoire que nous racontons, on le fait par morceaux de texte parsemés partout dans le texte. Il y a aussi les dialogues : c'est un moyen pour le joueur d'avoir des informations, d'agir dans le jeu, de faire des choix.
En plus de cela, il y a tout ce qui est vocal : nous sommes actuellement dans un tournant social par rapport à cette technologie, puisque c'est de plus en plus normal de parler à des machines ! Depuis les notes audios jusqu'à Alexa, on parle à nos voitures pour avoir une adresse. Maintenant, les consoles ont des micros et des brevets de reconnaissance vocale et d'assistants. Cela pose un bon nombre de challenges spécifiques aux jeux vidéo. Il faut alors créer nos propres modèles adaptés à nos jeux.
Un autre aspect du NLP dans les jeux vidéo : la génération de texte, sur laquelle je travaille beaucoup. Pour générer du texte, nous utilisons l’algorithme GPT3, qui est un modèle de traitement langage capable de compléter du texte, c’est un modèle très puissant à l’état de l’art.
L’algorithme GPT3
Cet algorithme peut traduire, résumer, inventer et écrire. GPT3 est un outil de qualité qui nous permet de créer du contenu, et qui s'adapte à nos jeux ! Pour illustrer le fonctionnement de GPT3, nous avions créé une situation où l’on se retrouvait à côté d'une personne âgée étant GPT 3 dans un bus, et on a pu donner une personnalité à cette dame sans ré-entraîner le modèle, juste en lui donnant du texte en entrée ! Grâce à cela, on a pu générer un personnage qui se fâche quand on descend à un arrêt et que nous coupons la conversation, un autre personnage qui vous bénit avant de partir et un personnage bavard qui n'a même pas remarqué que vous alliez partir.
Les challenges liés à ces modèles
Ces modèles présentent des limites. Tout d’abord il y a la barrière de la langue. Les chatbots marchent très bien en français, mais quand ce sont des modèles qui sont pré-entrainés, comme GPT3 ou T5, ils fonctionnent en français si la vue du langage français est régulière.
Et c'est là que l’on peut rencontrer un frein : les jeux Ubisoft sont traduits dans plein de langues différentes. Pour l'instant, le NLP est très performant en anglais et dans les langues « majoritaires » dans le monde, mais pour un langage peu parlé, moins il y a de données, moins ça fonctionne.
Ensuite, les modèles existants auront toujours des limites au niveau du vocabulaire, notamment parce que dans le jeu vidéo on est dans un contexte qui n'existe pas, qui ne correspond jamais aux données d'entraînement des modèles préexistants. On doit toujours à minima optimiser ces modèles pour finalement, parfois, créer notre propre modèle. Par exemple, sur Just Dance, quand on a des noms de chansons multilingues, on a des data sets très particuliers, on ne peut jamais prendre un élément off the shelf et espérer que ça marche.
Les évolutions du NLP
Au niveau des modèles, ça va très vite ! C'est vraiment une importante partie de notre travail de faire de la veille et d'être à la pointe de la technologie, parce qu’il y a des nouveaux modèles toutes les semaines, plus grands, plus performants. Je pense que la partie la plus intéressante, c'est l'adoption d’une technologie : arriver en cours de production et dire « on va faire les choses autrement ». C’est compliqué pour une production de jeu qui va durer trois ans par exemple, puisque l'on ne sait pas à quoi va ressembler la technologie que l’on a adopté dans trois ans.
Ça demande de repenser constamment la production et c'est notre travail en tant que Data Scientist d'accompagner cette innovation tout au long des productions.
Y a-t-il des risques éthiques, des dérives possibles dues aux avancés du NLP dans les jeux vidéo, par exemple dans le traitement des mots toxiques (gros mots par exemple) ?
Ce sont des sujets qui sont très difficiles à gérer parce que dans le monde du jeu vidéo, des mots comme « tuer » ne sont pas toxiques. Ça fait partie du gameplay, donc la toxicité c'est une tâche à part dans le jeu vidéo par rapport au NLP et au danger qu'il peut y avoir. Je pense que c'est une des raisons pour lesquelles les NPC (non-player caracter) full IA ce n'est pas pour tout de suite, parce que GPT3 et d'autres modèles peuvent produire du contenu toxique, d’autant plus si on les met devant d’autres joueurs qui s’énervent face à leur jeu. Donc, il faut d'abord arriver à contrôler ce modèle pour que ce soit intéressant dans un jeu.
Notre speaker
Mélanie, quel est ton parcours ?
J’ai fait un parcours littéraire, j'ai passé l'agrégation de lettres et j'ai été professeur de français pendant quelques années. J'ai ensuite décidé de changer de vie et ai trouvé quelque chose qui combinait ce que je savais faire et ce que je voulais apprendre à faire : la linguistique et l’informatique. J’ai donc fait un master en NLP et j'ai été embauchée chez Ubisoft pour travailler sur la manière dont l'IA et le NLP peuvent permettre de créer de nouvelles façons de jouer.
C’est là que te sert ton background littéraire !
Oui car c'est à la fois de la linguistique : il faut bien connaître la structure de la donnée : le langage, mais c’est également de l'informatique puisqu'il faut savoir écrire les programmes et les systèmes qui vont réussir à découper ce langage en information et en extraire de la valeur.
As-tu appris sur le tas chez Ubisoft ou est-ce que tout ce que tu fais dans ton poste actuel sont des choses que tu faisais déjà dans ta formation ?
Les deux : pendant le master, j'ai appris certaines technologies qui ne sont pas forcément liées aux Use Cases des jeux vidéo. Mon master m’a permis d’être à l'aise à Ubisoft, mais une fois chez Ubisoft, ça a surtout été une question de Framework et d'outils que j’ai dû prendre en main.
Est-ce que dans les équipes techniques d’Ubisoft vous avez tous des masters en rapport avec votre métier ou est-ce que Ubisoft embauche même sans background technique?
Je ne suis pas certaine. J'ai fait un bootcamp et pour moi, ça a payé de reprendre les études pour rassurer les recruteurs face à un profil qui était quand même très atypique : littérature - data science, ce n'est pas courant. Après, ça dépend du profil de chacun. L'essentiel, à mon avis, c'est de mettre en valeur une certaine cohérence dans le profil. Par exemple, moi il y a quand même beaucoup de narration et de création dans mon poste actuel et c'est ce qui me permet de mettre en valeur ce que j’ai fait avant. Si on arrive à mettre en lien ce que l'on a fait avec ce que l'on veut faire, c'est un atout plus qu'un problème.
L’organisation chez Ubisoft
Il y a les productions qui peuvent s’apparenter à une équipe de tournage de film : une équipe pour chaque jeu. Cela étant, il peut y avoir des gens qui changent de jeu en cours de production car c’est très long donc ils peuvent se déplacer en interne. Ensuite il y a tout un tas d'équipes transverses qui gravitent autour de ces productions. Avec Pierre nous sommes dans une équipe transverse notamment. De même, il y a de nombreuses équipes support. Enfin, Ubisoft ce n'est pas que de la production, nous travaillons au studio, mais au siège il y a beaucoup d'équipes de data scientists.
As-tu des conseils à donner à un data scientist ou analyst qui aimerait se lancer dans le secteur du jeu vidéo ? Y a-t-il des connaissances et des compétences spécifiques recherchées par les recruteurs ?
Maîtriser les soft skills, car ça me parait être un point commun entre tous les membres de l'équipe : la capacité de communiquer, d'écouter et de collaborer.
Le jeu vidéo, c'est un travail d'équipe car il y a de nombreux pôles avec des expertises très différentes et on ne peut pas avancer sans les autres.
Les soft skills propres aux jobs techniques sont la curiosité et l'envie d'apprendre, étant donné que ce qui est à la pointe change continuellement, aussi bien en termes de Framework qu'en termes d'algorithme.
Ensuite, un jargon du jeu vidéo n'est peut-être pas indispensable, mais quand même important.
Le cycle de vie d'un projet lors de l’implantation d’une nouvelle feature sur un jeu vidéo
Mélanie : Soit les équipes de production viennent nous voir parce qu'ils ont une idée, qu’ils connaissent une technologie et nous on voit si c'est faisable. On les accompagne, on travaille dessus et au bout d'un moment, si on arrive à un point intéressant, on commence à parler de collaboration sur le long terme avec un plan de process. Soit c'est nous qui allons voir les équipes en leur disant qu’une telle technologie existe et que ça pourrait être intéressant pour une de nos productions.
Pour la fin du cycle on essaye de visualiser la technologie dans le jeu, puis vient la phase de production. Ensuite, à ce moment-là on passe beaucoup de temps sur le développement de la feature. La prochaine étape est la phase de test de la feature pour s'assurer que tout fonctionne bien, suivie d’une phase dite de chip en production.
La veille technologique de Mélanie
Il y a deux newsletters qui s'appellent Data Science Weekly et Archive Sanity, et ensuite twitter. Et pour le NLP This Week in NLP et le technology review du MIT ! En général, je pense qu'une bonne méthode c'est d'attendre lorsque vous voyez l’émergence d’une nouvelle technologie. Attendez 6 mois, un an et si vous voyez encore cette technologie dans le secteur, vous savez dans ce cas-là que vous tenez potentiellement quelque chose d'intéressant. Mais attention, il ne faut pas faire la course à la technologie.