S14
IF1402 Praktikum
Sesi 14 - Evaluasi Output AI Generatif dan Etika
Sesi 14 dari 16

Evaluasi Output AI Generatif dan Etika

Setelah mahasiswa bisa membuat sistem generatif, pertanyaan berikutnya adalah ini: apakah jawaban AI itu memang baik, dapat dipercaya, dan layak digunakan? Di sinilah sesi 14 menjadi sangat penting. Membangun model atau memanggil API itu baru setengah jalan. Separuh lainnya adalah menilai hasilnya secara kritis dan bertanggung jawab.

Bayangkan AI seperti mahasiswa yang diminta presentasi. Presentasi yang terdengar lancar belum tentu isinya benar. Ada yang berbicara meyakinkan, tetapi salah data. Ada yang sopan, tetapi tidak menjawab pertanyaan. Ada yang kreatif, tetapi justru keluar topik. Karena itu evaluasi output AI generatif harus melihat lebih dari sekadar “terdengar bagus”.

Fokus: kualitas jawaban AI Topik: relevansi, factuality, bias Output: rubric evaluasi dan etika
Pertanyaan inti sesi ini Bagaimana cara menilai bahwa jawaban AI generatif memang berguna, akurat, aman, dan etis untuk dipakai?
Inti jawabannya Kita perlu rubric yang jelas, contoh kasus, dan kebiasaan untuk tidak langsung percaya pada keluaran model meskipun bahasanya terdengar meyakinkan.
Hasil belajar Mahasiswa mampu mengevaluasi jawaban model secara manual maupun semi-otomatis serta memahami risiko etika seperti hallucination, bias, plagiarisme, dan penyalahgunaan AI.

Apa yang dimaksud evaluasi output AI generatif

Evaluasi output AI generatif adalah proses menilai kualitas jawaban yang dihasilkan model. Penilaian ini bisa dilakukan secara manual oleh manusia, secara otomatis dengan metrik tertentu, atau gabungan keduanya. Dalam konteks pendidikan, evaluasi tidak cukup berhenti pada tata bahasa yang rapi. Kita harus melihat apakah jawaban itu relevan terhadap pertanyaan, benar terhadap sumber, konsisten, mudah dipahami, dan aman untuk digunakan.

Perumpamaan mudah

Bayangkan Anda menilai tugas presentasi mahasiswa. Anda tidak hanya menilai suaranya enak didengar atau slide-nya cantik. Anda juga menilai apakah isi presentasi menjawab pertanyaan, apakah datanya benar, apakah penjelasannya runtut, dan apakah ia menyebut sumber dengan jujur. Menilai AI juga seperti itu.

Lima dimensi evaluasi yang paling penting

1

Relevansi

Apakah jawaban benar-benar menjawab pertanyaan yang diajukan, bukan sekadar berbicara panjang lebar di sekitar topik.

2

Factuality

Apakah isi jawaban sesuai fakta, sesuai konteks dokumen, dan tidak mengarang informasi yang tidak ada dasarnya.

3

Fluency dan clarity

Apakah bahasanya enak dibaca, jelas, dan mudah dipahami target pembaca.

4

Consistency

Apakah jawaban tidak saling bertentangan di dalam dirinya sendiri.

5

Safety dan etika

Apakah jawaban aman, tidak bias, tidak melanggar etika akademik, dan tidak mendorong penyalahgunaan.

Hallucination dan mengapa ia berbahaya

Hallucination adalah keadaan ketika model menghasilkan informasi yang terdengar meyakinkan, tetapi sebenarnya tidak didukung sumber yang kuat atau bahkan salah. Masalahnya, banyak pengguna pemula mudah terkecoh karena bahasa model terdengar rapi dan percaya diri. Dalam konteks akademik, hallucination bisa membuat mahasiswa salah memahami konsep, salah mengutip informasi, atau membuat laporan yang terlihat bagus tetapi isinya rapuh.

Jawaban yang lancar bukan jaminan jawaban yang benar. Inilah alasan mengapa evaluasi dan verifikasi sumber sangat penting.

Etika yang harus dipahami mahasiswa

Etika AI generatif tidak hanya soal sopan santun, tetapi juga soal tanggung jawab akademik. Mahasiswa harus memahami bahwa AI sebaiknya dipakai sebagai alat bantu belajar, bukan pengganti berpikir. Mereka juga perlu sadar tentang risiko bias, plagiarisme terselubung, penyebaran informasi salah, dan penggunaan data pribadi tanpa izin. Dalam kelas, dosen dapat menekankan bahwa penggunaan AI harus transparan dan kritis.

Penggunaan yang sehat

Meminta penjelasan ulang, meringkas bahan, membuat contoh latihan, atau membantu brainstorming lalu tetap diverifikasi sendiri.

Penggunaan yang bermasalah

