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.
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.
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.
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.
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.
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.
Para una evaluación RAG sólida, considere estos pasos:
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.
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)
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.
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()])
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?")
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.
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