(P) Besoin de conseils sur mon projet Steam

Hé r / machinesearning! Je suis étudiant en maîtrise et je viens d’envelopper mon projet d’analyse du Big Data. J’ai passé quelques mois à ce sujet et j’ai finalement fait fonctionner quelque chose qui me passionne. TL; DR: Système de transformateur distribué construit pour analyser les avis de jeu. Est passé de 30 minutes à 2 minutes de temps. A appris que la parallélisation des transformateurs est vraiment difficile mais réalisable. Maintenant, je ne sais pas quoi en faire? À la recherche de conseils sur les étapes suivantes et les commentaires lien github: https://github.com/matrix030/steamlens Le problème qui a tout commencé en tant que joueur, je me demandais toujours comment les développeurs indépendants traitent des centaines de milliers de critiques. Par exemple, la société mortelle Dev a 300k + avis – comment commencez-vous même à traiter ces commentaires? Il n’y a littéralement aucun bon outil pour les développeurs de jeux pour comprendre ce que les joueurs pensent réellement des aspects spécifiques de leurs jeux. J’ai donc décidé d’en construire un moi-même pour mon projet Big Data. Ma configuration, je l’exécute sur mon bureau: Ryzen 9 7900x, 32 Go de RAM, RTX 4080 Super (16 Go VRAM). Les données de revue Steam grattées à l’aide de leur API Web – se sont retrouvées avec des ensembles de données de 40 Go contenant 17m + avis (Disponible sur Kaggle). Le cauchemar séquentiel, ma première approche, était la chose évidente – traitez tout séquentiellement. Les avis de 400K ont pris plus de 30 minutes. Pour mon calendrier de projet, c’était douloureux. Mais plus important encore, j’ai réalisé qu’aucun développeur indépendant n’utiliserait un outil qui prend une demi-heure pour analyser leurs critiques. La percée (et la répartition mentale proche) Le véritable défi n’était pas le traitement des données – c’était paralléliseur des transformateurs. Ces modèles sont notoirement difficiles à distribuer en raison de la façon dont Pytorch gère les tenseurs et la mémoire GPU. Mon premier "fonctionnement" La version a donné à chaque travailleur en dask sa propre copie du modèle Transformer. Cela a fonctionné mais mangeait 6x plus de mémoire qu’il ne le devrait. Avec 6 travailleurs, je chargeais essentiellement le même modèle 6 fois. Puis vint la session de débogage à 3 heures du matin de l’enfer. Erreurs de sérialisation du tenseur partout. Tenseurs Cuda refusant de se déplacer entre les processus. Fuites de mémoire. Les œuvres. Le correctif qui a sauvé ma santé mentale: publiez une fois le modèle Transformer vers le cluster en phase de base et donnez à chaque travailleur une poignée à la même instance de modèle. L’utilisation de la mémoire a chuté 6x, et tout à coup tout était rapide et stable. Ce que j’ai construit automatiquement le système:
Résultats qui ont rendu mon professeur heureux des mêmes avis 400k: 30 minutes → 2 minutes (15x accélération) L’impact du monde réel, ce n’est pas seulement un exercice technique cool. Des développeurs indépendants comme la personne derrière Lethal Company ou Stardew Valley pourraient réellement l’utiliser. Au lieu de lire manuellement des centaines de milliers de critiques, ils obtiennent des idées automatisées comme: "Système de combat – Les joueurs aiment: commandes réactives et mécanique satisfaisante" "Système de combat – Les joueurs détestent: les problèmes d’équilibre avec l’arme x" Optimisation du matériel:
L’architecture en phase de base:
Erreurs qui m’ont tout appris
Limitations actuelles (être honnête)
Là où je suis coincé (et pourquoi je suis ici), j’ai terminé mon projet, cela fonctionne très bien, mais maintenant je ne sais pas quoi en faire. Mais honnêtement? Je n’ai aucune idée de la direction qui a le plus de sens. Questions pour le Reddit Brain Trust:
Le "Quelle est la prochaine étape" Problème Je ne suis vraiment pas sûr des prochaines étapes. Une partie de moi veut continuer à améliorer le côté technique (support multi-GPU, meilleure mise à l’échelle, quantification du modèle). Une partie de moi pense que je devrais me concentrer sur le rendre plus convivial pour les développeurs de jeux réels. Vous vous demandez également si cela pourrait fonctionner pour d’autres domaines – comme analyser les avis sur les produits sur Amazon, les avis sur l’App Store, etc. Des défis techniques me dérangent encore:
À la recherche de conseils sur les étapes suivantes et les commentaires de toute personne qui a abordé des défis ML distribués similaires! Merci d’avoir lu – Toutes les pensées appréciées! 🎮 soumis par / u / matrix_030 |