CMU y Google Researchers Open-Source ‘python_graphs’, una biblioteca para representar programas de Python como gráficos para la investigación de aprendizaje automático

Estás leyendo la publicación: CMU y Google Researchers Open-Source ‘python_graphs’, una biblioteca para representar programas de Python como gráficos para la investigación de aprendizaje automático

Los gráficos son las mejores herramientas de narración para los científicos e ingenieros de datos, pero existe otro tipo de gráfico llamado gráfico de código. Estos gráficos son la representación visual del código y el flujo de la ejecución y encuentran su aplicación en proyectos de aprendizaje automático. Ahora, gracias al arduo trabajo de los investigadores de Google Research, podrá crear gráficos a partir del código con mucha más precisión con la ayuda del aprendizaje automático. Los tipos de gráficos que se pueden crear a través de la biblioteca python_graphs son: árbol de sintaxis abstracta (AST), gráfico de flujo de control (CFG), gráfico de flujo de datos, gráfico de flujo de control interprocesal (ICFG), gráfico de intervalo y compuesto. gráficos de programas”. A través de esta biblioteca, los codificadores pueden construir directamente estos gráficos a partir del código o brindarle herramientas para ayudarlo a crear otras variedades de gráficos. Las representaciones gráficas son una herramienta estándar utilizada en la investigación del aprendizaje automático, siendo la más común el árbol de sintaxis abstracta (AST), y varios trabajos de investigación las han utilizado. Un gráfico típico basado en sintaxis tiene una columna vertebral AST con algunas propiedades de flujo de control, flujo de datos y conocimiento sintáctico codificado en él como beneficios adicionales. Otros sistemas de creación de gráficos crean gráficos a través de ayuda adicional como CodeQl, etc., lo que también puede provocar errores de compilación o errores en el futuro debido a la codificación de información adicional que no se proporciona en el código. Para mejorar la situación, los investigadores de Google crearon python_graph ya que no necesita ninguna otra fuente; por lo tanto, también está libre de sus desventajas.

🔥 Recomendado:  Cómo agregar una fecha usando un campo dinámico en el archivo system.xml en Magento 2

Los gráficos de flujo de control son los gráficos que muestran el flujo de ejecución del código, y cada nodo del gráfico ofrece una línea principal de código. Además de controlar los gráficos de flujo, la biblioteca python_graphs también puede producir gráficos de flujo de control a nivel de instrucción en los que un solo nodo puede representar una sola línea/instrucción del código. Los grupos de programas se crean a través de esta biblioteca, que son los gráficos con un árbol de sintaxis abstracta como columna vertebral, y cada nodo en el programa se correlaciona con un solo nodo en el AST.

python_graphs también permite gráficos de programa compuestos alternativos, lo que permite al usuario seleccionar los nodos y bordes deseados para construir el gráfico. Los gráficos de flujo de control entre procedimientos le permiten crear gráficos que conectan múltiples funciones y no solo representan una sola función. El gráfico de flujo de datos muestra las dependencias en el gráfico y los nodos representan la ubicación de acceso variable, con los bordes que representan la relación entre estos accesos. Los gráficos mapeados de tramos son gráficos tokenizados creados para ser útiles para aplicaciones de aprendizaje automático. Hay dos tokenizaciones: una es por nodo y la otra es un programa completo. En el programa completo, tokeniza todo el programa y luego, usando python_graphs, crea el gráfico del programa en la tokenización por nodo. Divide el programa en fragmentos y, según el nodo, forman parte de estos fragmentos organizados automáticamente.

Si bien esta biblioteca tiene la intención de facilitar la vida de los científicos e investigadores de datos de todo el mundo, esta biblioteca aún tiene sus propias limitaciones. Una de ellas es que el código está escrito en python, y para analizar correctamente el código tiene que ser lo que llamamos en términos de codificación estático, mientras que python es un lenguaje muy dinámico en esos términos exactos. Entonces, la biblioteca realiza un análisis de mejor esfuerzo que no puede garantizar que el análisis sea 100% correcto.

🔥 Recomendado:  Más de 20 aplicaciones de creación de contenido para una poderosa presencia en las redes sociales

Y aunque esta biblioteca tiene sus defectos y ventajas, al igual que cualquier otra biblioteca de codificación, existe por la razón específica de facilitar la vida de los programadores. Donde sobresale, a través de sus fallas, la biblioteca hace más por la tarea particular para la que fue creada que sus predecesoras, por lo que las personas detrás de ella merecen algún elogio.

Este artículo está escrito como un artículo de resumen de investigación por el personal de Marktechpost basado en el trabajo de investigación ‘UNA BIBLIOTECA PARA REPRESENTAR PROGRAMAS DE PYTHON COMO GRÁFICOS PARA EL APRENDIZAJE AUTOMÁTICO‘. Todo el crédito de esta investigación es para los investigadores de este proyecto. Revisar la papel y enlace github.

Por favor no olvides unirte Nuestro subreddit de ML

Echa un vistazo a https://aitoolsclub.com para encontrar 100 de Cool AI Tools