论文阅读 - Graph-ToolFormer: para capacitar a los LLM con la capacidad de razonamiento gráfico a través de indicaciones aumentadas por ChatGP

 

Tabla de contenido

Resumen

1. INTRODUCCIÓN

2. Trabajo relacionado

2.1 Graficar redes neuronales

2.2 Modelos de lenguaje

2.3 Ajuste rápido

3 Símbolos, definiciones de términos y formulación de problemas

3.1 Notaciones básicas

3.2 Definición de términos

3.3 Formulación del problema

4 MÉTODO PROPUESTO

4.1 Esquema del marco

 4.2 Avisos con llamadas API

4.3 Indicaciones orientadas al razonamiento gráfico

4.3.1 Carga de datos gráficos

4.4 Aumento rápido con ChatGPT

4.5 Ajuste fino de LLM para el razonamiento gráfico

4.7 Inferencia de LLM y razonamiento gráfico, análisis, ejecución y posprocesamiento de consultas


Enlace del artículo: https://arxiv.org/pdf/2304.11116.pdf

Resumen

        Este artículo tiene como objetivo desarrollar un modelo de lenguaje grande (LLM) capaz de razonar sobre datos gráficos complejos. Actualmente, LLM ha logrado resultados impresionantes en diversas tareas de aprendizaje de lenguaje natural y sus capacidades ampliadas también se han aplicado a tareas visuales que estudian datos multimodales. Sin embargo, cuando se trata de tareas de aprendizaje de gráficos, los LLM existentes adolecen de deficiencias muy graves debido a debilidades inherentes en la realización de cálculos matemáticos precisos, el razonamiento lógico de varios pasos, la percepción de factores espaciales y topológicos y el procesamiento de procesos de tiempo. Para abordar estos desafíos, este artículo estudiará los principios, métodos y algoritmos que potencian a los LLM existentes con capacidades de razonamiento gráfico, lo que tendrá un gran impacto en la investigación actual sobre los LLM y el aprendizaje de gráficos. Inspirándonos en los últimos modelos ChatGPT y Toolformer, proponemos el marco Graph-ToolFormer (Toolformer para razonamiento gráfico) para enseñar a los LLM a utilizar herramientas API externas de razonamiento gráfico por sí mismos a través de indicaciones mejoradas por ChatGPT. Específicamente, en este artículo estudiaremos cómo enseñar a Graph-ToolFormer a manejar varias tareas de razonamiento de datos de gráficos, incluidas (1) tareas muy básicas de razonamiento de propiedades y carga de datos de gráficos, desde el orden y el tamaño de los gráficos simples hasta el diámetro y el periférico del gráfico, y (2) tareas de razonamiento de datos de gráficos del mundo real más avanzadas, como redes de citas de artículos bibliográficos, gráficos moleculares de proteínas, sistemas de recomendación secuencial, redes sociales en línea y gráficos de conocimiento.

        Técnicamente, para construir Graph-ToolFormer, recomendamos instrucciones de elaboración manual y una pequeña cantidad de plantillas de indicaciones para cada tarea de inferencia de gráficos por separado. A través del aprendizaje contextual, basado en estas instrucciones y ejemplos de plantillas de indicaciones, adoptamos ChatGPT para anotar y mejorar un conjunto de datos más grande de declaraciones de razonamiento gráfico y llamar a las funciones API externas más apropiadas. Estos conjuntos de datos de declaraciones rápidas mejorados se procesarán posteriormente mediante filtrado selectivo y se utilizarán para ajustar los LLM causales previamente entrenados (como GPT-J y LLaMA), enseñándoles cómo utilizar herramientas de inferencia gráfica en la generación de resultados. Para demostrar la eficacia de Graph-ToolFormer, llevamos a cabo extensos estudios experimentales en varios conjuntos de datos y tareas de razonamiento gráfico, y lanzamos demostraciones de LLM con varias capacidades de razonamiento gráfico . Todo el código fuente para el marco Graph-ToolFormer, demostraciones de inferencia de gráficos y conjuntos de datos de gráficos y solicitudes se publicaron en la página de Github del proyecto.

1. INTRODUCCIÓN

        En los últimos años, los modelos de lenguaje grande (LLM) [8, 34, 50] han logrado resultados impresionantes en diversas tareas de procesamiento del lenguaje natural [32, 34, 49], y sus extensiones también se han utilizado ampliamente para resolver muchos otros problemas. con diferentes datos de esquema [10, 32, 40, 41]. Con el lanzamiento de ChatGPT y Microsoft Bing Chat basados ​​en GPT-3.5 y GPT-4, LLM también se ha utilizado ampliamente en la producción y la vida diaria de las personas. Al mismo tiempo, debido a sus limitaciones inherentes, estos LLM también han sido muy criticados durante su uso, como la incapacidad de realizar cálculos precisos [36], la dificultad para resolver problemas de razonamiento lógico de varios pasos [6] y la incapacidad de realizar razonamiento espacial y topológico [1], incapaz de percibir el progreso de los factores temporales [9]. Con el desarrollo paralelo del procesamiento del lenguaje natural y la visión por computadora, los modelos de aprendizaje profundo para datos estructurados en gráficos basados ​​en transformadores también han recibido una amplia atención de todos los ámbitos de la vida en los últimos años [16, 56, 60]. Los gráficos proporcionan una representación unificada de muchos datos interconectados en el mundo real, que pueden modelar tanto las diferentes propiedades de los nodos como las densas conexiones entre nodos . Además de las estructuras gráficas clásicas que aprendimos en cursos de algoritmos y matemáticas discretas (como se muestra en la Figura 1), muchos datos en el mundo real también se pueden modelar con gráficos [45], como redes bibliográficas [47], gráficos moleculares de protoproteínas. [52], sistemas de recomendación [28], redes sociales en línea [31] y gráficos de conocimiento [18].

        Al mismo tiempo, en comparación con la vigorosa exploración de la investigación sobre la incorporación de datos visuales y lingüísticos en el LLM para diseñar ambiciosos planes de desarrollo de AGI [33], los investigadores parecen ignorar "involuntariamente" o "intencionalmente" los datos gráficos generalizados, y no parece haber ser cualquiera El plan es incorporarlo al LLM creado para implementar AGI. Aquí decimos que los investigadores ignoran "involuntariamente" los gráficos porque, en comparación con el texto y las imágenes con los que tratamos a diario, los gráficos se han utilizado durante mucho tiempo solo como una estructura de datos de modelo intermedio para datos del mundo real y, por lo general, no interactuamos directamente con los gráficos. Interacción. En esta etapa de creación de AIGC y sistemas AGI, es natural pensar que los gráficos no deberían ser el foco de atención. Al mismo tiempo, decimos que los investigadores pueden haber ignorado "intencionalmente" los gráficos porque el aprendizaje de gráficos puede implicar (1) cálculos matemáticos extensos de las propiedades de los gráficos, (2) razonamiento lógico de múltiples saltos a través de enlaces y (3) capturar gráficos ampliamente conectados. estructuras espaciales y topológicas, y (4) a veces también necesitamos lidiar con gráficos dinámicos que cambian con el tiempo. Los lectores atentos pueden haber notado que estos requisitos mencionados en el aprendizaje de gráficos son realmente pertinentes, lo que corresponde a las debilidades del LLM actual que mencionamos al principio.

        Independientemente de los desafíos potenciales que enfrentamos, "un AGI sin capacidades de razonamiento gráfico nunca será el AGI que queremos". Con base en esta motivación, escribimos este artículo para intentar incorporar datos gráficos en LLM para diversas tareas de razonamiento gráfico. Por un lado, realmente esperamos que las empresas líderes actuales en IA, como OpenAI, Microsoft, Google y Meta, tengan en cuenta la inferencia de datos estructurados en gráficos al formular sus misiones y planes para implementar AGI, de modo que la comunidad de aprendizaje de gráficos pueda interactuar con las comunidades lingüísticas y visuales. Contribuyamos juntos con nuestros esfuerzos para construir el sistema AGI. Por otro lado, también esperamos permitir que los LLM existentes superen sus debilidades de rendimiento en el procesamiento de datos estructurados en gráficos para tareas complejas de razonamiento gráfico.

          Por lo tanto, el LLM recientemente desarrollado también puede beneficiar a la comunidad de aprendizaje de gráficos al resolver diversas tareas de razonamiento gráfico. Teniendo en cuenta los modelos de lenguaje actuales y sus costos de capacitación previa extremadamente altos, es imposible rediseñar fundamentalmente un nuevo LLM con capacidades de capacitación previa para permitir el razonamiento gráfico. La formación previa de un LLM de este tipo desde cero es una tarea inviable para la mayoría de los grupos de investigación del mundo académico y la mayoría de las empresas de la industria. Para adaptarnos a la práctica común de los métodos de PNL, en este artículo presentaremos un marco de formación de herramientas (Graph-ToolFormer) para el razonamiento gráfico ajustando algunos LLM previamente entrenados existentes (como GPT-J o LLaMA) . Técnicamente hablando, como se muestra en la Figura 1, basado en el último modelo ChatGPT de OpenAI y Toolformer de Meta [43], proponemos proporcionar LLM previamente entrenado (como GPT-J o LLaMA) para realizar varias capacidades complejas de tareas de razonamiento gráfico que permitan Les permite utilizar herramientas externas de aprendizaje de gráficos, como otros modelos de redes neuronales de gráficos previamente entrenados y kits de herramientas de inferencia de gráficos existentes. Para hacer de Graph-ToolFormer una interfaz universal de razonamiento gráfico, ajustaremos LLM para que el modelo pueda decidir no solo dónde obtener datos gráficos, sino también qué herramientas usar, y cuándo y cómo usar estas herramientas . de razonamiento Carga de datos de gráficos codificados manualmente y llamadas a funciones utilizadas por herramientas externas de aprendizaje de gráficos en declaraciones.

        En la sección de metodología a continuación se presentan más detalles técnicos sobre el modelo Graph-ToolFormer. Como primer intento de exploración del uso de LLM para tareas generales de razonamiento gráfico, resumimos las contribuciones de este artículo de la siguiente manera:

        Uso de LLM para razonamiento gráfico: este artículo es el primer artículo que intenta proponer un LLM de propósito general (es decir, Graph-ToolFormer), que puede manejar tareas de razonamiento gráfico. Compensa efectivamente las deficiencias del LLM de razonamiento gráfico existente. Más importante aún, ayuda a conectar la comunidad de aprendizaje de gráficos con desarrollos recientes en LLM y AIGC liderados por las comunidades de aprendizaje visual y de lenguaje. Por lo tanto, las personas de la comunidad de aprendizaje de gráficos también tendrán un escenario para mostrar nuestras habilidades y experiencia en la era actual de AIGC y la futura era de AGI.

        - Conjunto de datos de indicaciones de razonamiento gráfico: en este documento, creamos una gran cantidad de instrucciones en lenguaje escrito por humanos y ejemplos de indicaciones sobre cómo utilizar herramientas de aprendizaje de gráficos. Basándonos en el aprendizaje contextual autosupervisado, utilizamos ChatGPT para anotar y aumentar un gran conjunto de datos de inferencia de gráficos con llamadas API a diferentes herramientas externas de aprendizaje de gráficos, que también se procesarán posteriormente mediante filtrado selectivo. A través de la página 1 de github, publicamos el conjunto de datos sin procesar del gráfico utilizado en este artículo y el conjunto de datos de solicitud de inferencia del gráfico generado a la comunidad para exploración futura.

        Amplios estudios experimentales: Probamos exhaustivamente la efectividad de nuestro Graph-ToolFormer propuesto en varias tareas de aplicaciones basadas en razonamiento gráfico estudiadas en el mundo real, incluidas las tareas más básicas de carga de datos gráficos y cálculo de propiedades generales de gráficos, así como algunas tareas más avanzadas. . Específicamente, estudiamos varias tareas desafiantes de razonamiento gráfico avanzado en nuestros experimentos, incluido el razonamiento de temas en papel en redes de literatura, predicción de funciones de gráficos moleculares, detección de comunidades de redes sociales en línea y recomendación secuencial personalizada en sistemas de recomendación, entidades de gráficos de conocimiento y razonamiento relacional.

        El resto de este artículo está organizado de la siguiente manera. Presentaremos brevemente el trabajo relacionado en la Sección 2. La Sección 3 proporcionará definiciones de algunos términos y una formulación del problema de investigación. La Sección 4 proporcionará una introducción detallada al marco Graph-ToolFormer. La eficacia de Graph-ToolFormer se probará en la Sección 5 mediante experimentos extensos en conjuntos de datos de gráficos de referencia del mundo real. Finalmente, concluiremos el artículo en la Sección 6 y discutiremos brevemente algunas posibles direcciones futuras para la exploración en la Sección 7.

