Los buenos trozos hacen buenos RAG.
La fragmentación, la incrustación y la indexación son aspectos fundamentales de los RAG. Una aplicación RAG que utiliza la técnica de fragmentación adecuada tiene un buen rendimiento en términos de calidad y velocidad de salida.
Al diseñar una secuencia de LLM, utilizamos diferentes estrategias para dividir el texto. La división recursiva de caracteres es la técnica más popular. Utiliza un enfoque de ventana deslizante con una longitud de token fija. Sin embargo, este enfoque no garantiza que pueda contener un tema de manera suficiente dentro de su tamaño de ventana. Además, existe el riesgo de que parte del contexto se divida en diferentes fragmentos.
La otra técnica que me encanta es la división semántica. La división semántica divide el texto siempre que hay un cambio significativo entre dos oraciones consecutivas. No tiene restricciones de longitud, por lo que puede tener muchas oraciones o muy pocas, pero es más probable que capture los diferentes temas con mayor precisión.
Incluso el enfoque de división semántica tiene un problema.
¿Qué pasa si oraciones que están alejadas unas de otras son más cercanas en su significado?