BAB 03
Estimasi Waktu: 50 menit
Level: Intermediate → Advanced
LLM memiliki batasan berupa knowledge cutoff (tanggal terakhir data latihnya) dan hallucination (cenderung mengarang fakta jika tidak tahu jawabannya). Selain itu, LLM tidak memiliki akses ke data internal perusahaan Anda (seperti dokumen PDF operasional atau database privat).
Retrieval-Augmented Generation (RAG) menyelesaikan masalah ini dengan memberikan dokumen referensi yang relevan kepada LLM sebelum LLM menghasilkan jawaban.
┌──────────────────────┐
│ DOKUMEN INTERNAL │
└──────────┬───────────┘
│ (Chunking & Embedding)
▼
┌──────────────────────┐
│ VECTOR DATABASE │
└──────────┬───────────┘
▲
PERTANYAAN ────────────┼───► (Cari Dokumen Terdekat)
│
▼
┌──────────────────────┐
│ PROMPT + DOKUMEN │
└──────────┬───────────┘
│
▼
┌───────┐
│ LLM │ ──► JAWABAN AKURAT
└───────┘
Untuk menyimpan dokumen panjang (seperti PDF 200 halaman) ke dalam database pencarian, kita harus memecahnya terlebih dahulu menjadi potongan kecil (chunks) dan mengubahnya menjadi representasi vektor (embeddings).
# Contoh embedding menggunakan library PyTorch/SentenceTransformers
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('all-MiniLM-L6-v2')
# Mengubah kalimat menjadi vector berdimensi 384
sentences = ["Bagaimana cara mengajukan cuti di perusahaan?", "Cuti diajukan via portal HR."]
embeddings = model.encode(sentences)
print(embeddings.shape) # Output: (2, 384)
Vektor embedding disimpan di Vector Database khusus yang mampu melakukan pencarian kemiripan kosinus (cosine similarity) atau approximate nearest neighbor (ANN) dengan sangat cepat pada jutaan data.
Beberap Vector DB populer:
Pencarian berbasis vektor (Dense Retrieval) sangat baik untuk menangkap konsep semantik, namun buruk untuk mendeteksi kata kunci spesifik (seperti ID produk, nomor seri, atau istilah teknis langka). Oleh karena itu, sistem produksi menggunakan Hybrid Search.
Skor Akhir = (Dense Search Vector Score * Alpha) + (Sparse Search BM25 Score * (1 - Alpha))
Setelah mengambil top 20 dokumen menggunakan Hybrid Search, kita menggunakan model Cross-Encoder (Reranker) yang lebih lambat tapi jauh lebih akurat (seperti Cohere Rerank atau BGE-Reranker) untuk menilai ulang kesesuaian dokumen dengan pertanyaan dan mengambil top 3-5 dokumen terbaik untuk dimasukkan ke prompt LLM.
Pertanyaan ──► Hybrid Search (20 dokumen) ──► Reranker ──► Top 3 Dokumen Terbaik ──► LLM Prompt
Mengevaluasi kualitas RAG secara manual sangat melelahkan. Industri menggunakan framework evaluasi otomatis menggunakan LLM-as-a-judge, salah satunya Ragas.
Ragas mengukur RAG berdasarkan 4 pilar utama:
ChromaDB lokal dan model embedding open-source (misal dari HuggingFace) untuk menyimpan beberapa paragraf teks.Target: Memahami bagaimana pipeline RAG dibangun dari pengolahan dokumen mentah hingga siap dikonsumsi LLM secara akurat.