在醫學領域,採用先進技術對於加強病患照護和改進研究方法至關重要。檢索增強生成 (RAG) 是這些開創性創新之一,它將大型語言模型 (LLM) 的強大功能與外部知識檢索相結合。透過從資料庫、科學文獻和患者記錄中提取相關信息,RAG 系統提供了更準確、上下文更豐富的響應基礎,解決了純法學碩士中經常觀察到的過時信息和幻覺等限制。
在本概述中,我們將探討 RAG 在醫療保健領域日益重要的作用,重點關注其改變藥物發現和臨床試驗等應用的潛力。我們還將深入探討評估醫療 RAG 系統獨特需求所需的方法和工具,例如 NVIDIA 的 LangChain 端點和 Ragas 框架,以及 MACCROBAT 資料集(來自 PubMed Central 的患者報告集合)。
可擴展性:隨著醫療數據以超過35% 的複合年增長率擴展,RAG 系統需要在不影響速度的情況下高效管理和檢索信息,特別是在及時洞察可能影響患者護理的情況下。
專業語言和知識要求:醫療 RAG 系統需要針對特定領域進行調整,因為醫學詞彙和內容與金融或法律等其他領域有很大不同。
缺乏客製化的評估指標:與通用 RAG 應用不同,醫療 RAG 缺乏合適的基準。傳統指標(如 BLEU 或 ROUGE)強調文本相似性,而不是醫療環境中至關重要的事實準確性。
按組件評估:有效的評估需要對檢索和生成組件進行獨立審查。檢索必須提取相關的當前數據,生成組件必須確保檢索內容的忠實性。
Ragas 是一個開源評估框架,提供了一種評估 RAG 管道的自動化方法。其工具包著重於上下文相關性、召回率、忠實度和答案相關性。 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 連結了法學碩士和密集向量檢索,以實現跨醫療、多語言和程式碼生成領域的高效、可擴展的應用程式。在醫療保健領域,它帶來準確、情境感知回應的潛力是顯而易見的,但評估必須優先考慮準確性、領域特異性和成本效率。
概述的評估流程採用綜合測試資料、NVIDIA 端點和 Ragas,提供了滿足這些需求的強大方法。如需更深入了解,您可以在 GitHub 上探索 Ragas 和 NVIDIA Generative AI 範例。
以上是使用 NVIDIA AI 端點和 Ragas 評估醫療檢索增強生成 (RAG)的詳細內容。更多資訊請關注PHP中文網其他相關文章!