RAGAS: Framework Evaluasi untuk Pipeline RAG

# RAGAS: Framework Evaluasi untuk Pipeline RAG ## Pendahuluan Retrieval-Augmented Generation (RAG) telah menjadi arsitektur standar untuk membangun aplikasi LLM yang berbasis pengetahuan. Namun, mem...

By Ruby Abdullah · · tutorial
RAGASRAGEvaluationLLMPython

RAGAS: Framework Evaluasi untuk Pipeline RAG

Pendahuluan

Retrieval-Augmented Generation (RAG) telah menjadi arsitektur standar untuk membangun aplikasi LLM yang berbasis pengetahuan. Namun, membangun pipeline RAG saja tidak cukup. Kita perlu cara yang sistematis untuk mengukur kualitas output dari pipeline tersebut. Di sinilah RAGAS (Retrieval Augmented Generation Assessment) hadir sebagai solusi.

RAGAS adalah framework open-source yang dirancang khusus untuk mengevaluasi pipeline RAG secara otomatis. Framework ini menyediakan serangkaian metrik yang mengukur berbagai aspek kualitas, mulai dari relevansi konteks yang diambil hingga kesetiaan jawaban terhadap sumber informasi.

Dalam tutorial ini, kita akan mempelajari cara menginstal dan menggunakan RAGAS, memahami metrik-metrik intinya, membuat dataset evaluasi, mengintegrasikannya dengan LangChain, dan menerapkannya pada contoh praktis untuk mengevaluasi dan meningkatkan sistem QA dokumen.

Instalasi

Instal RAGAS dan dependensi yang diperlukan menggunakan pip:

pip install ragas langchain langchain-openai chromadb

Pastikan Anda memiliki API key OpenAI yang dikonfigurasi sebagai environment variable:

export OPENAIAPIKEY="sk-your-api-key-here"

RAGAS menggunakan LLM (secara default OpenAI) untuk menghitung beberapa metriknya, jadi API key ini diperlukan untuk evaluasi.

Metrik Inti RAGAS

RAGAS menyediakan empat metrik utama yang masing-masing mengukur aspek berbeda dari pipeline RAG:

1. Faithfulness (Kesetiaan)

Faithfulness mengukur sejauh mana jawaban yang dihasilkan konsisten dengan konteks yang diberikan. Metrik ini memastikan bahwa LLM tidak "berhalusinasi" atau menambahkan informasi yang tidak ada dalam dokumen sumber.

from ragas.metrics import faithfulness

Skor 1.0 = semua klaim dalam jawaban didukung oleh konteks

Skor 0.0 = tidak ada klaim yang didukung oleh konteks

Faithfulness dihitung dengan cara:

  • Memecah jawaban menjadi klaim-klaim individual
  • Memverifikasi setiap klaim terhadap konteks yang diberikan
  • Menghitung rasio klaim yang didukung terhadap total klaim

2. Answer Relevancy (Relevansi Jawaban)

Answer Relevancy mengukur seberapa relevan jawaban yang dihasilkan terhadap pertanyaan yang diajukan. Jawaban yang lengkap dan langsung menjawab pertanyaan akan mendapat skor tinggi.

from ragas.metrics import answerrelevancy

Skor tinggi = jawaban sangat relevan dengan pertanyaan

Skor rendah = jawaban tidak relevan atau terlalu umum

3. Context Precision (Presisi Konteks)

Context Precision mengukur seberapa presisi konteks yang diambil. Metrik ini mengevaluasi apakah potongan dokumen yang relevan ditempatkan di peringkat lebih tinggi dibanding yang tidak relevan.

from ragas.metrics import contextprecision

Skor tinggi = konteks relevan berada di posisi atas

Skor rendah = konteks relevan tercampur dengan yang tidak relevan

4. Context Recall (Recall Konteks)

Context Recall mengukur seberapa banyak informasi yang diperlukan untuk menjawab pertanyaan berhasil diambil dari dokumen. Metrik ini membutuhkan ground truth (jawaban referensi) untuk perhitungan.

from ragas.metrics import contextrecall

Skor tinggi = semua informasi yang diperlukan berhasil diambil

Skor rendah = banyak informasi penting yang terlewat

Membuat Dataset Evaluasi

Untuk menjalankan evaluasi RAGAS, kita perlu menyiapkan dataset dalam format yang tepat. Dataset harus berisi: pertanyaan, konteks yang diambil, jawaban yang dihasilkan, dan ground truth (opsional, tapi diperlukan untuk context recall).

from datasets import Dataset

questions = [

"Apa itu machine learning?",

"Bagaimana cara kerja neural network?",

"Apa perbedaan supervised dan unsupervised learning?"

]

groundtruths = [

"Machine learning adalah cabang dari kecerdasan buatan yang memungkinkan sistem belajar dari data tanpa diprogram secara eksplisit.",

"Neural network bekerja dengan meniru cara kerja neuron di otak manusia, menggunakan lapisan-lapisan node yang saling terhubung untuk memproses informasi.",

"Supervised learning menggunakan data berlabel untuk training, sedangkan unsupervised learning menemukan pola dalam data tanpa label."

]

contexts = [

Artikel Terkait

Tutorial RAG Advanced: Hybrid Search, Reranking, dan Evaluasi

RAG Tingkat Lanjut - Membangun Retrieval-Augmented Generation Kelas Produksi Daftar Isi Pendahuluan Prasyarat Instalasi ...

Tutorial Lengkap LlamaIndex: Membangun Aplikasi RAG dengan LLM

Tutorial Lengkap LlamaIndex: Membangun Aplikasi RAG dengan LLM LlamaIndex adalah framework data yang powerful untuk memb...

Tutorial ColBERT & RAGatouille: Late-Interaction Retrieval untuk RAG

ColBERT & RAGatouille: Retrieval Late-Interaction untuk RAG yang Lebih Baik Sebagian besar sistem RAG mengandalkan dense...

Tutorial TRL: Post-Training LLM dengan SFT, DPO, dan Reward Modeling

Post-Training LLM dengan TRL: SFT, Reward Modeling, dan DPO Setelah sebuah base language model selesai dipretraining, mo...