0Pricing
AI Prompt Engineering · Pelajaran

Mendiagnosis Keluaran Tak Terduga

Klasifikasikan mode kegagalan: jawaban salah, format salah, di luar topik, atau halusinasi.

Mendiagnosis Keluaran Tak Terduga adalah pelajaran AI Prompt Engineering gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AI Prompt Engineering, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Prompt Engineering mencakup 4 pelajaran total.

Ketika Perintah Gagal

Bahkan perintah yang dirancang dengan cermat dapat menghasilkan hasil yang salah. Mendiagnosis kegagalan memerlukan taksonomi — klasifikasi jenis kegagalan yang terjadi. Tanpa klasifikasi, penelusuran kesalahan hanya menjadi tebak-tebakan. Empat kategori kegagalan utama adalah: jawaban salah, format salah, respons di luar topik, dan halusinasi.

Jenis Kegagalan 1: Jawaban Salah

Jawaban salah adalah kesalahan faktual — model memberikan respons dengan format yang benar dan pada topik yang benar, tetapi kontennya tidak benar.

Contoh: tanggal, statistik, nama, atau kode yang memiliki kesalahan logika. Kegagalan ini paling sulit dideteksi secara otomatis karena hasilnya terlihat benar di permukaan.

  • Penyebab: batas waktu data pelatihan, fakta yang jarang, atau kesalahan penalaran bertahap
  • Deteksi: bandingkan dengan kebenaran acuan, tinjauan manusia, atau panggilan LLM untuk verifikasi
# Example: wrong answer failure
prompt = 'What year was Python first released?'
response = 'Python was first released in 1994.'  # Wrong — it was 1991

# Ground truth check
GROUND_TRUTH = '1991'
correct = GROUND_TRUTH in response
print(f'Correct: {correct}')  # False

Jenis Kegagalan 2: Format Salah

Kegagalan format salah terjadi ketika model menjawab pertanyaan yang benar dengan informasi yang benar, tetapi mengabaikan instruksi pemformatan.

Contoh: mengembalikan teks biasa ketika JSON diminta, menambahkan markdown ketika teks biasa diperlukan, atau mengembalikan daftar ketika satu nilai diminta.

  • Penyebab: instruksi pemformatan tersembunyi dalam perintah yang panjang, instruksi yang saling bertentangan, atau model mengabaikan instruksi berprioritas rendah
  • Deteksi: kesalahan penguraian JSON, ketidakcocokan regex, atau kegagalan validasi skema
import json

response_text = 'Sure! Here is the result: {"name": "Alice", "age": 30}'

try:
    data = json.loads(response_text)
    print('Format OK:', data)
except json.JSONDecodeError as e:
    print(f'FORMAT FAILURE: {e}')
    # 'Sure! Here is the result:' prefix broke JSON parsing

Jenis Kegagalan 3: Respons di Luar Topik

Kegagalan di luar topik berarti model menjawab pertanyaan yang berbeda dari yang diajukan. Responsnya mungkin benar secara faktual dan memiliki format yang baik, tetapi tidak menjawab maksud pengguna yang sebenarnya.

Contoh: diminta fungsi Python, tetapi menerima fungsi JavaScript; diminta jawaban satu baris, tetapi menerima esai lengkap; diminta memperbaiki bug, tetapi menerima penjelasan tentang bug tersebut, bukan perbaikannya.

  • Penyebab: instruksi yang ambigu, konteks yang bertentangan, atau pergeseran tugas dalam percakapan panjang
# Off-topic example
prompt = 'Write a Python function that reverses a list.'
response = '''
In JavaScript, you can reverse an array like this:
const reversed = arr.reverse();
'''

# Detection: check that output contains the correct language keyword
def check_language(response, expected_lang='def '):
    if expected_lang not in response:
        print(f'OFF-TOPIC FAILURE: expected {expected_lang} in response')
        return False
    return True

