CMU et Google Researchers Open-Source ‘python_graphs’, une bibliothèque pour représenter les programmes Python sous forme de graphiques pour la recherche en apprentissage automatique

Les graphes sont les outils ultimes de narration pour les data scientists et les ingénieurs, mais il existe un autre type de graphe appelé graphes de code. Ces graphes sont la représentation visuelle du code et du flux d’exécution et trouvent leur application dans les projets d’apprentissage automatique. Désormais, grâce au travail acharné des chercheurs de Google Research, vous pourrez créer des graphiques à partir du code avec beaucoup plus de précision grâce à l’apprentissage automatique. Les types de graphiques pouvant être créés via la bibliothèque python_graphs sont les suivants : arbre de syntaxe abstraite (AST), graphe de flux de contrôle (CFG), graphes de flux de données, graphe de flux de contrôle inter-procédural (ICFG), graphe d’intervalle et composite ” programmer des graphiques. “Grâce à cette bibliothèque, les codeurs peuvent directement construire ces graphiques à partir du code ou vous donner des outils pour vous aider à créer d’autres variétés de graphiques. Les représentations graphiques sont un outil standard utilisé dans la recherche sur l’apprentissage automatique, le plus courant étant l’arbre de syntaxe abstraite (AST), et plusieurs articles de recherche les ont utilisés. Un graphe basé sur la syntaxe typique a un squelette AST avec certaines propriétés de flux de contrôle, de flux de données et de connaissances syntaxiques codées en lui comme avantages supplémentaires. D’autres systèmes de création de graphiques créent des graphiques grâce à une aide supplémentaire comme CodeQl, etc., ce qui peut également entraîner des erreurs de compilation ou des bogues à l’avenir en raison de l’encodage d’informations supplémentaires non fournies dans le code. Pour améliorer la situation, les chercheurs de Google ont créé python_graph car il n’a besoin d’aucune autre source ; par conséquent, il est également exempt de ses inconvénients.

Les graphiques de flux de contrôle sont les graphiques qui montrent le flux d’exécution du code, et chaque nœud du graphique offre une ligne de code principale. En plus de contrôler les graphes de flux, la bibliothèque python_graphs peut également produire des graphes de flux de contrôle au niveau de l’instruction où un seul nœud peut représenter une seule ligneinstruction du code. Les groupes de programmes sont créés via cette bibliothèque qui sont les graphiques avec l’arborescence de syntaxe abstraite comme épine dorsale, et chaque nœud du programme est corrélé à un seul nœud dans l’AST.

python_graphs permet également des graphiques de programme composites alternatifs, ce qui permet à l’utilisateur de sélectionner les nœuds et les arêtes souhaités pour construire le graphique. Les graphiques de flux de contrôle inter-procéduraux vous permettent de créer des graphiques qui relient plusieurs fonctions et ne représentent pas simplement une seule fonction. Le graphique de flux de données montre les dépendances sur le graphique, et les nœuds représentent l’emplacement d’accès variable, les bords représentant la relation entre ces accès. Les graphiques mappés Span sont des graphiques tokenisés créés pour être utiles pour les applications d’apprentissage automatique. Il existe deux tokenisations : l’une par nœud et l’autre par programme complet. Dans l’ensemble du programme, vous tokenisez l’ensemble du programme, puis, à l’aide de python_graphs, créez le graphique du programme dans la tokenisation par nœud. Vous divisez le programme en morceaux, et selon le nœud, ils font partie de ces morceaux disposés automatiquement.

Bien que cette bibliothèque ait l’intention de faciliter la vie des data scientists et des chercheurs du monde entier, cette bibliothèque a toujours ses propres limites. L’un d’eux est que le code est écrit en python, et pour analyser correctement le code, il doit être ce que nous appelons en termes de codage statique ‘alors que python est un langage très dynamique dans ces termes exacts. Ainsi, la bibliothèque effectue une analyse au mieux qui ne peut pas garantir que l’analyse est correcte à 100 %.

Et bien que cette bibliothèque ait ses défauts et ses avantages, comme toutes les autres bibliothèques de codage, elle existe pour la raison spécifique de faciliter la vie des codeurs. Là où elle excelle, par ses défauts, la bibliothèque fait plus pour la tâche particulière pour laquelle elle a été créée que ses prédécesseurs, pour lesquels les personnes derrière elle méritent des éloges.

This Article is written as a research summary article by Marktechpost Staff based on the research paper 'A LIBRARY FOR REPRESENTING PYTHON PROGRAMS AS GRAPHS FOR MACHINE LEARNING'. All Credit For This Research Goes To Researchers on This Project. Check out the paper and github link.

Please Don't Forget To Join Our ML Subreddit


Un passionné d’apprentissage automatique qui aime rechercher et découvrir les nouvelles et dernières technologies comme AlphaFold, DeepMind AlphaZero, etc. qui sont les meilleures IA dans leurs domaines respectifs et je suis très enthousiaste quant à l’avenir de l’IA et à la manière dont nous allons l’implémenter dans notre vie quotidienne


Leave a Comment