«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Оценка дополненной генерации медицинских данных (RAG) с помощью конечных точек NVIDIA AI и Ragas

Оценка дополненной генерации медицинских данных (RAG) с помощью конечных точек NVIDIA AI и Ragas

Опубликовано 15 ноября 2024 г.
Просматривать:188

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

В сфере медицины внедрение передовых технологий имеет важное значение для улучшения ухода за пациентами и совершенствования методологий исследований. Генерация с расширенным поиском (RAG) — одна из таких новаторских инноваций, сочетающая возможности больших языковых моделей (LLM) с поиском внешних знаний. Извлекая соответствующую информацию из баз данных, научной литературы и записей пациентов, системы RAG обеспечивают более точную и контекстуально обогащенную основу для реагирования, устраняя такие ограничения, как устаревшая информация и галлюцинации, часто наблюдаемые в чистых LLM.

В этом обзоре мы рассмотрим растущую роль RAG в здравоохранении, уделив особое внимание ее потенциалу в преобразовании таких приложений, как открытие лекарств и клинические испытания. Мы также углубимся в методы и инструменты, необходимые для оценки уникальных требований медицинских систем RAG, таких как конечные точки NVIDIA LangChain и платформа Ragas, а также набор данных MACCROBAT, коллекция отчетов пациентов из PubMed Central.


Ключевые проблемы медицинской RAG

  1. Масштабируемость: поскольку среднегодовой темп роста медицинских данных превышает 35 %, системам RAG необходимо эффективно управлять информацией и извлекать ее без ущерба для скорости, особенно в сценариях, где своевременная информация может повлиять на уход за пациентами.

  2. Требования к специализированному языку и знаниям: Медицинские системы RAG требуют настройки с учетом предметной области, поскольку медицинская лексика и содержание существенно отличаются от других областей, таких как финансы или право.

  3. Отсутствие специализированных показателей оценки: В отличие от приложений RAG общего назначения, в медицинских RAG отсутствуют подходящие тесты. Традиционные показатели (такие как BLEU или ROUGE) подчеркивают сходство текста, а не фактическую точность, критическую в медицинском контексте.

  4. Покомпонентная оценка: Эффективная оценка требует независимого изучения компонентов поиска и генерации. При извлечении необходимо извлекать актуальные текущие данные, а компонент генерации должен обеспечивать достоверность полученного контента.

Представляем Ragas для оценки RAG

Ragas, платформа оценки с открытым исходным кодом, предлагает автоматизированный подход к оценке конвейеров RAG. Его инструментарий фокусируется на контекстной релевантности, запоминаемости, достоверности и релевантности ответов. Используя модель LLM как судьи, Ragas сводит к минимуму необходимость в данных, аннотированных вручную, что делает процесс эффективным и экономичным.

Стратегии оценки систем RAG

Для надежной оценки RAG рассмотрите следующие шаги:

  1. Генерация синтетических данных: генерация тройных данных (вопрос, ответ, контекст) на основе документов векторного хранилища для создания синтетических тестовых данных.
  2. Оценка на основе показателей: оцените систему RAG по таким показателям, как точность и полнота, сравнивая ее ответы с сгенерированными синтетическими данными как основную истину.
  3. Независимая оценка компонентов: для каждого вопроса оцените релевантность контекста поиска и точность ответа поколения.

Вот пример конвейера: задан вопрос типа «Каковы типичные измерения АД при застойной сердечной недостаточности?» система сначала извлекает соответствующий контекст, а затем оценивает, точно ли ответ соответствует вопросу.

Настройка RAG с помощью NVIDIA API и LangChain

Для продолжения создайте учетную запись NVIDIA и получите ключ API. Установите необходимые пакеты с помощью:

pip install langchain
pip install langchain_nvidia_ai_endpoints
pip install ragas

Загрузите набор данных MACCROBAT, который предлагает полные медицинские записи, которые можно загружать и обрабатывать через 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()

Используя конечные точки NVIDIA и LangChain, мы теперь можем создать надежный генератор набора тестов и создавать синтетические данные на основе набора данных:

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)

Развертывание и оценка конвейера

Разверните свою систему RAG в векторном магазине, генерируя образцы вопросов на основе реальных медицинских отчетов:

# 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?"]

Каждый вопрос связан с полученным контекстом и сгенерированным достоверным ответом, который затем можно использовать для оценки производительности компонентов поиска и генерации.

Пользовательские метрики с Ragas

Медицинским системам RAG могут потребоваться специальные показатели для оценки точности поиска. Например, метрика может определять, является ли полученный документ достаточно релевантным для поискового запроса:

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()])

Структурированный вывод для точности и надежности

Для эффективной и надежной оценки структурированный вывод упрощает обработку. С помощью конечных точек NVIDIA LangChain структурируйте свой ответ LLM по заранее определенным категориям (например, да/нет).

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 объединяет LLM и плотный векторный поиск для высокоэффективных, масштабируемых приложений в медицинских, многоязычных областях и областях генерации кода. В здравоохранении его потенциал для получения точных, контекстно-ориентированных ответов очевиден, но при оценке приоритеты должны отдаваться точности, специфичности предметной области и экономической эффективности.

Описанный конвейер оценки, использующий синтетические тестовые данные, конечные точки NVIDIA и Ragas, предлагает надежный метод удовлетворения этих требований. Для более глубокого изучения вы можете изучить примеры Ragas и NVIDIA Generative AI на GitHub.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/koolkamalkishor/evaluating-medical-retrieval-augmented-generation-rag-with-nvidia-ai-endpoints-and-ragas-2m34?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с Study_golang@163 .comdelete
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3