ChatGPT combinado con data_llamaindex local

1 función

El modelo grande aprende principalmente datos generales y es posible que los usuarios deban dejar que ChatGPT encuentre respuestas en la base de conocimiento local.
Es poco probable que los usuarios comunes entrenen modelos grandes; debido al rico formato de datos locales y el contenido engorroso, y teniendo en cuenta el costo de uso y las limitaciones del tamaño del token, es imposible enviar todos los datos a ChatGPT cada vez que se hace una pregunta.
llamaindex proporciona una solución a este problema: use ChatGPT para convertir texto local en incrustación y luego cree un índice de datos localmente; cuando realice una consulta, primero consulte localmente y luego use ChatGPT para sintetizar los resultados de la consulta en respuestas. datos y modelos grandes Interfaz.

2 principios

2.1 Módulos

llama_index consta de tres módulos principales:

  • Módulo de datos: se utiliza para leer datos locales o de red y dividir grandes bloques de texto en bloques de nodos.
  • Módulo de indexación y almacenamiento: convierta bloques de texto en representaciones de incrustación incrustadas a través de ChatGPT y almacénelos localmente para crear una base de conocimiento local.
  • Módulo de búsqueda: de acuerdo con las preguntas planteadas por los usuarios, localice las posibles respuestas en la base de conocimiento local y luego pase las preguntas y respuestas a ChatGPT para integrar las respuestas finales.

2.2 Datos de la organización

Cuando un usuario hace una pregunta, debe coincidir con la base de conocimiento local. Si hay muchos contenidos en la base de datos, llevará mucho tiempo de coincidencia. Para ahorrar tiempo, puede generar resúmenes de capítulos, secciones, el contenido general de los archivos de texto, el contenido del directorio, etc. en el artículo, y construir estructuras de árbol, estructuras gráficas o tablas de mapeo de palabras clave capa por capa para ahorrar tiempo de búsqueda. .
llamaindex proporciona varios soportes estructurales, que deben ser llamados por los propios desarrolladores.

2.3 Conceptos básicos

  • Nodo y
    nodo de índice se refiere al bloque de texto segmentado; el índice de índice puede entenderse como el método de almacenamiento local del bloque de datos de nodo convertido por ChatGPT. La estructura del índice admite los métodos Lista, Árbol y Palabra clave; además de crear un índice, también proporciona operaciones de edición para agregar y eliminar subbloques para guardar tokens. Además, además de indexar texto sin formato, también proporciona indexación de gráficos, indexación de tablas e indexación de datos en SQL.

  • Incrustación y Vector
    Aquí, Incrustación y Vector se refieren a los datos convertidos por ChatGPT; la dimensión de incrustación de la versión actual es 1536 (el problema es tan largo como el Nodo); supongamos que cada bloque se establece en un máximo de 600 (Nodo: tamaño de fragmento), si es un archivo de texto con un tamaño de 18K, almacena caracteres chinos utf-8, cada carácter ocupa 3 bytes, más de 6000 caracteres, y se utilizan alrededor de 10 Nodos para el almacenamiento; cada Nodo se convierte en 1538 valores flotantes y almacenado en Local, es decir, Almacén de vectores.

  • Síntesis de consulta y respuesta
    Consulta se refiere a la pregunta formulada por el usuario; Síntesis de respuesta se refiere al método de organizar la respuesta después de ubicar la respuesta opcional en el índice.

3 documentos

3.1 Contenido del documento

Los datos del directorio docs en el código se usan para generar la versión web de la documentación, y la documentación también se puede ver directamente a través de la siguiente URL:
https://gpt-index.readthedocs.io/en/latest/
El directorio de ayuda se puede llamar a través del ícono en la parte superior izquierda de la interfaz de operación, opere la esquina inferior izquierda para cambiar entre diferentes versiones de documentos.

3.2 Ruta de aprendizaje

El documento tiene mucho contenido, incluyendo texto y ejemplos de código fuente. Se recomienda leer el documento en el siguiente orden:

  • galería: Vea las funciones implementadas por otros usando la biblioteca
  • Getting_started: la forma más fácil de empezar y ejemplos
  • guías: Cómo usar para usuarios generales
  • use_case: caso de uso (qué se hace, cómo hacerlo, relativamente simple)
  • how_to (COMPONENTES CLAVE): el índice principal de principios y uso, de arriba a abajo, de superficial a profundo (los tres primeros son los más importantes)
  • referencia: información detallada sobre los detalles, la mayoría de los cuales son documentos generados automáticamente a partir del código fuente (verifíquelo cuando lo use)

4 Análisis de código

  • puntos de referencia: para la evaluación
  • build/dist/scripts: archivos de directorio generados durante el proceso de empaquetado
  • pruebas: casos de prueba
  • llama_index: código fuente central (más de 200 archivos de código fuente)
    • lectores: una herramienta de análisis para leer datos de varias fuentes de datos, y su archivo admite múltiples modos
    • índice, almacenamiento, consulta, etc., se recomienda comenzar a aprender con el documento como punto de entrada
  • ejemplos: ejemplos clasificados
  • experimental: algunos experimentos sin importancia
  • README.md: Ejemplo de la forma más fácil de usar

4.1 Instalación

4.1.1 instalación de tuberías

llamaindex es una biblioteca de python que se puede instalar con pip (se requiere Python 3.8 y superior).

pip install llama-index

4.1.2 Instalación del código fuente

Dado que la versión cambia demasiado rápido, se recomienda utilizar la instalación del código fuente.
Dirección de origen: https://github.com/jerryjliu/llama_index

5 Precauciones

  • Se debe configurar APIKEY para usar ChatGPT
  • Necesita especificar el directorio donde los datos se almacenan localmente
  • Puede hacer múltiples índices si es necesario
  • Tenga en cuenta que la versión instalada es coherente con el código fuente; de ​​lo contrario, el ejemplo no se ejecutará
  • Se recomienda utilizar la última versión. El modo de datos y la información de registro de la última versión 0.6.x son mejores que la versión anterior.

Supongo que te gusta

Origin blog.csdn.net/xieyan0811/article/details/130670805
Recomendado
Clasificación