GraphGen: ajuste de modelos lingüísticos mediante grafos de conocimiento para generar datos sintéticos
Últimos recursos sobre IAPublicado hace 4 meses Círculo de intercambio de inteligencia artificial 11.3K 00
Introducción general
GraphGen es un marco de código abierto desarrollado por OpenScienceLab, un laboratorio de IA de Shanghái, alojado en GitHub, que se centra en la optimización del ajuste fino supervisado de grandes modelos lingüísticos (LLM) guiando la generación de datos sintéticos a través de grafos de conocimiento. Construye grafos de conocimiento de grano fino a partir del texto de origen, identifica los puntos ciegos del conocimiento del modelo utilizando métricas de error de calibración esperado (ECE) y prioriza la generación de pares de preguntas y respuestas orientadas al conocimiento de cola larga y alto valor. GraphGen admite el muestreo de vecindad multisalto para capturar información relacional compleja y genera datos diversificados mediante el control de estilo. El proyecto se rige por la licencia Apache 2.0 y el código está abierto a la investigación académica y el desarrollo comercial. Los usuarios pueden configurar el proceso de generación de forma flexible mediante la línea de comandos o la interfaz Gradio, y los datos generados pueden utilizarse directamente para el entrenamiento de modelos.


Lista de funciones
- Construcción de grafos de conocimiento de grano fino: extracción de entidades y relaciones a partir de texto para generar grafos de conocimiento estructurados.
- Identificación de puntos ciegos de conocimiento: localización de puntos débiles de conocimiento en modelos lingüísticos basados en métricas de error de calibración esperado (ECE).
- Generar pares de preguntas y respuestas de alto valor: dar prioridad a la generación de datos de preguntas y respuestas para el conocimiento de cola larga con el fin de mejorar el rendimiento del modelo.
- Muestreo de vecindades multisalto: captura de relaciones multinivel en grafos de conocimiento para aumentar la complejidad de los datos.
- Generación de control de estilo: admite diversos estilos de preguntas y respuestas, como concisas o detalladas, para adaptarse a diferentes escenarios.
- Configuración personalizada: ajuste los tipos de datos, los archivos de entrada y las rutas de salida mediante archivos YAML.
- Soporte de interfaz Gradio: Proporciona una interfaz visual para simplificar las operaciones de generación de datos.
- Compatibilidad de modelos: admite múltiples modelos lingüísticos (por ejemplo, Qwen, OpenAI) para la generación de datos y el entrenamiento.
Utilizar la ayuda
Proceso de instalación
GraphGen es un proyecto Python que admite la instalación desde PyPI o la ejecución desde el código fuente. Aquí están los pasos detallados de instalación:
Instalación desde PyPI
- Instalar GraphGen
Asegúrese de que la versión de Python es 3.8 o superior ejecutando el siguiente comando:pip install graphg
- Configuración de variables de entorno
GraphGen requiere una llamada a una API de modelado de lenguaje (como Qwen u OpenAI). Establece variables de entorno en el terminal:export SYNTHESIZER_MODEL="your_synthesizer_model_name" export SYNTHESIZER_BASE_URL="your_base_url" export SYNTHESIZER_API_KEY="your_api_key" export TRAINEE_MODEL="your_trainee_model_name" export TRAINEE_BASE_URL="your_base_url" export TRAINEE_API_KEY="your_api_key"
SYNTHESIZER_MODEL
Modelos de generación de grafos de conocimiento y datos.TRAINEE_MODEL
Modelos utilizados para la formación.
- Ejecutar la herramienta de línea de comandos
Ejecute el siguiente comando para generar los datos:graphg --output_dir cache
Instalación desde el origen
- almacén de clones
Clona el repositorio GraphGen localmente:git clone https://github.com/open-sciencelab/GraphGen.git cd GraphGen
- Creación de un entorno virtual
Crear y activar un entorno virtual:python -m venv venv source venv/bin/activate # Linux/Mac venv\Scripts\activate # Windows
- Instalación de dependencias
Instale las dependencias del proyecto:pip install -r requirements.txt
Asegúrese de que PyTorch (se recomienda 1.13.1 o superior) y las bibliotecas relacionadas (por ejemplo, LiteLLM, DSPy) están instaladas. Si utilizas una GPU, instala una versión compatible con CUDA:
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 --extra-index-url https://download.pytorch.org/whl/cu117
- Configuración de variables de entorno
Copie el archivo de entorno de ejemplo y edítelo:cp .env.example .env
existe
.env
para establecer la información relacionada con el modelo:SYNTHESIZER_MODEL=your_synthesizer_model_name SYNTHESIZER_BASE_URL=your_base_url SYNTHESIZER_API_KEY=your_api_key TRAINEE_MODEL=your_trainee_model_name TRAINEE_BASE_URL=your_base_url TRAINEE_API_KEY=your_api_key
- Preparación de la introducción de datos
GraphGen requiere texto de entrada en formato JSONL. Los datos de ejemplo se encuentran en el archivoresources/examples/raw_demo.jsonl
. Los usuarios pueden preparar datos personalizados para garantizar un formato coherente.
Utilización
GraphGen soporta tanto la línea de comandos como la interfaz Gradio. Aquí están los pasos detallados:
operación desde la línea de comandos
- Modificar el archivo de configuración
compiladorconfigs/graphgen_config.yaml
para establecer los parámetros de generación de datos:data_type: "raw" input_file: "resources/examples/raw_demo.jsonl" output_dir: "cache" ece_threshold: 0.1 sampling_hops: 2 style: "detailed"
data_type
Tipo de datos de entrada (por ejemploraw
).input_file
Introduzca la ruta del archivo.output_dir
Directorio de salida.ece_threshold
: Umbrales ECE para la identificación de puntos ciegos de conocimiento.sampling_hops
Profundidad de muestreo multisalto.style
: Estilos de generación de preguntas y respuestas (p. ej.detailed
tal vezconcise
).
- Ejecutar el script generado
Ejecute el siguiente comando para generar los datos:bash scripts/generate.sh
o simplemente ejecuta un script de Python:
python -m graphg --config configs/graphgen_config.yaml
- Ver resultados generados
Los pares de preguntas y respuestas generados se guardan en el archivocache/data/graphgen
en formato JSONL:ls cache/data/graphgen
Funcionamiento de la interfaz de Gradio
- Inicio de la interfaz de Gradio
Ejecute el siguiente comando para iniciar la interfaz de visualización:python webui/app.py
El navegador abrirá la interfaz de Gradio mostrando el proceso de generación de datos.
- flujo de trabajo
- Carga un archivo de entrada con formato JSONL en la interfaz.
- Configure los parámetros de generación (por ejemplo, umbral ECE, profundidad de muestreo, estilo de generación).
- Haga clic en el botón "Generar" y el sistema procesará la entrada y emitirá los pares de preguntas y respuestas.
- Descargue el archivo JSONL generado.
Función destacada Operación
- construcción de grafos de conocimientoGraphGen extrae automáticamente entidades y relaciones del texto de entrada, genera un grafo de conocimiento y lo guarda en formato JSON. No es necesaria ninguna intervención manual.
- Identificación de ángulos muertosPredicción de sesgos mediante el modelo de análisis de métricas de la CEPE y generación de pares de preguntas y respuestas específicas. Ajuste
ece_threshold
Control del rigor del cribado ciego. - Muestreo de vecindad multisalto: Captura de relaciones multinivel en grafos de conocimiento para generar pares complejos de preguntas y respuestas. Configuración
sampling_hops
Controla la profundidad de muestreo. - Generación de control de estilo: Se admiten múltiples estilos de preguntas y respuestas para diferentes escenarios. Los usuarios pueden
style
El parámetro selecciona el estilo.
Modelos de formación
Los datos generados pueden utilizarse para el ajuste fino supervisado (SFT). Importe el archivo de salida en un marco que admita SFT (por ejemplo, XTuner):
xtuner train --data cache/data/graphgen/output.jsonl --model qwen-7b
advertencia
- Asegúrese de que la clave API y la conexión de red son estables y de que el proceso de generación llama a un modelo externo.
- Los datos de entrada deben estar en formato JSONL, consulte
raw_demo.jsonl
. - Los dispositivos GPU se recomiendan para la generación de datos a gran escala con el fin de optimizar el rendimiento.
- Compruebe las versiones de las dependencias para evitar conflictos. Actualice si es necesario
requirements.txt
.
Recursos complementarios
- Centro de aplicaciones OpenXLab: Los usuarios pueden acceder a la información a través del OpenXLab Experimente GraphGen.
- FAQ oficiales: consulte la página de GitHub PREGUNTAS FRECUENTES Resolver problemas comunes.
- análisis técnico: Cortesía de DeepWiki Análisis de la arquitectura del sistemaEsta sección describe en detalle el flujo de trabajo de GraphGen.
escenario de aplicación
- investigación académica
Los investigadores pueden utilizar GraphGen para generar datos de preguntas y respuestas para dominios especializados. Por ejemplo, generar datos de entrenamiento para un modelo de dominio de química o medicina mejora la cobertura de conocimientos del modelo. - Optimización de la IA empresarial
Las empresas pueden utilizar GraphGen para generar pares de preguntas y respuestas personalizados para el servicio de atención al cliente o los sistemas de recomendación, optimizando la capacidad de respuesta de sus modelos de diálogo. - Desarrollo de plataformas educativas
Los desarrolladores pueden generar diversos datos pedagógicos de preguntas y respuestas para construir herramientas educativas inteligentes que apoyen el aprendizaje personalizado.
CONTROL DE CALIDAD
- ¿Qué modelos admite GraphGen?
GraphGen es compatible con OpenAI, Qwen, Ollama y otros modelos a través de LiteLLM. Se requieren claves y direcciones API de modelo. - ¿Cómo preparo los datos de entrada?
Los datos de entrada deben estar en formato JSONL, y cada línea debe contener texto. Referenciaresources/examples/raw_demo.jsonl
. - ¿Cuánto tiempo se tarda en generar datos?
Los datos de pequeño tamaño (100 entradas) pueden tardar unos minutos, y los de gran tamaño, horas, dependiendo de la cantidad de entradas y del rendimiento del hardware. - ¿Cómo funciona la interfaz de Gradio?
estar en movimientopython webui/app.py
Los datos se generan cargando el archivo de entrada a través del navegador y configurando los parámetros.
© declaración de copyright
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...