0 / 0

Personalización de la configuración del experimento RAG

Última actualización: 20 jun 2025
Personalización de la configuración del experimento RAG

Cuando construya una solución de generación aumentada por recuperación en AutoAI, podrá personalizar la configuración del experimento para adaptar sus resultados.

Si ejecuta un experimento RAG basado en la configuración predeterminada, el proceso AutoAI selecciona:

  • La métrica de optimización que se maximizará al buscar el mejor proceso de RAG
  • Los modelos de incrustación para probar, basados en la lista disponible
  • Los modelos de fundación que hay que probar, según la lista disponible

Para ejercer un mayor control sobre el experimento RAG, puede personalizar la configuración del experimento. Después de introducir la información necesaria para la definición del experimento, haga clic en Configuración del experimento para personalizar las opciones antes de ejecutar el experimento. Los ajustes que puedes revisar o editar se dividen en tres categorías:

  • Recuperación y generación : elija qué métrica utilizar para optimizar la elección del patrón RAG, cuántos datos recuperar y los modelos que AutoAI puede utilizar para el experimento.
  • Indexación : elija cómo se desglosan los datos en fragmentos, la métrica utilizada para medir la similitud semántica y qué modelo de incrustación puede utilizar AutoAI para la experimentación.
  • Información adicional: revise la instancia de watsonx.ai Runtime y el entorno a utilizar para el experimento.

Ajustes de recuperación y generación

Ver o editar los ajustes que se utilizan para generar los conductos RAG.

Métrica de optimización

Elija la métrica que desea maximizar al buscar los patrones RAG óptimos. Para obtener más información sobre las métricas de optimización y los detalles de su implementación, consulte las métricas RAG.

  • La fidelidad de la respuesta mide el grado de coincidencia de la respuesta generada con el contexto recuperado del almacén de vectores. La puntuación se calcula utilizando una métrica léxica que cuenta cuántos de los tokens de respuesta generados se incluyen en el contexto recuperado del almacén de vectores. Una puntuación alta indica que la respuesta representa bien el contexto recuperado. Tenga en cuenta que una puntuación de fidelidad alta no indica necesariamente que la respuesta sea correcta. Para más información sobre cómo se implementa la métrica, consulte Fidelidad.
  • La exactitud de la respuesta mide la exactitud de la respuesta generada en comparación con la respuesta correcta proporcionada en los archivos de referencia. Esto incluye la relevancia del contexto recuperado y la calidad de la respuesta generada. La puntuación se calcula utilizando una métrica léxica que cuenta cuántos de los tokens de respuesta de la verdad de campo se incluyen en la respuesta generada. Para obtener más información sobre cómo se implementa la métrica, consulte Exactitud.
  • La corrección del contexto indica hasta qué punto el contexto recuperado del almacén de vectores se alinea con el contexto de la verdad fundamental proporcionado en el punto de referencia. La puntuación se calcula en función del rango del contexto de la verdad de campo entre los fragmentos recuperados. Cuanto más cerca esté el contexto de la realidad del terreno de la parte superior de la lista, mayor será la puntuación. Para más información sobre cómo se aplica la métrica, véase Corrección contextual.

Métodos de recuperación

Puede seleccionar configuraciones automáticamente para recuperar datos relevantes o editar los ajustes de configuración. Los métodos de recuperación difieren en la forma de filtrar y clasificar los documentos.

  • Elija el método de recuperación de ventanas o el método de recuperación simple.

    • El método de recuperación de ventana rodea los fragmentos recuperados con fragmentos adicionales antes y después de los fragmentos, según lo que había en el documento original. Este método es útil para incluir más contexto que podría faltar en el fragmento recuperado originalmente. La recuperación de la ventana funciona de la siguiente manera:
      • Buscar : Encuentra los fragmentos de documento más relevantes en el almacén de vectores.
      • Expandir : para cada fragmento encontrado, recupera los fragmentos circundantes para proporcionar contexto.
      • Cada fragmento almacena su número de secuencia en sus metadatos.
      • Después de recuperar un fragmento, los metadatos del fragmento se utilizan para obtener fragmentos vecinos del mismo documento. Por ejemplo, si window_size es 2, añade 2 fragmentos antes y 2 fragmentos después.
      • Fusionar : Combina el texto superpuesto dentro de la ventana para eliminar redundancias.
      • Manejo de metadatos : fusiona diccionarios de metadatos manteniendo las mismas claves y agrupando valores en listas.
      • Volver : genera la ventana combinada como un nuevo fragmento, reemplazando el original.
    • El método de recuperación simple encuentra los fragmentos más relevantes en el almacén de vectores.
  • Seleccione el número de trozos de 1 a 10. El número de trozos de recuperación determina el número de trozos más pequeños en los que se divide un pasaje de texto recuperado.

  • Si selecciona el método de recuperación de ventanas, puede ajustar el tamaño de la ventana de 1 a 4. El tamaño de la ventana es el número de trozos adyacentes que tiene en cuenta el modelo a la hora de recuperar información de los documentos indexados.

  • Opcionalmente, puede seleccionar una estrategia híbrida para mejorar la calidad de salida. Una estrategia híbrida combina vectores de incrustación dispersos y densos para realizar una búsqueda de similitudes en la base de datos de vectores. Las incrustaciones dispersas dan prioridad a las coincidencias exactas de palabras clave, y las incrustaciones densas a los resultados que tienen similitud semántica. La combinación de incrustaciones dispersas y densas mejora la precisión y la pertinencia de la búsqueda, lo que se traduce en una recuperación más completa de la información de la base de datos. Este ajuste no está disponible para la base de datos vectorial Chroma en memoria. Si utiliza la base de datos de vectores Elasticsearch, deberá instalar el modelo ELSER.

    Elija una de estas opciones de estrategia híbrida:

    • RRF (Fusión recíproca de clasificaciones) : Combina rankings de múltiples fuentes en una única lista más relevante. Para utilizar RRF con la base de datos de vectores Elasticsearch, necesita Elasticsearch versión 8.8 o posterior.
    • Ponderada : Asigna importancia a las salidas y prioriza la más fiable para la salida final.
    • Ninguna : Utiliza sólo incrustaciones densas, sin estrategia híbrida.

