0Pricing
AI Engineering Academy · Pelajaran

Iterasi dan Penelusuran Kesalahan pada Perintah

Bangun alur kerja sistematis untuk menguji dan menyempurnakan perintah, mengidentifikasi pola kegagalan, serta menggunakan OpenAI Playground untuk melakukan iterasi dengan cepat sebelum menulis kode produksi.

Iterasi dan Penelusuran Kesalahan pada Perintah adalah pelajaran AI Engineering Academy gratis di CoddyKit. Ini adalah pelajaran 4 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 Engineering Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Engineering Academy mencakup 4 pelajaran total.

Pembuatan Prompt adalah Disiplin Empiris

Rekayasa prompt yang efektif bukanlah soal menemukan formula ajaib—melainkan proses empiris dan berulang yang lebih mirip dengan debugging daripada menulis. Anda menulis prompt, menjalankannya dengan input pengujian, mengamati kegagalannya, membentuk hipotesis tentang penyebab kegagalan, lalu mengubah prompt untuk memperbaikinya. Intuisi saja tidak dapat diandalkan; Anda memerlukan data.

Banyak pengembang melakukan kesalahan dengan menguji prompt pada satu atau dua contoh yang dibuat khusus, melihat hasil yang baik, lalu menerapkannya ke produksi—hanya untuk menemukan bahwa prompt tersebut gagal pada 30% input nyata. Alur kerja evaluasi sistematis mencegah hal ini dengan menguji prompt pada contoh yang beragam dan representatif sebelum digunakan.

Membangun Set Pengujian Terlebih Dahulu

Sebelum menulis prompt, buatlah set pengujian acuan: kumpulan 20–100 contoh input yang representatif, lengkap dengan keluaran yang diharapkan atau kriteria kelulusan. Set pengujian ini menjadi acuan kebenaran Anda untuk mengevaluasi setiap perubahan prompt.

Set pengujian yang baik mencakup: input umum, kasus ekstrem (string kosong, input yang sangat panjang, kasus ambigu), input permusuhan yang dirancang untuk merusak prompt, dan input dari berbagai segmen populasi pengguna Anda. Semakin beragam set pengujian Anda, semakin yakin Anda bahwa perubahan prompt benar-benar merupakan peningkatan, bukan sekadar penyesuaian berlebihan terhadap beberapa contoh yang Anda pikirkan.

Sarana Evaluasi Sederhana

Menulis skrip evaluasi sederhana membutuhkan waktu satu jam dan menghemat berhari-hari debugging masalah produksi. Skrip tersebut menjalankan prompt Anda pada setiap kasus pengujian, membandingkan keluaran dengan hasil yang diharapkan, dan melaporkan tingkat kelulusan. Anda kemudian dapat melakukan iterasi pada prompt dan langsung melihat apakah perubahan Anda meningkatkan skor keseluruhan.

import openai

client = openai.OpenAI()

# Golden test set: (input, expected_output)
test_cases = [
    ('The product is excellent and very fast.', 'Positive'),
    ('Arrived damaged and customer service ignored me.', 'Negative'),
    ('Delivery was on time.', 'Neutral'),
    ('Worst purchase of my life. Never again!', 'Negative'),
    ('Good value for the price.', 'Positive'),
]

def evaluate_prompt(system_prompt):
    correct = 0
    for text, expected in test_cases:
        resp = client.chat.completions.create(
            model='gpt-4o-mini',
            messages=[
                {'role': 'system', 'content': system_prompt},
                {'role': 'user', 'content': text}
            ],
            max_tokens=10
        )
        prediction = resp.choices[0].message.content.strip()
        if expected.lower() in prediction.lower():
            correct += 1
        else:
            print(f'FAIL: "{text}" -> got "{prediction}", expected "{expected}"')
    return correct / len(test_cases)

score = evaluate_prompt('Classify sentiment as Positive, Negative, or Neutral. Reply with one word only.')
print(f'Score: {score:.0%}')

Mengategorikan Mode Kegagalan

Saat prompt Anda gagal pada kasus pengujian, kelompokkan kegagalan berdasarkan jenisnya untuk mengidentifikasi pola. Mode kegagalan yang umum meliputi:

  • Kegagalan format: model menghasilkan jawaban yang benar, tetapi dalam format yang salah
  • Kegagalan ambiguitas: model menafsirkan tugas secara berbeda dari yang Anda maksudkan
  • Kegagalan kasus ekstrem: model bekerja pada input umum, tetapi gagal pada input yang tidak biasa
  • Kegagalan halusinasi: model dengan yakin menghasilkan konten faktual yang salah
  • Mengabaikan instruksi: model hanya mengikuti sebagian instruksi, tetapi melewatkan batasan tertentu

