Fragmentación
La fragmentación es el proceso de dividir un documento grande o un cuerpo de texto en segmentos más pequeños y autónomos (llamados “fragmentos”) para que puedan incrustarse, indexarse y recuperarse de forma individual. En la generación aumentada por recuperación (RAG) y la búsqueda semántica, la fragmentación determina la unidad de texto que un sistema almacena y luego recupera como contexto. Esto, a su vez, define directamente qué tan relevantes y completos son los resultados recuperados.
En resumen: la fragmentación decide cómo se corta un documento largo en piezas recuperables, y hacer el corte correctamente es lo que hace que la recuperación sea tanto precisa como concisa (es decir, capaz de referirse a subconjuntos del documento “correcto” según sus necesidades).
Cómo funciona la fragmentación
La fragmentación existe debido a dos límites: los modelos de incrustación y las ventanas de contexto de los LLM solo pueden manejar cierta cantidad de texto a la vez, y la recuperación es más precisa cuando cada unidad almacenada está enfocada temáticamente. El proceso normalmente se ejecuta de la siguiente manera:
- Análisis: Se extrae texto limpio de la fuente (HTML, PDF, etc.), preservando idealmente la estructura, como títulos, párrafos y listas.
- Segmentación: El texto se divide en fragmentos usando una estrategia elegida (ver más abajo).
- Superposición: A menudo se repite una pequeña cantidad de texto entre fragmentos adyacentes para que el significado no se pierda en los límites.
- Enriquecimiento: Cada fragmento puede etiquetarse con metadatos o contexto circundante (como la fuente, el título de la sección y un breve resumen) para que resulte más autoexplicativo por sí mismo.
- Incrustación e indexación: Cada fragmento se convierte en una incrustación vectorial y se almacena en una base de datos vectorial, indexada para una búsqueda rápida.
- Recuperación: En el momento de la consulta, el sistema encuentra los fragmentos cuyas incrustaciones son más similares a la consulta y los pasa al modelo como contexto.
La tensión que define todo es el tamaño: los fragmentos demasiado grandes diluyen la relevancia y desperdician contexto, mientras que los fragmentos demasiado pequeños pierden el significado circundante. Una buena fragmentación es el arte de equilibrar ambos para un tipo determinado de contenido.
Fragmentación vs. tokenización e incrustación
- La tokenización divide el texto en tokens (unidades de subpalabras) para que un modelo pueda procesarlo; la fragmentación divide los documentos en pasajes para que un sistema pueda almacenarlos y recuperarlos. Diferente granularidad, diferente propósito.
- La incrustación convierte un fragmento en un vector numérico; la fragmentación es el paso previo que decide qué es realmente cada unidad de texto. Primero fragmentar, luego incrustar.
- La fragmentación de tamaño fijo corta el texto según una longitud establecida (por ejemplo, un número de tokens o caracteres); la fragmentación semántica corta en los límites de significado para que cada fragmento se mantenga coherente temáticamente. La primera es más simple y rápida; la segunda tiende a recuperar de forma más limpia.
Dónde se usa la fragmentación
- Canalizaciones de generación aumentada por recuperación (RAG): La fragmentación prepara los documentos fuente para que los pasajes más relevantes puedan recuperarse y proporcionarse al modelo en el momento de la respuesta.
- Búsqueda semántica y vectorial: Buscar sobre fragmentos en lugar de documentos completos devuelve pasajes enfocados y relacionados con el tema en lugar de páginas extensas.
- Chatbots de documentos y bases de conocimiento: Las respuestas a preguntas sobre manuales, wikis y documentos de soporte dependen de fragmentos bien formados para mostrar la respuesta correcta.
- Resumen y análisis de documentos largos: Un modelo solo puede recibir cierta cantidad de texto a la vez (esto se conoce como la ventana de contexto del modelo), por lo que un libro o informe largo no cabrá en una sola pasada. La fragmentación permite que el modelo procese el libro o el informe una pieza a la vez y luego combine esos resultados parciales en una sola visión general.
La estrategia de fragmentación normalmente se ajusta al tipo de contenido (por ejemplo, la prosa densa, el código, las tablas y las transcripciones se fragmentan de forma diferente) y es más importante cuando el contenido es demasiado largo para proporcionarlo por completo. En este caso, la calidad de la recuperación depende de devolver pasajes enfocados y autónomos.
Términos relacionados
Generación aumentada por recuperación (RAG), búsqueda semántica, incrustaciones, base de datos vectorial, tokenización, ventana de contexto, superposición de fragmentos, reclasificación, indexación.