Kejuruteraan Arahan AI · Pelajaran

Corak Kritikan Kendiri dan Semakan

Menggesa model menilai dan menulis semula outputnya sendiri berdasarkan suatu perlembagaan.

Pelajaran 2 daripada 413 langkah

Corak Kritikan Kendiri dan Semakan ialah pelajaran Kejuruteraan Arahan AI percuma di CoddyKit. Ini ialah pelajaran 2 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.

Kritikan Kendiri sebagai Teknik Penggesaan

Walaupun tanpa proses latihan CAI formal, anda boleh menggesa mana-mana LLM berkeupayaan untuk mengkritik dan memperbaik outputnya sendiri. Corak kritikan kendiri ini meningkatkan kualiti dengan ketara bagi tugasan yang memerlukan ketepatan, kelengkapan atau keselamatan.

Pandangan utamanya: model mempunyai lebih banyak pengetahuan daripada yang ditunjukkannya dalam percubaan pertama. Gesaan kritikan mendedahkan pengetahuan itu.

Corak Kritikan Ketepatan Asas

Kritikan kendiri yang paling mudah: minta model menyemak responsnya untuk memastikan ketepatan fakta dan membetulkan sebarang ralat.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

def generate_and_self_critique(question):
    # Step 1: Generate
    r1 = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=512,
        messages=[{'role': 'user', 'content': question}]
    )
    initial = r1.content[0].text

    # Step 2: Accuracy critique
    critique_prompt = (
        f'Question: {question}\n\n'
        f'Your previous answer: {initial}\n\n'
        'Review your previous answer for factual accuracy. '
        'Identify any errors, unsupported claims, or missing important nuances. '
        'Then provide a corrected, improved answer.'
    )
    r2 = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=512,
        messages=[{'role': 'user', 'content': critique_prompt}]
    )
    return r2.content[0].text

result = generate_and_self_critique('What caused the fall of the Roman Empire?')
print(result[:300])

Corak Semakan Kelengkapan

Kritikan kelengkapan meminta model mengesahkan bahawa responsnya menjawab sepenuhnya setiap bahagian soalan. Ini amat berguna untuk soalan berbilang bahagian, yang sering menyebabkan respons percubaan pertama terlepas subsoalan.

COMPLETENESS_CRITIQUE = (
    'Original question: {question}\n\n'
    'Your previous answer: {answer}\n\n'
    'Check if your answer fully addresses the question:\n'
    '1. List each part or sub-question in the original question.\n'
    '2. For each part, indicate whether your answer addressed it.\n'
    '3. If any parts were missed or incomplete, provide a revised answer '
    'that covers everything.'
)

def check_completeness(question, initial_answer, client):
    prompt = COMPLETENESS_CRITIQUE.format(
        question=question,
        answer=initial_answer
    )
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=600,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return response.content[0].text

Corak Kritikan Kemudaratan dan Keselamatan

Kritikan kemudaratan meminta model menyemak responsnya untuk mencari kemungkinan akibat negatif sebelum memaparkannya kepada pengguna. Inilah teras penerapan prinsip CAI dalam pengeluaran.

HARM_CRITIQUE_PROMPT = (
    'Review the following assistant response for potential harms:\n\n'
    'User message: {user_message}\n'
    'Assistant response: {response}\n\n'
    'Consider:\n'
    '- Could this response enable harmful actions?\n'
    '- Could it be misused by someone with bad intentions?\n'
    '- Does it respect the privacy and dignity of individuals?\n'
    '- Could it cause psychological harm to vulnerable users?\n\n'
    'If the response has issues, explain them and provide a revised '
    'version that addresses the concerns while still being helpful. '
    'If the response is fine, say "Response is appropriate" and quote it back.'
)

def safety_check(user_message, response, client):
    prompt = HARM_CRITIQUE_PROMPT.format(
        user_message=user_message,
        response=response
    )
    result = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=600,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return result.content[0].text

Kritikan Berbilang Kriteria

Bagi output berisiko tinggi, lakukan kritikan berdasarkan berbilang kriteria dalam satu laluan dengan menyenaraikannya secara jelas. Ini lebih cekap daripada membuat panggilan kritikan berasingan bagi setiap kriteria.

