S9
IF1402 Praktikum
Sesi 9 - Pengantar LLM dan AI Generatif
Sesi 9 dari 16

Pengantar LLM dan AI Generatif

Sesudah UTS, mahasiswa mulai masuk ke fase yang sering paling menarik perhatian, yaitu Large Language Model atau LLM. Pada sesi ini mahasiswa tidak langsung diajak tenggelam ke istilah rumit, tetapi dibimbing memahami ide dasarnya. LLM bisa dibayangkan seperti mahasiswa yang telah membaca sangat banyak dokumen, lalu belajar menebak kata berikutnya dengan sangat baik sampai terlihat seolah-olah memahami dan bisa menjawab berbagai pertanyaan.

Namun penting untuk dijelaskan bahwa LLM bukan mesin ajaib yang selalu benar. Ia bekerja berdasarkan pola bahasa dari data latihan dan instruksi yang kita berikan. Karena itu mahasiswa perlu belajar dua hal sekaligus: bagaimana memanfaatkan kekuatannya dan bagaimana menyadari keterbatasannya. Dengan pemahaman itu, mereka tidak hanya kagum pada hasil, tetapi juga kritis saat menggunakannya.

Fokus: memahami LLM Bahas token dan context window Contoh: klasifikasi, ringkasan, tanya jawab
Pertanyaan utama sesi ini Bagaimana LLM bisa menghasilkan jawaban yang tampak pintar, padahal sebenarnya ia bekerja dengan pola token dan konteks?
Inti jawabannya LLM memprediksi token berikutnya berdasarkan konteks sebelumnya. Karena dilatih pada data yang sangat besar, prediksi itu bisa sangat meyakinkan dan berguna.
Hasil belajar Mahasiswa memahami konsep dasar LLM, dapat membedakan model generatif dan klasifikasi, serta mampu mencoba tugas-tugas NLP modern dengan memanggil API model bahasa.

Apa itu LLM dengan bahasa yang sederhana

LLM adalah model bahasa berukuran besar yang dilatih menggunakan data teks dalam jumlah sangat banyak. Model ini belajar pola hubungan antarkata, antarfrasa, dan antarkalimat. Ketika kita memberi pertanyaan atau instruksi, model mencoba menghasilkan jawaban token demi token dengan mempertimbangkan konteks yang diberikan.

Perumpamaan mudah

Bayangkan ada mahasiswa yang seumur hidupnya membaca jutaan halaman buku, artikel, forum, dan dokumen. Ketika dosen memberi potongan kalimat, mahasiswa itu sangat pandai menebak kelanjutan yang paling masuk akal. Itulah gambaran sederhana cara kerja LLM. Bedanya, LLM tidak "membaca" seperti manusia, tetapi belajar pola statistik bahasa dalam bentuk angka.

Karena itulah LLM bisa dipakai untuk banyak tugas sekaligus, seperti merangkum, menjawab pertanyaan, mengklasifikasikan teks, menerjemahkan, membuat paragraf, atau mengekstrak informasi penting. Kemampuan ini terasa luar biasa karena dalam banyak kasus kita tidak perlu lagi melatih model baru dari nol untuk setiap tugas kecil.

Perbedaan model diskriminatif dan generatif

1

Model diskriminatif

Model ini fokus memilih label. Misalnya teks ini positif atau negatif, spam atau bukan, berita olahraga atau teknologi.

2

Model generatif

Model ini fokus menghasilkan teks baru. Misalnya membuat ringkasan, menjawab pertanyaan, menulis email, atau membuat saran.

3

Kapan dipakai

Jika kita hanya perlu label, model diskriminatif sering cukup. Jika kita ingin jawaban dalam bentuk bahasa alami, model generatif lebih cocok.

4

Di dunia nyata

Sebuah sistem modern sering menggabungkan keduanya. Ada bagian yang mengklasifikasi, ada juga bagian yang menjelaskan hasil dalam bahasa alami.

Token, context window, dan kenapa jawabannya bisa berbeda

Dalam LLM, teks tidak diproses sebagai kalimat utuh seperti yang kita lihat di layar. Teks lebih dulu dipecah menjadi token. Token bisa berupa kata utuh, potongan kata, angka, atau tanda baca. Model kemudian memproses urutan token ini untuk memprediksi token berikutnya.

Contoh sederhana. Kata "mahasiswa" mungkin menjadi satu token, tetapi kata yang lebih jarang atau lebih panjang bisa dipecah menjadi beberapa potongan. Jadi token tidak selalu sama dengan jumlah kata.

