Mengukur Ketahanan
Menilai ketahanan terhadap serangan.
Mengukur Ketahanan adalah pelajaran AI Prompt Engineering 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 Prompt Engineering, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AI Prompt Engineering mencakup 4 pelajaran total.
Ketahanan sebagai Besaran yang Dapat Diukur
Ketahanan adalah kemampuan sistem menahan input adversarial, yang dinyatakan sebagai angka yang dapat Anda lacak, bandingkan, dan jadikan syarat. 'Tampaknya aman' bukanlah pengukuran; yang merupakan pengukuran adalah tingkat keberhasilan serangan dengan interval kepercayaan.
Pelajaran ini mengubah temuan pengujian ofensif menjadi metrik yang ketat.
Tingkat Keberhasilan Serangan
Metrik utama adalah Attack Success Rate (ASR): proporsi kasus serangan yang berhasil menembus pertahanan Anda. Nilai yang lebih rendah lebih baik. Laporkan secara keseluruhan dan uraikan berdasarkan kategori serta teknik agar Anda mengetahui di mana letak kelemahan Anda.
def asr(results):
breaks = sum(1 for r in results if not r['safe'])
return breaks / len(results)
# also compute per-category ASR for diagnosisBeri Bobot Berdasarkan Tingkat Keparahan
ASR mentah memperlakukan kebocoran sepele dan pembocoran PII secara setara. Hitung skor berbobot tingkat keparahan agar kegagalan kritis lebih dominan dalam metrik dan beberapa celah berdampak tinggi tidak tersembunyi di balik banyak keberhasilan berdampak rendah.
W = {'low':1,'medium':3,'high':7,'critical':15}
def weighted_risk(results):
return sum(W[r['severity']] for r in results if not r['safe'])Interval Kepercayaan, Bukan Estimasi Titik
ASR adalah estimasi dari sampel yang terbatas, jadi laporkan ketidakpastiannya. Dalam rangkaian kecil, intervalnya lebar; penurunan dari 8% menjadi 6% mungkin hanya derau. Gunakan interval kepercayaan binomial dan hanya tindak lanjuti perubahan yang melampaui interval tersebut.
from statsmodels.stats.proportion import proportion_confint
low, high = proportion_confint(breaks, n, method='wilson')
print(f'ASR {breaks/n:.3f} CI [{low:.3f}, {high:.3f}]')Padanan Positif Palsu
Ketahanan tanpa kemudahan penggunaan tidak berarti. Pasangkan ASR dengan tingkat penolakan berlebihan: proporsi permintaan yang tidak berbahaya tetapi keliru diblokir, yang diukur pada kumpulan bersih terpisah. Penguatan yang membuat penolakan berlebihan melonjak hanya menukar satu kegagalan dengan kegagalan lain.
over_refusal = sum(1 for r in benign_results if r['blocked']) / len(benign_results)
# track ASR and over_refusal together; optimize the frontierEfisiensi Serangan
Ukur bukan hanya apakah serangan berhasil, tetapi juga seberapa sulit serangan itu dilakukan. Lacak jumlah kueri hingga berhasil menembus atau jumlah giliran hingga berhasil menembus: celah dalam satu percobaan jauh lebih buruk daripada celah yang memerlukan 20 giliran yang direkayasa. Meningkatnya upaya hingga berhasil menembus pada setiap rilis merupakan tanda ketahanan yang membaik, meskipun ASR tetap.
def avg_turns_to_break(results):
succ = [r['turns_used'] for r in results if not r['safe']]
return sum(succ)/len(succ) if succ else float('inf')Kalibrasikan Penilai
Jika penilai LLM memberikan skor keberhasilan, kualitas metrik Anda hanya sebaik kualitas penilai tersebut. Bandingkan hasil penilaian dengan pelabelan manusia secara berkala dan laporkan presisi serta perolehan kembali penilai. Penilai yang terlalu longgar mengecilkan ASR dan menciptakan keyakinan palsu.
judge_acc = mean(judge(r['transcript']) == human[r['id']] for r in audit_set)
assert judge_acc > 0.9, 'recalibrate judge before trusting ASR'Pelaporan Terstratifikasi
Satu agregat dapat menyembunyikan risiko. Pecah metrik berdasarkan kategori, teknik, satu giliran versus multi-giliran, serta langsung versus tidak langsung. ASR keseluruhan sebesar 3% dapat menyembunyikan ASR 40% pada penyalahgunaan alat tidak langsung, dan angka inilah yang seharusnya mengarahkan peta jalan Anda.
Lacak Tren Antar-Rilis
Ketahanan bersifat relatif dan terikat waktu. Simpan setiap proses rangkaian yang dijalankan berdasarkan versi model dan konfigurasi, lalu buat grafik ASR serta risiko berbobot antar-rilis. Tujuannya adalah peningkatan yang monoton dan nol regresi, yang dipantau seperti SLO keandalan lainnya.
history.append({'version': cfg.model_version, 'asr': asr(results),
'weighted': weighted_risk(results), 'over_refusal': over_refusal})Tetapkan Syarat Rilis
Ubah metrik menjadi kebijakan. Contoh syarat: ASR kritis harus 0, ASR keseluruhan di bawah ambang batas, tidak ada regresi yang melampaui interval kepercayaan, dan penolakan berlebihan di bawah batas maksimumnya. Syarat ini menjadikan ketahanan sebagai persyaratan rilis yang wajib, bukan sekadar pelengkap.
def passes_gate(m, prev):
return (m['critical_asr'] == 0
and m['asr'] < 0.05
and m['asr'] <= prev['asr'] + ci_margin
and m['over_refusal'] < 0.02)Waspadai Overfitting pada Rangkaian
Jika Anda menyesuaikan pertahanan secara langsung terhadap rangkaian yang terlihat, Anda mungkin berhasil melewati pengujian tetapi tetap rentan terhadap serangan yang belum terlihat. Sisihkan kumpulan serangan privat, rotasikan kasus, dan biarkan model penyerang terus mengeksplorasi. Skor sempurna pada rangkaian statis adalah tanda peringatan, bukan kemenangan.
Pemeriksaan Singkat
ASR keseluruhan Anda rendah, yaitu 3%, tetapi para pemangku kepentingan terkejut oleh insiden penyalahgunaan alat di dunia nyata. Praktik pengukuran apa yang kemungkinan besar dapat mengungkap risiko tersebut lebih awal?
Rangkuman
Mengukur ketahanan:
- Attack Success Rate adalah metrik inti; beri bobot berdasarkan tingkat keparahan.
- Laporkan interval kepercayaan dan pasangkan ASR dengan penolakan berlebihan.
- Lacak efisiensi serangan (giliran/kueri hingga berhasil menembus) dan kalibrasikan penilai.
- Laporkan secara terstratifikasi, lacak tren antar-rilis, dan tegakkan syarat rilis.
- Sisihkan serangan privat untuk menghindari overfitting pada rangkaian.
Anda telah menyelesaikan pengujian ofensif dan evaluasi adversarial, serta jalur lanjutan PromptLab.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mengukur Ketahanan” gratis?
Ya — teks lengkap “Mengukur Ketahanan” 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 “Mengukur Ketahanan”?
Menilai ketahanan terhadap serangan. 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 4 dari 4.
Berapa lama pelajaran “Mengukur Ketahanan” 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
- Dasar-Dasar Red Teaming LLM
- Teknik Jailbreak
- Membangun Kumpulan Serangan
- Mengukur Ketahanan