Pola Kritik Mandiri dan Revisi
Arahkan model untuk mengevaluasi dan menulis ulang outputnya sendiri berdasarkan suatu konstitusi.
Pola Kritik Mandiri dan Revisi adalah pelajaran AI Prompt Engineering gratis di CoddyKit. Ini adalah pelajaran 2 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.
Kritik Mandiri sebagai Teknik Prompt
Bahkan tanpa proses pelatihan CAI formal, Anda dapat memberikan prompt kepada LLM yang mumpuni agar mengkritik dan meningkatkan keluarannya sendiri. Pola kritik mandiri ini secara signifikan meningkatkan kualitas untuk tugas yang menuntut akurasi, kelengkapan, atau keselamatan.
Gagasan utamanya: model memiliki lebih banyak pengetahuan daripada yang ditunjukkannya dalam upaya pertama. Prompt kritik membantu memunculkan pengetahuan tersebut.
Pola Kritik Akurasi Dasar
Kritik mandiri yang paling sederhana: minta model meninjau responsnya untuk memastikan keakuratan faktual dan memperbaiki kesalahan apa pun.
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])Pola Pemeriksaan Kelengkapan
Kritik kelengkapan meminta model memverifikasi bahwa responsnya menjawab seluruh bagian pertanyaan. Hal ini sangat berguna untuk pertanyaan yang terdiri dari beberapa bagian, karena respons pada upaya pertama sering melewatkan subpertanyaan.
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].textPola Kritik Bahaya dan Keselamatan
Kritik bahaya meminta model meninjau responsnya untuk mencari potensi konsekuensi negatif sebelum menampilkannya kepada pengguna. Inilah inti penerapan prinsip CAI dalam produksi.
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].textKritik Multi-Kriteria
Untuk keluaran yang berdampak besar, lakukan kritik berdasarkan beberapa kriteria dalam satu tahap dengan mencantumkannya secara eksplisit. Cara ini lebih efisien daripada melakukan panggilan kritik terpisah untuk 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].textLangkah Revisi: Praktik Terbaik
Prompt revisi harus melakukan tiga hal:
- Mengingatkan model tentang permintaan awal (konteks)
- Menyajikan temuan kritik
- Meminta respons revisi yang mengatasi masalah tersebut
Jangan meminta model menjelaskan kembali kritik dalam revisi — minta model langsung memperbaikinya. Menjaga prompt revisi tetap berorientasi pada tindakan menghasilkan hasil 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
)Merangkai Beberapa Putaran Revisi
Satu putaran kritik-revisi sering kali belum cukup untuk persyaratan kualitas yang sangat kompleks. Anda dapat merangkai beberapa putaran, dengan setiap putaran menerapkan prinsip yang berbeda atau memeriksa masalah yang masih tersisa.
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 responseKritik Mandiri untuk Pembuatan Kode
Kritik mandiri sangat efektif khususnya untuk pembuatan kode. Model pertama-tama menulis kode, kemudian meninjaunya untuk mencari bug, kasus khusus, dan masalah keamanan — sering kali menemukan kesalahan yang terlewat pada percobaan 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].textKonsistensi Mandiri sebagai Alternatif
Konsistensi mandiri adalah pendekatan yang berbeda: hasilkan respons yang sama sebanyak N kali, lalu lakukan pemungutan suara mayoritas atau minta model menyusun jawaban terbaik dari beberapa draf.
Gunakan konsistensi mandiri untuk pertanyaan dengan jawaban benar yang jelas. Gunakan kritik-revisi ketika kualitas memiliki banyak dimensi (akurasi + 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?')Saat Kritik Menurunkan Kualitas: Risiko Kritik Berlebihan
Kritik mandiri tidak selalu bermanfaat. Waspadai mode kegagalan berikut:
- Kritik penjilat: Model mengatakan jawabannya bagus meskipun sebenarnya salah
- Terlalu berhati-hati: Model menghapus informasi yang membantu selama revisi karena informasi tersebut tampak berisiko
- Koreksi berhalusinasi: Revisi menambahkan kesalahan baru yang tidak terdapat dalam jawaban awal
Kurangi risiko ini dengan menggunakan model yang berbeda untuk kritik, mendasarkan kritik pada fakta tertentu, dan memvalidasi keluaran yang telah direvisi dengan jawaban yang telah diketahui benar.
Mengukur Efektivitas Kritik
Lacak apakah kritik benar-benar meningkatkan keluaran dengan membandingkan respons awal dan respons revisi terhadap standar acuan. Dengan demikian, Anda dapat mengetahui apakah biaya panggilan LLM tambahan sepadan dengan hasilnya.
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_initialPemeriksaan Pengetahuan: Waktu Kritik
Pola apa yang paling tepat untuk menangkap kesalahan faktual dalam respons sebelum menampilkannya kepada pengguna?
Rangkuman: Pola Kritik dan Revisi Mandiri
Perintah kritik mandiri meminta model meninjau keluarannya sendiri berdasarkan kriteria tertentu—akurasi, kelengkapan, keamanan, atau kejelasan—lalu menghasilkan revisi yang lebih baik. Pola yang efektif meliputi kritik akurasi (tinjau kesalahan faktual), pemeriksaan kelengkapan (apakah semua bagian sudah dijawab?), kritik bahaya (apakah ini dapat memungkinkan tindakan berbahaya?), dan peninjauan kode (periksa bug dan kasus tepi). Rangkailah beberapa putaran untuk keluaran berisiko tinggi. Ukur peningkatan yang sebenarnya untuk memastikan biaya tambahan tersebut sepadan.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pola Kritik Mandiri dan Revisi” gratis?
Ya — teks lengkap “Pola Kritik Mandiri dan Revisi” 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 “Pola Kritik Mandiri dan Revisi”?
Arahkan model untuk mengevaluasi dan menulis ulang outputnya sendiri berdasarkan suatu konstitusi. 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 2 dari 4.
Berapa lama pelajaran “Pola Kritik Mandiri dan Revisi” 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
- Prinsip CAI dan Prompt Kritik
- Pola Kritik Mandiri dan Revisi
- Ketegangan antara Tidak Membahayakan dan Membantu
- Menerapkan CAI dalam Aplikasi