Menyalin mentah jawaban AI sebagai tugas akhir, memakai AI untuk menipu, atau menyebarkan jawaban tanpa cek kebenaran.

Praktikum 1: membuat rubric evaluasi manual

Rubric sederhana membantu mahasiswa menilai jawaban secara konsisten. Contoh berikut memakai skala 1 sampai 5 untuk beberapa dimensi penting.

rubric = {
    "relevansi": "Apakah jawaban fokus menjawab pertanyaan?",
    "factuality": "Apakah isi jawaban sesuai fakta atau konteks yang diberikan?",
    "clarity": "Apakah bahasa mudah dipahami?",
    "consistency": "Apakah tidak ada bagian yang saling bertentangan?",
    "ethics": "Apakah jawaban aman, tidak bias, dan tidak menyesatkan?"
}

for aspek, penjelasan in rubric.items():
    print(aspek.upper(), ":", penjelasan)

Rubric ini dapat dipakai saat mahasiswa membandingkan beberapa jawaban dari prompt atau model yang berbeda.

Praktikum 2: menilai jawaban AI secara manual dalam bentuk tabel

Contoh berikut menunjukkan bagaimana mahasiswa dapat membuat tabel evaluasi sederhana menggunakan pandas.

import pandas as pd

data = [
    {
        "jawaban": "Preprocessing adalah tahap membersihkan teks sebelum analisis.",
        "relevansi": 5,
        "factuality": 5,
        "clarity": 5,
        "consistency": 5,
        "ethics": 5
    },
    {
        "jawaban": "Preprocessing itu penting karena AI suka kata-kata rapi dan itu ditemukan oleh Google pada tahun 1984.",
        "relevansi": 3,
        "factuality": 1,
        "clarity": 4,
        "consistency": 3,
        "ethics": 4
    }
]

df = pd.DataFrame(data)
df["total"] = df[["relevansi", "factuality", "clarity", "consistency", "ethics"]].sum(axis=1)
print(df)

Praktikum 3: evaluator sederhana berbasis konteks

Pada sistem RAG, kita bisa melakukan pemeriksaan sederhana apakah jawaban tampaknya selaras dengan konteks yang diberikan. Ini bukan verifikasi sempurna, tetapi cukup berguna sebagai alarm awal.

def simple_context_check(answer, context_keywords):
    answer_lower = answer.lower()
    found = [kw for kw in context_keywords if kw.lower() in answer_lower]
    coverage = len(found) / len(context_keywords) if context_keywords else 0
    return found, coverage

jawaban = "RAG membantu mengurangi hallucination karena model diberi konteks dari dokumen yang relevan sebelum menjawab."
keywords = ["RAG", "hallucination", "konteks", "dokumen relevan"]

ditemukan, coverage = simple_context_check(jawaban, keywords)
print("Keyword ditemukan:", ditemukan)
print("Coverage:", round(coverage, 2))

Latihan ini membantu mahasiswa melihat ide dasar evaluasi berbasis dukungan konteks, walaupun tetap belum menggantikan penilaian manusia.

Praktikum 4: memakai LLM sebagai evaluator

LLM juga bisa dipakai sebagai “hakim” sementara untuk membantu evaluasi. Namun penting ditekankan ke mahasiswa bahwa LLM judge tetap bisa salah, jadi ia lebih cocok sebagai alat bantu, bukan penentu tunggal.

import requests

API_KEY = "gsk_XXXX"
MODEL = "llama-3.1-8b-instant"
URL = "https://api.groq.com/openai/v1/chat/completions"

headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
}

def llm_evaluate(question, answer, context=""):
    system_prompt = (
        "Anda adalah evaluator jawaban AI untuk mata kuliah NLP dan AI generatif. "
        "Nilai jawaban berdasarkan relevansi, factuality, clarity, consistency, dan ethics. "
        "Berikan skor 1-5 untuk tiap aspek lalu jelaskan secara singkat."
    )

    user_prompt = f"Pertanyaan:\n{question}\n\nKonteks:\n{context}\n\nJawaban AI:\n{answer}"

    payload = {
        "model": MODEL,
        "temperature": 0.1,
        "max_tokens": 500,
        "messages": [
            {"role": "system", "content": system_prompt},
            {"role": "user", "content": user_prompt}
        ]
    }

    response = requests.post(URL, headers=headers, json=payload)
    response.raise_for_status()
    return response.json()["choices"][0]["message"]["content"]

question = "Apa manfaat RAG?"
context = "RAG menggabungkan retrieval dan generation agar jawaban lebih terikat pada dokumen relevan."
answer = "RAG membantu model menjawab berdasarkan konteks dokumen sehingga risiko hallucination bisa berkurang."

print(llm_evaluate(question, answer, context))

Praktikum 5: membandingkan dua jawaban secara otomatis