2. Trabajo relacionado

        En esta sección, discutiremos varios temas de investigación relacionados con el marco Graph-ToolFormer propuesto en este artículo, incluidas redes neuronales gráficas, modelos de lenguaje, aprendizaje de gráficos basado en modelos de lenguaje y ajuste rápido.

2.1 Graficar redes neuronales

        Las redes neuronales de gráficos (GNN) tienen como objetivo aprender representaciones integradas de datos estructurados en gráficos. Ejemplos representativos de redes neuronales de gráficos que se han propuesto incluyen GCN [19] y Graph-Bert [60], en las que también se han introducido varias variantes extendidas [20, 46, 51]. Como se mencionó anteriormente, GCN y sus modos variantes se basan en operadores de convolución de gráficos aproximados [13], lo que puede provocar problemas de animación suspendida [59] y problemas de suavizado excesivo [23] en arquitecturas de modelos profundos. La literatura [12, 23, 59] realizó un análisis teórico de sus razones. Para abordar este tipo de problema, [59] generalizó el término residual original del gráfico y propuso un método basado en el aprendizaje residual del gráfico; [23] sugirió usar conexiones residuales/densas y convoluciones dilatadas en la arquitectura GCN. Además de los métodos basados ​​​​en GCN y Graph-Bert, algunos otros estudios como [17, 46] también intentan utilizar redes recurrentes para el aprendizaje profundo de la representación de gráficos.

2.2 Modelos de lenguaje

        Desde la introducción de Transformer [50], los modelos de lenguaje grande (LLM) se han convertido en el modelo profundo principal para diversas tareas de PNL. Con la ayuda de una formación previa, los gigantes tecnológicos también han lanzado sus propias versiones de diferentes LLM, como BERT de Google [8], BART de Meta [22], GPT de OpenAI [5, 38, 39] y ELMo de AI2 [37]. y MT-DNN de Microsoft [25]. Muchos de estos LLM también han sido de código abierto, y los algoritmos del modelo y los parámetros de aprendizaje se han entregado a la comunidad con fines de investigación y aplicación. Un artículo de investigación estrechamente relacionado con este trabajo es Meta's Toolformer [43], que propone incorporar API externas en modelos de lenguaje. Con estas API externas, el modelo puede decidir automáticamente cómo utilizar qué herramienta. Mientras tanto, incluso antes del modelo Toolformer, varios otros artículos [29, 35] han explorado la mejora de los modelos de lenguaje con herramientas externas.

2.3 Ajuste rápido

        Se ha demostrado que el aviso puede ajustar eficazmente el modelo de lenguaje previamente entrenado para lograr una cantidad pequeña o nula de aprendizaje [5], lo que puede ayudar al modelo de lenguaje a aprender más rápido en comparación con las tareas de ajuste tradicionales. Hasta ahora, hemos visto tres categorías de métodos de ajuste de indicaciones, a saber, indicaciones discretas [44], indicaciones continuas [24] y orientación [5]. El mensaje discreto[44] utiliza algún texto de plantilla para reformatear la instancia de datos, por ejemplo,

         Las indicaciones discretas suelen ajustar todos los parámetros del modelo. Por otro lado, las sugerencias continuas [24] anteponen vectores de incrustación especialmente etiquetados delante de los ejemplos, lo que solo actualiza un conjunto mucho más pequeño de parámetros del modelo. A diferencia de las indicaciones discretas y las indicaciones continuas, el "cebado" [5] adoptado originalmente por GPT-3 preestablecerá varios ejemplos de cebado antes del ejemplo de evaluación del objetivo, como

         Según el análisis presentado en [54], las sugerencias discretas funcionan bien en ajustes de pocos disparos, no se ha informado que las sugerencias continuas tengan éxito en configuraciones de pocos disparos, mientras que el costo inicial es muy alto y parecen funcionar bien para la configuración de pocos disparos. modelo GPT-3 (175B) más grande.

3 Símbolos, definiciones de términos y formulación de problemas

        En esta sección, primero presentaremos la terminología utilizada en este artículo. Posteriormente, proporcionamos definiciones de varios términos y formulaciones de uso común de las tareas de razonamiento gráfico estudiadas en este artículo.

3.1 Notaciones básicas

        En el resto de este artículo, usaremos letras minúsculas (por ejemplo, x) para representar escalares, letras minúsculas en negrita (por ejemplo, x ) para representar vectores de columna y letras mayúsculas en negrita (por ejemplo , para representar conjuntos o tensores de orden superior). Dada una matriz X , denotamos X(i, :) y X(:, j) como su i fila y j columna respectivamente. Los elementos (i_ésimo, j_ésimo) de la matriz X se pueden expresar como X(i, j). Usamos X⊤ y x⊤ para representar la transpuesta de la matriz X y el vector x. Para un vector x , denotamos su norma como . La norma de Frobenius de la matriz X se expresa como   . El producto por elementos de los vectores xey de la misma dimensión está representado por x ⊗ y, y su concatenación está representada por x ⊔ y.\mathbf{\chi}

