No âmbito da medicina, a incorporação de tecnologias avançadas é essencial para aprimorar o atendimento ao paciente e melhorar as metodologias de pesquisa. A geração aumentada de recuperação (RAG) é uma dessas inovações pioneiras, combinando o poder de grandes modelos de linguagem (LLMs) com recuperação de conhecimento externo. Ao extrair informações relevantes de bancos de dados, literatura científica e registros de pacientes, os sistemas RAG fornecem uma base de resposta mais precisa e contextualmente enriquecida, abordando limitações como informações desatualizadas e alucinações frequentemente observadas em LLMs puros.
Nesta visão geral, exploraremos o papel crescente do RAG na área da saúde, concentrando-nos em seu potencial para transformar aplicações como descoberta de medicamentos e ensaios clínicos. Também nos aprofundaremos nos métodos e ferramentas necessários para avaliar as demandas exclusivas dos sistemas médicos RAG, como os endpoints LangChain da NVIDIA e a estrutura Ragas, juntamente com o conjunto de dados MACCROBAT, uma coleção de relatórios de pacientes do PubMed Central.
Escalabilidade: Com a expansão dos dados médicos em mais de 35% de CAGR, os sistemas RAG precisam gerenciar e recuperar informações de forma eficiente, sem comprometer a velocidade, especialmente em cenários onde insights oportunos podem impactar o atendimento ao paciente.
Requisitos especializados de idioma e conhecimento: Os sistemas RAG médicos exigem ajuste específico de domínio, uma vez que o léxico e o conteúdo médico diferem substancialmente de outros domínios, como finanças ou direito.
Ausência de métricas de avaliação personalizadas: Ao contrário dos aplicativos RAG de uso geral, o RAG médico carece de benchmarks adequados. Métricas convencionais (como BLEU ou ROUGE) enfatizam a similaridade do texto em vez da precisão factual crítica em contextos médicos.
Avaliação por componentes: A avaliação eficaz requer um exame minucioso independente dos componentes de recuperação e geração. A recuperação deve extrair dados relevantes e atuais, e o componente de geração deve garantir a fidelidade ao conteúdo recuperado.
Ragas, uma estrutura de avaliação de código aberto, oferece uma abordagem automatizada para avaliar pipelines RAG. Seu kit de ferramentas concentra-se na relevância do contexto, na lembrança, na fidelidade e na relevância da resposta. Utilizando um modelo LLM como juiz, Ragas minimiza a necessidade de dados anotados manualmente, tornando o processo eficiente e econômico.
Para uma avaliação RAG robusta, considere estas etapas:
Aqui está um exemplo de pipeline: dada uma pergunta como “Quais são as medições típicas de PA na insuficiência cardíaca congestiva?” o sistema primeiro recupera o contexto relevante e depois avalia se a resposta aborda a questão com precisão.
Para acompanhar, crie uma conta NVIDIA e obtenha uma chave de API. Instale os pacotes necessários com:
pip install langchain pip install langchain_nvidia_ai_endpoints pip install ragas
Baixe o conjunto de dados MACCROBAT, que oferece registros médicos abrangentes que podem ser carregados e processados via 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()
Usando endpoints NVIDIA e LangChain, agora podemos construir um gerador robusto de conjunto de testes e criar dados sintéticos com base no conjunto de dados:
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)
Implante seu sistema RAG em um armazenamento de vetores, gerando exemplos de perguntas a partir de relatórios médicos reais:
# 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 pergunta está vinculada a um contexto recuperado e a uma resposta verdadeira gerada, que pode então ser usada para avaliar o desempenho dos componentes de recuperação e geração.
Os sistemas RAG médicos podem precisar de métricas personalizadas para avaliar a precisão da recuperação. Por exemplo, uma métrica pode determinar se um documento recuperado é relevante o suficiente para uma consulta de pesquisa:
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 uma avaliação eficiente e confiável, a saída estruturada simplifica o processamento. Com os endpoints LangChain da NVIDIA, estruture sua resposta LLM em categorias predefinidas (por exemplo, sim/não).
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 LLMs e recuperação de vetores densos para aplicativos altamente eficientes e escalonáveis em domínios médicos, multilíngues e de geração de código. Nos cuidados de saúde, o seu potencial para trazer respostas precisas e contextualmente conscientes é evidente, mas a avaliação deve dar prioridade à precisão, à especificidade do domínio e à relação custo-eficácia.
O pipeline de avaliação descrito, empregando dados de teste sintéticos, endpoints NVIDIA e Ragas, oferece um método robusto para atender a essas demandas. Para um mergulho mais profundo, você pode explorar exemplos de Ragas e NVIDIA Generative AI no GitHub.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3