"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > تقييم الجيل المعزز للاسترجاع الطبي (RAG) باستخدام نقاط نهاية NVIDIA AI وRagas

تقييم الجيل المعزز للاسترجاع الطبي (RAG) باستخدام نقاط نهاية NVIDIA AI وRagas

تم النشر بتاريخ 2024-11-15
تصفح:837

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

في مجال الطب، يعد دمج التقنيات المتقدمة أمرًا ضروريًا لتعزيز رعاية المرضى وتحسين منهجيات البحث. يعد توليد الاسترجاع المعزز (RAG) أحد هذه الابتكارات الرائدة، حيث يمزج قوة نماذج اللغات الكبيرة (LLMs) مع استرجاع المعرفة الخارجية. من خلال سحب المعلومات ذات الصلة من قواعد البيانات والأدبيات العلمية وسجلات المرضى، توفر أنظمة RAG أساس استجابة أكثر دقة وإثراء للسياق، ومعالجة القيود مثل المعلومات القديمة والهلوسة التي غالبًا ما يتم ملاحظتها في ماجستير إدارة الأعمال النقي.

في هذه النظرة العامة، سنستكشف الدور المتنامي لـ RAG في مجال الرعاية الصحية، مع التركيز على قدرتها على تحويل التطبيقات مثل اكتشاف الأدوية والتجارب السريرية. سنتعمق أيضًا في الأساليب والأدوات اللازمة لتقييم المتطلبات الفريدة لأنظمة RAG الطبية، مثل نقاط نهاية LangChain من NVIDIA وإطار عمل 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()])

مخرجات منظمة لتحقيق الدقة والموثوقية

للحصول على تقييم فعال وموثوق، تعمل المخرجات المنظمة على تبسيط عملية المعالجة. باستخدام نقاط نهاية LangChain من NVIDIA، قم بتنظيم استجابة 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 Geneative AI على GitHub.

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/koolkamalkishor/evaluating-medical-retrieval-augmented-generation-rag-with-nvidia-ai-endpoints-and-ragas-2m34?1 إذا كان هناك أي انتهاك، من فضلك اتصل بـ [email protected]
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3