Rumah > hujung hadapan web > tutorial js > Menilai Penjanaan Pertambahan Retrieval Perubatan (RAG) dengan Titik Akhir dan Ragas AI NVIDIA

Menilai Penjanaan Pertambahan Retrieval Perubatan (RAG) dengan Titik Akhir dan Ragas AI NVIDIA

Patricia Arquette
Lepaskan: 2024-11-09 03:03:02
asal
986 orang telah melayarinya

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

Dalam bidang perubatan, menggabungkan teknologi canggih adalah penting untuk meningkatkan penjagaan pesakit dan menambah baik metodologi penyelidikan. Penjanaan dipertingkatkan semula (RAG) ialah salah satu daripada inovasi perintis ini, menggabungkan kuasa model bahasa besar (LLM) dengan perolehan pengetahuan luaran. Dengan menarik maklumat yang berkaitan daripada pangkalan data, kesusasteraan saintifik dan rekod pesakit, sistem RAG menyediakan asas tindak balas yang lebih tepat dan diperkaya secara kontekstual, menangani batasan seperti maklumat lapuk dan halusinasi yang sering diperhatikan dalam LLM tulen.

Dalam gambaran keseluruhan ini, kami akan meneroka peranan RAG yang semakin meningkat dalam penjagaan kesihatan, memfokuskan pada potensinya untuk mengubah aplikasi seperti penemuan ubat dan ujian klinikal. Kami juga akan menyelami kaedah dan alatan yang diperlukan untuk menilai permintaan unik sistem RAG perubatan, seperti titik akhir LangChain NVIDIA dan rangka kerja Ragas, bersama-sama dengan set data MACCROBAT, koleksi laporan pesakit daripada PubMed Central.


Cabaran Utama RAG Perubatan

  1. Skalabiliti: Dengan data perubatan berkembang pada lebih 35% CAGR, sistem RAG perlu mengurus dan mendapatkan maklumat dengan cekap tanpa menjejaskan kelajuan, terutamanya dalam senario di mana cerapan tepat pada masanya boleh memberi kesan kepada penjagaan pesakit.

  2. Keperluan Bahasa dan Pengetahuan Khusus: Sistem RAG perubatan memerlukan penalaan khusus domain memandangkan leksikon dan kandungan perubatan berbeza dengan ketara daripada domain lain seperti kewangan atau undang-undang.

  3. Ketiadaan Metrik Penilaian Tersuai: Tidak seperti aplikasi RAG tujuan umum, RAG perubatan tidak mempunyai tanda aras yang sesuai. Metrik konvensional (seperti BLEU atau ROUGE) menekankan persamaan teks dan bukannya ketepatan fakta yang kritikal dalam konteks perubatan.

  4. Penilaian Mengikut Komponen: Penilaian yang berkesan memerlukan penelitian bebas terhadap kedua-dua komponen perolehan dan penjanaan. Pengambilan semula mesti menarik data semasa yang relevan dan komponen penjanaan mesti memastikan kesetiaan kepada kandungan yang diambil.

Memperkenalkan Ragas untuk Penilaian RAG

Ragas, rangka kerja penilaian sumber terbuka, menawarkan pendekatan automatik untuk menilai saluran paip RAG. Kit alatnya memfokuskan pada perkaitan konteks, ingatan, kesetiaan, dan perkaitan jawapan. Dengan menggunakan model LLM-sebagai-hakim, Ragas meminimumkan keperluan untuk data beranotasi secara manual, menjadikan proses itu cekap dan menjimatkan kos.

Strategi Penilaian untuk Sistem RAG

Untuk penilaian RAG yang mantap, pertimbangkan langkah berikut:

  1. Penjanaan Data Sintetik: Hasilkan data triplet (soalan, jawapan, konteks) berdasarkan dokumen stor vektor untuk mencipta data ujian sintetik.
  2. Penilaian Berasaskan Metrik: Nilaikan sistem RAG pada metrik seperti ketepatan dan ingat semula, membandingkan responsnya kepada data sintetik yang dijana sebagai kebenaran asas.
  3. Penilaian Komponen Bebas: Untuk setiap soalan, nilaikan perkaitan konteks carian dan ketepatan jawapan generasi.

Berikut ialah saluran paip contoh: diberikan soalan seperti "Apakah ukuran BP biasa dalam kegagalan jantung kongestif?" sistem mula-mula mendapatkan semula konteks yang berkaitan dan kemudian menilai sama ada respons menangani soalan dengan tepat.

Menyediakan RAG dengan NVIDIA API dan LangChain

Untuk mengikuti, buat akaun NVIDIA dan dapatkan kunci API. Pasang pakej yang diperlukan dengan:

pip install langchain
pip install langchain_nvidia_ai_endpoints
pip install ragas
Salin selepas log masuk

Muat turun set data MACCROBAT, yang menawarkan rekod perubatan komprehensif yang boleh dimuatkan dan diproses melalui 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()
Salin selepas log masuk

Menggunakan titik akhir NVIDIA dan LangChain, kami kini boleh membina penjana set ujian yang mantap dan mencipta data sintetik berdasarkan set data:

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)
Salin selepas log masuk

Menyedia dan Menilai Talian Paip

Gunakan sistem RAG anda pada kedai vektor, menjana contoh soalan daripada laporan perubatan sebenar:

# 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?"]
Salin selepas log masuk

Setiap soalan dipautkan dengan konteks yang diperoleh semula dan jawapan kebenaran asas yang dijana, yang kemudiannya boleh digunakan untuk menilai prestasi kedua-dua komponen perolehan dan penjanaan.

Metrik Tersuai dengan Ragas

Sistem RAG perubatan mungkin memerlukan metrik tersuai untuk menilai ketepatan pengambilan semula. Sebagai contoh, metrik boleh menentukan sama ada dokumen yang diambil cukup relevan untuk pertanyaan carian:

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()])
Salin selepas log masuk

Output Berstruktur untuk Ketepatan dan Kebolehpercayaan

Untuk penilaian yang cekap dan boleh dipercayai, output berstruktur memudahkan pemprosesan. Dengan titik akhir LangChain NVIDIA, susun respons LLM anda ke dalam kategori yang dipratentukan (mis., ya/tidak).

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?")
Salin selepas log masuk

Kesimpulan

RAG merapatkan LLM dan perolehan semula vektor padat untuk aplikasi berskala yang sangat cekap merentas domain perubatan, berbilang bahasa dan penjanaan kod. Dalam penjagaan kesihatan, potensinya untuk membawa respons yang tepat dan sedar dari segi konteks adalah jelas, tetapi penilaian mesti mengutamakan ketepatan, kekhususan domain dan kecekapan kos.

Garis paip penilaian yang digariskan, menggunakan data ujian sintetik, titik akhir NVIDIA dan Ragas, menawarkan kaedah yang teguh untuk memenuhi permintaan ini. Untuk menyelam lebih mendalam, anda boleh meneroka contoh Ragas dan NVIDIA Generative AI di GitHub.

Atas ialah kandungan terperinci Menilai Penjanaan Pertambahan Retrieval Perubatan (RAG) dengan Titik Akhir dan Ragas AI NVIDIA. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan