AI Engineering Academy: 2.4 Técnicas de agrupación de datos para sistemas de generación aumentada de recuperación (RAG)

breve

La fragmentación de datos es un paso clave en los sistemas de Generación Aumentada de Recuperación (RAG). Descompone grandes documentos en partes más pequeñas y manejables para una indexación, recuperación y procesamiento eficientes. Este LÉEME contiene RAG Visión general de los distintos métodos de fragmentación disponibles en la cadena de producción.

https://github.com/adithya-s-k/AI-Engineering.academy/tree/main/RAG/01_Data_Ingestion

 

Importancia de la fragmentación en el GAR

La fragmentación eficaz es fundamental para el sistema GAR porque puede:

  1. Mejorar la precisión de la recuperación creando unidades de información coherentes y autónomas.
  2. Mejora de la eficacia de la generación de incrustaciones y la búsqueda de similitudes.
  3. Permite una selección más precisa del contexto al generar las respuestas.
  4. Ayudar a gestionar los modelos lingüísticos y los sistemas integrados de Ficha Limitaciones.

 

Método de fragmentación

Hemos puesto en práctica seis métodos de fragmentación diferentes, cada uno con distintas ventajas y escenarios de uso:

  1. RecursiveCharacterTextSplitter
  2. TokenTextSplitter
  3. KamradtSemanticChunker
  4. KamradtModifiedChunker
  5. ClusterSemanticChunker
  6. LLMSemanticChunker

 

fragmentación

1. SeparadorTextoCaracteresRecursivo

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

2. Divisor de TokenText

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

3. KamradtSemanticChunker

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

4. KamradtModifiedChunker

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

5. ClusterSemanticChunker

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

6. LLMSemanticChunker

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

 

Descripción del método

  1. RecursiveCharacterTextSplitter: Divide el texto basándose en una jerarquía de delimitadores, dando prioridad a los puntos de ruptura naturales del documento.
  2. TokenTextSplitterDivide el texto en bloques de un número fijo de tokens, asegurándose de que la división se produce en los límites de los tokens.
  3. KamradtSemanticChunkerUtiliza incrustaciones de ventana deslizante para identificar discontinuidades semánticas y segmentar el texto en consecuencia.
  4. KamradtModifiedChunker: Una versión mejorada de KamradtSemanticChunker que utiliza la búsqueda por bisección para encontrar el umbral óptimo para la segmentación.
  5. ClusterSemanticChunkerDividir el texto en fragmentos, calcular las incrustaciones y utilizar programación dinámica para crear fragmentos óptimos basados en la similitud semántica.
  6. LLMSemanticChunker: Utiliza la modelización del lenguaje para identificar puntos de segmentación adecuados en el texto.

Utilización

Para utilizar estos métodos de fragmentación en su proceso GAR:

  1. a través de (un hueco) chunkers para importar los troceadores necesarios.
  2. Inicializar el chunker con los parámetros adecuados (por ejemplo, tamaño máximo del chunk, solapamiento).
  3. Pasa tu documento al chunker para obtener los resultados del chunking.

Ejemplo:

from chunkers import RecursiveCharacterTextSplitter
chunker = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
chunks = chunker.split_text(your_document)

Cómo elegir un método de fragmentación

La elección del método de fragmentación depende de su caso de uso específico:

  • Para la división simple de texto, puede utilizar RecursiveCharacterTextSplitter o TokenTextSplitter.
  • Si necesita una segmentación semántica, considere KamradtSemanticChunker o KamradtModifiedChunker.
  • Para un chunking semántico más avanzado, utilice ClusterSemanticChunker o LLMSemanticChunker.

Factores a tener en cuenta al seleccionar un método:

  • Estructura del documento y tipos de contenido
  • Tamaño de trozo y solapamiento requeridos
  • Recursos informáticos disponibles
  • Requisitos específicos del sistema de recuperación (por ejemplo, basado en vectores o en palabras clave).

Es posible probar distintos métodos y encontrar el que mejor se adapte a sus necesidades de documentación y recuperación.

Integración con los sistemas GAR

Una vez realizada la fragmentación, se suelen seguir los siguientes pasos:

  1. Generar incrustaciones para cada trozo (para sistemas de recuperación basados en vectores).
  2. Indexar estos trozos en el sistema de recuperación seleccionado (por ejemplo, base de datos vectorial, índice invertido).
  3. Cuando se responde a una consulta, se utilizan los trozos del índice en el paso de recuperación.

 

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术
© declaración de copyright

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...