check_language(response)  # False — no Python def

Jenis Kegagalan 4: Halusinasi

Halusinasi adalah kegagalan yang paling berbahaya: model mengarang fakta yang tidak ada. Hasilnya terlihat masuk akal dan meyakinkan, sehingga sulit dikenali.

Contoh: kutipan yang dibuat-buat (judul makalah terdengar nyata tetapi sebenarnya tidak ada), titik akhir API yang diciptakan, statistik palsu, atau orang yang tidak pernah ada.

  • Penyebab: model mengisi celah pengetahuan dengan teks masuk akal yang dicocokkan berdasarkan pola
  • Deteksi: periksa fakta terhadap sumber tepercaya, bandingkan silang kutipan, dan uji panggilan API
# Hallucination detection via external verification
import requests

def verify_doi(doi):
    url = f'https://doi.org/{doi}'
    resp = requests.head(url, allow_redirects=True, timeout=5)
    return resp.status_code == 200

# Model claimed this paper exists:
fabricated_doi = '10.1234/fake.paper.2023.99999'
if not verify_doi(fabricated_doi):
    print('HALLUCINATION DETECTED: DOI does not exist')

Taksonomi Kegagalan dalam Praktik

Ketika kegagalan ditemukan, klasifikasikan terlebih dahulu sebelum mencoba memperbaikinya. Jenis kegagalan menentukan strategi perbaikan:

  • Jawaban salah: tambahkan konteks, gunakan pengambilan, atau beralih ke model yang lebih mampu
  • Format salah: perkuat instruksi format, tambahkan contoh hasil, gunakan hasil terstruktur / pemanggilan fungsi
  • Di luar topik: tulis ulang instruksi agar lebih spesifik, sederhanakan perintah
  • Halusinasi: tambahkan konteks yang menjadi dasar, instruksikan model untuk mengatakan 'Saya tidak tahu', aktifkan kutipan

Pencatatan Kegagalan Terstruktur

Catat setiap kegagalan beserta klasifikasinya. Seiring waktu, pola akan muncul: bagian tertentu dari perintah menyebabkan sebagian besar kesalahan format, atau topik tertentu sering memicu halusinasi. Catatan terstruktur memungkinkan penelusuran kesalahan berbasis data.

import json
from datetime import datetime

def log_failure(prompt, response, failure_type, details=''):
    entry = {
        'timestamp': datetime.utcnow().isoformat(),
        'failure_type': failure_type,  # wrong_answer | wrong_format | off_topic | hallucination
        'prompt_hash': hash(prompt),
        'response_snippet': response[:200],
        'details': details
    }
    with open('prompt_failures.jsonl', 'a') as f:
        f.write(json.dumps(entry) + '\n')

log_failure(
    prompt=my_prompt,
    response=bad_response,
    failure_type='wrong_format',
    details='JSON prefix text broke parsing'
)

Klasifikasi Kegagalan Otomatis

Untuk pengujian berskala besar, gunakan panggilan LLM pengklasifikasi untuk memberi label jenis kegagalan pada setiap respons secara otomatis. Dengan demikian, evaluasi secara berkelompok dapat dilakukan pada ratusan kasus pengujian.

def classify_failure(prompt, expected, actual):
    classification_prompt = (
        f'You are a QA evaluator for LLM outputs.\n'
        f'Prompt: {prompt}\n'
        f'Expected behavior: {expected}\n'
        f'Actual output: {actual}\n\n'
        'Classify the failure as one of: CORRECT, WRONG_ANSWER, WRONG_FORMAT, OFF_TOPIC, HALLUCINATION.\n'
        'Reply with only the label.'
    )
    resp = client.chat.completions.create(
        model='gpt-4o-mini',
        messages=[{'role': 'user', 'content': classification_prompt}]
    )
    return resp.choices[0].message.content.strip()

Matriks Keparahan