3.2 Definición de términos

        En este artículo, estudiaremos la tarea de razonar sobre datos estructurados gráficamente. Todos los conjuntos de datos de gráficos estudiados en este artículo provienen de diferentes dominios, tienen estructuras y propiedades muy diferentes. En esta subsección, proporcionamos definiciones de terminología común para estos diferentes datos estructurados en gráficos estudiados en este artículo.

        Definición 1. (Gráfica): En términos generales, la gráfica estudiada en este artículo se puede expresar como G= (V, E). En notación, el símbolo V = {v1,v 2, - - -, } representa el conjunto de nodos en el gráfico y representa el conjunto de enlaces entre estos nodos, donde |V| = n y |E| = m generalmente son También se les llama orden y tamaño del gráfico.

        Dependiendo del dominio de aplicación, los datos del gráfico a estudiar pueden tener propiedades e información estructural muy diferentes. Para algunos gráficos, los nodos pueden contener algunas características e información de etiquetas, que se pueden  representar mediante el mapeo: V → R^{d_x} y: V → respectivamente. R^{d_y}Para cada nodo v_i∈ V, podemos  representar sus características mediante y  su vector de etiqueta mediante , donde d_xy d_yrepresentan las dimensiones del espacio de característica y etiqueta respectivamente. Si los enlaces en el gráfico G también están adjuntos con características y etiquetas, también podemos usar un método similar para representar los mi_ {i,j}vectores de características y etiquetas correspondientes del enlace, ∈ E, representados como  x_{e_{i,j}} \en R^{d_x}y  respectivamente .

        Para datos de gráficos en múltiples campos, como redes bibliográficas, redes sociales en línea, sistemas de recomendación y gráficos de conocimiento, habrá una única estructura de gráficos a gran escala en el conjunto de datos, pero el gráfico puede contener miles, millones o incluso miles de millones de gráficos estructura. Este gráfico a gran escala se puede representar completamente mediante la definición anterior. Mientras tanto, para los gráficos en muchos otros campos, como las estructuras de gráficos especiales que aprendemos en los cursos de matemáticas discretas y los gráficos moleculares en bioquímica, habrá una gran cantidad de instancias de gráficos mucho más pequeñas en el conjunto de datos, cada una de las cuales normalmente contiene docenas de gráficos. instancias O cientos de nodos y enlaces. Para distinguir estos dos tipos de datos de estructura de gráficos, algunos trabajos existentes [57] también denominaron el primer tipo de gráfico como una red gigante y el segundo tipo de gráfico como un conjunto de instancias de gráfico pequeño. Al mismo tiempo, para representar conjuntos de instancias de gráficos tan pequeños, introducimos el concepto de atlas, de la siguiente manera

        Definición 2 (Atlas): para las instancias de gráficos especiales generadas (que se presentarán en este artículo) y las instancias de gráficos moleculares bioquímicos, podemos representar el conjunto de instancias de gráficos en estos conjuntos de datos como G = {g1, g2, - -, }, donde G = (V, E) representa una única instancia de gráfico, que se puede expresar de acuerdo con la definición de gráfico anterior

        Para algunos campos de aplicación, en el atlas mencionado anteriormente, cada instancia de gráfico también puede tener sus características únicas e información de etiqueta, que representan los atributos topológicos y las etiquetas de la instancia de gráfico. Formalmente, para una instancia de gráfico ∈ G en el atlas G  soldado americano, podemos denotar su característica original y etiquetar los vectores como x∈ R e y∈ R respectivamente.

3.3 Formulación del problema

        Este documento tiene como objetivo mejorar la capacidad de los LLM previamente capacitados existentes para realizar tareas de razonamiento gráfico. Como se mencionó anteriormente, las tareas de razonamiento gráfico estudiadas en este artículo incluyen:

        (1) Razonamiento básico de atributos de gráficos; (2) Razonamiento de temas de artículos bibliográficos; (3) Razonamiento de función de gráficos moleculares bioquímicos; (4) Razonamiento de recomendación de secuencia del sistema de recomendación; (5) Razonamiento de la comunidad de redes sociales en línea; (6) Entidades de gráficos de conocimiento y razonamiento relacional.

        Específicamente, las tareas de razonamiento gráfico estudiadas en este artículo se han seleccionado cuidadosamente y se pueden dividir en las siguientes seis categorías de los problemas de aprendizaje de gráficos más básicos:

         - Cálculo de atributos: para tareas como la inferencia básica de atributos de gráficos, en realidad queremos calcular los atributos explícitos o implícitos de los datos del gráfico de entrada, desde el simple número de nodos/vínculos en el gráfico hasta el radio y diámetro del gráfico, y gráficos periféricos más complejos. y emparejamiento de nodos de longitudes de camino cortas.

        Clasificación de nodos: en la tarea de razonamiento de temas de artículos bibliográficos, nuestro objetivo es predecir los temas de artículos académicos en la red bibliográfica, que en realidad se puede modelar como una tarea de clasificación de nodos. A través de las características sin procesar de los nodos de papel y sus nodos vecinos, podemos clasificar los artículos en diferentes categorías que corresponden a los temas específicos de estos artículos.

        - Clasificación de gráficos: para la tarea de razonamiento de funciones de gráficos moleculares bioquímicos, nuestro objetivo es inferir las funciones potenciales de las moléculas bioquímicas en función de la estructura del gráfico molecular, que se puede definir como una tarea de clasificación del estado del gráfico. A través de la estructura del gráfico molecular y las propiedades primitivas, podemos clasificar instancias de gráficos.

        Predicción de enlaces: para la tarea de re-recomendación de los sistemas de recomendación secuencial, nuestro objetivo es inferir la preferencia potencial del usuario por ciertos elementos en el sistema en función de los registros históricos de interacción del usuario con el elemento, que se puede definir como la tarea de predicción de enlaces en Aprendizaje de gráficos (conexión de usuarios y proyectos). Dependiendo de la configuración del sistema de recomendación, podemos predecir la existencia de una etiqueta para un enlace que indique si el usuario estará interesado en el artículo, o podemos inferir el peso potencial del enlace que indica si el usuario calificará el artículo.

        - Partición/agrupación de gráficos: para la tarea de inferencia de comunidad de redes sociales en línea, nuestro objetivo es inferir la estructura comunitaria de la red social en línea, que se puede definir como una tarea de partición/agrupación de gráficos. Con base en los patrones de interacción social de los usuarios, esperamos dividir a los usuarios de las redes sociales en línea en diferentes grupos, donde cada grupo represente una comunidad social compuesta por usuarios con interacciones sociales muy frecuentes.

        Búsqueda de gráficos: para las tareas de razonamiento de gráficos de conocimiento, nuestro objetivo es inferir entidades o relaciones potenciales en función de los parámetros de entrada, que pueden modelarse como un problema de búsqueda de gráficos. A partir de las entidades o relaciones de entrada, nuestro objetivo es expandir y buscar entidades o relaciones relacionadas para generar resultados que puedan preservar de manera efectiva la semántica requerida de la entrada.

        Para resolver las diversas tareas de razonamiento gráfico anteriores con un LLM, proponemos incorporar sin problemas llamadas API de herramientas externas de aprendizaje de gráficos en declaraciones de razonamiento gráfico. Con base en la notación anterior, diseñaremos un conjunto de llamadas API de razonamiento gráfico para diferentes tareas gráficas en el mundo real. Estas llamadas API incluyen los nombres y parámetros de la herramienta de aprendizaje de gráficos externa, que están rodeados por símbolos especiales para distinguirlos del texto normal. Aprovecharemos ChatGPT para generar un gran conjunto de datos de mensajes de modelado de lenguaje que contenga dichas llamadas API para ajustar LLM como GPT-J y LLaMA. Todos los LLM que estudiaremos en este artículo están previamente entrenados y los ajustaremos utilizando solo el conjunto de datos de sugerencias generado. Más información sobre los detalles técnicos para resolver estas tareas se presenta en la sección de metodología a continuación.

4 MÉTODO PROPUESTO

        En esta sección, presentaremos el marco Graph-ToolFormer propuesto en este artículo. Primero, brindaremos a los lectores una breve introducción al marco Graph-ToolFormer en la Sección 4.1. Después de eso, presentaremos el método de representación general de las llamadas API de razonamiento gráfico en la Sección 4.2 y presentaremos las llamadas API para tareas específicas de razonamiento gráfico en la Sección 4.3. La sección 4.4 presentará cómo utilizar ChatGPT para aumentar el conjunto de datos de solicitud. La Sección 4.5 presentará en detalle el método de ajuste del modelo de lenguaje utilizando el conjunto de datos de solicitud mejorado. Al mismo tiempo, para permitir que Graph-ToolFormer también maneje algunas preguntas y respuestas básicas de razonamiento gráfico, también introduciremos algunas preguntas y respuestas de razonamiento gráfico en la Sección 4.6, que se fusionarán en indicaciones de declaración para el ajuste fino de LLM. . Finalmente, con base en las oraciones de salida con llamadas API generadas por el modelo de lenguaje, la Sección 4.7 presentará las tareas de razonamiento gráfico orientadas al análisis, ejecución, razonamiento de tareas gráficas y posprocesamiento de llamadas API.