Mahasiswa juga dapat membandingkan dua jawaban untuk pertanyaan yang sama. Ini berguna saat mengevaluasi dua prompt atau dua model berbeda.

def compare_answers(question, answer_a, answer_b):
    prompt = f"""
Bandingkan dua jawaban berikut untuk pertanyaan yang sama.
Tentukan mana yang lebih baik dari sisi relevansi, factuality, clarity, dan consistency.
Berikan alasan singkat.

Pertanyaan:
{question}

Jawaban A:
{answer_a}

Jawaban B:
{answer_b}
"""
    return llm_evaluate(question, f"Jawaban A:\n{answer_a}\n\nJawaban B:\n{answer_b}")

q = "Apa itu semantic search?"
a = "Semantic search mencari dokumen berdasarkan makna kalimat, bukan hanya kata yang sama persis."
b = "Semantic search adalah semua jenis pencarian di internet yang cepat dan modern."

print(compare_answers(q, a, b))

Praktikum 6: evaluasi batch untuk beberapa keluaran

Kalau model dipakai pada banyak pertanyaan, evaluasi satu per satu akan melelahkan. Contoh ini memberi kerangka batch evaluation yang bisa dikembangkan lebih lanjut.

import pandas as pd

samples = [
    {
        "question": "Apa itu preprocessing?",
        "context": "Preprocessing adalah tahap membersihkan teks sebelum analisis.",
        "answer": "Preprocessing adalah tahap membersihkan teks sebelum analisis."
    },
    {
        "question": "Apa fungsi RAG?",
        "context": "RAG menggabungkan retrieval dan generation.",
        "answer": "RAG adalah algoritma clustering yang ditemukan pada awal 1980-an."
    }
]

results = []
for item in samples:
    found, coverage = simple_context_check(item["answer"], item["context"].split())
    results.append({
        "question": item["question"],
        "answer": item["answer"],
        "coverage": round(coverage, 2),
        "matched_tokens": len(found)
    })

df = pd.DataFrame(results)
print(df)

Praktikum 7: contoh pemeriksaan etika sederhana

Di praktik awal, mahasiswa bisa membuat aturan sederhana untuk menandai jawaban yang berpotensi bermasalah, misalnya mengandung klaim pasti tanpa sumber, ajakan menipu, atau permintaan data pribadi.

red_flags = [
    "tanpa perlu verifikasi",
    "salin saja sebagai tugas",
    "data pribadi",
    "tidak usah cantumkan sumber",
    "jawaban ini pasti benar"
]

def ethics_flag(answer):
    answer_lower = answer.lower()
    flags = [f for f in red_flags if f in answer_lower]
    return flags

jawaban = "Silakan salin saja sebagai tugas dan tidak usah cantumkan sumber."
print(ethics_flag(jawaban))

Praktikum 8: contoh evaluasi hasil dalam PHP

Untuk aplikasi web, hasil evaluasi sederhana juga bisa dirangkum dalam PHP. Contoh ini menunjukkan penilaian manual berbasis array.

<?php
$hasil = [
    'relevansi' => 4,
    'factuality' => 3,
    'clarity' => 5,
    'consistency' => 4,
    'ethics' => 5
];

$total = array_sum($hasil);
$rata = $total / count($hasil);

echo "Total skor: " . $total . "<br>";
echo "Rata-rata: " . number_format($rata, 2) . "<br>";

if ($rata < 3.5) {
    echo "Perlu revisi lebih lanjut.";
} else {
    echo "Keluaran cukup baik, tetapi tetap perlu verifikasi manusia.";
}
?>

Saran penilaian untuk tugas praktikum

Dalam tugas praktikum, dosen dapat meminta mahasiswa tidak hanya menunjukkan jawaban model, tetapi juga menjelaskan mengapa jawaban itu dianggap baik atau kurang baik. Dengan begitu mahasiswa belajar bahwa membangun sistem AI tidak berhenti pada “berhasil jalan”, tetapi juga pada “berhasil dinilai”. Ini akan melatih kebiasaan berpikir kritis yang sangat dibutuhkan di dunia nyata.

Mahasiswa yang baik bukan mahasiswa yang paling cepat percaya pada AI, tetapi mahasiswa yang paling rajin menguji, membandingkan, dan memverifikasi hasil AI.

Diskusi Mahasiswa dengan Sistem LLM

Tanyakan materi yang masih terkait Pembelajaran Mesin untuk Teks dan AI Generatif.

Siap Diskusi
Halo, saya siap membantu memahami materi praktikum, konsep, kode, studi kasus, UTS, UAS, dan mini project pada mata kuliah ini. Silakan tulis pertanyaan Anda.

Pembahasan dibatasi pada topik mata kuliah ini. Pertanyaan di luar tema akan ditolak secara otomatis.