"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Evaluación de generación aumentada de recuperación médica (RAG) con terminales de IA de NVIDIA y Ragas

Evaluación de generación aumentada de recuperación médica (RAG) con terminales de IA de NVIDIA y Ragas

Publicado el 2024-11-15
Navegar:957

Evaluating Medical Retrieval-Augmented Generation (RAG) with NVIDIA AI Endpoints and Ragas

En el ámbito de la medicina, la incorporación de tecnologías avanzadas es fundamental para mejorar la atención al paciente y las metodologías de investigación. La generación de recuperación aumentada (RAG) es una de estas innovaciones pioneras, que combina el poder de los modelos de lenguajes grandes (LLM) con la recuperación de conocimientos externos. Al extraer información relevante de bases de datos, literatura científica y registros de pacientes, los sistemas RAG brindan una base de respuesta más precisa y enriquecida contextualmente, abordando limitaciones como la información desactualizada y las alucinaciones que a menudo se observan en los LLM puros.

En esta descripción general, exploraremos el creciente papel de RAG en la atención médica, centrándonos en su potencial para transformar aplicaciones como el descubrimiento de fármacos y los ensayos clínicos. También profundizaremos en los métodos y herramientas necesarios para evaluar las demandas únicas de los sistemas RAG médicos, como los puntos finales LangChain de NVIDIA y el marco Ragas, junto con el conjunto de datos MACCROBAT, una colección de informes de pacientes de PubMed Central.


Desafíos clave del RAG médico

  1. Escalabilidad: Dado que los datos médicos se expanden a más del 35 % de CAGR, los sistemas RAG necesitan administrar y recuperar información de manera eficiente sin comprometer la velocidad, especialmente en escenarios donde los conocimientos oportunos pueden afectar la atención al paciente.

  2. Requisitos de conocimiento y lenguaje especializado: Los sistemas RAG médicos requieren ajustes específicos del dominio, ya que el léxico y el contenido médicos difieren sustancialmente de otros dominios como finanzas o derecho.

  3. Ausencia de métricas de evaluación personalizadas: a diferencia de las aplicaciones RAG de uso general, el RAG médico carece de puntos de referencia adecuados. Las métricas convencionales (como BLEU o ROUGE) enfatizan la similitud del texto en lugar de la precisión objetiva, crítica en contextos médicos.

  4. Evaluación de componentes: una evaluación eficaz requiere un escrutinio independiente de los componentes de recuperación y generación. La recuperación debe extraer datos relevantes y actuales, y el componente de generación debe garantizar la fidelidad al contenido recuperado.

Presentamos Ragas para la evaluación RAG

Ragas, un marco de evaluación de código abierto, ofrece un enfoque automatizado para evaluar los ductos RAG. Su conjunto de herramientas se centra en la relevancia del contexto, el recuerdo, la fidelidad y la relevancia de las respuestas. Al utilizar un modelo LLM como juez, Ragas minimiza la necesidad de datos anotados manualmente, lo que hace que el proceso sea eficiente y rentable.

Estrategias de evaluación para sistemas RAG

Para una evaluación RAG sólida, considere estos pasos:

  1. Generación de datos sintéticos: genera datos tripletes (pregunta, respuesta, contexto) basados ​​en los documentos del almacén de vectores para crear datos de prueba sintéticos.
  2. Evaluación basada en métricas: evalúa el sistema RAG en métricas como precisión y recuperación, comparando sus respuestas con los datos sintéticos generados como verdad fundamental.
  3. Evaluación de componentes independientes: para cada pregunta, evalúe la relevancia del contexto de recuperación y la precisión de las respuestas de la generación.

Aquí hay un ejemplo de proceso: ante una pregunta como "¿Cuáles son las mediciones típicas de la PA en la insuficiencia cardíaca congestiva?" el sistema primero recupera el contexto relevante y luego evalúa si la respuesta aborda la pregunta con precisión.

Configurando RAG con NVIDIA API y LangChain

Para seguir adelante, cree una cuenta NVIDIA y obtenga una clave API. Instale los paquetes necesarios con:

pip install langchain
pip install langchain_nvidia_ai_endpoints
pip install ragas