4.1 Esquema del marco

        En la Figura 2, proporcionamos un resumen del marco Graph-ToolFormer, que ilustra los componentes funcionales internos y la canalización de Graph-ToolFormer. Siguiendo el esquema del marco, utilizamos ChatGPT para anotar y aumentar un gran conjunto de datos de sugerencias sobre declaraciones de llamadas a la API de razonamiento gráfico basadas en instrucciones escritas a mano y una pequeña cantidad de ejemplos de sugerencias. Utilizando el conjunto de datos de sugerencias generado, ajustaremos los LLM causales previamente entrenados, como GPT-J [11, 53] y LLaMA [49], enseñándoles cómo utilizar herramientas de inferencia de gráficos externas. Utilizando LoRA (adaptación de bajo rango) [15] y Adam de 8 bits y tecnología de cuantificación de modelos [7], Graph-ToolFormer puede realizar ajustes en GPU con espacio de memoria muy pequeño, como Nvidia GeForce RTX 4090 (24 GB de RAM), o incluso Nvidia GeForce RTX 1080Ti (11 GB de RAM). El Graph-ToolFormer ajustado se utilizará con fines de inferencia. Dada una declaración de consulta de entrada y una pregunta, Graph-ToolFormer agregará automáticamente la llamada API de razonamiento gráfico correspondiente en la posición más apropiada en la declaración de salida. Las siguientes subsecciones detallarán los detalles de los componentes anteriores y los pasos para construir Graph-ToolFormer.

 4.2 Avisos con llamadas API

        En este artículo, podemos usar f (args) para representar la llamada API de la herramienta de aprendizaje de gráficos externa, donde f es el nombre de la función de la herramienta externa y args representa la lista de parámetros de la función. Para simplificar la expresión, también podemos usar la notación de tupla c= (f, args) para representar esta llamada API, que se usará con frecuencia en el resto de este artículo. Recomendamos incorporar llamadas API en declaraciones de salida generadas, en lugar de simplemente tomar llamadas API externas como salida, para que LLM pueda procesar y responder a tareas de razonamiento gráfico a través de un diálogo textual regular.

        Para insertar una llamada API en una declaración de salida, podemos representar la secuencia de token de la llamada API c= ( f,args ) como

         Los "<API>" y "</API>" que rodean la función de llamada API son etiquetas especiales que se utilizan para distinguirlos de otros tokens en la declaración de salida generada. Para el marco Graph-ToolFormer, cuando genera etiquetas "<API>" y "</API>", el analizador del marco reconocerá que los tokens representan llamadas a funciones API. En cuanto a la segunda notación de llamada API, el símbolo r representa el resultado de retorno de f(args). Para llamadas API con token "→r", Graph-ToolFormer también reemplazará e insertará los resultados de la llamada API en la declaración después del análisis y ejecución de la consulta; de lo contrario, la llamada API se ejecutará en el backend y los resultados devueltos se registrarán en el trabajo en la memoria. Los detalles sobre el análisis, la ejecución y el posprocesamiento de llamadas API de declaraciones de salida se tratan en la Sección 4.7. Según la función f (args) y el contexto de la llamada API en la tarea de inferencia, el LLM ajustado posteriormente decidirá automáticamente si insertar los resultados de salida en la declaración de salida.

        A diferencia de las llamadas API muy simples estudiadas en [43], como Calendario, Calculadora y WikiSearch, en el razonamiento gráfico algunas llamadas API pueden implicar llamadas anidadas complejas a varias funciones externas. Por ejemplo, algunos parámetros en una llamada API pueden ser en realidad los resultados devueltos por otras llamadas API, o es posible que necesitemos llamar a varias API consecutivas al mismo tiempo para completar una tarea de razonamiento gráfico. Cuando analicemos tareas específicas de razonamiento gráfico en la Sección 4.3 a continuación, encontraremos algunas llamadas API de razonamiento gráfico complejas.

        Para resolver tareas tan complejas de razonamiento gráfico, este artículo también permitirá que Graph-ToolFormer genere llamadas API anidadas y consecutivas rodeadas por las etiquetas especiales "<API>" y "</API>". Por ejemplo, dadas dos llamadas API c1 = (f1, args1) y c2 = (f2, args2) ambas tienen sus propios parámetros de entrada, la primera función API f1 necesita usar el resultado de retorno de la segunda función API f2 como sus parámetros de entrada. , podemos representar esta llamada API anidada como

         El símbolo "c1|c2" indica que estas dos llamadas API están anidadas.

        Al mismo tiempo, si una tarea necesita llamar a varias interfaces de programa de aplicación consecutivas al mismo tiempo, como c1 = (f1, args1) y c2 = (f2, args2), podemos expresar esta llamada continua a la interfaz de programa de aplicación como

         Al mismo tiempo, para algunas situaciones de razonamiento gráfico más complejas, podemos reescribir la representación de llamadas API anterior utilizando más parámetros de entrada representados por otras llamadas API o llamadas API profundamente anidadas, como

         Estas llamadas API a la función de inferencia de gráficos se insertarán en declaraciones para que los LLM las ajusten posteriormente. Sin modificar el conjunto de vocabulario de LLM y el generador de símbolos de marcas previamente entrenado, podemos reemplazar el símbolo de marca especial "< con algunos símbolos de marca poco comunes (como "[", "]" y "->") API>", " </API>" y "→".

        En este artículo, veremos varias tareas de razonamiento de gráficos muy diferentes que involucran diferentes llamadas a la API de aprendizaje de gráficos, que se detallarán para el lector en las siguientes subsecciones.

4.3 Indicaciones orientadas al razonamiento gráfico

        En este artículo estudiaremos varias tareas de razonamiento de gráficos utilizando Graph-ToolFormer, que van desde tareas muy básicas (como el razonamiento general de propiedades de gráficos) hasta tareas más avanzadas (como tareas de razonamiento para gráficos de diferentes dominios de aplicación específicos). Como se introdujo anteriormente en la Sección 3, estas tareas de razonamiento gráfico estudiadas en este artículo se seleccionan cuidadosamente y se pueden dividir en diferentes tipos de tareas básicas de aprendizaje de gráficos, como cálculo de atributos de gráficos, clasificación de nodos, clasificación de gráficos, predicción de enlaces, partición/agrupación de gráficos. y búsqueda de gráficos. Todas estas tareas básicas de aprendizaje de gráficos tienen amplias aplicaciones en tareas de razonamiento de datos de gráficos del mundo real. Además de las tareas estudiadas en este artículo, al realizar cambios menores en las llamadas API, también podemos aplicar Graph-ToolFormer a otras tareas de aplicación relacionadas con el razonamiento de gráficos.

4.3.1 Carga de datos gráficos

        A diferencia del texto y las imágenes, los datos gráficos del mundo real pueden tener tamaños relativamente grandes, estructuras ampliamente conectadas y propiedades primitivas complejas. Aparte de algunos pequeños ejemplos de gráficos hechos a mano, es casi imposible ingresar manualmente datos estructurados en gráficos como secuencias etiquetadas en LLM para realizar inferencias. Por lo tanto, en este documento, proponemos darle al modelo Graph-ToolFormer la capacidad de cargar automáticamente los datos del gráfico requeridos desde un archivo fuera de línea o un repositorio en línea según el nombre del conjunto de datos proporcionado, la ruta del archivo local o el enlace URL del repositorio en línea. Técnicamente hablando, la primera llamada a la API que cubrimos en este artículo es para la carga de datos del gráfico, que puede cargar el gráfico completo o solo un subgráfico que involucra uno o algunos nodos y enlaces.

         Entre ellos, "GL()" representa la abreviatura del nombre de la función "Carga de gráficos", y los parámetros de función "Ruta de archivo", "Subconjunto de nodos" y "Subconjunto de enlaces" especifican respectivamente la ruta del archivo de datos de gráficos local (si los datos se almacena en la red, luego especifique una URL de repositorio en línea), un subconjunto específico de nodos y un subconjunto de enlaces. El símbolo "→G" significa explícitamente que los datos gráficos se cargan con la variable de referencia G = (V, E), que en realidad es opcional, dependiendo de la tarea y la configuración de la aplicación. Además, si la función "GL ()" ha proporcionado previamente el directorio de archivos local o la URL raíz de la biblioteca de recursos en línea, al llamar a esta función API, solo necesitamos simplificar la "ruta del archivo" a un "específico". nombre gráfico" .

        Además, si los parámetros "subconjunto de nodos" (subconjunto de nodos) y "subconjunto de enlaces" (subconjunto de enlaces) se omiten o se especifican como "todos los nodos" y "todos los enlaces" respectivamente, la llamada a la función API se ejecutará directamente. cargar el gráfico completo. En algunos casos, solo podemos especificar un subconjunto de nodos que se cargarán ({vi,vj, - -, v,k} ⊂ V en la figura), pero no podemos enumerar todos los enlaces relacionados. En este caso, podemos " A los parámetros "subconjunto de nodos" y "subconjunto de enlaces" se les asignan los valores "{vi, vj, - -, vk}" y "todos los enlaces relacionados" respectivamente (o se omite el parámetro "subconjunto de enlaces"). Esto nos dará una mayor flexibilidad a la hora de cargar subgrafos según el conjunto de nodos proporcionado y sus enlaces internos. De manera similar, también podemos especificar solo un subconjunto de enlaces. Al especificar "subconjunto de nodos" como "todos los nodos relevantes" u omitir este parámetro, se cargarán automáticamente los nodos en los datos del gráfico que componen los enlaces proporcionados, como se muestra en la Tabla 1 El segundo ejemplo de solicitud de carga de datos del gráfico. Además de este ejemplo (que se muestra en la parte superior de la Tabla 1), también proporcionamos ejemplos de sugerencias de otras llamadas API de carga de datos de gráficos que recuperan y cargan datos de gráficos solicitados desde un archivo (local) en función de una declaración de texto ingresada.

         4.3.2 Razonamiento de atributos de gráficos.

        Los datos estructurados de gráficos pueden tener varios atributos, como diámetro, densidad, centro y ruta más corta, etc. Estos atributos pueden capturar diferentes características de los datos de gráficos y tienen amplias aplicaciones en datos estructurados de gráficos del mundo real. Para razonar sobre dichas propiedades del gráfico, generalmente se requiere que el modelo no solo conozca las definiciones de las propiedades, sino que también tenga sólidas capacidades de razonamiento lógico y cálculo matemático para calcular dichas propiedades. Para los modelos de lenguaje existentes, ya sean modelos de lenguaje enmascarados o modelos de lenguaje autorregresivos, es difícil (casi imposible) realizar un proceso de inferencia de atributos tan complejo basado en el gráfico de entrada.

        En este artículo, para permitir que LLM razone sobre los atributos del gráfico, presentamos un conjunto de API externas a las que el modelo de lenguaje puede llamar para razonar sobre estos atributos. Para ilustrar cómo Graph-ToolFormer maneja tales tareas de razonamiento de propiedades de gráficos, tomaremos como ejemplo el pequeño gráfico de paleta que se muestra en la Figura 1 (el gráfico verde en la esquina superior izquierda).

         El gráfico cargado también puede usar el símbolo Gl. En aras de la simplicidad, en las siguientes secciones, también tomaremos el gráfico de paleta cargado arriba como ejemplo para presentar la API de inferencia de atributos del gráfico a los lectores.