MULTI_CRITERIA_CRITIQUE = (
    'Evaluate this response on three criteria:\n\n'
    'Question: {question}\n'
    'Response: {response}\n\n'
    'Criteria:\n'
    '1. ACCURACY: Are all facts correct and claims well-supported?\n'
    '2. COMPLETENESS: Does it fully address the question?\n'
    '3. CLARITY: Is it easy to understand for the target audience?\n\n'
    'For each criterion, rate it Good/Fair/Poor and explain why.\n'
    'Then provide an improved response that scores Good on all three.'
)

def multi_criteria_check(question, response, client):
    prompt = MULTI_CRITERIA_CRITIQUE.format(
        question=question,
        response=response
    )
    result = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=800,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return result.content[0].text

Langkah Semakan Semula: Amalan Terbaik

Gesaan semakan semula hendaklah melakukan tiga perkara:

  1. Mengingatkan model tentang permintaan asal (konteks)
  2. Memaparkan hasil kritikan
  3. Meminta respons yang disemak semula untuk menangani isu tersebut

Jangan minta model menerangkan semula kritikan dalam semakan — hanya baikinya. Mengekalkan gesaan semakan yang berorientasikan tindakan menghasilkan keputusan yang lebih baik.

# Good revision prompt: action-oriented
GOOD_REVISION = (
    'Given this critique of your response, please write an improved version.\n\n'
    'Original question: {question}\n'
    'Critique: {critique}\n\n'
    'Write only the improved response — no preamble, no meta-commentary:'
)

# Bad revision prompt: too passive
BAD_REVISION = (
    'Here is a critique of your response. Can you maybe consider '
    'revising it somewhat based on the feedback below?\n'
    'Critique: {critique}'
    # Missing original question context!
    # Wishy-washy language reduces revision quality
)

Merangkaikan Berbilang Pusingan Semakan Semula

Satu pusingan kritikan-semak semula selalunya tidak mencukupi untuk keperluan kualiti yang sangat kompleks. Anda boleh merangkaikan beberapa pusingan, dengan setiap pusingan menggunakan prinsip berbeza atau menyemak isu yang masih ada.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-...')

def multi_round_revision(question, n_rounds=2):
    # Round 0: Initial generation
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=512,
        messages=[{'role': 'user', 'content': question}]
    ).content[0].text

    principles = [
        'factual accuracy and avoiding unsupported claims',
        'completeness — ensuring all parts of the question are answered',
    ]

    for i, principle in enumerate(principles[:n_rounds]):
        critique_prompt = (
            f'Question: {question}\n'
            f'Current response: {response}\n\n'
            f'Critique for {principle} and provide an improved version:'
        )
        response = client.messages.create(
            model='claude-opus-4-5',
            max_tokens=512,
            messages=[{'role': 'user', 'content': critique_prompt}]
        ).content[0].text
        print(f'Round {i+1} complete')

    return response

Kritikan Kendiri untuk Penjanaan Kod

Kritikan kendiri amat berkesan untuk penjanaan kod. Model mula-mula menulis kod, kemudian menyemaknya untuk mencari pepijat, kes pinggir dan isu keselamatan — dan sering mengesan ralat yang terlepas pada percubaan pertama.

CODE_CRITIQUE_PROMPT = (
    'Review this Python code for correctness and security issues:\n\n'
    'Task: {task}\n\n'
    'Code:\n'
    ''''python\n'
    '{code}\n'
    ''''\n\n'
    'Check for:\n'
    '1. Logic errors or off-by-one mistakes\n'
    '2. Unhandled edge cases (empty input, None, division by zero)\n'
    '3. Security issues (SQL injection, path traversal, etc.)\n\n'
    'If issues exist, list them and provide a corrected version. '
    'If the code is correct, say so and explain why it handles edge cases properly.'
)

def critique_code(task, code, client):
    prompt = CODE_CRITIQUE_PROMPT.format(task=task, code=code)
    result = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=800,
        messages=[{'role': 'user', 'content': prompt}]
    )
    return result.content[0].text

Konsistensi Kendiri sebagai Alternatif

Konsistensi kendiri ialah pendekatan yang berbeza: jana respons yang sama sebanyak N kali, kemudian ambil undi majoriti atau minta model mensintesis jawapan terbaik daripada beberapa draf.

Gunakan konsistensi kendiri untuk soalan yang mempunyai jawapan betul yang jelas. Gunakan kritikan-semak semula apabila kualiti mempunyai pelbagai dimensi (ketepatan + nada + keselamatan).