Setiap jenis kegagalan memerlukan perbaikan yang berbeda. Kegagalan format memerlukan instruksi keluaran yang lebih eksplisit; kegagalan ambiguitas memerlukan definisi tugas atau contoh yang lebih jelas.

OpenAI Playground untuk Iterasi Cepat

OpenAI Playground (platform.openai.com/playground) adalah alat tercepat untuk melakukan iterasi pada prompt tanpa menulis kode. Alat ini memungkinkan Anda berpindah antar-model, menyesuaikan parameter dengan penggeser, menyimpan versi prompt, dan membandingkan keluaran secara berdampingan.

Gunakan Playground untuk tahap eksplorasi pengembangan prompt: mencoba berbagai susunan kata, menguji kasus ekstrem secara interaktif, dan membangun intuisi tentang hal-hal yang berhasil. Setelah menemukan prompt yang menjanjikan, pindahkan ke kode dengan sarana evaluasi untuk memvalidasinya secara sistematis pada seluruh set pengujian sebelum menerapkannya.

Pemberian Versi pada Prompt

Prompt adalah kode. Prompt harus dikelola versinya, ditinjau, dan diterapkan dengan ketelitian yang sama seperti kode aplikasi. Pendekatan paling dasar adalah menyimpan templat prompt sebagai string dalam file konstanta di repositori Anda, sehingga perubahan terlacak di git dan memerlukan tinjauan kode.

Pendekatan yang lebih canggih mencakup penyimpanan prompt dalam basis data khusus pengelolaan prompt (LangSmith, PromptLayer, atau tabel Supabase sederhana), pemberian tag versi, serta menjalankan pengujian A/B antara berbagai versi prompt di produksi. Hal ini sangat penting ketika beberapa anggota tim mengerjakan prompt yang sama atau ketika Anda perlu mengembalikan perubahan prompt yang menurunkan kualitas produksi.

# prompts/sentiment.py
# Version 2.1 - Added explicit tie-breaking rule for mixed reviews
SENTIMENT_V2_1 = '''You are a sentiment classification assistant.
Classify the customer review sentiment as exactly one of: Positive, Negative, or Neutral.

Rules:
- Positive: overall satisfaction, praise, or recommendation
- Negative: disappointment, complaint, or warning to others
- Neutral: factual statements without strong sentiment, or equal positive and negative content
- If the review contains both positive and negative elements, choose based on the DOMINANT tone

Respond with ONLY the single word classification. No explanation.'''

# Usage:
# from prompts.sentiment import SENTIMENT_V2_1

Membandingkan Variasi Prompt secara Sistematis

Jika Anda memiliki dua versi prompt yang saling bersaing, jalankan keduanya pada seluruh kumpulan pengujian, lalu bandingkan skornya. Bahkan peningkatan akurasi sebesar 5% pada sistem produksi yang menangani ribuan permintaan per hari sepadan dengan upaya evaluasi tersebut. Jangan pernah memilih prompt berdasarkan satu atau dua contoh yang diuji secara manual — selalu bandingkan pada seluruh kumpulan pengujian.

Untuk pengukuran kualitas subjektif yang tidak memiliki satu jawaban benar (seperti nada, kebermanfaatan, atau kreativitas), Anda dapat menggunakan LLM sebagai penilai: minta model yang andal seperti GPT-4o menilai respons mana dari dua respons yang lebih memenuhi kriteria kualitas Anda. Dengan demikian, evaluasi dapat ditingkatkan melampaui kemampuan peninjauan manusia.

Men-debug Output yang Tidak Konsisten

Secara default, output LLM tidak bersifat deterministik. Menetapkan temperature=0 membuat output hampir deterministik (token yang paling mungkin pada setiap langkah), yang sangat penting untuk proses debug karena memungkinkan Anda menjalankan prompt yang sama dua kali dan mendapatkan output yang sama. Saat melakukan debug, selalu tetapkan temperature ke 0 agar Anda dapat menentukan apakah perubahan pada prompt menyebabkan perubahan output atau perubahan itu hanya variasi acak.

Setelah memperbaiki prompt, aktifkan kembali sebagian nilai temperature untuk produksi jika kasus penggunaan Anda memperoleh manfaat dari keberagaman (penulisan kreatif, curah pendapat), tetapi pertahankan temperature pada 0 untuk tugas ekstraksi terstruktur dan klasifikasi yang memerlukan output konsisten dan dapat diulang.

import openai

client = openai.OpenAI()

# Deterministic mode for debugging
response = client.chat.completions.create(
    model='gpt-4o-mini',
    messages=[
        {'role': 'system', 'content': 'Classify sentiment: Positive, Negative, or Neutral.'},
        {'role': 'user', 'content': 'The product looks nice but broke after two days.'}
    ],
    temperature=0,   # deterministic
    seed=42          # optional reproducibility seed
)
print(response.choices[0].message.content)

Men-debug Halusinasi