Descargue el conjunto de datos MACCROBAT, que ofrece registros médicos completos que se pueden cargar y procesar a través de LangChain.

from langchain_community.document_loaders import HuggingFaceDatasetLoader
from datasets import load_dataset

dataset_name = "singh-aditya/MACCROBAT_biomedical_ner"
page_content_column = "full_text"

loader = HuggingFaceDatasetLoader(dataset_name, page_content_column)
dataset = loader.load()

Utilizando los puntos finales de NVIDIA y LangChain, ahora podemos crear un generador de conjuntos de pruebas sólido y crear datos sintéticos basados ​​en el conjunto de datos:

from ragas.testset.generator import TestsetGenerator
from langchain_nvidia_ai_endpoints import ChatNVIDIA, NVIDIAEmbeddings

critic_llm = ChatNVIDIA(model="meta/llama3.1-8b-instruct")
generator_llm = ChatNVIDIA(model="mistralai/mixtral-8x7b-instruct-v0.1")
embeddings = NVIDIAEmbeddings(model="nv-embedqa-e5-v5", truncate="END")

generator = TestsetGenerator.from_langchain(
    generator_llm, critic_llm, embeddings, chunk_size=512
)
testset = generator.generate_with_langchain_docs(dataset, test_size=10)

Implementación y evaluación de la canalización

Implemente su sistema RAG en una tienda de vectores, generando preguntas de muestra a partir de informes médicos reales:

# Sample questions
["What are typical BP measurements in the case of congestive heart failure?",
 "What can scans reveal in patients with severe acute pain?",
 "Is surgical intervention necessary for liver metastasis?"]

Cada pregunta se vincula con un contexto recuperado y una respuesta real generada, que luego se puede utilizar para evaluar el rendimiento de los componentes de recuperación y generación.

Métricas personalizadas con Ragas

Los sistemas RAG médicos pueden necesitar métricas personalizadas para evaluar la precisión de la recuperación. Por ejemplo, una métrica podría determinar si un documento recuperado es lo suficientemente relevante para una consulta de búsqueda:

from dataclasses import dataclass, field
from ragas.evaluation.metrics import MetricWithLLM, Prompt

RETRIEVAL_PRECISION = Prompt(
    name="retrieval_precision",
    instruction="Is this result relevant enough for the first page of search results? Answer '1' for yes and '0' for no.",
    input_keys=["question", "context"]
)

@dataclass
class RetrievalPrecision(MetricWithLLM):
    name: str = "retrieval_precision"
    evaluation_mode = EvaluationMode.qc
    context_relevancy_prompt: Prompt = field(default_factory=lambda: RETRIEVAL_PRECISION)

# Use this custom metric in evaluation
score = evaluate(dataset["eval"], metrics=[RetrievalPrecision()])

Salida estructurada para precisión y confiabilidad

Para una evaluación eficiente y confiable, la salida estructurada simplifica el procesamiento. Con los puntos finales LangChain de NVIDIA, estructure su respuesta LLM en categorías predefinidas (por ejemplo, sí/no).

import enum

class Choices(enum.Enum):
    Y = "Y"
    N = "N"

structured_llm = nvidia_llm.with_structured_output(Choices)
structured_llm.invoke("Is this search result relevant to the query?")

Conclusión

RAG une los LLM y la recuperación de vectores densos para aplicaciones altamente eficientes y escalables en dominios médicos, multilingües y de generación de código. En la atención sanitaria, su potencial para generar respuestas precisas y contextualmente conscientes es evidente, pero la evaluación debe priorizar la precisión, la especificidad del dominio y la rentabilidad.

El proceso de evaluación descrito, que emplea datos de prueba sintéticos, puntos finales de NVIDIA y Ragas, ofrece un método sólido para satisfacer estas demandas. Para profundizar más, puedes explorar ejemplos de Ragas y NVIDIA Generative AI en GitHub.

Declaración de liberación Este artículo se reproduce en: https://dev.to/koolkamalkishor/evaluating-medical-retrieval-augmented-generation-rag-with-nvidia-ai-endpoints-and-ragas-2m34?1 Si hay alguna infracción, por favor contacto Study_golang@163 .comeliminar
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3