В сфере медицины внедрение передовых технологий имеет важное значение для улучшения ухода за пациентами и совершенствования методологий исследований. Генерация с расширенным поиском (RAG) — одна из таких новаторских инноваций, сочетающая возможности больших языковых моделей (LLM) с поиском внешних знаний. Извлекая соответствующую информацию из баз данных, научной литературы и записей пациентов, системы RAG обеспечивают более точную и контекстуально обогащенную основу для реагирования, устраняя такие ограничения, как устаревшая информация и галлюцинации, часто наблюдаемые в чистых LLM.
В этом обзоре мы рассмотрим растущую роль RAG в здравоохранении, уделив особое внимание ее потенциалу в преобразовании таких приложений, как открытие лекарств и клинические испытания. Мы также углубимся в методы и инструменты, необходимые для оценки уникальных требований медицинских систем RAG, таких как конечные точки NVIDIA LangChain и платформа Ragas, а также набор данных MACCROBAT, коллекция отчетов пациентов из PubMed Central.
Масштабируемость: поскольку среднегодовой темп роста медицинских данных превышает 35 %, системам RAG необходимо эффективно управлять информацией и извлекать ее без ущерба для скорости, особенно в сценариях, где своевременная информация может повлиять на уход за пациентами.
Требования к специализированному языку и знаниям: Медицинские системы RAG требуют настройки с учетом предметной области, поскольку медицинская лексика и содержание существенно отличаются от других областей, таких как финансы или право.
Отсутствие специализированных показателей оценки: В отличие от приложений RAG общего назначения, в медицинских RAG отсутствуют подходящие тесты. Традиционные показатели (такие как BLEU или ROUGE) подчеркивают сходство текста, а не фактическую точность, критическую в медицинском контексте.
Покомпонентная оценка: Эффективная оценка требует независимого изучения компонентов поиска и генерации. При извлечении необходимо извлекать актуальные текущие данные, а компонент генерации должен обеспечивать достоверность полученного контента.
Ragas, платформа оценки с открытым исходным кодом, предлагает автоматизированный подход к оценке конвейеров RAG. Его инструментарий фокусируется на контекстной релевантности, запоминаемости, достоверности и релевантности ответов. Используя модель LLM как судьи, Ragas сводит к минимуму необходимость в данных, аннотированных вручную, что делает процесс эффективным и экономичным.
Для надежной оценки RAG рассмотрите следующие шаги:
Вот пример конвейера: задан вопрос типа «Каковы типичные измерения АД при застойной сердечной недостаточности?» система сначала извлекает соответствующий контекст, а затем оценивает, точно ли ответ соответствует вопросу.
Для продолжения создайте учетную запись 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?"]
Каждый вопрос связан с полученным контекстом и сгенерированным достоверным ответом, который затем можно использовать для оценки производительности компонентов поиска и генерации.
Медицинским системам 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.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3