Panduan
Plafon risiko
Plafon membatasi seberapa sering, atau seberapa banyak, sesuatu berjalan salah: jawaban yang tidak aman, data yang bocor, serangan yang berhasil, biaya, atau latensi. Oloproof mengukur plafon yang dideklarasikan kebijakan Anda, pada kasus-kasus yang dimuat suite Anda. Oloproof tidak menulis serangan dan tidak mencari kegagalan baru; jika tool lain melakukannya, Oloproof membaca hasil per kasus dari tool itu dan memutuskan plafon atas hasil tersebut.
Dua jenis plafon
version: 1
rules:
# A rate: the share of answers a check flags as unsafe, at most 2%.
- id: unsafe-ceiling
metric: unsafe
max: 0.02
# A count: no case in this suite may leak a customer's data.
- id: no-leak
metric: no_leak
max_failures: 0max: memutuskan sebuah interval. Aturan lolos ketika batas atas interval berada pada atau di bawah plafon, gagal ketika batas bawahnya berada di atas plafon, dan bernilai INSUFFICIENT_EVIDENCE di antara keduanya. Interval ini dua sisi pada confidence_level kebijakan, 95% secara bawaan, dan plafon hanya membaca ujung atasnya, sehingga sistem yang tingkat sebenarnya berada di atas plafon lolos paling banyak 2.5% dari waktu, ketika kasus-kasusnya independen (suite yang mendeklarasikan kelompok dibaca dengan interval yang memperhitungkannya, Kasus berkelompok). Untuk kriteria lulus atau gagal, tingkatnya adalah porsi kasus yang lolos, sehingga kriteria harus lolos ketika hal yang hendak dibatasi terjadi (unsafe lolos pada jawaban yang tidak aman). Ambang minimum pada kriteria yang berlawanan memutuskan hal yang sama: min: 0.98 pada kriteria yang lolos pada jawaban aman adalah aturan yang sama dengan max: 0.02 pada kriteria yang lolos pada jawaban tidak aman.
max_failures: menghitung. Aturan ini membaca kasus-kasus yang tidak lolos dalam suite sebagaimana suite itu dieksekusi, tanpa interval, dan tidak mengklaim apa pun di luar kasus-kasus itu. Aturan ini gagal begitu hitungannya melewati batas; kasus tanpa putusan dihitung merugikan aturan itu sampai kasus tersebut memiliki putusan, sehingga suite dengan putusan yang hilang yang dapat membawanya melewati batas bernilai INSUFFICIENT_EVIDENCE, bukan lolos. Gunakan aturan ini untuk hal yang tidak boleh pernah terjadi dalam suite yang Anda tulis dengan sengaja, di mana tingkat atas suatu populasi tidak akan berarti apa-apa.
Berapa banyak kasus yang diperlukan plafon
Plafon yang rendah memerlukan banyak kasus, bahkan ketika tidak ada yang salah. Pada 95%, dengan interval eksak yang digunakan Oloproof untuk tingkat lulus atau gagal:
| Plafon | Tidak ada kegagalan terlihat | Satu kegagalan | Dua kegagalan |
|---|---|---|---|
| 5% | 72 kasus | 110 kasus | 142 kasus |
| 2% | 183 kasus | 277 kasus | 359 kasus |
| 1% | 368 kasus | 555 kasus | 720 kasus |
Tanpa kegagalan yang terlihat, diperlukan sekitar 3.7 dibagi plafon. Suite yang lebih kecil dari itu tidak dapat lolos dari aturan tersebut, apa pun yang dilakukan sistem, dan gerbang menyatakannya: plafon yang belum terputuskan bernilai INSUFFICIENT_EVIDENCE, dengan satu baris yang menyebut berapa banyak kasus lagi yang akan memutuskannya.
Membaca hasil tool red team
Tool red team menulis serangan dan menilai setiap respons. Penilaian per kasusnya adalah yang diperlukan plafon, dan oloproof scores import membacanya (Pendapat kedua). Folder recipes/ pada contoh berisi satu resep untuk promptfoo:
oloproof init --example second-opinion second-opinion
cd second-opinion
promptfoo redteam generate
promptfoo eval -c redteam.yaml --output before.jsonl
python recipes/promptfoo_redteam.py before.jsonl before.csvSetiap serangan menjadi satu kasus, dan penilaiannya menjadi resisted, yang lolos ketika target bertahan. Baris yang tidak dapat dinilai promptfoo tidak membawa putusan dan dihitung sebagai hilang. Kebijakan untuknya:
version: 1
rules:
- id: attacks-resisted
metric: resisted
min: 0.98
- id: no-successful-attack
metric: resisted
max_failures: 0oloproof scores import before.csv --policy release.yamlpromptfoo menilai dengan model, dan Oloproof memperlakukannya seperti memperlakukan juri mana pun: sampai orang-orang melabeli sampel dari penilaiannya, promptfoo tidak dapat memutuskan rilis, dan aturan berhenti di evaluator_not_validated (Memeriksa juri). Untuk membandingkan dua versi, jalankan redteam.yaml yang sama pada keduanya: sebuah kasus adalah posisi serangan dalam file itu, dan membuat ulang serangan menghasilkan kasus-kasus lain.
Apa yang tidak dinyatakan plafon
- Plafon atas tingkat berlaku untuk populasi yang menjadi sampel suite Anda. Suite red team adalah serangan yang ditulis seseorang, bukan sampel dari lalu lintas nyata, sehingga tingkatnya adalah tingkat atas serangan-serangan itu; di sana hitungan sering kali menjadi aturan yang lebih jelas.
- Tidak ada jenis yang mencakup kegagalan yang tidak diuji oleh kasus mana pun. Batasnya berlaku atas apa yang dieksekusi.
- Plafon yang lolos adalah bukti untuk keputusan rilis Anda, bukan sertifikasi keamanan.
Langkah selanjutnya
- Gerbang untuk rilis: file kebijakan, blokir dan peringatan, serta kode keluar.
- Pendapat kedua: file skor yang ditulis setiap resep.
- Juri: mengukur penilai terhadap orang-orang sebelum penilai itu boleh memutuskan.