Text Generation, Summarization, dan Paraphrasing
Pada sesi ini mahasiswa mulai melihat wajah AI generatif yang paling terasa dalam kehidupan sehari-hari, yaitu kemampuan membuat teks baru, meringkas teks panjang, dan menulis ulang kalimat agar lebih mudah dipahami. Kalau sesi 10 membahas cara memberi instruksi yang tepat, maka sesi 11 adalah panggung praktiknya. Di sini mahasiswa melihat bagaimana prompt, model, dan tujuan tugas bertemu menjadi keluaran yang benar-benar berguna.
Bayangkan mahasiswa punya artikel yang sangat panjang. Membaca semuanya tentu butuh waktu. Ringkasan membantu seperti teman yang membaca dulu lalu menceritakan inti isinya. Parafrase membantu seperti teman yang menjelaskan ulang dengan bahasa yang lebih sederhana. Text generation membantu seperti asisten yang menulis draf awal yang nanti tetap perlu kita cek dan rapikan.
Apa itu text generation
Text generation adalah proses ketika model membuat teks baru berdasarkan instruksi dan konteks yang diberikan. Teks baru ini bisa berupa jawaban singkat, paragraf penjelasan, deskripsi produk, balasan email, sampai draf laporan. Pada dasarnya model memprediksi token berikutnya satu demi satu, tetapi dari sudut pandang pengguna hasil akhirnya terlihat seperti model sedang menulis.
Bayangkan ada mahasiswa yang sudah sangat sering membaca artikel, laporan, dan percakapan. Ketika diminta menulis paragraf baru, ia memakai pola-pola bahasa yang pernah ia lihat. Model generatif bekerja mirip seperti itu. Ia tidak "berpikir" seperti manusia, tetapi sangat terlatih dalam menebak kelanjutan teks yang masuk akal.
Tiga tugas generatif yang dibahas di sesi ini
Text generation
Membuat teks baru, misalnya penjelasan konsep, contoh soal, draf pengumuman, atau balasan pertanyaan mahasiswa.
Summarization
Meringkas teks panjang menjadi bentuk yang lebih pendek tanpa kehilangan inti informasi.
Paraphrasing
Menulis ulang isi yang sama dengan kata-kata berbeda agar lebih sederhana, lebih formal, atau lebih sesuai target pembaca.
Apa bedanya ringkasan dan parafrase
Ringkasan berfokus pada memendekkan isi dan mengambil bagian paling penting. Parafrase berfokus pada menyampaikan isi yang mirip, tetapi dengan susunan kalimat yang berbeda. Jadi ringkasan itu seperti mengecilkan ukuran baju, sedangkan parafrase itu seperti mengganti model baju tanpa mengubah siapa pemiliknya.
Ringkasan
Teks lebih pendek, inti tetap dipertahankan, detail kecil bisa dihilangkan.
Parafrase
Panjang teks bisa mirip, tetapi gaya bahasanya diubah agar lebih mudah dipahami atau lebih sesuai kebutuhan.
Hal-hal yang perlu dikendalikan saat memakai model generatif
Model generatif sangat fleksibel, tetapi justru karena fleksibel, hasilnya bisa terlalu pendek, terlalu panjang, terlalu formal, terlalu santai, atau bahkan keluar dari topik. Karena itu mahasiswa perlu belajar mengendalikan tujuan, panjang jawaban, gaya bahasa, target pembaca, dan format keluaran. Ini penting terutama dalam konteks pendidikan, karena jawaban yang benar belum tentu mudah dipahami.
Misalnya, penjelasan untuk dosen dan penjelasan untuk mahasiswa semester awal seharusnya berbeda. Konsep yang sama bisa disampaikan dengan cara berbeda. Di sinilah kekuatan prompt terlihat.
Praktikum 1: fungsi helper generatif yang lebih lengkap
Pada praktik nyata, kita jarang menulis kode panggilan API berulang kali. Karena itu, buat fungsi helper yang bisa dipakai untuk berbagai eksperimen seperti generasi teks, ringkasan, dan parafrase.
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"
}
def ask_llm(system_prompt, user_prompt, temperature=0.3, max_tokens=500):
payload = {
"model": MODEL,
"temperature": temperature,
"max_tokens": max_tokens,
"messages": [
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_prompt}
]
}
response = requests.post(URL, headers=headers, json=payload)
response.raise_for_status()
data = response.json()
return data["choices"][0]["message"]["content"]
system_prompt = "Anda adalah tutor mata kuliah NLP dan AI generatif yang menjelaskan dengan bahasa sederhana."
user_prompt = "Jelaskan perbedaan summarization dan paraphrasing dalam 2 paragraf."
hasil = ask_llm(system_prompt, user_prompt)
print(hasil)Praktikum 2: text generation untuk membuat penjelasan konsep
Latihan awal yang baik adalah meminta model membuat penjelasan konsep untuk target pembaca tertentu. Ini membuat mahasiswa sadar bahwa target pembaca memengaruhi gaya jawaban.
prompt = "Jelaskan apa itu text generation untuk mahasiswa semester 2 dalam 3 paragraf. Gunakan 1 perumpamaan sederhana dan 1 contoh penggunaan di kampus."
hasil = ask_llm(
"Anda adalah dosen yang suka mengajar dengan bahasa ringan.",
prompt,
temperature=0.4,
max_tokens=400
)
print(hasil)Setelah itu, mahasiswa dapat membandingkan hasil ketika targetnya diubah menjadi peneliti, guru sekolah, atau pengguna umum.
Praktikum 3: summarization satu dokumen
Di sini mahasiswa belajar bahwa prompt ringkasan sebaiknya menyebutkan bentuk ringkasan yang diinginkan. Apakah cukup satu paragraf, dua paragraf, atau poin-poin utama. Karena modul ini meminta jawaban tanpa markdown, maka contoh dibuat dalam bentuk paragraf biasa.
teks_panjang = """
Natural language processing adalah bidang yang mempelajari bagaimana komputer memahami, memproses, dan menghasilkan bahasa manusia. Bidang ini mencakup banyak tugas seperti klasifikasi teks, analisis sentimen, ekstraksi informasi, penerjemahan mesin, hingga pembuatan chatbot. Dalam beberapa tahun terakhir, perkembangan transformer dan large language model membuat kemampuan sistem NLP meningkat sangat pesat. Namun, kemajuan itu juga membawa tantangan seperti kebutuhan komputasi yang besar, risiko bias, dan kemungkinan munculnya hallucination.
"""
prompt = f"Ringkas teks berikut menjadi 1 paragraf yang mudah dipahami mahasiswa semester awal. Teks: {teks_panjang}"
hasil_ringkasan = ask_llm(
"Anda adalah asisten perkuliahan yang merangkum teks dengan jelas.",
prompt,
temperature=0.2,
max_tokens=250
)
print(hasil_ringkasan)Praktikum 4: summarization banyak dokumen kecil
Dalam praktik kampus, sering kali kita tidak meringkas satu dokumen panjang, melainkan banyak masukan pendek. Contohnya komentar mahasiswa. Berikut contoh yang lebih nyata.
komentar = [
"Materi bagus tetapi kecepatannya terlalu tinggi.",
"Contoh kode membantu, namun saya masih bingung tentang cosine similarity.",
"Sesi praktikum menarik karena ada contoh nyata.",
"Perlu lebih banyak latihan untuk membedakan TF-IDF dan embedding."
]
teks_gabungan = "\n".join(f"- {k}" for k in komentar)
prompt = f"Buat ringkasan umpan balik mahasiswa berikut dalam 1 paragraf. Jelaskan apa yang sudah baik dan apa yang masih perlu diperbaiki. Data: {teks_gabungan}"
hasil = ask_llm(
"Anda adalah analis umpan balik pembelajaran.",
prompt,
temperature=0.2,
max_tokens=250
)
print(hasil)Praktikum 5: paraphrasing untuk membuat bahasa lebih sederhana
Parafrase sangat berguna saat kita punya teks yang terlalu formal atau terlalu teknis. Model diminta menjaga makna, tetapi menyederhanakan cara penyampaiannya.
teks_asli = "Representasi distribusional memungkinkan kata-kata dipetakan ke ruang vektor sehingga hubungan semantik dapat dikuantifikasi melalui kedekatan geometris."
prompt = f"Parafrase kalimat berikut agar lebih mudah dipahami mahasiswa semester awal tanpa mengubah makna utamanya: {teks_asli}"
hasil = ask_llm(
"Anda adalah tutor yang menjelaskan istilah teknis dengan sederhana.",
prompt,
temperature=0.3,
max_tokens=200
)
print(hasil)Praktikum 6: membandingkan gaya parafrase
Satu teks bisa diparafrase dengan banyak gaya. Ini latihan yang bagus agar mahasiswa melihat bahwa LLM bukan hanya alat jawab, tetapi juga alat penyesuaian gaya bahasa.
teks = "Model transformer menggunakan mekanisme attention untuk memeriksa hubungan antar token dalam sebuah urutan teks."
prompt_sederhana = f"Parafrase kalimat berikut menjadi bahasa sangat sederhana untuk mahasiswa baru: {teks}"
prompt_formal = f"Parafrase kalimat berikut menjadi bahasa formal akademik: {teks}"
prompt_santai = f"Parafrase kalimat berikut menjadi bahasa santai tetapi sopan untuk diskusi kelas: {teks}"
print("=== Sederhana ===")
print(ask_llm("Anda adalah tutor yang sabar.", prompt_sederhana))
print("\n=== Formal ===")
print(ask_llm("Anda adalah penulis akademik.", prompt_formal))
print("\n=== Santai ===")
print(ask_llm("Anda adalah asisten kelas yang ramah.", prompt_santai))Praktikum 7: pipeline mini untuk tugas generatif
Contoh berikut memperlihatkan alur yang lebih utuh. Kita minta model membuat ringkasan singkat, lalu membuat parafrase dari ringkasan itu. Ini membantu mahasiswa memahami bahwa keluaran LLM bisa dipakai lagi sebagai input ke langkah berikutnya.
artikel = """
Banyak sistem pencarian tradisional hanya mencocokkan kata yang persis sama. Akibatnya, dokumen yang sebenarnya relevan bisa tidak ditemukan jika menggunakan kata berbeda. Model embedding dan semantic search membantu mengatasi masalah ini dengan memetakan teks ke ruang vektor berdasarkan makna.
"""
ringkas_prompt = f"Ringkas teks berikut dalam 2 kalimat: {artikel}"
ringkasan = ask_llm("Anda adalah peringkas teks.", ringkas_prompt, temperature=0.2, max_tokens=120)
parafrase_prompt = f"Tulis ulang ringkasan berikut dengan bahasa yang lebih mudah dipahami mahasiswa semester awal: {ringkasan}"
parafrase = ask_llm("Anda adalah tutor pemula yang sabar.", parafrase_prompt, temperature=0.3, max_tokens=150)
print("Ringkasan:")
print(ringkasan)
print("\nParafrase ringkasan:")
print(parafrase)Praktikum 8: evaluasi sederhana hasil generatif
Model generatif tidak cukup hanya menghasilkan teks. Kita perlu menilai apakah teks itu relevan, mudah dipahami, dan tidak keluar jalur. Contoh berikut memperlihatkan rubric sederhana dalam bentuk kode Python.
def evaluasi_manual(output, kriteria):
print("HASIL MODEL:")
print(output)
print("\nKRITERIA CEK:")
for i, item in enumerate(kriteria, start=1):
print(f"{i}. {item}")
kriteria_ringkasan = [
"Apakah inti teks tetap ada?",
"Apakah panjangnya lebih pendek dari teks asli?",
"Apakah bahasa mudah dipahami?",
"Apakah ada informasi penting yang hilang total?",
"Apakah muncul informasi baru yang tidak ada pada teks asli?"
]
output = hasil_ringkasan
evaluasi_manual(output, kriteria_ringkasan)Praktikum 9: contoh integrasi di PHP
Kode berikut menunjukkan cara sederhana membuat fitur ringkasan di aplikasi PHP. Konsepnya serupa dengan widget diskusi, tetapi prompt-nya diarahkan untuk tugas khusus summarization.
<?php
function askGroq($userPrompt) {
$apiKey = 'gsk_XXXX';
$model = 'llama-3.1-8b-instant';
$url = 'https://api.groq.com/openai/v1/chat/completions';
$systemPrompt = 'Anda adalah asisten pembelajaran NLP. Ringkas teks dengan bahasa sederhana, jelas, dan tetap setia pada isi.';
$payload = [
'model' => $model,
'temperature' => 0.2,
'messages' => [
['role' => 'system', 'content' => $systemPrompt],
['role' => 'user', 'content' => $userPrompt]
]
];
$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);
curl_close($ch);
$data = json_decode($response, true);
return $data['choices'][0]['message']['content'] ?? 'Gagal mengambil jawaban.';
}
$teks = $_POST['teks'] ?? '';
if ($teks !== '') {
$prompt = "Ringkas teks berikut dalam 1 paragraf: " . $teks;
echo askGroq($prompt);
}
?>Kesalahan umum saat memakai model generatif
Kesalahan pertama adalah meminta model merangkum tanpa menjelaskan panjang ringkasan yang diinginkan. Kesalahan kedua adalah meminta parafrase, tetapi tidak menekankan bahwa makna utama harus dipertahankan. Kesalahan ketiga adalah memakai hasil generatif mentah tanpa pengecekan. Kesalahan keempat adalah lupa bahwa model bisa terdengar meyakinkan walaupun salah. Karena itu, mahasiswa harus terbiasa mengecek apakah keluaran benar-benar sesuai dengan sumber atau kebutuhan.
Model generatif itu seperti asisten yang sangat cepat menulis. Ia bisa sangat membantu, tetapi tetap perlu diawasi. Kecepatan bukan jaminan kebenaran.
Ruang Diskusi Mahasiswa dengan Sistem LLM
Tanyakan konsep, latihan, studi kasus, atau minta penjelasan ulang dengan bahasa yang lebih sederhana. Sistem hanya melayani topik yang masih berkaitan dengan mata kuliah ini.