orden y tamaño

        Formalmente, dado un gráfico, como el gráfico de paleta cargada G = (V, E), su orden representa el número de nodos en el gráfico, es decir, |V|, y su tamaño representa el número de enlaces en el gráfico. es decir, |E|. Podemos expresar la llamada API para razonar sobre las propiedades de orden y tamaño del gráfico de paleta como

         Si el gráfico de paleta se ha cargado previamente a través de otras llamadas API, se puede llamar Gl. Las llamadas API anteriores también se pueden simplificar de la siguiente manera

         Entre ellos, el símbolo GR () representa la abreviatura del nombre de la función "razonamiento gráfico", y los parámetros "orden" y "tamaño" representan los atributos del gráfico que se van a inferir. herramientax: propiedad_deseado "indica las propiedades gráficas necesarias para el razonamiento utilizando el kit de herramientas Toolx. Toolx es el kit de herramientas de cálculo de propiedades gráficas creado para Graph-ToolFormer basado en networkx en este artículo. Presentaremos el modelo de razonamiento gráfico y el kit de herramientas utilizados en este artículo en Para obtener más información . El símbolo "→" indica que el resultado de salida de la llamada API de inferencia de atributos gráficos se incluirá en la declaración de salida. Como se mencionó anteriormente, la marca de resultado de salida de retorno "→" de la llamada API es en realidad opcional y depende de si se incluye para contextos de razonamiento y tareas de aplicación.

        densidad:

         La densidad del gráfico representa la relación entre el número de enlaces existentes en el gráfico y el número de enlaces potenciales entre nodos en el gráfico. Si el gráfico de paleta de entrada G = (V, E) es un gráfico dirigido, su densidad se puede expresar como ; si es un gráfico no dirigido, su densidad se puede expresar como . El formulario de llamada API para calcular la densidad del gráfico es el siguiente

         El parámetro booleano "está dirigido (dirigido)" distingue gráficos dirigidos y no dirigidos en los cálculos de densidad.

camino más corto

        El camino más corto entre dos nodos en un gráfico es el camino más corto que los conecta a través de los nodos y enlaces del gráfico. La llamada API de inferencia para la longitud de ruta más corta de 1 a 2 en el gráfico se puede expresar como

         Al mismo tiempo, la longitud promedio de la ruta más corta de todos los nodos en el gráfico se puede obtener mediante la siguiente llamada a la interfaz de la aplicación

         Además de la longitud promedio de la ruta más corta, también podemos razonar sobre la longitud máxima de la ruta más corta y la longitud mínima de la ruta más corta del gráfico de la siguiente manera

         Excentricidad

        Dado un gráfico conectado, como un gráfico de paleta G = (V, E), para un nodo vi ∈ V, su excentricidad representa la distancia máxima del gráfico desde cualquier otro nodo vj ∈ V en el gráfico. Según esta definición, para un gráfico desconectado, todos los nodos están definidos para tener una excentricidad infinita. Podemos calcular la excentricidad de todo el gráfico (es decir, todos los nodos del gráfico) o de un nodo específico mediante las siguientes dos llamadas API:

         Resumen de llamadas API de razonamiento básico de gráficos: según nuestra descripción anterior, los lectores deberían haber notado que estas propiedades de gráficos pueden requerir un razonamiento lógico muy complejo. A través de algunas pruebas experimentales preliminares, los LLM actuales (como ChatGPT y LLaMA) no pueden manejarlos bien. Al mismo tiempo, las propiedades de razonamiento anteriores (como el camino más corto) también se utilizan ampliamente en tareas de razonamiento de gráficos del mundo real (como el razonamiento de redes de transporte y la planificación de rutas de transporte). Actualmente, LLM ha sido criticado por su incapacidad para proporcionar resultados de inferencia correctos para datos de tráfico espacial (como estimar la distancia y el tiempo de conducción entre diferentes ubicaciones). Con la llamada API de ruta más corta anterior basada en los atributos de la red de transporte, podemos proporcionar resultados de inferencia más precisos para que LLM procese dichas consultas. Para incorporar esto en los modelos de lenguaje, también mostramos en la Tabla 1 algunos ejemplos de las llamadas API anteriores que pueden cargar datos de gráficos desde fuentes de datos específicas y razonar sobre algunas de las propiedades de gráficos comunes analizadas anteriormente.

4.3.3 Tareas avanzadas de razonamiento gráfico.

        Además de las tareas básicas de razonamiento de atributos de gráficos, este artículo también estudiará varias tareas de razonamiento avanzado en datos de gráficos del mundo real con estructuras más complejas, que incluyen: (1) razonamiento de temas de artículos académicos basado en redes bibliográficas; (2) estructura de gráficos de proteínas. razonamiento de función proteica basado en; (2) razonamiento de recomendación secuencial de productos basado en sistemas de recomendación; (4) razonamiento de comunidad social basado en redes sociales en línea; (5) razonamiento semántico basado en gráficos de conocimiento. Para muchas otras tareas avanzadas de inferencia de gráficos que no se estudian en este artículo, se pueden integrar de manera efectiva en Graph-ToolFormer agregando las llamadas API correspondientes en las sugerencias de inferencia con solo cambios menores en el marco de Graph-ToolFormer. El marco Graph-ToolFormer puede servir como columna vertebral para realizar diversas tareas de aplicaciones de razonamiento gráfico con LLM como interfaz común. En la Sección 7, también presentaremos algunas posibles oportunidades de investigación futuras para los lectores al final de este documento.

Razonamiento del tema del ensayo bibliográfico:

        La red bibliográfica [47] define datos complejos estructurados en gráficos, que involucran varias entidades, como artículos académicos, autores, instituciones y lugares de publicación, así como varios vínculos entre estas entidades, como enlaces de citas, enlaces de autores, afiliaciones. Enlaces de relación y enlaces de publicación. Esta sección analiza la tarea de razonamiento temático basada en redes bibliográficas para artículos académicos. El tema de un artículo no solo se puede inferir de su propia descripción del texto, sino también de otros artículos citados/citados por él. Esto requiere que el modelo de razonamiento gráfico no solo utilice las características del texto original del artículo, sino también las características del artículo Enlaces de citas extensos. Formalmente, de acuerdo con la definición de términos proporcionada anteriormente en la Sección 3.2, podemos representar la red bibliográfica como = (V, E), que se puede cargar a través de la llamada a la interfaz de la aplicación.

         Cada artículo se representa en la red bibliográfica como un nodo vi∈V, que tiene un vector de características original x y un vector de etiqueta y. El vector de características original incluye la información textual del artículo (como el título o el resumen), y el vector de etiqueta representa el tema del artículo. Las redes neuronales de gráficos (GNN) existentes infieren temas en papel aprendiendo representaciones de características sin procesar e información de vecindario conectada [19, 60], que se pueden utilizar aún más para inferir vectores de etiquetas de temas. Para el modelo Graph-ToolFormer presentado en este artículo, utilizaremos Graph-Bert [60] previamente entrenado como modelo de inferencia de temas predeterminado para redes bibliográficas. Con base en la descripción anterior, podemos representar el razonamiento del tema de tesis a través del modelo de red neuronal gráfica mediante las siguientes llamadas API:

         La notación de función indica que se trata de una interfaz de aplicación de razonamiento de temas en papel que utiliza el modelo Graph-Bert [60]. De hecho, el marco Graph-ToolFormer propuesto en este artículo es un marco general. Además del modelo Graph-Bert, se pueden utilizar muchos otros modelos de redes neuronales gráficas existentes para el razonamiento de temas de artículos académicos. Según el código fuente proporcionado, los lectores pueden personalizar Graph-ToolFormer, incluidos más modelos de gráficos diferentes que pueden usarse para completar sus propias tareas de razonamiento gráfico.

        Inferencia de la función molecular de proteínas: La inferencia de la función de moléculas químicas y proteínas [52] es un problema clásico que se ha estudiado en el campo de la bioquímica durante décadas y tiene un valor de aplicación importante en el mundo real, como ayudar a diseñar algunos medicamentos nuevos para tratar algunas Enfermedades existentes Enfermedades raras. La inferencia de la función de las proteínas no es fácil porque las proteínas homólogas a menudo tienen varias funciones diferentes al mismo tiempo. Además, tales predicciones requieren ajustes para algunas mutaciones, pero son sólidas para otras. Los investigadores han estado explorando esta cuestión utilizando modelos de aprendizaje automático y han desarrollado una base de datos relativamente grande de funciones de proteínas [48]. Sin embargo, la cantidad de proteínas específicas de función conocida contenidas en las bases de datos es todavía muy limitada en comparación con la cantidad de proteínas presentes en el mundo real. En el aprendizaje de gráficos, también se ha estudiado ampliamente la inferencia de la función de una molécula de proteína en función de su estructura. Por lo tanto, en esta sección también lo incorporamos a Graph-ToolFormer como una tarea de razonamiento gráfico.

        A diferencia de las redes bibliográficas, los gráficos moleculares de proteínas son mucho más pequeños y existirán múltiples instancias de dichos gráficos en el conjunto de datos. Más importante aún, las características y etiquetas de los gráficos moleculares de proteínas se refieren al gráfico molecular completo, en lugar de a nodos individuales. Como se introdujo en la Sección 3.2, podemos representar el atlas molecular de proteínas estudiado como G = {g1, g2, · · · , }, que se puede cargar mediante la siguiente llamada API de carga de gráficos

         Para cada instancia de gráfico molecular G = (V, E) en el conjunto de datos G, también habrá características y etiquetas originales asociadas con cada instancia de gráfico molecular de proteínas. Por ejemplo, para una instancia de gráfico gi ∈ G, podemos usar x para representar sus características originales e y para representar su etiqueta, donde el vector de etiqueta representará su función correspondiente. Según la estructura del gráfico de proteínas y sus características originales, podemos definir las siguientes llamadas API para la inferencia de funciones de moléculas de proteínas:

         Esto se denominará red neuronal de gráficos preentrenada SEG-Bert propuesta en [58]. El nombre completo de SEG-Bert es "Segmented Graph-Bert" [58], que amplía el modelo Graph-Bert para el aprendizaje de representación de gráficos moleculares. Además del modelo SEG-Bert utilizado en Graph-ToolFormer, los lectores también pueden personalizar el marco Graph-ToolFormer para incorporar otros modelos de gráficos para resolver tareas de razonamiento de gráficos moleculares.

        Razonamiento del sistema de recomendación secuencial: en la era del big data, a medida que se generan cada vez más datos en línea y fuera de línea, la búsqueda manual de información de estas fuentes de big data se ha vuelto inviable y es posible que necesitemos sistemas de recomendación [28] que lo hagan automáticamente por nosotros. Recomendar la información necesaria. Con base en registros históricos, los sistemas de recomendación secuencial tienen como objetivo inferir los siguientes artículos que pueden interesarle al usuario, lo que puede conducir al comportamiento de compra futuro del usuario o revisar las calificaciones de esos artículos.

