Kejuruteraan Arahan AI · Pelajaran

Mendiagnosis Keluaran Tidak Dijangka

Kelaskan mod kegagalan: jawapan salah, format salah, tersasar daripada topik dan halusinasi.

Pelajaran 1 daripada 413 langkah

Mendiagnosis Keluaran Tidak Dijangka ialah pelajaran Kejuruteraan Arahan AI percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kejuruteraan Arahan AI, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kejuruteraan Arahan AI merangkumi sejumlah 4 pelajaran.

Apabila Gesaan Gagal

Walaupun gesaan direka dengan teliti, hasil yang salah masih boleh berlaku. Mendiagnosis kegagalan memerlukan taksonomi — pengelasan tentang jenis kegagalan yang berlaku. Tanpa pengelasan, penyahpepijatan hanya berdasarkan tekaan. Empat kategori kegagalan utama ialah jawapan salah, format salah, respons di luar topik dan halusinasi.

Jenis Kegagalan 1: Jawapan Salah

Jawapan salah ialah ralat fakta — model memberikan respons dalam format yang betul dan mengenai topik yang betul, tetapi kandungannya tidak tepat.

Contoh: tarikh, statistik, nama dan kod yang mempunyai pepijat logik. Kegagalan ini paling sukar dikesan secara automatik kerana output kelihatan betul pada pandangan pertama.

  • Punca: tarikh akhir data latihan, fakta yang jarang berlaku atau ralat penaakulan berbilang langkah
  • Pengesanan: bandingkan dengan kebenaran rujukan, semakan manusia atau panggilan LLM pengesahan
# 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 berlaku apabila model menjawab soalan yang betul dengan maklumat yang betul, tetapi mengabaikan arahan pemformatan.

Contoh: mengembalikan teks biasa apabila JSON diminta, menambahkan markdown apabila teks biasa diperlukan atau mengembalikan senarai apabila satu nilai diminta.

  • Punca: arahan pemformatan tersembunyi dalam gesaan yang panjang, arahan yang bercanggah atau model mengabaikan arahan berkeutamaan rendah
  • Pengesanan: ralat penghuraian JSON, ketidakpadanan ungkapan nalar atau kegagalan pengesahan 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 bermaksud model menjawab soalan yang berbeza daripada soalan yang ditanyakan. Respons itu mungkin tepat dari segi fakta dan mempunyai format yang baik, tetapi tidak menjawab tujuan sebenar pengguna.

Contoh: meminta fungsi Python tetapi menerima fungsi JavaScript; meminta jawapan satu baris tetapi menerima esei penuh; meminta pembetulan pepijat tetapi menerima penerangan tentang pepijat itu dan bukannya pembetulan.

  • Punca: arahan yang tidak jelas, konteks yang bercanggah atau penyimpangan tugas dalam perbualan yang 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 ialah kegagalan yang paling berbahaya: model mereka-reka fakta yang sebenarnya tidak wujud. Fakta tersebut kelihatan munasabah dan disampaikan dengan yakin, lalu sukar dikesan.

Contoh: petikan yang direka-reka (tajuk makalah kedengaran benar tetapi tidak wujud), titik akhir API yang direka, statistik palsu dan orang yang tidak wujud.

  • Punca: model mengisi jurang pengetahuan dengan teks munasabah yang dipadankan berdasarkan corak
  • Pengesanan: semak fakta dengan sumber berautoriti, silang rujuk petikan 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 Amalan

Apabila kegagalan dikesan, kelaskan kegagalan itu terlebih dahulu sebelum cuba membaikinya. Jenis kegagalan menentukan strategi pembaikan:

  • Jawapan salah: tambahkan konteks, gunakan dapatan semula atau tukar kepada model yang lebih berkeupayaan
  • Format salah: tegaskan arahan format, tambahkan contoh output atau gunakan output berstruktur / panggilan fungsi
  • Di luar topik: tulis semula arahan supaya lebih khusus dan permudahkan gesaan
  • Halusinasi: tambahkan konteks berasaskan sumber, arahkan model untuk berkata 'Saya tidak tahu' dan dayakan petikan

Pengelogan Kegagalan Berstruktur