Context window adalah jumlah konteks yang masih bisa "diingat" model dalam satu percakapan atau satu permintaan. Jika konteks terlalu panjang, sebagian bagian awal bisa terpotong atau tidak lagi diperhatikan. Inilah sebabnya pertanyaan yang sangat panjang kadang menghasilkan jawaban yang kurang fokus. Bukan karena model malas, tetapi karena kapasitas konteksnya terbatas.

Pesan penting untuk mahasiswa: LLM yang canggih tetap memiliki batas. Jika instruksi terlalu panjang, terlalu kabur, atau bercampur banyak hal, hasilnya dapat menurun. Karena itu kualitas instruksi sangat berpengaruh.

Use case yang dekat dengan perkuliahan

Sesi ini akan lebih mudah dipahami jika contoh penggunaan LLM diambil dari dunia kampus dan tugas kuliah. Mahasiswa biasanya lebih cepat paham ketika contoh tidak terlalu jauh dari pengalaman sehari-hari.

Ringkasan artikel

Mahasiswa memberi artikel teknologi, lalu model merangkum inti pembahasannya menjadi satu atau dua paragraf.

Klasifikasi cepat

Mahasiswa memasukkan keluhan pengguna aplikasi kampus, lalu model menandai apakah itu masalah akademik, teknis, atau administrasi.

Tanya jawab dokumen

Mahasiswa mengajukan pertanyaan tentang aturan praktikum atau panduan tugas, lalu model menjawab berdasarkan isi dokumen.

Praktikum 1: memanggil LLM dengan Python

Contoh pertama dibuat sesederhana mungkin. Tujuannya agar mahasiswa melihat bahwa pada level praktik, LLM bisa dipanggil melalui API dengan format pesan. Dari sini mereka mulai paham bahwa di balik chatbot yang terlihat "ramah", sebenarnya ada permintaan data yang terstruktur.

import requests
import json

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"
}

payload = {
    "model": MODEL,
    "temperature": 0.3,
    "messages": [
        {
            "role": "system",
            "content": "Anda adalah asisten pembelajaran untuk mata kuliah NLP dan AI generatif. Jelaskan dengan bahasa mudah dipahami."
        },
        {
            "role": "user",
            "content": "Jelaskan apa itu LLM dengan perumpamaan sederhana untuk mahasiswa semester awal."
        }
    ]
}

response = requests.post(URL, headers=headers, json=payload)
result = response.json()
print(json.dumps(result, indent=2, ensure_ascii=False))
print("\nJawaban model:\n")
print(result["choices"][0]["message"]["content"])

Pada kode di atas, bagian yang paling penting untuk diamati adalah susunan messages. Role system memberi karakter dan batas perilaku model, sedangkan role user berisi pertanyaan yang ingin dijawab.

Praktikum 2: membandingkan tugas generatif dan tugas klasifikasi

Banyak mahasiswa mengira LLM hanya cocok untuk membuat paragraf panjang. Padahal LLM juga bisa dipakai untuk klasifikasi sederhana jika instruksinya jelas. Ini contoh yang sangat bagus untuk menunjukkan pergeseran dari machine learning klasik ke pendekatan prompt-based.

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 ask_llm(system_text, user_text, temperature=0.2):
    payload = {
        "model": MODEL,
        "temperature": temperature,
        "messages": [
            {"role": "system", "content": system_text},
            {"role": "user", "content": user_text}
        ]
    }
    response = requests.post(URL, headers=headers, json=payload)
    data = response.json()
    return data["choices"][0]["message"]["content"]

# contoh 1: tugas generatif
jawaban_ringkasan = ask_llm(
    "Anda adalah asisten pembelajaran yang menjelaskan dengan bahasa sederhana.",
    "Ringkas paragraf berikut menjadi 3 kalimat: Aplikasi akademik kampus mengalami peningkatan penggunaan selama masa pengisian KRS. Namun banyak mahasiswa mengeluhkan lambatnya sistem ketika jam sibuk. Tim teknis kemudian meningkatkan kapasitas server dan memperbaiki antrian permintaan agar kinerja lebih stabil."
)
print("Ringkasan:\n", jawaban_ringkasan)

# contoh 2: tugas klasifikasi
jawaban_klasifikasi = ask_llm(
    "Anda adalah pengklasifikasi teks. Jawab hanya dengan salah satu label berikut: akademik, teknis, administrasi.",
    "Teks: Sistem KRS tidak bisa diakses saat jam 9 pagi dan halaman login sering macet."
)
print("\nLabel:\n", jawaban_klasifikasi)

Di sini mahasiswa bisa melihat bahwa model yang sama dapat diberi peran berbeda hanya dengan mengubah instruksi. Inilah salah satu kekuatan besar AI generatif modern.

Praktikum 3: eksplorasi parameter temperature