4.4 Aumento rápido con ChatGPT

        Para los ejemplos de sugerencias proporcionados en la Tabla 1 y la Tabla 2, solo pueden cubrir algunos ejemplos sobre cómo usar llamadas API para realizar diferentes tareas de razonamiento gráfico. Un número tan pequeño de ejemplos no es suficiente para perfeccionar el LLM existente. En este artículo, proponemos mejorar las instancias dinámicas utilizando ChatGPT (gpt-3.5-turbo), que ha demostrado excelentes capacidades de aprendizaje de contexto de pocas y cero oportunidades en muchas tareas diferentes de aprendizaje de idiomas [5]

 4.4.1 La carga de gráficos solicita la generación de conjuntos de datos.

        De manera similar a [34], para ayudar a generar ejemplos de mensajes, también proporcionamos instrucciones detalladas para que ChatGPT especifique su función en el sistema. Aquí, podemos tomar como ejemplo la llamada API de carga de datos gráficos. Las instrucciones y ejemplos de sugerencias proporcionados a ChatGPT son los siguientes. Siguiendo las instrucciones y el ejemplo de solicitud, le pediremos a ChatGPT que genere datos del gráfico y cargue el conjunto de datos de solicitud.

        Instrucciones: Su tarea es agregar la llamada API de la función de carga de gráficos en un texto incorporado para implementar la carga de datos de gráficos específicos. Esta función debería ayudar a cargar los datos estructurados del gráfico requeridos en función del nombre del gráfico mencionado y sus nodos y enlaces. Puede llamar a la API de carga de gráficos escribiendo "[GL(nombre-gráfico, nodos, enlaces)]" donde "nombre-gráfico" representa los datos del gráfico de destino y "nodos" y "enlaces" son los nodos y enlaces mencionados. Si no se menciona ningún nodo o enlace específico, la API escribe "todos los nodos" y "todos los enlaces" para los parámetros "nodo" y "enlace". Si solo se especifican nodos, la API enumerará los nodos mencionados en la entrada del parámetro "nodos" y escribirá "todos los enlaces relacionados" en la entrada del parámetro "enlaces". Si solo se especifican enlaces, la API escribe "todos los nodos relevantes" para la entrada del parámetro "nodos" y enumera los enlaces mencionados para la entrada del parámetro "enlaces". A continuación se muestran algunos ejemplos de llamadas API para cargar datos estructurados de gráficos. En estos ejemplos, la salida se repite sobre la entrada, con llamadas API insertadas en las ubicaciones más apropiadas.

        Entrada: Estructura del diagrama molecular del anillo de benceno El anillo de benceno contiene hexágonos.

         • Resultado: La estructura del diagrama molecular [GL("Anillo de Benceno")] del anillo de benceno contiene un hexágono.

        • Entrada: En el diagrama molecular del acetaldehído está presente un doble enlace carbono-oxígeno.

         • Salida: [GL("acetaldehído-molécula-diagrama", {carbono, oxígeno}, {(carbono, oxígeno)})] el doble enlace carbono-oxígeno existe en el diagrama molecular del acetaldehído.

         • Entrada: La imagen de Lollipop parece una cuchara.

        • Salida: [GL("lollipop-graph", "all Node", "all links")] El gráfico de lollipop parece una cuchara.

        • Entrada: El artículo 10 de la red bibliográfica Cora presenta el modelo Transformer. • Salida: [GL("cora", {Paper#10}, "all related cite links")] el artículo#10 en la red de bibliografía presenta el modelo Transformer.

        • Entrada: La insulina es una pequeña proteína globular que contiene dos largas cadenas de aminoácidos.

         • Salida: [GL("Insulin-Protein-Graph", "All Atom Nodes", "All Atom Bond Links")] La insulina es una pequeña proteína globular que contiene dos largas cadenas de aminoácidos.

        Entrada: En el sistema de recomendación de IMDB, David calificó la película de los Vengadores con 10 estrellas.

         • Salida: En [GL("imdb-recommender-system", {"David", "The Avengers"}, {("David", "The Avengers")})] sistema de recomendación de IMDB, la respuesta de David a "The Avengers" La calificación de la película "Alianza" es de 10 estrellas.

        • Entrada: Entre las aplicaciones sociales en línea existentes, Tiktok permite a los usuarios socializar fácilmente en línea a través de videos en vivo.

         • Salida: entre las aplicaciones sociales en línea existentes, [GL("tiktok-social-network", "Todos los usuarios y nodos de video", "Todos los enlaces usuario-video y enlaces usuario-usuario")] Tiktok permite a los usuarios transmitir videos en vivo en línea fácilmente. socializar.

        • Entrada: Según Freebase Knowledge Graph, Donald Trump nació en 1946 en el Jamaica Hospital Medical Center de Nueva York.

         • Salida: Según [GL("freebase", {"Donald Trump", "Jamaica Hospital Medical Center", "Nueva York"}, {("Donald Trump", "Jamaica Hospital Medical Center"), ( "Jamaica Hospital Medical Center" Center", "Nueva York")})] Freebase Knowledge Map, Donald Trump nació en 1946 en el Jamaica Hospital Medical Center de Nueva York.

        Consulta: De acuerdo con las instrucciones y los ejemplos, genere 5000 pares de entrada y salida para la carga de datos de gráficos del mundo real. Asegúrese de que los datos cargados estén en una estructura de gráfico y que la llamada API esté insertada antes del gráfico mencionado o del nodo o enlace mencionado.

        De acuerdo con las instrucciones, ejemplos y consultas, al llamar a la API Chat-GPT, obtuvimos un conjunto de datos rápidos que contiene 5000 instancias de pares de entrada-salida. Después de la eliminación manual de instancias incompletas y una revisión simple, se retienen en el conjunto de datos aproximadamente 2803 pares de entrada-salida de llamadas API de carga de datos gráficos. Estos datos se utilizarán para los ajustes que se introducirán más adelante.

4.4.2 El razonamiento gráfico impulsa la generación de conjuntos de datos.

        Al igual que con otras indicaciones de razonamiento gráfico, con instrucciones y ejemplos de indicaciones similares, podemos usar ChatGPT para generar una gran cantidad de pares de entrada y salida similares. Al mismo tiempo, a diferencia de las llamadas API de carga de gráficos, para garantizar que las indicaciones de razonamiento de gráficos sean efectivas, recomendamos escribir manualmente todas las declaraciones de entrada llamando al kit de herramientas de razonamiento de gráficos con anticipación. Por ejemplo, para el artículo de la red bibliográfica Cora, el tema es "Red neuronal", organizaremos sus oraciones de entrada de la siguiente manera:

        Entrada: El primer artículo de Cora trata sobre el tema de las redes neuronales.

        Proporcionaremos dicha información a ChatGPT y le pediremos que nos ayude a insertar llamadas API de inferencia de gráficos en declaraciones con consultas.

        Consulta: genera resultados a partir de llamadas a la API de razonamiento gráfico en la entrada según instrucciones y ejemplos. Asegúrese de que las llamadas API se inserten en la ubicación más adecuada

        Según la consulta y la declaración de entrada, ChatGPT devolverá el siguiente resultado:

        • Salida: El tema del primer artículo en Cora es [GR(GL("cora", "todos los nodos del artículo", "todos los enlaces de citas"), "tema", {Paper#1}) red neuronal.

        Además de usar ChatGPT para anotar las llamadas API y generar el resultado anterior, también usamos ChatGPT para reescribir la declaración de entrada de otra manera sin cambiar la semántica. Por ejemplo, para la declaración de entrada que se muestra en la figura anterior, también obtenemos las siguientes versiones reescritas:

        Entrada: El primer artículo de Cora trata sobre el tema de las redes neuronales.

        - Entrada: El primer artículo de Cora trata sobre el tema de las redes neuronales.

        - Entrada: Los artículos más importantes del álbum de Cora tratan del campo de las redes neuronales.

        - Entrada: El tema inaugural de Cora gira en torno a las redes neuronales.

        Estas entradas reformuladas también se volverán a ingresar en ChatGPT para las anotaciones de llamadas API. Este proceso se llevará a cabo para todos los nodos/instancias de gráficos estudiados en la tarea de razonamiento de propiedades de gráfico básico y la tarea de razonamiento de gráfico avanzado para generar un conjunto de datos de pares de indicaciones de entrada y salida. Según el conjunto de datos generado, ejecutaremos las llamadas API generadas por ChatGPT y compararemos los resultados de retorno de las funciones API de razonamiento gráfico con los valores de verdad en las declaraciones. Los resultados que (1) no puedan ejecutar la llamada API o (2) no devuelvan resultados correctos se filtrarán del conjunto de datos. Finalmente, el conjunto de datos generado por el aumento ChatGPT filtrado se utilizará para ajustar los LLM y sus estadísticas se proporcionarán en la sección experimental posterior. Al mismo tiempo, para otras tareas de razonamiento gráfico que no se estudian en este artículo, el método para generar el conjunto de datos de llamadas a la API de razonamiento es similar al anterior.

4.5 Ajuste fino de LLM para el razonamiento gráfico

        Con base en el conjunto de datos de indicaciones de razonamiento gráfico mejorado anterior, en esta sección presentaremos cómo ajustar el LLM previamente entrenado existente para que el LLM pueda aprender a usar herramientas API para manejar tareas de razonamiento gráfico. Formalmente, como se muestra en los ejemplos de las Tablas 1 y 2, el  objetivo de los LLM en Graph-ToolFormer es encontrar el lugar más apropiado para insertar una llamada API, dada una declaración de entrada con una secuencia de token (es decir, es decir, qué se introdujo en la Sección 4.2 anterior . Los principales desafíos son: (1) determinar con precisión el lugar más apropiado para insertar la llamada API; (2) seleccionar correctamente la función API para la llamada; (3) extraer con precisión los parámetros del contexto e ingresarlos en la función. En esta sección, abordaremos estos tres desafíos.

        4.5.1 Predicción de la posición de inserción de llamadas API.

        Para la declaración de entrada proporcionada, puede haber varios lugares potenciales para insertar llamadas API. A diferencia de [43], que selecciona las k ubicaciones principales para generar datos de llamadas API, este documento tiene como objetivo identificar las ubicaciones donde es más probable que se inserten llamadas API. Formalmente, según el modelo de lenguaje previamente entrenado, dada la oración de entrada w = [w1, w2, - - -,], podemos insertar una llamada API entre posiciones (es decir, marcadores wi-1 y) con probabilidad

         Una vez que LLM genera la etiqueta de apertura especial <API> en la posición de la atmósfera, el modelo sabe que debe insertar una llamada API aquí. Todas las etiquetas generadas después de la etiqueta <API> y antes de la etiqueta de cierre especial </API> serán nombres de funciones de llamada API o parámetros de entrada. Para el índice de ubicación con la última probabilidad, se seleccionará como la ubicación más adecuada para insertar la llamada API.

        4.5.2 Dominio de llamada API y selección de funciones.

        A diferencia de las pocas funciones de llamada API estudiadas en [43], la API de razonamiento gráfico estudiada en este artículo es más diversa, lo que puede traer desafíos para la implementación y ajuste del marco. Por un lado, a medida que se incorporan más tareas de razonamiento gráfico y funciones API en el ajuste de LLM, el espacio de búsqueda de funciones API de razonamiento gráfico crecerá exponencialmente, lo que aumenta la dificultad de seleccionar las mejores y correctas funciones API para llamar. Por otro lado, algunas funciones API para diferentes tareas de inferencia de gráficos pueden incluso compartir nombres de funciones similares, lo que puede inducir a error a Graph-ToolFormer a la hora de elegir la función correcta en las llamadas API. Además, diferentes tareas de inferencia de gráficos pueden llamar a diferentes funciones API en diferentes kits de herramientas, y algunas tareas pueden requerir que se precarguen diferentes funciones de gráficos y modelos entrenados en el backend. También es posible que deseemos especificar el modelo de gráfico entrenado y el conjunto de herramientas de gráficos que se cargarán en la llamada API, de modo que Graph-ToolFormer pueda precargar el modelo y el conjunto de herramientas por adelantado durante la fase de generación, reduciendo así el costo de tiempo de toda la inferencia del gráfico. Por lo tanto, según el ejemplo de llamada a la API de razonamiento gráfico mostrado anteriormente, recomendamos modificar ligeramente la plantilla de llamada a la API de razonamiento gráfico presentada en la Sección 4.2 de la siguiente manera:

 Entre ellos, el "dominio" correspondiente de la función API es el prefijo de la tarea de razonamiento gráfico específica en la llamada a la función API. El dominio puede ser el nombre del conjunto de herramientas utilizado o el nombre de un modelo previamente entrenado específico. Por ejemplo, en las llamadas API de razonamiento gráfico que se muestran en la Tabla 1 y la Tabla 2, utilizaremos la herramientax desarrollada en este artículo basada en el kit de herramientas networkx2 para el razonamiento de atributos de gráfico. Los parámetros correspondientes se pueden expresar como "toolx:property-names" ; en cuanto al uso de la literatura de Graph-Bert sobre razonamiento temático [60], podemos expresar los parámetros correspondientes como "graph-bert:topic". En algunos otros casos, si no se especifica ningún dominio, usaremos directamente las funciones en el dominio predeterminado para completar la tarea de razonamiento gráfico. En la Sección 5 a continuación, se proporcionará al lector más información sobre el modelo de gráfico previamente entrenado utilizado para definir entradas de "dominio: función" en llamadas API.

        En otras palabras, al insertar una llamada a una función API en una declaración, necesitamos inferir tanto el dominio como el nombre de la función de la llamada API. Durante la fase de inferencia, cuando LLM genera el dominio, el sistema puede precargar el código del dominio en el backend incluso antes de que se genere toda la declaración de salida de la llamada API. Al mismo tiempo, también permite a los LLM elegir el mejor dominio para usar en las llamadas API, porque para completar la misma tarea de razonamiento gráfico, habrá varios métodos diferentes y también funcionarán de manera diferente en términos de efectividad y eficiencia.

4.7 Inferencia de LLM y razonamiento gráfico, análisis, ejecución y posprocesamiento de consultas

        Finalmente, al final de esta sección, detallaremos cómo utilizar LLM optimizados en Graph-ToolFormer para manejar diversas tareas de razonamiento gráfico. Como se muestra en la Figura 3, el proceso de razonamiento gráfico basado en múltiples módulos funcionales tiene varios pasos importantes, que incluyen: (1) generación de declaraciones de consulta de salida basadas en LLM; (2) extracción y análisis de consultas; (3) ejecución de consultas; (4) ) Centro de datos de gráficos; (5) Centro de modelos de gráficos; (6) Centro de tareas de gráficos; (7) Memoria de trabajo; (8) Postprocesamiento de salida de inferencia. En esta sección, presentaremos a los lectores estos pasos y los módulos/centros funcionales relacionados utilizados en Graph-ToolFormer.

        4.7.1 Inferencia de LLM.

        Con base en el conjunto de datos de solicitud, analizamos en la sección anterior cómo ajustar los LLM en Graph-ToolFormer, que puede generar resultados de declaraciones de consulta de inferencia gráfica para elementos de estado de entrada. Al aplicar LLM ajustados para la inferencia, dada cualquier declaración de entrada de inferencia gráfica, los LLM proyectarán la declaración de entrada en la declaración de salida correspondiente y la anotarán con llamadas API. También proporcionamos un ejemplo del proceso de inferencia de la siguiente manera

         Al mismo tiempo, al incorporar conjuntos de datos de indicaciones basados ​​en preguntas y respuestas en el ajuste de los LLM, Graph-ToolFormer también puede generar declaraciones de razonamiento gráfico para consultas de preguntas de entrada, como

         Para la gran mayoría de declaraciones y problemas de entrada de razonamiento gráfico, LLM en Graph-ToolFormer puede agregar las llamadas API de razonamiento gráfico correctas en la ubicación correcta de la salida (ilustramos los resultados experimentales en la Sección 5 a continuación). Estas declaraciones de salida generadas con llamadas API se introducirán en el módulo analizador siguiente para extraer consultas de razonamiento gráfico.

4.7.2 Módulo analizador de consultas.

        Dado que Graph-ToolFormer permite llamadas API secuenciales y anidadas, analizar las consultas de inferencia de gráficos de salida generadas por LLM no es un asunto trivial. Aquí, podemos tomar la consulta de salida "[GR(GL("cora"),"graph-bert:topic",{Paper#1})–>r] como ejemplo de la consulta generada por LLM introducida anteriormente. sección
Graph: el marco ToolFormer presenta un módulo analizador de consultas que es capaz de reconocer consultas y analizarlas en un formato estándar que puede ser reconocido y ejecutado por el módulo ejecutor. El resultado analizado esperado de la consulta constará de dos partes

        Análisis de llamadas a funciones: para diferenciar entre consultas de texto normales en declaraciones y consultas de llamadas a API de razonamiento gráfico, usaremos expresiones regulares para identificar y analizar las consultas. La parte de la llamada a la función de la consulta se puede identificar efectivamente usando la siguiente expresión regular de Python

         Se detectarán las etiquetas de función API GR/GL y los parámetros en las llamadas API. Para los parámetros en las llamadas API, si encontramos que hay llamadas API anidadas (al detectar marcadores de corchetes (y)), analizaremos recursivamente las llamadas API anidadas.

Análisis de inserción de salida: la extracción de la etiqueta de inserción de salida "->r" será más fácil, que también se puede identificar mediante expresiones regulares, es decir.

         Para las llamadas API estudiadas en este artículo, si la etiqueta "->r" está presente, reemplazaremos el texto de la consulta e insertaremos los resultados de la inferencia gráfica en el texto original; de lo contrario, la consulta solo se ejecutará en segundo plano y sus resultados quedarán registrados en la memoria de trabajo posteriormente.Reintroducción.

        Por ejemplo, para la consulta de ejemplo "[GR(GL("cora"), "graph-bert:topic",{Paper#1})->r]" generada por LLM, sus resultados de análisis anidados se pueden obtener mediante el Marco Graph-ToolFormer El módulo analizador de consultas se representa como "((GR, [(GL, ["cora"]), "graph-bert:topic", {Paper#1}]), [True])", donde la marca "Verdadero" indica la presencia de la marca de inserción de salida "->r", es decir, "->r". e., necesitamos reemplazar el texto de la consulta con el resultado de la inferencia en la declaración de salida

4.7.3 Centro de razonamiento gráfico.

        Todos los kits de herramientas y modelos de API de inferencia y carga de gráficos están precargados y listos para usar antes de la inferencia en consultas de análisis. Además, todos los datos del gráfico que se cargarán se organizarán en un formato unificado para que las funciones API de carga de gráficos puedan manejarlos. Específicamente, introdujimos varios centros en el marco Graph-ToolFormer para albergar varios conjuntos de datos de gráficos, modelos de gráficos previamente entrenados y tareas de razonamiento de gráficos, respectivamente.

        Graph Dataset Center: un conjunto de conjuntos de datos de gráficos preprocesados ​​que se utilizarán en el marco Graph-ToolFormer se organizará en Graph Dataset Center. Todos estos conjuntos de datos estarán en un formato unificado y permitirán que el marco Graph-ToolFormer y los modelos gráficos previamente entrenados accedan a la información requerida durante la inferencia. En el apéndice, presentaremos el formato de organización de datos estándar utilizado por el código fuente de Graph-ToolFormer.

        Específicamente, los conjuntos de datos alojados en Graph Dataset Center incluyen

        – Conjunto de datos de inferencia de atributos de gráficos: GPR;

        – Conjuntos de datos de redes bibliográficas: Cora, Pubmed, Citeseer;

        – Conjuntos de datos de gráficos moleculares: proteína, Mutag, Nci1, Ptc;

         – Conjuntos de datos de redes sociales en línea: Twitter, Foursquare;

         – Conjuntos de datos del sistema de recomendación: Amazon, Last-FM, Movielens;

         – Conjuntos de datos de gráficos de conocimiento: WordNet, Freebase. A continuación se presentan más detalles sobre el conjunto de datos de gráficos estudiado en este artículo cuando analizamos los experimentos en la Sección 5.

        Centro de modelos de gráficos: en el marco Graph-ToolFormer, también definimos un Centro de modelos de gráficos para alojar múltiples herramientas de gráficos (listas para usar) y modelos de redes neuronales de gráficos previamente entrenados. Específicamente, los modelos de gráficos incluidos en el marco Graph-ToolFormer incluyen

        – Toolx: este artículo se crea en base a networkx y se utiliza para el cálculo de atributos;

        – Graph-Bert [60]: creado para representación de gráficos y clasificación de nodos;

        – SEG-Bert [58]: creado para representación de gráficos y clasificación de instancias de gráficos;

        – KMeans [26]: creado para partición de gráficos y agrupación de nodos;

        – BPR [42]: creado para clasificación y recomendación de enlaces;

        – TransE [4]: ​​​​Creado para la búsqueda de entidades/relaciones gráficas.

Más detalles sobre estos modelos se presentan en la Sección 5 a continuación. Estos modelos de gráficos implementarán funciones básicas de razonamiento de gráficos que se llamarán en tareas específicas de razonamiento de gráficos en el conjunto de datos de gráficos proporcionado.

        Centro de tareas de gráficos: finalmente, el Centro de tareas de gráficos definirá las tareas específicas de razonamiento gráfico que se estudiarán en el marco Graph-ToolFormer. Como se introdujo anteriormente en la Sección 3.3, la mayoría de las tareas de razonamiento de gráficos se pueden simplificar en varias tareas de aprendizaje de gráficos muy básicas, como (1) cálculo de atributos de gráficos, (2) clasificación de nodos, (3) clasificación de gráficos, (4) partición/agrupación de gráficos. , (5) predicción/clasificación de enlaces y (6) tareas de búsqueda de gráficos. Para todas las tareas de razonamiento de gráficos orientadas a aplicaciones introducidas en la Sección 4.3, a saber (1) razonamiento de atributos de gráficos, (2) razonamiento de temas de artículos bibliográficos, (3) razonamiento de funciones de gráficos moleculares, (4) razonamiento de comunidades de redes sociales, (5) sistema de recomendación razonamiento y (6) razonamiento de gráficos de conocimiento, los simplificamos a tareas de aprendizaje de gráficos muy básicas en el centro de tareas de gráficos.

        Además de los centros mencionados anteriormente, dentro del marco Graph-ToolFormer tenemos un centro adicional que aloja LLM para generar API de inferencia de gráficos basadas en entradas obtenidas de las interacciones con los usuarios finales. El Centro LLM albergará un conjunto de modelos de lenguaje perfeccionados para tareas de inferencia de gráficos. Específicamente, en el marco Graph-ToolFormer estudiado en este artículo, se pueden incorporar múltiples LLM (como GPT-J 6B de 8 bits) al concentrador para generar declaraciones de razonamiento gráfico.

4.7.4 Módulo ejecutor de consultas.

        Además, la salida generada se someterá a un posprocesamiento adicional mediante la detección e inicio de llamadas API dentro de ella. Dependiendo de si es necesario generar el resultado de la llamada a la API, el ejecutor Graph-ToolFormer reemplazará aún más la llamada a la API con el resultado de la devolución en la declaración. Por ejemplo, para el ejemplo mencionado en la Sección 4.7.1, de acuerdo con el resultado del análisis "((GR, [(GL, ["cora"]), "graph-bert:topic", {Paper#1}]), [Verdadero])", Graph-ToolFormer reconocerá y ejecutará la siguiente consulta

        Función externa: "GR", es decir, la función externa se utiliza para razonamiento gráfico. -

         Parámetros de función externa: "[(GL,["cora"]),"graph-bert:topic",{Paper#1}]". ".

         - Parámetro 1: "(GL, ["cora"])", el primer parámetro es la llamada API anidada.

        ∗ Función interna: "GL", la función interna se utiliza para la carga de gráficos.

        ∗ Parámetro de función interna: "["cora"]", es decir, la API de carga de gráficos cargará el conjunto de datos de la red Cora.

        - Parámetro 2: ""graph-bert:topic"", el segundo parámetro representa la función de inferencia externa, que está diseñada para utilizar el modelo Graph-Bert para inferir el tema.

        - Parámetro 3: "{Paper#1}", el tercer parámetro indica que el foco de la función de inferencia externa es "Pa-per#1" en el conjunto de datos del gráfico de entrada.

        - Etiqueta de inserción de salida: "Verdadero", es decir, esta consulta necesita reemplazar e insertar los resultados de la consulta en la declaración

        Después de analizar la consulta en el texto, el módulo ejecutor de consultas en Graph-ToolFormer llamará a la función API correspondiente para ejecutar la consulta en función de los datos y parámetros del gráfico proporcionados, es decir, "Graph-Bert.topic(cora, {Paper# 1})", esta función devolverá los resultados de la consulta de inferencia de gráficos, es decir, la red neuronal, como resultado de la consulta de inferencia de tema del artículo bibliográfico. Además, dado que la etiqueta de inserción de salida "->r" existe en la consulta, el módulo ejecutor de consultas en Graph-ToolFormer también reemplazará la secuencia de etiquetas de consulta con el resultado de la inferencia. El resultado de salida final de Graph-ToolFormer es el siguiente:

Supongo que te gusta

Origin blog.csdn.net/qq_40671063/article/details/132998060
Recomendado
Clasificación