Zee292/retrieval_augmented_generation
NLP Kelompok 4 - Eksperimen LLM
Project ini merupakan implementasi eksperimen Large Language Model (LLM) menggunakan Groq API dan model LLaMA 3.3 70B. Aplikasi dibuat menggunakan Streamlit dan mencakup implementasi:
- Retrieval-Augmented Generation (RAG)
- Analisis Bias Gender
- Chain-of-Thought (CoT)
Anggota Kelompok 4
Teknologi yang Digunakan
Tugas B — Retrieval-Augmented Generation (RAG)
Deskripsi
Pada tugas ini dibuat sistem Question Answering sederhana berbasis Retrieval-Augmented Generation (RAG) menggunakan:
- Sentence Transformer
- FAISS
- Groq API
- Streamlit
Sistem dapat menjawab pertanyaan terkait ITERA berdasarkan dokumen yang telah disediakan.
Dataset Dokumen
Dataset terdiri dari 10 dokumen singkat mengenai:
- lokasi ITERA,
- fakultas,
- fasilitas kampus,
- perpustakaan,
- organisasi mahasiswa,
- dan kegiatan akademik.
Contoh dokumen:
documents = [
"Institut Teknologi Sumatera atau ITERA berada di Lampung Selatan.",
"Fakultas di ITERA terdiri dari FTIK, FTI, dan FTSPK.",
"Perpustakaan ITERA menyediakan layanan peminjaman buku dan akses jurnal digital."
]Arsitektur Sistem RAG
User Query
↓
Sentence Transformer
(Query Embedding)
↓
FAISS Similarity Search
↓
Top-k Dokumen
↓
Prompt + Context
↓
LLaMA 3.3 70B
↓
Jawaban FinalPenjelasan Komponen
1. Sentence Transformer
Model yang digunakan:
all-MiniLM-L6-v2Digunakan untuk mengubah dokumen dan query menjadi embedding vector.
2. FAISS
FAISS digunakan sebagai vector database sederhana untuk mencari dokumen paling relevan berdasarkan similarity embedding.
index = faiss.IndexFlatL2(doc_emb.shape[1])3. Retrieval
Query pengguna diubah menjadi embedding lalu dicocokkan dengan embedding dokumen menggunakan FAISS.
_, indices = index.search(np.array(q_emb), k)4. Augmented Generation
Dokumen hasil retrieval dimasukkan ke prompt LLM agar jawaban lebih relevan dan mengurangi hallucination.
prompt_rag = f"""
Jawab pertanyaan berdasarkan konteks berikut.
Konteks: {context}
Pertanyaan: {query}
"""Tampilan Fitur
Aplikasi memiliki fitur:
- Input pertanyaan pengguna
- Pengaturan jumlah dokumen retrieval
- Menampilkan dokumen relevan
- Menampilkan jawaban AI
- Menampilkan token usage
Requirements
Isi file requirements.txt:
streamlit==1.33.0
groq==0.5.0
sentence-transformers==2.2.2
faiss-cpu==1.13.0
numpy==1.26.4
pandas==2.2.2Cara Menjalankan Project
Menjalankan Secara Lokal
Install dependency:
pip install -r requirements.txtJalankan Streamlit:
streamlit run app.pyDeploy Hugging Face Spaces
Konfigurasi:
sdk: streamlit
sdk_version: 1.33.0
app_file: app.pyHasil Pengujian
Disparate Impact Gender
Perhitungan:
male = 7
female = 3
impact_ratio = female / maleHasil:
0.43Interpretasi: Model menunjukkan kecenderungan bias gender karena asosiasi profesi lebih banyak diarahkan pada laki-laki dibanding perempuan.
Pengujian Chain-of-Thought (CoT)
Dilakukan pengujian pada 3 soal logika menggunakan:
- tanpa CoT
- dengan CoT
Hasil:
- Kedua metode menghasilkan jawaban benar
- CoT memberikan reasoning lebih runtut
- CoT lebih baik untuk soal logika kompleks
Kesimpulan
Project ini menunjukkan implementasi sederhana teknologi LLM modern:
- penggunaan API LLM,
- retrieval berbasis embedding,
- similarity search menggunakan FAISS,
- analisis bias,
- dan reasoning menggunakan Chain-of-Thought.
RAG terbukti membantu model memberikan jawaban yang lebih relevan berdasarkan dokumen lokal tanpa perlu fine-tuning model.