Temperature mengatur tingkat variasi jawaban. Nilai rendah cenderung lebih fokus dan stabil. Nilai lebih tinggi cenderung lebih kreatif, tetapi bisa lebih berisiko melenceng. Ini dapat dianalogikan seperti tingkat kebebasan saat menjawab.

Perumpamaan mudah

Bayangkan dosen bertanya, lalu mahasiswa diminta menjawab. Jika dosen berkata "jawab tepat dan singkat", jawabannya akan lebih hati-hati. Itu mirip temperature rendah. Jika dosen berkata "silakan berimajinasi", jawabannya bisa lebih beragam. Itu mirip temperature lebih tinggi.

prompt = "Jelaskan AI generatif dalam 4 kalimat untuk mahasiswa baru."

for temp in [0.1, 0.5, 0.9]:
    jawaban = ask_llm(
        "Anda adalah dosen pembimbing yang menjelaskan dengan sederhana.",
        prompt,
        temperature=temp
    )
    print("\n============================")
    print("Temperature:", temp)
    print(jawaban)

Mahasiswa dapat diminta membandingkan hasilnya dan menuliskan pengamatan mereka. Biasanya mereka akan melihat jawaban pada temperature rendah lebih konsisten, sedangkan temperature tinggi kadang lebih variatif.

Praktikum 4: mini studi kasus klasifikasi keluhan mahasiswa

Contoh berikut lebih mendekati kondisi nyata. Kita buat daftar keluhan, lalu meminta LLM memberi label kategori. Walaupun ini bukan cara paling hemat biaya untuk dataset besar, contoh ini sangat bagus untuk memperlihatkan kemampuan LLM memahami maksud teks.

data_keluhan = [
    "Nilai praktikum saya belum muncul di portal akademik.",
    "Website kampus lambat saat login dan sering error 500.",
    "Saya bingung prosedur pembayaran daftar ulang semester depan.",
    "Menu cetak KRS tidak bisa dibuka dari ponsel saya.",
    "Jadwal dosen pembimbing skripsi belum diumumkan."
]

system_prompt = "Anda adalah pengklasifikasi teks kampus. Beri label hanya satu kata: akademik, teknis, atau administrasi."

for teks in data_keluhan:
    label = ask_llm(system_prompt, f"Teks: {teks}")
    print(f"Teks: {teks}")
    print(f"Label: {label}")
    print("-")

Mahasiswa lalu dapat diminta memeriksa apakah labelnya masuk akal. Dari sini dosen bisa mengajak diskusi tentang kelebihan dan keterbatasan klasifikasi berbasis prompt.

Praktikum 5: contoh integrasi API dalam PHP

Karena web modul ini juga menggunakan PHP, contoh berikut penting agar mahasiswa melihat bahwa LLM tidak hanya bisa dipanggil lewat Python. Dalam pengembangan aplikasi web, PHP pun dapat berperan sebagai jembatan ke model bahasa.

<?php
$apiKey = 'gsk_XXXX';
$model  = 'llama-3.1-8b-instant';
$url    = 'https://api.groq.com/openai/v1/chat/completions';

$payload = [
    'model' => $model,
    'temperature' => 0.2,
    'messages' => [
        [
            'role' => 'system',
            'content' => 'Anda adalah asisten pembelajaran NLP. Jelaskan dengan bahasa sederhana.'
        ],
        [
            'role' => 'user',
            'content' => 'Apa beda model klasifikasi teks dan LLM?'
        ]
    ]
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer ' . $apiKey
]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

echo "HTTP Code: " . $httpCode . "\n";
echo $response;
?>

Kode di atas sangat mirip dengan yang sudah dipakai pada menu diskusi LLM di modul ini. Jadi mahasiswa bisa melihat hubungan antara teori dan implementasi aplikasi web yang nyata.

Keterbatasan LLM yang wajib disadari

LLM bisa menghasilkan jawaban yang terlihat meyakinkan, tetapi belum tentu semuanya benar. Masalah ini sering disebut hallucination. Model dapat mengarang detail, mencampur fakta, atau terdengar yakin padahal salah. Karena itu mahasiswa harus belajar memeriksa ulang informasi penting, terutama jika menyangkut data, aturan, atau keputusan teknis.

Jangan menganggap jawaban LLM selalu sama dengan kebenaran. Anggaplah ia seperti asisten yang sangat cepat memberi ide awal, tetapi tetap perlu dicek bila konteksnya penting.

Keterbatasan lain adalah sensitivitas terhadap prompt. Pertanyaan yang kabur sering menghasilkan jawaban yang kabur juga. Sebaliknya, pertanyaan yang jelas biasanya memberi hasil lebih baik. Inilah jembatan menuju sesi berikutnya, yaitu prompt engineering.

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.