Modelos de fundación que deben incluirse

Puede elegir entre utilizar los modelos de cimentación proporcionados o modelos de cimentación personalizados.

Por defecto, se seleccionan para la experimentación todos los modelos de cimentación disponibles proporcionados que admiten AutoAI para RAG. Puede editar manualmente la lista de modelos de base proporcionados que AutoAI puede considerar para generar patrones RAG. Para cada modelo, puede hacer clic en Detalles del modelo para ver o exportar detalles sobre el modelo.

Para ver la lista de modelos de cimentación disponibles junto con sus descripciones, consulte Modelos de cimentación por tarea.

Para utilizar modelos de base personalizados, haga clic en Modelos personalizados y seleccione los modelos que desea que AutoAI tenga en cuenta para generar patrones RAG. La lista de modelos personalizados incluye los modelos desplegados bajo demanda y los modelos personalizados desplegados en el proyecto en el que está ejecutando el experimento y en todos los espacios de los que es miembro.

Para agregar un nuevo modelo de base personalizado, consulte Implementación de modelos de base personalizados.

Para obtener información sobre cómo codificar un experimento con un modelo de base personalizado, consulte Codificación de un experimento de AutoAI RAG con un modelo de base personalizado.

Máximo de patrones de RAG que completar

Puede especificar el número de patrones RAG que se deben completar en la fase de experimentación, hasta un máximo de 20. Un número más alto compara más patrones y podría dar lugar a patrones con una puntuación más alta, pero consume más recursos informáticos.

Coincidir con el idioma de entrada

Por defecto, AutoAI detecta automáticamente el idioma utilizado en los avisos e indica a los modelos que respondan en el mismo idioma. Los modelos que no admiten la lengua de entrada tienen menos prioridad en la búsqueda del patrón RAG. Desactive esta opción para considerar todos los modelos disponibles y generar respuestas sólo en inglés.

Configuración de indexación

Ver o editar la configuración para crear la base de datos de vectores de texto a partir de la colección de documentos.

Fragmentación

Puedes seleccionar configuraciones automáticamente para agrupar tus datos o editar los ajustes de configuración. La fragmentación de la configuración determina cómo se dividen los documentos indexados en partes más pequeñas antes de su ingestión en un almacén vectorial. La fragmentación de datos permite buscar y recuperar los fragmentos de un documento más relevantes para una consulta. Esto permite que el modelo de generación procese solo los datos más relevantes.

AutoAI RAG utiliza el divisor de texto recursivo LangChain’s para dividir los documentos en trozos. Este método tiene el efecto de descomponer el documento de forma jerárquica, tratando de mantener todos los párrafos (y luego las oraciones, y luego las palabras) juntos el mayor tiempo posible, hasta que el fragmento sea más pequeño que el tamaño de fragmento solicitado. Para obtener más información sobre el método de fragmentación recursiva, consulte Recuperación dividida recursivamente por carácter en la documentación de Langchain.

La mejor manera de fragmentar sus datos depende de su caso de uso. Los fragmentos más pequeños proporcionan una interacción más granular con el texto, lo que permite una búsqueda más centrada en el contenido relevante, mientras que los fragmentos más grandes pueden proporcionar más contexto. Para su caso de uso de chunking, especifique una o más opciones para:

  • El número de caracteres a incluir en cada trozo de datos.
  • El número de caracteres que deben solaparse para fragmentar los datos. El número debe ser menor que el tamaño del chunking.

Las opciones seleccionadas se exploran y comparan en la fase de experimentación.

Modelos de incrustación

Los modelos de incrustación se utilizan en soluciones de generación aumentada por recuperación para codificar fragmentos y consultas como vectores para capturar su significado semántico. Los fragmentos de datos de entrada vectorizados se introducen en un almacén de vectores. Ante una consulta, la representación vectorizada se utiliza para buscar fragmentos relevantes en el almacén de vectores.

