CoolFace
Apppublic

Zee292/retrieval_augmented_generation

sourceHugging Faceupdated 4mo agoView on Hugging Face
0likes
App README

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

NamaNIM
Muhammad Zaky Zaiddan122450119
Berliana Enda Putri122450065
Lisa Diani Amelia122450021

Teknologi yang Digunakan

TeknologiFungsi
PythonBahasa pemrograman utama
StreamlitWeb interface
Groq APIAkses model LLM
Sentence TransformersEmbedding dokumen
FAISSSimilarity search
NumPyOperasi numerik
PandasPengolahan data

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:

python
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

text
User Query
     ↓
Sentence Transformer
(Query Embedding)
     ↓
FAISS Similarity Search
     ↓
Top-k Dokumen
     ↓
Prompt + Context
     ↓
LLaMA 3.3 70B
     ↓
Jawaban Final

Penjelasan Komponen

1. Sentence Transformer

Model yang digunakan:

python
all-MiniLM-L6-v2

Digunakan untuk mengubah dokumen dan query menjadi embedding vector.


2. FAISS

FAISS digunakan sebagai vector database sederhana untuk mencari dokumen paling relevan berdasarkan similarity embedding.

python
index = faiss.IndexFlatL2(doc_emb.shape[1])

3. Retrieval

Query pengguna diubah menjadi embedding lalu dicocokkan dengan embedding dokumen menggunakan FAISS.

python
_, 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.

python
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:

text
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.2

Cara Menjalankan Project

Menjalankan Secara Lokal

Install dependency:

bash
pip install -r requirements.txt

Jalankan Streamlit:

bash
streamlit run app.py

Deploy Hugging Face Spaces

Konfigurasi:

yaml
sdk: streamlit
sdk_version: 1.33.0
app_file: app.py

Hasil Pengujian

Disparate Impact Gender

Perhitungan:

python
male = 7
female = 3

impact_ratio = female / male

Hasil:

text
0.43

Interpretasi: 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.