Creación de un índice vectorial
Puede utilizar los siguientes tipos de almacenes vectoriales para indexar sus documentos de puesta a tierra:
- En memoria
- Elasticsearch
- watsonx.data Milvus
Cuando se elige un almacén de vectores en memoria, el índice se crea automáticamente; no es necesario configurar el almacén de vectores.
Antes de empezar
Para conocer los factores que debe tener en cuenta a la hora de elegir un almacén vectorial, consulte Añadir documentos vectorizados para las indicaciones del modelo de cimentación.
Si decide utilizar un almacén de vectores de terceros, deberá establecer una conexión con el almacén de datos antes de crear el índice vectorial. Para más información, consulte el procedimiento adecuado para el almacén de vectores externo que desee utilizar:
Procedimiento
Para crear un índice vectorial para sus documentos de base, siga los pasos siguientes. El orden de los pasos puede variar ligeramente en función del almacén de vectores que decida utilizar.
En la vista general del proyecto, haga clic en la pestaña Activos y, a continuación, seleccione Activo nuevo > Ground gen AI con documentos vectorizados.
Alternativamente, puede empezar desde Prompt Lab en modo chat haciendo clic en el icono de conexión a tierra con documentos
al principio de la página y, a continuación, haciendo clic en Seleccionar o crear índice vectorial.
Elija el almacén de vectores que desee utilizar.
Nombre del activo de índice vectorial.
Añade documentos de puesta a tierra de una de las siguientes maneras:
- Añadir archivos desde un activo de datos asociado a su proyecto
- Examinar para cargar archivos desde su sistema de archivos
Las siguientes opciones sólo están disponibles en tiendas de vectores de terceros:
Añadir contenido existente desde un almacén vectorial conectado
Seleccione la fuente de datos conectada, elija una base de datos si procede y, a continuación, haga clic en Siguiente. Elija el índice o la colección que desea utilizar.
Añadir nuevo contenido a un índice vectorial conectado
Para añadir nuevo contenido a un almacén vectorial conectado, seleccione la fuente de datos conectada, elija una base de datos si procede y, a continuación, haga clic en Siguiente. Haga clic en Nuevo índice o Nueva colección, especifique un nombre y, a continuación, añada documentos cargando archivos o conectándose a un activo de datos.
Los tipos de archivo admitidos varían según el almacén de vectores. Para obtener más información, consulte Tipos de archivo de documento de puesta a tierra admitidos.
Opcional: Si procede, elija el modelo de incrustación o la configuración de vectorización que desea utilizar para vectorizar sus documentos.
Para obtener más información, consulte Configuración del modelo de incrustación y vectorización.
Sólo para almacenes de datos conectados: Asigne campos de su índice o colección existente a nuevos campos definidos en el activo de índice vectorial en watsonx.ai.
Las asignaciones de campos de índice vectorial son importantes porque watsonx.ai necesita una forma coherente de extraer datos y capturar detalles sobre los documentos, como el nombre del archivo original y el número de página, a partir de varios tipos de almacenes vectoriales compatibles.
Tabla 1. Campos de esquema de almacén de vectores Nuevo nombre de campo de índice vectorial Campo del almacén de vectores conectados Consulta vectorial Obligatorio sólo para índices Elasticsearch. Campo donde se especifica el texto de consulta que se utiliza para buscar en el índice Elasticsearch, como mlovector.Nombre del documento Campo que identifica el archivo de origen. Puede elegir un campo que capture el nombre del archivo, como metadata.source, o el título del documento, comometadata.title.Texto Campo que contiene la mayor parte del contenido de la página, como bodyotext.Número de página Campo que identifica el número de página, como metadata.page_number.URL de documento Campo que contiene la URL del documento, como metadata.document_url.Atención:Para utilizar un activo de carpeta conectada que utilice una conexión Cloud Object Storage (COS), asegúrese de que cumple los siguientes requisitos:
- La conexión COS debe tener un cubo especificado.
- La conexión COS debe utilizar credenciales HMAC (id de instancia de recurso, clave api, clave de acceso, clave secreta) como autenticación.
- La conexión COS debe tener un cubo especificado.
Pulse Crear.
El texto del archivo se vectoriza y los vectores se indexan y almacenan en un nuevo activo de índice vectorial.
Cuando se añaden nuevos contenidos a un almacén de datos de terceros conectado, se crean los siguientes activos:
- Un activo de bloc de notas que se ejecuta en un trabajo para vectorizar los documentos y construir el índice o la colección en el almacén de datos de terceros.
- Un activo de índice vectorial que puede pasar consultas enviadas al índice o colección en el almacén de datos de terceros y obtener resultados de búsqueda.
Una vez creado el índice vectorial, puede comprobar si los documentos vectorizados responden a las preguntas y realizar los ajustes necesarios. Véase Gestión de un índice vectorial.
Modelo de incrustación y ajustes de vectorización
Los siguientes ajustes controlan cómo se dividen los documentos en segmentos más pequeños, o chunks, antes de enviarlos al modelo de incrustación:
Tamaño de trozo de texto: Número de caracteres a incluir por segmento de documento.
Defina un tamaño de segmento inferior al número máximo de tokens de entrada permitidos por el modelo. Si divide el documento en segmentos más grandes, es posible que se omita parte del texto del documento, ya que una vez alcanzado el límite de tamaño máximo de token, el modelo de incrustación ignora cualquier carácter adicional del segmento.
El tamaño del trozo se especifica en caracteres. El número de caracteres por token varía según el modelo de incrustación, pero un token equivale aproximadamente a 2-3 caracteres.
Tabla 2. Tamaño de los trozos del modelo de incrustación Modelo de inclusión Número máximo de tokens de entrada Tamaño aproximado del trozo all-MiniLM-L6-v2 256 700 all-MiniLM-l12-v2 256 700 ELSER 512 1400 slate-30m-english-rtrvr-v2 512 1400 slate-125m-english-rtrvr-v2 512 1400 granite-embedding-278m-multilingual 512 1400 Solapamiento de trozos de texto: Número de caracteres a repetir en cada uno de los dos segmentos consecutivos del documento.
La repetición de texto crea un búfer entre los segmentos del documento que ayuda a capturar frases completas y evita que el texto se pierda por completo.
Dividir páginas PDF: Cuando se activa, rompe un archivo PDF en un segmento por página e incluye la fuente del número de página en la respuesta. Los números de página que se muestran son números de página del visor de PDF.
Nota: Esta opción sólo está disponible cuando se añade un archivo PDF.
Utilizar el índice vectorial con una indicación de modelo de fundación
Cuando el índice vectorial esté listo para su uso, asocie este activo de índice vectorial a una solicitud de modelo de cimentación de una de las siguientes maneras:
- En la página del activo de índice vectorial, haga clic en el icono Ver información de índice vectorial
situado al principio de la página para abrir el panel Acerca de este activo y, a continuación, haga clic en Abrir en Prompt Lab.
- Desde la página Prompt Lab en modo chat, haga clic en el icono Conexión a tierra con documentos
al principio de la página y, a continuación, haga clic en Seleccionar o crear índice vectorial.
Utilice este patrón en su aplicación
Después de experimentar con patrones de generación aumentada por recuperación (RAG) que utilicen su conjunto de documentos, guarde la lógica de la consulta en un cuaderno para poder utilizarla en su aplicación de IA generativa.
Cuando guarde el aviso como cuaderno, seleccione la opción Flujo gen AI desplegable. El cuaderno que se genera proporciona Python para la plantilla de avisos y una función Python desplegable que puede ser consumida por las API REST.
Para obtener más información, consulte Guardar el trabajo.
También puede utilizar clases que están disponibles en los SDK de watsonx.ai. Si utiliza el SDK con el índice vectorial en memoria, puede obtener detalles sobre el índice, como el ID del índice vectorial, guardando el aviso como un cuaderno y, a continuación, comprobando el cuaderno para ver los detalles del índice vectorial.