Jika prompt Anda menghasilkan fakta yang berhalusinasi, tambahkan batasan yang mempersulit terjadinya halusinasi. Teknik efektif untuk mencegah halusinasi meliputi:

  • Cantumkan sumber: 'Jawab hanya berdasarkan konteks yang diberikan. Jika jawabannya tidak ada dalam konteks, katakan saya tidak tahu.'
  • Kuantifikasi keyakinan: 'Nilai tingkat keyakinan Anda dari 1 hingga 5. Jika di bawah 3, jangan menjawab.'
  • Langkah verifikasi: 'Sebelum menjawab, verifikasi bahwa setiap fakta yang akan Anda gunakan terdapat dalam dokumen yang diberikan.'

Tidak ada teknik yang dapat menghilangkan halusinasi sepenuhnya, tetapi menggabungkan pengambilan informasi (RAG) dengan batasan prompt yang kuat dapat menguranginya secara drastis untuk aplikasi yang berfokus pada pengetahuan.

Panjang Prompt dan Penempatan Instruksi

Penelitian menunjukkan bahwa LLM lebih memperhatikan instruksi di awal dan akhir prompt daripada di bagian tengah. Hal ini disebut masalah tersesat di bagian tengah. Jika Anda memiliki prompt panjang dengan instruksi penting yang terkubur di tengah dan dikelilingi konteks, model mungkin tidak mengikutinya secara andal.

Praktik terbaik: letakkan instruksi terpenting Anda (definisi tugas, batasan kritis) di bagian paling awal prompt sistem dan ulangi batasan utama di bagian akhir. Untuk dokumen panjang yang disisipkan sebagai konteks, letakkan pertanyaan pengguna setelah dokumen, bukan sebelumnya, karena model akan memberi bobot lebih besar pada konten yang paling baru.

Dari Eksplorasi ke Produksi

Siklus hidup pengembangan prompt memiliki tiga fase:

  • Eksplorasi: Gunakan Playground untuk bereksperimen secara bebas. Fokuslah untuk memahami hal-hal yang berhasil secara konseptual, bukan untuk menghasilkan output yang sempurna.
  • Evaluasi: Buat kumpulan pengujian dan perangkat evaluasi. Jalankan prompt kandidat pada seluruh kumpulan pengujian dan ukur tingkat kelulusannya. Lakukan iterasi hingga mencapai ambang kualitas Anda.
  • Produksi: Kelola versi prompt final, tambahkan pemantauan untuk melacak metrik kualitas dalam produksi, dan siapkan peringatan untuk penurunan kualitas. Rencanakan iterasi mendatang ketika versi model berubah.

Melewati fase evaluasi merupakan penyebab paling umum kemunduran kualitas prompt dalam produksi. Investasi waktu untuk membuat kumpulan pengujian yang baik akan memberikan hasil berkali-kali lipat.

Pemeriksaan Singkat

Uji pemahaman Anda tentang konsep Rekayasa AI dari pelajaran ini.

Ringkasan Pelajaran

Dalam pelajaran ini Anda mempelajari bahwa: rekayasa prompt memerlukan kumpulan pengujian acuan dan perangkat evaluasi untuk mengukur peningkatan secara andal, mode kegagalan harus dikategorikan untuk menemukan perbaikan yang tepat bagi setiap jenisnya, dan temperature 0 sangat penting untuk proses debug, sedangkan pembuatan versi prompt dan pemantauan produksi melengkapi siklus kualitas. Selanjutnya, kita akan mempelajari cara LLM memproses teks melalui token dan alasan jumlah token penting bagi biaya serta konteks.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Iterasi dan Penelusuran Kesalahan pada Perintah” gratis?

Ya — teks lengkap “Iterasi dan Penelusuran Kesalahan pada Perintah” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AI Engineering Academy, upgrade ke CoddyKit PRO. Kursus AI Engineering Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Iterasi dan Penelusuran Kesalahan pada Perintah”?

Bangun alur kerja sistematis untuk menguji dan menyempurnakan perintah, mengidentifikasi pola kegagalan, serta menggunakan OpenAI Playground untuk melakukan iterasi dengan cepat sebelum menulis kode… Kamu berlatih AI Engineering Academy 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 Engineering Academy?

Tidak diperlukan pengalaman sebelumnya. AI Engineering Academy 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 4 dari 4.

Berapa lama pelajaran “Iterasi dan Penelusuran Kesalahan pada Perintah” 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 Engineering Academy ini?

Ya. Setiap pelajaran AI Engineering Academy 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. Perintah Zero-Shot dan Few-Shot
  2. Rantai Pemikiran dan Penalaran Langkah demi Langkah
  3. Perintah Sistem dan Pendefinisian Persona
  4. Iterasi dan Penelusuran Kesalahan pada Perintah
← Kembali ke AI Engineering Academy