• Saltar a la navegación principal
  • Saltar al contenido principal
Logo Codificando Bits

Codificando Bits

  • Academia
    • Rutas
    • Cursos
    • Proyectos
    • Tutoriales
  • Acceder
  • Suscribirse

4 – Estrategias de fragmentación de texto (chunking)

Lección 4 del curso Búsqueda Semántica con LLMs.

En la lección anterior vimos cómo implementar nuestro primer sistema de Búsqueda Semántica usando recuperación densa, con ayuda de Python y librerías como «sentence transformers» (de HuggingFace) y «faiss» (de Meta).

En esta lección veremos qué es el chunking (o fragmentación de textos), una estrategia que nos permite subdividir los documentos en fragmentos de tamaño adecuado para el modelo de lenguaje. Así que vamos a ver cuáles son las estrategias de chunking más usadas comúnmente, cómo implementarlas usando la librería LangChain y qué efecto tienen en la Búsqueda Semántica por recuperación densa.

Así que comencemos viendo qué librerías usaremos en esta práctica así como las características de nuestro set de datos:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

En este caso usaremos el módulo «RecursiveCharacterTextSplitter» de la librería LangChain para implementar con muy pocas líneas de código las estrategias más comunes para la fragmentación de texto.

Veamos entonces cuáles son estas estrategias, cómo implementarlas y cómo usarlas para construir un sistema de Búsqueda Semántica:

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

Como acabamos de ver, cuando nuestros documentos son texto en bruto podemos usar varias estrategias de chunking: por párrafos, por párrafos con solapamiento o por frases. Y la implementación de estas estrategias es muy simple si usamos LangChain.

Además, vimos que los resultados arrojados por el sistema de Recuperación Densa se ven afectados por la estrategia de fragmentación seleccionada.

En este caso particular, la fragmentación por párrafos o la no fragmentación resultaron ser las estrategias que arrojan mejores resultados. Sin embargo, en la práctica se sugiere evaluar el desempeño del sistema de Búsqueda Semántica usando las métricas que veremos en la última lección de este curso.

Ahora bien, hasta este punto hemos visto cómo implementar un sistema tipo Dense Retrieval usando un índice dinámico (que resulta fácil de implementar usando la librería «faiss»). Sin embargo, en la práctica podemos tener varios miles o incluso cientos de miles o millones de documentos en nuestra base de datos y por tanto no es práctico ni conveniente recalcular de forma dinámica este índice.

Así que una alternativa a este inconveniente es la implementación de sistemas de Búsqueda Semántica haciendo uso de bases de datos vectoriales, que será precisamente el tema de la próxima lección.

Todas las lecciones del curso Búsqueda Semántica con LLMs

© Codificando Bits, LLC | Blog | Contacto | Servicios | Acerca de | Políticas

¿Has olvidado la contraseña?
¿Has perdido tu contraseña? Por favor, introduce tu nombre de usuario o dirección de correo electrónico. Recibirás por correo electrónico un enlace para crear una nueva contraseña.
body::-webkit-scrollbar { width: 7px; } body::-webkit-scrollbar-track { border-radius: 10px; background: #f0f0f0; } body::-webkit-scrollbar-thumb { border-radius: 50px; background: #dfdbdb }