La forma en la que los modelos de lenguaje procesan y segmentan el texto está cambiando del enfoque estático tradicional a un proceso mejor y más receptivo. A diferencia de la fragmentación tradicional de tamaño fijo, que fragmenta documentos grandes en puntos fijos, la fragmentación agéntica emplea técnicas basadas en IA para analizar el contenido en un proceso dinámico y determinar la mejor manera de segmentar el texto.
La fragmentación agéntica utiliza métodos de división de texto basados en IA, fragmentación recursiva y métodos de superposición de fragmentos, que funcionan simultáneamente para pulir la capacidad de fragmentación, preservando los vínculos entre ideas notables y optimizando las ventanas contextuales en tiempo real. Con la fragmentación agéntica, cada fragmento se enriquece con metadatos para profundizar la precisión de recuperación y la eficiencia general del modelo. Esto es especialmente importante en las aplicaciones RAG, donde la segmentación de los datos puede afectar directamente a la calidad de la recuperación y a la coherencia de la respuesta. El contexto significativo se conserva en todos los fragmentos más pequeños, lo que hace que este enfoque sea increíblemente importante para los chatbots, las bases de conocimiento y los casos de uso de IA generativa (IA gen). Los marcos como Langchain o LlamaIndex mejoran aún más la eficiencia de recuperación, lo que hace que este método sea muy eficaz.
1. Estrategia de fragmentación adaptativa: elija dinámicamente el mejor método de fragmentación en función del tipo de contenido, la intención detrás de la consulta y las necesidades de recuperación para garantizar una segmentación eficaz.
2. Dimensionamiento dinámico de fragmentos: modificación del tamaño de los fragmentos en tiempo real teniendo en cuenta la estructura semántica y el contexto, en lugar de ceñirse a límites fijos de token.
3. Superposición que preserva el contexto: evaluación inteligente de la superposición entre fragmentos para mantener intacta la coherencia y evitar la pérdida de información esencial, mejorando así la eficiencia de la recuperación.
Boletín del sector
Obtenga conocimientos organizados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM.
Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.
La fragmentación agéntica ofrece ventajas sobre la fragmentación tradicional:
a. Conserva el contexto: mantiene la información crucial sin interrupciones innecesarias.
b. Dimensionamiento inteligente: ajusta los límites de los fragmentos según el significado y la importancia.
c. Optimizada para consultas: refina continuamente los fragmentos para que coincidan con consultas específicas.
d. Recuperación eficiente: mejora la salida de los sistemas de búsqueda y RAG al minimizar la fragmentación innecesaria.
En este tutorial, experimentará con la estrategia de fragmentación agéntica utilizando el modelo IBM® Granite-3.0-8B-Instruct ahora disponible en watsonx.ai. El objetivo general es realizar una fragmentación eficiente para implementar RAG de manera efectiva.
Necesita una cuenta de IBM® Cloud para crear un proyecto watsonx.ai.
Aunque puede elegir entre varias herramientas, este tutorial le muestra cómo configurar una cuenta de IBM para utilizar un Jupyter Notebook.
Inicie sesión en watsonx.ai utilizando su cuenta de IBM Cloud.
Cree un proyecto watsonx.ai.
Puede obtener el ID de su proyecto desde su proyecto. Haga clic en la pestaña Administrar. A continuación, copie el ID del proyecto de la sección Detalles de la página General. Necesita este ID para este tutorial.
Cree un Jupyter Notebook.
Este paso abre un entorno de Notebook donde puede copiar el código de este tutorial. También puede descargar este cuaderno en su sistema local y cargarlo en su proyecto watsonx.ai como activo. Para ver más tutoriales de Granite, consulte la comunidad de IBM® Granite. Este Jupyter Notebook junto con los conjuntos de datos utilizados se pueden encontrar en GitHub.
Cree una instancia de servicio de watsonx.ai Runtime (seleccione la región adecuada y elija el plan Lite, que es una instancia gratuita).
Genere una clave de API.
Asocie la instancia del servicio watsonx.ai Runtime al proyecto que ha creado en watsonx.ai.
Necesitará algunas bibliotecas y módulos para este tutorial. Asegúrese de importar los siguientes y, si no están instalados, una instalación rápida de pip resuelve el problema.
Tenga en cuenta que este tutorial se creó con Python 3.12.7
Para establecer nuestras credenciales, necesitamos "WATSONX_APIKEY" y "WATSONX_PROJECT_ID" . También estableceremos la URL que sirve como endpoint de la API.
Para este tutorial, sugerimos utilizar el modelo Granite-3.0-8B-Instruct de IBM el LLM para lograr resultados similares. Puede utilizar cualquier modelo de IA de su elección. Los modelos fundacionales disponibles a través de watsonx se pueden encontrar aquí.
Esta función extrae el contenido de texto de la página del explicador de IBM sobre machine learning. Esta función elimina los elementos HTML no deseados (scripts, estilos) y devuelve un texto limpio y legible.
En lugar de utilizar un método de fragmentación de longitud fija, utilizamos un LLM para dividir el texto en función del significado. Esta función aprovecha un LLM para dividir de forma inteligente el texto en fragmentos semánticamente significativos basados en temas.
Imprimamos los fragmentos para comprender mejor su estructura de salida.
¡Genial! Los fragmentos se crearon correctamente por los agentes en la salida.
Ahora que hemos experimentado con la fragmentación agéntica en el texto, vamos a trasladar nuestra implementación de RAG.
Para este tutorial, elegimos los fragmentos producidos por los agentes y los convertimos en embeddings. Un almacén de vectores de código abierto que podemos utilizar es Chroma DB. Podemos acceder fácilmente a la funcionalidad de Chroma a través del paquete langchain_chroma. Inicialicemos nuestra base de datos de vectores Chroma, proporcionémosle nuestro modelo de incrustaciones y añadamos nuestros documentos producidos por fragmentación agéntica.
Cree una base de datos vectorial Chroma
Convierta cada fragmento de texto en un objeto de documento
Añada los documentos a la base de datos vectorial.
Ahora podemos crear una plantilla de instrucción para nuestro LLM. Esta plantilla garantiza que podamos hacer varias preguntas manteniendo una estructura de instrucciones coherente. Además, podemos integrar nuestro almacén de vectores como el recuperador, finalizando el marco RAG.
Usando estos fragmentos de agencia en el flujo de trabajo RAG, comencemos una consulta de usuario. En primer lugar, podemos estimular estratégicamente el modelo sin ningún contexto adicional del almacén de vectores que hemos creado para comprobar si el modelo está utilizando su conocimiento integrado o realmente el contexto RAG. Utilizando el explicador de machine learning de IBM, planteemos la pregunta ahora.
Claramente, el modelo no se entrenó con información sobre el proceso de optimización del modelo y, sin herramientas o información externas, no puede proporcionarnos la información correcta. El modelo alucina. Ahora, intentemos proporcionar la misma consulta a la cadena RAG con los fragmentos de agencia que hemos creado.
¡Genial! El modelo Granite utilizó correctamente los fragmentos RAG agénticos como contexto para proporcionarnos información correcta sobre el proceso de optimización del modelo, preservando al mismo tiempo la coherencia semántica.
En este tutorial, generamos piezas más pequeñas de información relevante utilizando agentes de IA en el proceso de fragmentación y construimos un pipeline de generación aumentada por recuperación (RAG).
Este método mejora la recuperación de información y la optimización de la ventana de contexto utilizando inteligencia artificial y procesamiento del lenguaje natural (PLN). Optimiza los fragmentos de datos para mejorar la eficiencia de recuperación al aprovechar los grandes modelos de lenguaje (LLM) como los modelos GPT de OpenAI para obtener mejores resultados.
Permita a los desarrolladores crear, implementar y monitorizar agentes de IA con el estudio IBM watsonx.ai.
Cree una productividad sin precedentes con uno de los conjuntos de capacidades más completos del sector para ayudar a las empresas a crear, personalizar y gestionar agentes y asistentes de IA.
Ahorre más de un 90 % en costes con los modelos más pequeños y abiertos de Granite, diseñados para la eficiencia de los desarrolladores. Estos modelos listos para uso empresarial ofrecen un rendimiento excepcional frente a los puntos de referencia de seguridad y en una amplia gama de tareas empresariales, desde la ciberseguridad hasta RAG.