Tidak semua kegagalan memiliki dampak yang sama. Matriks keparahan membantu memprioritaskan perbaikan:

  • Halusinasi dalam konteks medis/hukum: kritis — segera perbaiki
  • Format salah dalam alat internal: tinggi — mengganggu penguraian lanjutan
  • Jawaban salah pada kasus khusus yang jarang: sedang — pantau frekuensinya
  • Di luar topik pada input ambigu: rendah — dapat diterima jika jarang terjadi

Lacak tingkat kegagalan berdasarkan jenis setiap minggu. Lonjakan pada kategori mana pun menandakan regresi yang perlu ditangani.

Membangun Dasbor Kegagalan

Dasbor kegagalan sederhana membaca catatan kegagalan dan melaporkan jumlah berdasarkan jenis serta bagian perintah:

import json
from collections import Counter

def failure_report(log_path='prompt_failures.jsonl'):
    entries = []
    with open(log_path) as f:
        for line in f:
            entries.append(json.loads(line))

    counts = Counter(e['failure_type'] for e in entries)
    total = len(entries)

    print(f'Total failures: {total}')
    for ftype, count in counts.most_common():
        pct = 100 * count / total
        print(f'  {ftype}: {count} ({pct:.1f}%)')

failure_report()

Mencegah Kegagalan Secara Proaktif

Strategi proaktif untuk mengurangi setiap jenis kegagalan sebelum terjadi:

  • Jawaban salah: berikan teks acuan dalam perintah (RAG); minta model mengutip sumbernya
  • Format salah: gunakan mode JSON atau pemanggilan fungsi; berikan contoh format dalam perintah
  • Di luar topik: jadikan tugas sebagai kalimat pertama; hindari pendahuluan panjang yang mengaburkan maksud
  • Halusinasi: instruksikan 'Hanya gunakan informasi yang diberikan di bawah'; tambahkan 'Jika tidak yakin, katakan saya tidak tahu'

Pemeriksaan Pengetahuan

Jenis kegagalan apa yang terjadi ketika model mengarang fakta yang tidak ada, seperti membuat kutipan atau titik akhir API yang sebenarnya tidak ada?

Rangkuman: Mendiagnosis Hasil yang Tidak Terduga

Empat jenis kegagalan LLM dan karakteristik utamanya:

  • Jawaban salah: format benar, topik benar, konten salah — periksa fakta terhadap kebenaran acuan
  • Format salah: konten benar, instruksi format diabaikan — validasi skema dapat mendeteksinya
  • Di luar topik: format benar, menjawab pertanyaan berbeda — periksa kecocokan bahasa/tugas
  • Halusinasi: fakta yang diciptakan — verifikasi terhadap sumber eksternal

Catat dan klasifikasikan setiap kegagalan. Lacak tingkat kegagalan berdasarkan jenis dari waktu ke waktu. Pelajaran berikutnya: analisis akar masalah untuk menemukan bagian perintah yang menyebabkan kegagalan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mendiagnosis Keluaran Tak Terduga” gratis?

Ya — teks lengkap “Mendiagnosis Keluaran Tak Terduga” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Prompt Engineering, upgrade ke CoddyKit PRO. Kursus AI Prompt Engineering mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mendiagnosis Keluaran Tak Terduga”?

Klasifikasikan mode kegagalan: jawaban salah, format salah, di luar topik, atau halusinasi. Kamu berlatih AI Prompt Engineering dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai AI Prompt Engineering?

Tidak diperlukan pengalaman sebelumnya. AI Prompt Engineering di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Mendiagnosis Keluaran Tak Terduga” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran AI Prompt Engineering ini?

Ya. Setiap pelajaran AI Prompt Engineering menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mendiagnosis Keluaran Tak Terduga
  2. Analisis Akar Masalah untuk Perintah
  3. Pendekatan Debugging Sistematis
  4. Strategi Pencatatan dan Dokumentasi
← Kembali ke AI Prompt Engineering