La plus grande conférence du Japon destinée aux développeurs de divertissement informatique se tiendra du mercredi 21 août au vendredi 23 août 2024.« CEDEC2024 (Conférence des développeurs de divertissement informatique 2024) ». La séance tenue le premier jour, ""maître des idoles de l'école``Réalisation d'un système de support d'ajustement d'équilibre utilisant l'IA de jeu adaptative et l'optimisation de la boîte grise''.
Les intervenants étaient l'ingénieur de recherche Koya Ihara de CyberAgent Co., Ltd. et de QualiArts Co., Ltd.« Gakuen Idolmaster » (ci-après dénommé Gakumasu)M. Yuya Nasu, ingénieur principal côté serveur.
Dans cette conférence,"Gakumasu"Il a expliqué comment l'IA était utilisée pour prendre en charge l'ajustement de l'équilibre dans la partie jeu de cartes du jeu, et comment développer une « IA de recherche de deck » capable de s'adapter à l'environnement de jeu moderne en évolution rapide.
Développement de l'IA visant à répondre à un grand nombre de modèles et d'éléments supplémentaires
Parlons d’abord des grandes lignes du projet."Gakumasu"est un jeu de simulation d'entraînement sorti le 16 mai 2024, dans lequel les chants et les danses des idoles changent grâce à une production répétée. Dans ce travail, « produire » signifie jouer à des jeux de cartes au tour par tour appelés leçons et examens pour atteindre des objectifs.
L'ajustement de l'équilibre de la leçon implique principalement l'ajustement des performances des cartes individuelles et des éléments utilisés pendant la leçon. Deux problèmes majeurs se sont posés lors de l’ajustement de cet équilibre.
L’un des défis réside dans le fait qu’il existe un grand nombre de combinaisons de situations. Dans les jeux de cartes, quelle que soit la force des cartes, leur performance dépend du contenu du jeu, de la façon dont les cartes sont réparties dans votre main et de la façon dont vous jouez. Par exemple, dans ce travail, même avec le pool de cartes au moment de la sortie, le nombre de modèles de construction de jeux de cartes a augmenté jusqu'à plus de 10 à la puissance 20.
De plus, les modèles de jeu pour les leçons utilisant un seul jeu variaient de la puissance 10 à la puissance 20 jusqu'à plus de 40 combinaisons. Même s’il y avait des cartes ou des objets qui pourraient briser l’équilibre, il serait trop difficile de les trouver manuellement. Par conséquent, l’équipe de développement a développé deux IA : une « IA de recherche de deck » et une « IA de leçon ».
L'IA de recherche de deck est une IA qui utilise « l'optimisation de la boîte grise » (les détails seront expliqués plus tard) pour rechercher des decks forts à partir d'un grand nombre de combinaisons. L’autre leçon d’IA est une IA qui utilise l’apprentissage par renforcement profond pour jouer automatiquement de la même manière que les humains. En les reliant entre eux, les joueurs peuvent rechercher efficacement des cartes et des decks qui peuvent leur donner des scores plus élevés. Cependant, la mise en œuvre de ces mesures dans la réalité a rencontré des difficultés majeures.
Le défi est que de nouvelles cartes sont ajoutées dans un laps de temps relativement court. Dans ce travail, des cartes de compétences et des objets P (produits) qui affectent le jeu de cartes sont ajoutés plusieurs fois par mois. Compte tenu de cette durée opérationnelle, il a fallu au moins 10 jours pour que la leçon d’IA démontre sa force pratique.
Dans le processus d'ajustement de l'équilibre, il était nécessaire de vérifier les résultats de l'exécution de la simulation, d'ajuster les performances et de réexécuter la simulation, ce qui rendait difficile l'itération de l'ajustement de l'équilibre en raison du long temps d'apprentissage. Pour résoudre ce problème, ils ont raccourci le temps d’apprentissage en utilisant une approche utilisant « l’apprentissage par transfert ».
Plus précisément, sur la base du modèle d'apprentissage scratch qui a appris toutes les cartes de compétences et les éléments P, des différences supplémentaires dans les données de base sont efficacement apprises à l'aide de l'apprentissage par transfert. Il est désormais possible de terminer l'apprentissage plus rapidement qu'en répétant à chaque fois un apprentissage scratch, et le temps requis pour l'apprentissage a été réduit à environ 10 heures. Grâce à ces approches, il a été possible de créer un système d'aide à l'ajustement de l'équilibre qui peut être entièrement exécuté par les planificateurs.
Configuration du système de réglage de la balance et résolution de problèmes
Au cours de la conférence, il a commencé par présenter le système d'aide au réglage de l'équilibre avant de passer à l'explication des détails.
Le flux de travail du système d'aide à l'ajustement de l'équilibre commence par la conception des effets de nouvelles cartes de compétences et d'éléments P, et par l'ajout de données de base. Ensuite, la leçon AI sera entraînée, mais s'il n'y a pas de modèle de base, l'apprentissage scratch ne sera effectué que la première fois, et si un modèle existe, le modèle de base sera sélectionné et l'apprentissage par transfert sera effectué.
De plus, après avoir terminé l'apprentissage, effectuez une recherche de deck en vous concentrant sur les cartes de compétence et les éléments P dont vous souhaitez vérifier les performances, et effectuez une simulation en demandant à l'IA de la leçon de jouer à un jeu de cartes. Les journaux de simulation seront accumulés dans BigQuery de Google Cloud, liés à une feuille de calcul pour visualiser les données et vérifier les résultats.
La conférence a ensuite expliqué chaque détail du flux de travail.
Apprentissage scratch et apprentissage par transfert
Cette fonction offre la possibilité de gérer les modèles appris à l'aide de l'apprentissage par renforcement profond et d'exécuter l'apprentissage. Ceux-ci seront étudiés dans des plans distincts appelés « Sens » et « Logique », ce qui modifiera grandement le style de jeu de la leçon.
La console de gestion gère uniquement les métadonnées et le modèle réel est stocké dans la plateforme W&B (Weights & Biases), spécialisée dans les workflows ML. L'apprentissage peut également être démarré à partir de cet écran ; par exemple, lors d'un apprentissage par transfert, sélectionnez le modèle à utiliser comme base et exécutez l'apprentissage.
La logique du jeu de cartes qui est au cœur des leçons de ce travail est développée dans le référentiel Unity. Cette logique de base est implémentée uniquement en C#, qui ne dépend pas de Unity, afin qu'elle puisse être exécutée sur le runtime .NET et puisse être appelée de manière synchrone avec un référentiel d'applications .NET indépendant.
Cependant, avec seulement les fonctions expliquées jusqu'à présent, il y avait peu d'informations sur le modèle qui pouvaient être vérifiées depuis la console de gestion, et ce n'était pas facile à utiliser.
Premièrement, il est difficile de comprendre ce que le modèle a appris. Avec cette fonction, il faut du temps pour saisir avec précision l'état des cartes de compétences apprises et des éléments P à partir des informations de données de base lors de l'exécution de l'apprentissage. Pour résoudre ce problème, nous avons implémenté une fonction qui affiche visuellement une liste des modèles formés et les différences entre le modèle de base et le contenu d'apprentissage avant l'exécution de la formation.
Les données de base des cartes de compétences et des éléments P de ce travail se composent de dizaines de tableaux et contiennent de nombreuses informations sans rapport avec les effets, il n'est donc pas réaliste de les comparer directement. Ce sur quoi nous nous sommes concentrés était la « description de l’effet ». Toutes les descriptions d'effets dans ce travail sont automatiquement générées à partir des paramètres des données de base associées. En d'autres termes, lorsque des ajustements sont apportés au contenu de l'effet, des différences apparaîtront certainement dans la description de l'effet, et comme elle peut être convertie en une seule chaîne de caractères, un traitement standard peut être facilement mis en œuvre.
Le deuxième point difficile est qu’il est difficile de comprendre la force du modèle. Si le modèle n'est pas en mesure de bien jouer les leçons pendant le processus d'ajustement de l'équilibrage, vous ne pourrez plus faire confiance aux résultats de simulation de l'exploration du deck. Ils ont résolu ce problème en implémentant une fonction qui évalue et visualise la force du modèle.
Cette fonction compare et visualise les scores des jeux de cours basés sur le modèle d'apprentissage par transfert et ceux basés sur la recherche arborescente de Monte Carlo (*). Bien que la recherche arborescente de Monte Carlo prenne du temps pour lire les leçons, elle ne nécessite pas d'apprentissage et a été adoptée comme méthode pouvant produire des scores relativement précis.
*Recherche arborescente de Monte Carlo : un algorithme de recherche qui utilise le caractère aléatoire pour arrêter les recherches inutiles à mi-chemin et conduit à un bon coup avec une certaine probabilité élevée. Il est utilisé pour déterminer le prochain coup au Go et aux échecs, ainsi que dans les jeux compétitifs où il n'est pas possible de connaître tous les mouvements de l'adversaire.
Vérifier les résultats de l'exploration et de la simulation du deck
La fonction d'exécution de recherche de deck dans le développement de ce jeu sélectionne un modèle d'apprentissage scratch formé ou un modèle d'apprentissage par transfert et exécute une recherche de deck. Semblable à la fonction d’apprentissage, cela traitera les applications .NET et Python conjointement.
L'infrastructure de la fonction d'exploration du deck consiste en une architecture sans serveur centrée sur Cloud Run et Batch de Google Cloud. La console de gestion s'exécute sur Cloud Run et le processus d'exploration du deck est exécuté à l'aide d'un seul conteneur multi-processus avec des environnements d'exécution .NET et Python placés sur Batch.
Les feuilles de calcul Google sont utilisées pour vérifier les résultats de la simulation. Les journaux accumulés dans BigQuery sont synchronisés à l'aide d'un connecteur de données de feuille de calcul, permettant aux planificateurs de traiter et d'analyser arbitrairement les données de la feuille de calcul qu'ils sont habitués à gérer.
Les effets de l'introduction du système de soutien à l'ajustement du solde mentionné ci-dessus ont également été spécifiquement présentés. Ce système était opérationnel avant le démarrage du service et aurait simulé plus de 100 millions de modèles de pont au moment du lancement du service. Le nombre total de leçons jouées dépasse 1 milliard de fois, ce qui équivaut à 1 900 ans si un humain jouait au jeu pendant 1 minute à chaque fois.
Grâce à des simulations répétées, nous avons détecté des modèles dans lesquels, par exemple, des decks très bien classés sont remplis de cartes de compétence spécifiques, ou des modèles dans lesquels une combinaison de cartes de compétence spécifiques provoque une boucle pseudo-infinie. Des ajustements d'effet ont été effectués après avoir réellement examiné le jeu. les résultats des simulations. Cela a également permis de détecter environ 200 bugs.
Exigences relatives aux spécifications spécialisées pour deux IA
La conférence s'est poursuivie en expliquant les détails techniques de l'IA de la leçon et de l'IA de recherche de deck.
Tout d'abord, le principe principal est que la leçon de ce travail est un jeu de cartes solo au tour par tour qui apparaît pendant la production, et vous utilisez des cartes de compétences pour augmenter les paramètres de l'idole et atteindre l'objectif de la leçon dans un nombre de tours défini. . Cela le rend clair. Les joueurs doivent prendre en compte les effets des cartes dans leur main et leur deck et jouer de manière appropriée lorsqu'ils choisissent les cartes à jouer.
L'IA de la leçon du jeu est utilisée pour évaluer les decks et calculer les scores attendus lors de l'exploration du deck. Par conséquent, au cours du processus d’exploration, nous vérifierons si vous pouvez bien jouer avec différents paramètres de leçon et paramètres de deck. De plus, le système d'exploration oblige les joueurs à jouer un grand nombre de leçons, encore et encore, l'objectif était donc de maintenir le temps de jeu par session aussi court que possible. Sur cette base, les trois exigences suivantes ont été définies pour la leçon d'IA.
N'importe quelle carte peut être jouée dans n'importe quelle situation
Premièrement, on peut dire que l’IA des leçons peut être modélisée comme un processus de décision markovien (MDP). MDP est un modèle qui détermine de manière stochastique l'état suivant en fonction de l'état et des actions actuels. La leçon de ce travail est de considérer l’état actuel du plateau de jeu et de la sélection des cartes comme une action, ce qui en fait un MDP où la sélection des cartes détermine l’état du tour suivant.
La recherche arborescente de Monte Carlo est une méthode de recherche efficace pour les jeux étendus sur MDP. Cette méthode de recherche est une méthode qui peut se rapprocher d'un comportement optimal plus rigoureux, mais elle nécessite une recherche pour chaque leçon et recherche de deck, ce qui entraîne le problème que cela prend énormément de temps.
La durée de lecture de la leçon est de 0,1 seconde ou moins
Afin de réduire le temps de jeu, l'IA du jeu utilise un apprentissage par renforcement profond pour créer un système qui se généralise aux paramètres des leçons et se rapproche du jeu optimal. En apprenant diverses situations par essais et erreurs, il est devenu applicable pour jouer dans n'importe quelle situation. Cependant, comme problème secondaire, de nombreux paramètres de problèmes nécessitent de l'expérience, et le fait que l'apprentissage prenne du temps constitue un problème.
L'algorithme PPO (Proximal Policy Optimization), qui intègre un apprentissage par renforcement profond, a permis d'obtenir à la fois un temps d'exécution plus court et des performances de jeu supérieures par rapport à la recherche arborescente de Monte Carlo.
Le délai entre l'ajout d'une nouvelle carte et la confirmation des résultats est inférieur à 36 heures.
Le problème du temps nécessaire à l’apprentissage demeure entier, et les 300 heures nécessaires pour étudier n’étaient pas suffisantes pour répondre aux exigences des planificateurs. Ainsi, afin de réduire le temps d'apprentissage, nous avons construit un mécanisme pour suivre le maître en utilisant "l'apprentissage par transfert" (*).
*Apprentissage par transfert : méthode d'apprentissage automatique qui applique les connaissances acquises dans un autre domaine à l'apprentissage dans ce domaine. En reprenant les capacités d’une IA ayant terminé son apprentissage, l’apprentissage progresse rapidement et efficacement.
Cependant, l’adoption de l’apprentissage par transfert a également posé des problèmes. Dans une situation où le nombre d'états et de comportements définis par l'apprentissage par transfert est susceptible d'augmenter, il y a des limites à l'espace préparé à cet effet avec des expressions ponctuelles. Si 100 espaces étaient préparés, la limite serait atteinte dès que 100 cartes seraient ajoutées, il y avait donc un caractère fini.
Par conséquent, nous avons adopté une méthode qui utilise l’incorporation de phrases dans un modèle de langage à grande échelle (LLM) pour exprimer l’état. Le texte d'effet de la carte de compétence a été intégré dans LLM (convertissant l'objet en un vecteur numérique pour le rendre plus facile à apprendre) et utilisé pour représenter l'état.
Je me demande si les résultats des essais de ces leçons d'IA sont loin du jeu réel des joueurs. Lorsqu'ils ont comparé les jeux en interne, ils ont constaté que le contenu du jeu était presque le même, avec seulement une légère différence de score due à un mouvement différent.
Après les détails de l'IA de la leçon, les détails de l'IA de recherche de deck ont également été expliqués. La construction du jeu de cartes au cours de la production de ce travail progresse en ajoutant, renforçant et supprimant des cartes de compétence et en ajoutant des éléments P lors de divers événements qui se produisent.
L'objectif principal de l'exploration des decks dans ce travail est de découvrir le deck avec le score le plus élevé qui peut devenir un briseur d'équilibre. Dans ce cas, il est nécessaire d'évaluer le score (fonction objectif) lorsque chaque jeu est joué de manière appropriée.
L'évaluation des scores de chaque jeu est accélérée en calculant les valeurs approximatives à partir du jeu de la leçon AI. De plus, lors de la recherche d'un deck, vous pouvez choisir parmi les decks qui peuvent être créés lors de la production, avec certaines restrictions imposées.
Enfin, en guise de résumé de la conférence, il a été présenté qu'en créant une IA de cours et une IA de recherche de deck, ils ont pu créer un système facile à utiliser pour les planificateurs. Comme effet secondaire, nous avons pu détecter de nombreuses choses qui auraient été impossibles à faire manuellement, et nous avons également obtenu d'excellents résultats dans l'autre aspect de la découverte de bugs.
[Mise à jour à 17 h 38, le 22 août 2024] Certains contenus ont été révisés conformément aux règles de reporting de la CEDEC.