Para obtener una lista de los modelos de incrustación disponibles para su uso con experimentos RAG ( AutoAI ), consulte Modelos de codificador compatibles disponibles con watsonx.ai.

Información adicional

Revise la instancia watsonx.ai Runtime utilizada para este experimento y la definición del entorno.

Parámetros de configuración del experimento

Si está codificando un experimento RAG en AutoAI, puede configurar los parámetros mediante programación utilizando el objeto rag_optimizer . Para obtener más información sobre cómo inicializar el optimizador RAG con parámetros personalizados, consulte Trabajar con AutoAI RAG class y rag_optimizer.

Parámetro Descripción Valores
nombre Introduzca un nombre válido para el experimento Nombre de experimento
descripción Si lo desea, describa el experimento Descripción del experimento
fragmentación Ajustes de fragmentación para dividir documentos {"method": "recursive", "chunk_size": 256, "chunk_overlap": 128}
modelos_de_incrustación Modelos para probar ibm/slate-125m-english-rtrvr
intfloat/multilingual-e5-large
recuperación Ajustes de recuperación Utilice AutoAIRAGRetrievalConfig dataclass
modelos_de_fundación Modelos de base o modelos personalizados Consulte los modelos de la Fundación por tareas
Utilice AutoAIRAGModelConfig o AutoAIRAGCustomModelConfig
generación Configuración del paso de generación {"language": {"auto_detect": False}}
max_number_of_rag_patterns Número máximo de patrones RAG a crear 4-20
métricas_de_optimización Nombre(s) de la(s) métrica(s) a utilizar para la optimización faithfulness
answer_correctness
context_correctness

A continuación encontrará ejemplos de código que puede utilizar para inicializar el optimizador RAG y configurar cada parámetro.

Ejemplo de configuración de recuperación:

from ibm_watsonx_ai.foundation_models.schema import AutoAIRAGRetrievalConfig, AutoAIRAGHybridRankerParams, HybridRankerStrategy
from ibm_watsonx_ai.foundation_models.extensions.rag.retriever import RetrievalMethod


retrieval_config = AutoAIRAGRetrievalConfig(
    method=RetrievalMethod.SIMPLE,
    number_of_chunks=5,
    window_size=2,
    hybrid_ranker=AutoAIRAGHybridRankerParams(
        strategy=HybridRankerStrategy.RRF,
        sparse_vectors={"model_id": "elser_model_2"},
        alpha=0.9,
        k=70,
    )
)

Ejemplo de configuración de un modelo de cimentación:

from ibm_watsonx_ai.foundation_models.schema import (
    AutoAIRAGModelConfig,
    AutoAIRAGCustomModelConfig,
    AutoAIRAGModelParams,
    TextGenDecodingMethod
)

# Foundation model
model_id = "meta-llama/llama-3-1-8b-instruct"

# Foundation model with properties
fm = AutoAIRAGModelConfig(
    model_id="ibm/granite-13b-instruct-v2",
    parameters=AutoAIRAGModelParams(
        decoding_method=TextGenDecodingMethod.SAMPLE,
        min_new_tokens=5,
        max_new_tokens=300,
    max_sequence_length=4096,
    ),
    prompt_template_text="My question {question} related to these documents {reference_documents}.",
    context_template_text="My document {document}",
    word_to_token_ratio=1.5,
)

# Custom foundation model with properties
custom_fm = AutoAIRAGCustomModelConfig(
    deployment_id="<PASTE_DEPLOYMENT_ID_HERE>",
    space_id="<PASTE_SPACE_ID_HERE>",
    parameters=AutoAIRAGModelParams(
        decoding_method=TextGenDecodingMethod.GREEDY,
        min_new_tokens=5,
        max_new_tokens=300,
    max_sequence_length=4096,
    ),
    prompt_template_text="My question {question} related to these documents {reference_documents}.",
    context_template_text="My document {document}",
    word_to_token_ratio=1.5,
)

foundation_models = [model_id, fm, custom_fm]

Ejemplo de configuración chunking:

chunking_config = {
    "method": "recursive",
    "chunk_size": 256,
    "chunk_overlap": 128,
}

Ejemplo de inicialización de un optimizador RAG con una configuración personalizada:

from ibm_watsonx_ai.experiment import AutoAI

experiment = AutoAI(credentials, project_id=project_id)

rag_optimizer = experiment.rag_optimizer(
    name="DEMO - AutoAI RAG ibm-watsonx-ai SDK documentation",
    description="AutoAI RAG experiment grounded with the ibm-watsonx-ai SDK documentation",
    embedding_models=["ibm/slate-125m-english-rtrvr", "intfloat/multilingual-e5-large"],
    foundation_models=foundation_models,
    retrieval=[retrieval_config],
    chunking=[chunking_config],
    generation={"language": {"auto_detect": False}},
    max_number_of_rag_patterns=5,
    optimization_metrics=[AutoAI.RAGMetrics.ANSWER_CORRECTNESS],
)

Más información

Generación mejorada por recuperación (RAG)

Tema principal: Creación de un experimento RAG