import anthropic
from collections import Counter

client = anthropic.Anthropic(api_key='sk-ant-...')

def self_consistency(question, n=5):
    """Generate N responses and pick the most common answer."""
    responses = []
    for _ in range(n):
        r = client.messages.create(
            model='claude-haiku-4-5',
            max_tokens=100,
            temperature=0.7,
            messages=[{'role': 'user', 'content': question}]
        )
        responses.append(r.content[0].text.strip())

    # Pick most common answer
    vote = Counter(responses)
    winner, count = vote.most_common(1)[0]
    print(f'Consensus ({count}/{n}): {winner}')
    return winner

result = self_consistency('What is the sum of angles in a triangle?')

Apabila Kritikan Memudaratkan: Risiko Kritikan Berlebihan

Kritikan kendiri tidak semestinya bermanfaat. Perhatikan mod kegagalan berikut:

  • Kritikan mengampu: Model mengatakan jawapannya bagus walaupun jawapan itu salah
  • Terlalu berhati-hati: Model membuang maklumat yang membantu semasa semakan semula kerana maklumat itu kelihatan berisiko
  • Pembetulan berhalusinasi: Semakan semula memperkenalkan ralat baharu yang tiada dalam respons asal

Kurangkan risiko dengan menggunakan model yang berbeza untuk kritikan, membina kritikan berdasarkan fakta khusus dan mengesahkan output yang disemak semula terhadap jawapan yang diketahui betul.

Mengukur Keberkesanan Kritikan

Jejaki sama ada kritikan benar-benar menambah baik output dengan membandingkan respons awal dan respons yang disemak semula dengan piawaian emas. Ini memberitahu anda sama ada panggilan LLM tambahan berbaloi dengan kosnya.

def measure_critique_lift(examples, generate_fn, critique_fn, metric_fn):
    """
    Measure how much critique improves accuracy over initial generation.
    """
    initial_scores = []
    revised_scores = []

    for ex in examples:
        initial = generate_fn(ex.question)
        revised = critique_fn(ex.question, initial)

        initial_scores.append(metric_fn(ex.answer, initial))
        revised_scores.append(metric_fn(ex.answer, revised))

    avg_initial = sum(initial_scores) / len(initial_scores)
    avg_revised = sum(revised_scores) / len(revised_scores)

    print(f'Initial: {avg_initial:.1%}')
    print(f'Revised: {avg_revised:.1%}')
    print(f'Lift:   +{avg_revised - avg_initial:.1%}')
    return avg_revised - avg_initial

Semakan Pengetahuan: Masa Kritikan Kendiri

Corak manakah yang paling sesuai untuk mengesan ralat fakta dalam respons sebelum ditunjukkan kepada pengguna?

Imbas Kembali: Corak Kritikan Kendiri dan Semakan Semula

Gesaan kritikan kendiri meminta model menyemak hasilnya sendiri berdasarkan kriteria tertentu — ketepatan, kelengkapan, keselamatan atau kejelasan — kemudian menghasilkan semakan semula yang dipertingkat. Corak yang berkesan termasuk kritikan ketepatan (semak ralat fakta), semakan kelengkapan (adakah semua bahagian telah dijawab?), semakan kemudaratan (adakah ini boleh memudahkan tindakan yang memudaratkan?) dan semakan kod (semak pepijat serta kes tepi). Rantaikan beberapa pusingan untuk hasil yang berisiko tinggi. Ukur peningkatan sebenar untuk memastikan kos tambahan itu berbaloi.

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 “Corak Kritikan Kendiri dan Semakan” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kejuruteraan Arahan AI, termasuk “Corak Kritikan Kendiri dan Semakan”, 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 “Corak Kritikan Kendiri dan Semakan”?

Menggesa model menilai dan menulis semula outputnya sendiri berdasarkan suatu perlembagaan. 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 2 daripada 4.

Berapa lamakah pelajaran “Corak Kritikan Kendiri dan Semakan” 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. Prinsip CAI dan Gesaan Kritikan
  2. Corak Kritikan Kendiri dan Semakan
  3. Ketegangan antara Tidak Memudaratkan dan Membantu
  4. Melaksanakan CAI dalam Aplikasi
← Kembali ke Kejuruteraan Arahan AI