A Matter of Representation: Towards Graph-Based Abstract Code Generation
Iskandar, Bedri, Tsen
Most large language models (LLMs) today excel at generating raw, sequential code with minimal abstractions and custom structures. However, there has been little work on graph-based abstract code generation, where significant logic is encapsulated in predefined nodes and execution flow is determined by edges. This is relevant for visual programming languages, and in cases where raw source code is inaccessible to users and LLM training sets. In this work, we propose and evaluate JSON representations for graphs to enable high accuracy graph-based abstract code generation. We evaluate these representations on ScratchTest, a mini-benchmark based on our custom Python re-implementation of Scratch, which tests the LLM in code graph space. Our findings demonstrate that LLMs can indeed perform the aforementioned generation task in a single pass without relying on specialized or complex pipelines, given the correct graph representations. We also show that different representations induce significantly different accuracies, highlighting the instrumental role of representations in this generation task. All in all, this work establishes the first steps towards representation learning for graph-based abstract code generation.
academic
Une Question de Représentation : Vers la Génération de Code Abstrait Basée sur des Graphes
Conférence de Publication : 39e Conférence sur les Systèmes de Traitement de l'Information Neuronale (NeurIPS 2025) Atelier : Apprentissage Profond pour le Code
La plupart des grands modèles de langage (LLMs) actuels excellent dans la génération de code brut et séquentiel, mais peu de recherches ont été menées sur la génération de code abstrait graphique. Le code abstrait graphique encapsule la logique importante dans des nœuds prédéfinis, avec des arêtes déterminant le flux d'exécution. Cette forme de code est courante dans les langages de programmation visuelle et importante dans les cas où le code source brut n'est pas accessible aux utilisateurs et aux ensembles d'entraînement des LLMs. Cet article propose et évalue des méthodes de représentation JSON pour les graphes, permettant une génération de code abstrait graphique de haute précision. Les auteurs évaluent ces méthodes de représentation sur ScratchTest, un petit ensemble de référence basé sur une réimplémentation Python de Scratch. L'étude révèle que, avec la bonne représentation graphique, les LLMs peuvent effectivement accomplir la tâche ci-dessus en une seule génération, sans dépendre de pipelines spécialisés ou complexes. Différentes méthodes de représentation produisent des taux de précision significativement différents, soulignant le rôle critique de la représentation dans cette tâche de génération.
Les LLMs actuels se concentrent principalement sur la génération de code brut et séquentiel, ce type de code étant organisé de manière linéaire par unités de lignes. Cependant, de nombreux scénarios d'application pratiques nécessitent une génération de code abstrait graphique, tels que :
Langages de programmation visuelle : Scratch, Unreal Engine Blueprints, n8n, etc.
Bibliothèques et frameworks hautement abstraits : les détails d'implémentation sont encapsulés, les utilisateurs ne pouvant opérer que via des interfaces prédéfinies
Applications Largement Répandues : Les langages de programmation graphique sont largement utilisés par les débutants, les développeurs de jeux et les ingénieurs logiciels
Rareté des Données d'Entraînement : Les bibliothèques et frameworks émergents manquent de données d'entraînement suffisantes, confrontés aux mêmes défis d'abstraction que le code graphique
Relations Non-Linéaires : Les langages graphiques introduisent des relations non-linéaires complexes entre nœuds, difficiles à résoudre par l'apprentissage contextuel traditionnel
Méthodes de Génération de Graphes : GraphRNN, GraphGAN, etc. se concentrent sur la génération de graphes génériques, inadaptées aux graphes de code fonctionnels
Modèles Fondamentaux Basés sur les Graphes (GFMs) : Les méthodes basées sur GNN ont une mauvaise extensibilité, les méthodes basées sur LLM dépendent excessivement du langage naturel fragile
Modèles de Génération de Code : Principalement orientés vers le code séquentiel, avec une capacité de support très variable selon les langages/frameworks
Proposition d'une méthode de représentation JSON pour les nœuds : Permettant aux LLMs actuels de générer des graphes de code syntaxiquement et logiquement les plus précis
Proposition d'une méthode de représentation JSON pour les graphes de code : Améliorant davantage la précision de la sortie de représentation graphique des LLMs
Construction de l'ensemble de référence ScratchTest : Basé sur une réimplémentation Python de Scratch, évaluant spécifiquement la capacité de génération de code abstrait graphique
Vérification de l'Importance de la Représentation : Démontrant que, dans un cadre LLM monoagent, la représentation correcte peut considérablement améliorer la précision de génération
Importance des Informations de Type : L'ajout de types de port améliore significativement la précision, prévenant les connexions incompatibles
Valeur Limitée des Informations Descriptives : Les descriptions en langage naturel ne peuvent pas améliorer significativement les performances, augmentant plutôt la consommation de tokens
Rôle Critique de la Structure de Représentation : La représentation graphique séparatiste surpasse significativement la représentation intégrée
Amélioration de la Cohérence : La méthode proposée montre des performances plus stables sur plusieurs exécutions
Les trois autres modèles (qwen3-32b, deepseek-r1-distill-llama-70b, llama-3.3-70b-versatile) montrent des performances nettement inférieures à gpt-oss-120b, avec généralement des taux de précision plus faibles et des taux d'erreur plus élevés.
Génération de Graphes Génériques : GraphRNN, GraphGAN se concentrent sur l'apprentissage de distributions de graphes, inadaptés aux graphes de code fonctionnels
Modèles Fondamentaux Basés sur les Graphes : Les méthodes basées sur GNN ont une mauvaise extensibilité, les méthodes basées sur LLM dépendent du langage naturel fragile
Compréhension de Graphes par LLM : Les travaux existants évaluent principalement la compréhension de graphes mathématiques, non les graphes de codage logique
Capacités de Génération de Code : Les LLMs actuels excellent dans la génération de code traditionnel
Méthodes d'Amélioration : Apprentissage par renforcement, chaîne de pensée, entraînement par remplissage, décodage contraint, etc.
Différences de Performance : Variations significatives de capacité de génération selon les langages/frameworks, principalement dues à la disponibilité des données d'entraînement
Vérification de Faisabilité : Les LLMs peuvent accomplir la génération de code abstrait graphique en une seule génération
Rôle Critique de la Représentation : La représentation JSON correcte est cruciale pour la précision de génération
Principes de Conception : Les informations de type, la séparation des préoccupations et le flux de génération linéaire sont des éléments clés d'une représentation efficace
Établissement d'Ensemble de Référence : ScratchTest fournit un ensemble de référence d'évaluation pour la génération de code graphique
L'article cite 54 références connexes, couvrant plusieurs domaines incluant la génération de code LLM, les réseaux de neurones graphiques, les langages de programmation visuelle, etc., fournissant une base théorique solide pour la recherche.
Évaluation Globale : Ceci est un travail pionnnier qui aborde systématiquement pour la première fois le problème de la génération de code abstrait graphique. Bien qu'il y ait de la place pour l'amélioration dans les méthodes d'évaluation et l'analyse théorique, la méthode de représentation proposée est simple et efficace, établissant une base importante pour cette nouvelle direction de recherche émergente. Ce travail possède une forte valeur pratique et une signification inspirante, et devrait promouvoir le développement ultérieur des domaines connexes.