Rekodkan setiap kegagalan bersama pengelasannya. Lama-kelamaan, corak akan muncul: bahagian gesaan tertentu menyebabkan kebanyakan ralat format salah, atau topik tertentu mencetuskan halusinasi dengan kerap. Log berstruktur membolehkan penyahpepijatan berasaskan 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'
)

Pengelasan Kegagalan Automatik

Untuk pengujian berskala besar, gunakan panggilan LLM pengelas untuk melabel setiap respons dengan jenis kegagalan secara automatik. Dengan ini, penilaian secara kelompok dapat dilakukan merentas ratusan kes ujian.

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 Keterukan

Tidak semua kegagalan memberikan kesan yang sama. Matriks keterukan membantu menetapkan keutamaan pembaikan:

  • Halusinasi dalam konteks perubatan atau undang-undang: kritikal — baiki serta-merta
  • Format salah dalam alat dalaman: tinggi — merosakkan penghuraian seterusnya
  • Jawapan salah bagi kes pinggir yang jarang berlaku: sederhana — pantau kekerapan
  • Di luar topik pada input yang tidak jelas: rendah — boleh diterima jika jarang berlaku

Jejaki kadar kegagalan mengikut jenis setiap minggu. Lonjakan dalam mana-mana kategori menandakan kemerosotan semula yang memerlukan perhatian.

Membina Papan Pemuka Kegagalan

Papan pemuka kegagalan yang ringkas membaca log kegagalan dan melaporkan bilangan mengikut jenis serta bahagian gesaan:

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 mengurangkan setiap jenis kegagalan sebelum berlaku:

  • Jawapan salah: sediakan teks rujukan dalam gesaan (RAG); minta model memetik sumbernya
  • Format salah: gunakan mod JSON atau panggilan fungsi; sediakan contoh format dalam gesaan
  • Di luar topik: jadikan tugas sebagai ayat pertama; elakkan pendahuluan panjang yang mencairkan tujuan
  • Halusinasi: arahkan 'Hanya gunakan maklumat yang disediakan di bawah'; tambahkan 'Jika tidak pasti, katakan saya tidak tahu'

Semakan Pengetahuan

Apakah jenis kegagalan yang berlaku apabila model mereka-reka fakta yang sebenarnya tidak wujud, seperti mereka-reka petikan atau titik akhir API yang tidak wujud?

Imbas Kembali: Mendiagnosis Output yang Tidak Dijangka

Empat jenis kegagalan LLM dan ciri utamanya:

  • Jawapan salah: format betul, topik betul, kandungan salah — semak fakta berbanding kebenaran rujukan
  • Format salah: kandungan betul tetapi arahan format diabaikan — pengesahan skema dapat mengesannya
  • Di luar topik: format betul tetapi menjawab soalan yang berbeza — semak padanan bahasa dan tugas
  • Halusinasi: fakta yang direka — sahkan dengan sumber luar

Rekodkan dan kelaskan setiap kegagalan. Jejaki kadar mengikut jenis dari semasa ke semasa. Pelajaran seterusnya: analisis punca akar untuk mencari bahagian gesaan yang menyebabkan kegagalan.

Percuma untuk bermula

Pelajari Kejuruteraan Arahan AI dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
53
Pelajaran
199

Soalan Lazim

Adakah pelajaran “Mendiagnosis Keluaran Tidak Dijangka” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kejuruteraan Arahan AI, termasuk “Mendiagnosis Keluaran Tidak Dijangka”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kejuruteraan Arahan AI merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Mendiagnosis Keluaran Tidak Dijangka”?

Kelaskan mod kegagalan: jawapan salah, format salah, tersasar daripada topik dan halusinasi. Anda berlatih Kejuruteraan Arahan AI menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Kejuruteraan Arahan AI?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Kejuruteraan Arahan AI di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Mendiagnosis Keluaran Tidak Dijangka” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kejuruteraan Arahan AI ini?

Ya. Setiap pelajaran Kejuruteraan Arahan AI menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Mendiagnosis Keluaran Tidak Dijangka
  2. Analisis Punca Akar untuk Gesaan
  3. Pendekatan Penyahpepijatan Sistematik
  4. Strategi Pengelogan dan Dokumentasi
← Kembali ke Kejuruteraan Arahan AI