Lewati ke konten utama

Laporan Evaluasi Model KAK — Set Evaluasi 100 Pertanyaan

Tanggal evaluasi: 18 Oktober 2026 (MYT) · Set: 100 pertanyaan kanonis berbahasa Indonesia · Status: sementara, bukan hasil penerimaan klien.

Lihat set evaluasi 100 pertanyaan untuk jawaban dan hasil setiap pertanyaan.

Set evaluasi 100 pertanyaan ini dipilih manual untuk memberi gambaran awal, bukan bukti kesiapan produksi. Pemeriksaan recall lolos, tetapi lima ambang lain yang ditetapkan gagal. Tingkat faithfulness dan hallucination dari pemeriksaan independen tetap null karena enam keputusan klaim dan lima keputusan penolakan tidak tersedia.

Perubahan aturan penilaian, 17 Oktober 2026. Angka jawaban, rubrik, dan outcome dalam laporan ini dinilai dengan figures_only_true; angka yang sama di bawah ambang confidence 0.80 sebelumnya ditampilkan berdampingan dan diberi label di seluruh laporan. Aturan, alasannya, dan batas buktinya ada di Aturan penilaian.

Run dan provenance​

ItemNilai
Run idgolden-seed-easy-20261017-172913-170652 (arm easy, dinilai judge)
Tanggal17 Oktober 2026, 17:29–18:03 UTC
Build yang diujie8a34442 — commit yang dijalankan produksi setelah deploy #952. API evaluasi terisolasi melaporkan deployed_ref e8a34442f111871b7ed0078e4f7bb5738994671b, reproducible: true.
Indexragaceh_eval pada Postgres evaluasi lokal box (aceh-eval-db), dipakai ulang dengan --reuse-index; manifest korpus 2026-10-10.1; 100 kasus dinilai
Model penjawabqwen3.8-27b (dilaporkan API), embedding bge-m3, reranker bge-reranker-v2-m3, model OCR PaddleOCR-VL-0.9B; served context window 32.768 token; faithfulness dan Policy Guard aktif; LLM eksternal nonaktif
JudgeJev jev-1.13.0 melalui typesafe-sdk 0.7.2, ambang confidence 0.8. Model judge, pertanyaan, equivalences, rubrik, dan hash mapping-nya identik dengan run 17 Oktober; adapter_sha256 berbeda karena hash itu mencakup sumber adapter, yang kini memuat aturan figures_only_true yang ditambahkan build ini. Kedua rekaman dibekukan dan dikomit.
Rekamaneval/golden-seed/easy-runs/golden-seed-easy-20261017-172913-170652-easy.json, beserta -faithfulness.json dan -judge-config.json

Hasil​

Semua nilai berikut berasal dari evaluasi 100 kasus pada 18 Oktober 2026. Enam pemeriksaan ambang ditampilkan terpisah di bawah.

MetrikHasilPenyebut / arti
Recall@589,29%75/84 kasus dengan dokumen sumber yang diharapkan
MRR@50,875Rata-rata reciprocal rank pada 84 kasus
nDCG@50,8797Rata-rata normalized discounted gain pada 84 kasus
Lulus rubrik jawaban72,00%72/100; rubrik jawaban/penolakan yang dinilai lulus
Tingkat jawaban benar72,00%72/100: 63 jawaban benar, 8 penolakan yang diharapkan dan ditangani dengan benar, dan 1 jawaban yang lulus rubrik tetapi gagal kontrak rute yang diharapkan
Lulus outcome71,00%71/100 setelah outcome yang diharapkan dan kontrak rute diterapkan
Kehadiran sitasi86,36%76/88 kasus yang mengharapkan jawaban memiliki ≥1 sitasi; kehadiran bukan bukti dukungan
Lulus penolakan66,67%8/12 kasus yang mengharapkan penolakan lulus
Lulus rute66,67%2/3 pemeriksaan rute lulus
Latensi total, p50 / p95 / p9913,7 / 61,6 / 74,4 dtkSeluruh 100 kasus; pencarian ditambah query
Latensi pencarian, p50 / p95 / p990,377 / 0,589 / 0,721 dtkSeluruh 100 kasus

Ambang yang ditetapkan: 1/6 lulus, 5/6 gagal. Recall@5 ≥80% lulus. Lulus rute =100%, lulus rubrik jawaban ≥80%, lulus outcome ≥80%, kehadiran sitasi =100%, dan lulus penolakan =100% gagal. Secara keseluruhan, evaluasi ini gagal.

Ini run pertama yang dinilai dengan figures_only_true yang sudah diterapkan langsung, bukan melalui penilaian ulang run tersimpan, sehingga tidak punya himpunan angka kedua: menilai ulang rekaman yang dikomit secara offline mengubah 0 kasus dan membiarkan semua metrik identik.

Aturan penilaian: figures_only_true (17 Oktober 2026)​

Judge melakukan pemeriksaan terpisah untuk setiap kasus dan menandai setiap jawabannya sendiri dengan confidence, |2 × p_yes − 1|. Setiap pemeriksaan di bawah ambang 0.8 dianggap "ditandai", dan satu pemeriksaan yang ditandai membuat seluruh kasus menjadi unavailable — verdict ditahan dan kasus tetap masuk penyebut tingkat jawaban dan rubrik tanpa menyumbang kelulusan. Perlakuan itu menyamakan keraguan pada pemeriksaan figures, yaitu pertanyaan apakah angka dalam jawaban benar, dengan kegagalan jawaban.

Aturannya sekarang: jika pemeriksaan figures adalah satu-satunya pemeriksaan yang ditandai pada sebuah kasus dan jawaban judge sendiri atas pemeriksaan itu adalah ya (p_yes pada atau di atas ambang 0.5 milik spec), tanda itu dihapus dan kasus dinilai dari verdict tersimpannya. Tidak ada hal lain yang berubah. Keraguan figures yang condong ke tidak (p_yes di bawah 0.5) tetap ditandai — jawaban "angka itu salah" yang tak yakin bukan kelulusan. Tanda figures yang berdampingan dengan tanda lain (support, coverage, recall) juga tetap ditandai; itu keraguan atas klaim yang disebut, bukan atas pertanyaan yang tidak disinggung jawaban. Kasus penolakan tidak pernah mengajukan pertanyaan figures dan tidak terpengaruh. Aturan ini hidup di satu tempat, judge_flags() di src/aceh_rag/eval/jev_judge.py, yang dibaca oleh run langsung, re-scorer, dan laporan ini.

Alasannya: judge menandai pertanyaan figures pada jawaban yang sama sekali tidak menyatakan angka, padahal instruksi pertanyaan itu sendiri sudah mengizinkannya ("jika jawaban tidak memuat klaim numerik dan tidak ada yang diwajibkan, jawab ya"). Dari 200 case-run pada sampel kalibrasi, 56 membawa pemeriksaan figures yang ditandai sebagai satu-satunya tanda; aturan menghapus tanda pada 37 di antaranya yang jawaban judge-nya ya — 28 jawaban benar, satu benar-dengan-cacat, dan 8 penolakan salah yang berpindah dari unsure ke kegagalan tegas — lalu membiarkan 19 yang condong ke tidak tetap ditandai. Pada run 17 Oktober aturan memindahkan 16 kasus dari unavailable ke correct dan 4 dari unavailable ke penolakan salah yang tegas, yang sebelumnya dilaporkan sebagai unsure. Run 18 Oktober adalah yang pertama dinilai dengan aturan itu sudah berlaku, sehingga tidak punya himpunan angka kedua; menilai ulang pemeriksaan tersimpannya secara offline tidak mengubah satu kasus pun.

Batas buktinya. Aturan ini didukung sampel yang hanya memuat 3 jawaban salah tegas dari 60 case-run salah; 57 sisanya adalah penolakan yang salah. Jadi "nol jawaban salah yang lulus" berarti 0/60 pada sampel yang tidak dapat menilai kasus yang justru ingin dibantu aturan ini — angka salah yang lancar dan yakin yang disetujui pemeriksaan figures. Aturan ini belum terbukti di sana. Ke-56 label ground truth itu juga berasal dari satu penilai, dan probabilitas keraguannya dibaca saat ground truth itu sedang disusun, sehingga pemisahan set tuning dan validasi adalah pembagian yang didaftarkan lebih dulu, bukan uji tersamar.

Cara angka ini dihasilkan. Run yang dipublikasikan adalah run dinilai langsung atas build saat ini: jawaban, hasil retrieval, dan keputusan judge di dalam eval/golden-seed/easy-runs/golden-seed-easy-20261017-172913-170652-easy.json adalah miliknya sendiri, dan aturannya diterapkan runner saat menilai. Menilai ulang rekaman itu secara offline dari pemeriksaan tersimpannya (scripts/rescore_golden_seed.py --from-stored-checks) tidak mengubah apa pun; langkah itu hanya dijalankan karena generator tabel mensyaratkan atribusi aturan yang ditulisnya. Angka run sebelumnya di bawah aturan ini adalah hasil penilaian ulang offline atas pemeriksaan tersimpannya, yang hanya menghitung ulang himpunan tanda, sumbu jawaban, dan verdictnya. Tabel per pertanyaan dihasilkan ulang dari run 18 Oktober dengan scripts/generate_docs_evaluation_table.py; perintah persisnya ada di eval/golden-seed/easy-runs/README.md.

Definisi metrik​

MetrikArti sederhana dan rumus
Recall@5Untuk setiap kasus dengan dokumen sumber yang diharapkan: dokumen relevan di lima hasil pertama ÷ jumlah dokumen relevan yang diharapkan; dirata-ratakan pada kasus retrieval.
MRR@5Untuk setiap kasus retrieval, 1 / peringkat dokumen pertama yang diharapkan dalam lima hasil pertama, atau nol jika tidak muncul; dirata-ratakan pada semua kasus.
nDCG@5Gain relevansi biner di setiap peringkat, didiskon dengan 1/log2(peringkat + 1), lalu dibagi gain ideal di lima hasil pertama; dirata-ratakan pada semua kasus.
Lulus rubrik jawabanKasus yang lulus rubrik jawaban dan angka, atau rubrik penolakan yang diharapkan, ÷ seluruh 100 kasus. Pemeriksaan judge yang ditandai gagal secara tertutup, kecuali kasus figures di atas.
Tingkat jawaban benarKasus dengan jawaban benar ÷ 100. Untuk kasus terjawab yang dinilai judge, kebenaran memerlukan lulus rubrik jawaban/angka dan dukungan sitasi; derive_answer_axes() tidak mensyaratkan source_span_found. Penolakan yang diharapkan hanya benar jika judge menilainya sebagai penolakan dan syarat sitasi/sumber lulus. faithfulness_pass_rate di laporan ini adalah angka ini yang dilabeli ulang (ADR-0042), bukan pemeriksaan independen di bawah.
Lulus outcomeKasus dengan outcome_pass=true ÷ 100; berawal dari kebenaran jawaban, dan juga mensyaratkan kontrak rute yang diharapkan jika ada.
Kehadiran sitasiKasus yang mengharapkan jawaban dan memiliki ≥1 sitasi ÷ 88 kasus yang mengharapkan jawaban. Ini tidak menunjukkan bahwa sitasi mendukung jawaban.
Lulus penolakanKasus penolakan yang diharapkan dan lulus ÷ 12 kasus penolakan yang diharapkan. Penolakan yang tidak semestinya pada pertanyaan yang seharusnya dijawab bukan lulus penolakan.
Persentil latensiLatensi kasus diurutkan, lalu diinterpolasi linier pada indeks (n - 1) × kuantil; latensi total adalah pencarian ditambah query.
Tingkat dukungan klaim faithfulnessKlaim faktual yang didukung ÷ klaim faktual yang dinilai. contradicts dan says_nothing berarti tidak didukung; keputusan unavailable tetap di penyebut dan bukan dukungan.
Lulus jawaban faithfulnessJawaban yang tidak memiliki klaim tidak didukung ÷ jawaban yang memuat setidaknya satu klaim faktual untuk dinilai. Penolakan tidak masuk penyebut ini.
Tingkat hallucinationJawaban yang memuat setidaknya satu klaim tidak didukung ÷ semua jawaban yang diberikan (bukan penolakan). Keputusan unavailable membuat angka ini null, bukan nol.

Rumus retrieval ada di src/aceh_rag/eval/evaluation.py:238-269; agregasi jawaban/penolakan ada di src/aceh_rag/eval/golden_seed.py:2004-2086,6173-6205; interpolasi latensi ada di src/aceh_rag/eval/report_breakdowns.py:75-82. Definisi faithfulness dan penanganan fail-closed ada di src/aceh_rag/eval/faithfulness.py:101-140,209-367 dan eval/README.md#metrics.

Rincian 29 kasus yang tidak benar​

Dari 29 kasus yang bukan salah satu dari 71 outcome benar, 24 berstatus belum pasti menurut judge, 4 salah dengan tegas, dan 1 partial. Tidak ada kasus salah tegas yang mempublikasikan angka salah: keempat kegagalan tegas itu penolakan coverage_incomplete pada pertanyaan yang seharusnya dijawab, dan tidak satu pun punya sitasi. Dari 24 kasus belum pasti, 20 seharusnya dijawab dan empat seharusnya ditolak; keempat penolakan itu bergantung pada keputusan penolakan yang jatuh di bawah ambang confidence 0.8. Run tidak mengalami HTTP error, timeout, jawaban yang tidak dapat dinilai, atau jawaban kosong.

Ke-29 kasus yang tidak benar menurut apa yang dipublikasikan jalur jawaban: 12 penolakan (10 coverage_incomplete, 1 over_refusal, dan 1 penyelesaian yang tidak dapat diparse batas keluaran) dan 17 jawaban, 11 di antaranya membawa pemeriksaan judge yang ditandai dan satu dipublikasikan dengan penanda no_claims. Empat belas dari 88 output yang mengharapkan jawaban berupa penolakan; 74 sisanya mempublikasikan jawaban.

Bukti expected-span memperlihatkan bagian retrieval: dari 29 kasus yang tidak benar, 23 memiliki expected source span yang dapat dinilai; 18 span muncul di hasil /search lima teratas dan lima tidak muncul. Enam kasus tidak memiliki span passage yang dapat diterapkan. Secara terpisah, 12 dari 88 output yang mengharapkan jawaban tidak memiliki sitasi. Harness memeriksa source_span_found pada passage hasil pencarian sebelum sintesis; hal ini tidak membuktikan jawaban memakai passage itu (src/aceh_rag/eval/golden_seed.py:1807-1815).

ContohOutcomeBukti
b2-seed-015 — tenggat pemberitahuan tertulis Qanun 7/2019PartialJawabannya benar, bersumber pada dua passage bersitasi, dan lulus rubrik, tetapi responsnya tidak mencatat panggilan search_documents, sehingga kontrak rute yang diharapkan gagal.
b2-de-j25-01 — rentang uqubat pelecehan seksual setelah Qanun 12/2025Judge belum pastiJalur jawaban menolak dengan coverage_incomplete padahal expected span ada di lima hasil teratas; judge menandai pemeriksaan support.
b2-bps-003 — angkatan kerja Aceh 2024Judge belum pastiBaris BPS live ditolak sebagai over-refusal; judge menandai kesetaraan angka pada penolakan itu.
b2-de-r-04 — permohonan informasi yang ditolak PPID Aceh 2023Judge belum pastiPenolakan yang diharapkan; jawabannya menjelaskan bahwa dataset SatuData kosong dan menyitasi tujuh passage, dan keputusan penolakan judge jatuh di bawah ambang confidence.
b2-seed-030 — permohonan informasi yang diterima sepanjang 2022Judge belum pastiBatas keluaran menolak penyelesaiannya, sehingga kasus jatuh ke penolakan bawaan; judge menandai pemeriksaan angka dan cakupan.

“Partial” adalah kategori nilai judge yang spesifik, bukan jumlah fakta yang sebagian benar: setelah jawaban yang tidak dapat dinilai dan kasus dengan pemeriksaan tertandai dikecualikan, artinya kasus terjawab lulus rubrik jawaban tetapi gagal pada kebenaran outcome penuh. Penolakan dinilai terhadap outcome yang diharapkan.

Pemeriksaan faithfulness dan hallucination independen​

Pemeriksaan mandiri menilai 100 jawaban yang sama.

Pemeriksaan memakai konfigurasi judge yang dibekukan dengan ambang confidence 0.8. Hasilnya mencakup 100 rekaman per jawaban dan sampel tinjauan manusia deterministik berisi 10 klaim; sampel itu belum ditinjau manusia.

BuktiHasil
Keputusan klaim faktual173 total: 167 didukung, 0 dinilai tidak didukung, 6 unavailable
Output yang dijawab / penolakan yang terklasifikasi dengan yakin79 / 21
Output jawaban dengan ≥1 klaim faktual dinilai79; 71 lulus, 8 unavailable
Keputusan penolakan unavailable5
Jawaban tanpa passage yang disitasi1
Fallback seluruh jawaban1 jawaban
Tingkat resmi dukungan klaim, lulus jawaban, hallucinationnull / null / null

Angka resmi tetap null karena kebijakan judge yang dibekukan gagal secara tertutup jika satu keputusan klaim atau penolakan saja ditandai atau di bawah ambang confidence 0.8. Tidak ada klaim yang dinilai tidak didukung, tetapi hal itu tidak membuktikan tingkat hallucination 0% selama enam keputusan klaim dan lima keputusan penolakan masih unavailable.

Hasil tambahan pada kasus dengan outcome terselesaikan berikut tidak menggantikan angka resmi yang null:

  • Hasil lulus-jawaban pada kasus dengan outcome terselesaikan: 71/92 = 77,17%. Delapan output jawaban dengan keputusan klaim atau penolakan yang unavailable dikecualikan; 92 sisanya terdiri dari 71 jawaban yang lulus penilaian penuh dan 21 output penolakan. Penolakan tidak dihitung sebagai jawaban yang lulus. Ini adalah hasil jawaban pada seluruh outcome, bukan faithfulness_answer_pass_rate yang didefinisikan.

Lima kasus dengan keputusan penolakan unavailable dan bukti yang tersedia:

KasusKeputusan unavailable dan bukti
b2-seed-052 — penolakan yang diharapkan, dua passage disitasiPemeriksaan mandiri menandai keputusan penolakan unavailable; satu klaimnya didukung dan tidak ada yang dinilai tidak didukung.
b2-de-sd-03 — jawaban yang diharapkan, dua passage disitasiPemeriksaan mandiri menandai keputusan penolakan unavailable; dari dua klaimnya satu didukung dan satu unavailable, dan tidak ada yang dinilai tidak didukung.
b2-de-r-04 — penolakan yang diharapkan, tujuh passage disitasiPemeriksaan mandiri menandai keputusan penolakan unavailable; satu klaimnya didukung dan tidak ada yang dinilai tidak didukung.
b2-de-r-05 — penolakan yang diharapkan, empat passage disitasiPemeriksaan mandiri menandai keputusan penolakan unavailable; ketiga klaimnya didukung dan tidak ada yang dinilai tidak didukung.
b2-pg-jail-id-002 — penolakan yang diharapkan, tanpa passage disitasiPemeriksaan mandiri menandai keputusan penolakan dan satu-satunya keputusan klaim unavailable; tidak ada klaim yang dinilai tidak didukung.

Untuk kasus-kasus ini, pemeriksaan yang ditandai atau confidence di bawah 0.8 menjadikan putusan unavailable. Pemeriksaan mandiri mencatat flag dan jumlah unavailable, tetapi tidak mencatat confidence penolakan yang persis atau apakah pemeriksaan ditandai versus di bawah ambang; rincian itu tidak dapat dipulihkan. Karena itu, kasus-kasus ini dikecualikan dari rasio 92 outcome, bukan diam-diam dianggap lulus. Laporan utama melabeli tingkat jawaban benar 72% sebagai lulus faithfulness, tetapi itu bukan hasil faithfulness independen. Tingkat kasus draft yang diblokir 2/100 adalah diagnostik pemblokiran, bukan tingkat hallucination.

Pembentukan set dan batasan​

Set evaluasi 100 pertanyaan dipilih manual dari bank label 632 baris. Set ini berisi 100 pertanyaan kanonis berbahasa Indonesia: JDIH 48, PPID 42, Policy Guard 6, BPS 3, dan OpenData 1. Ada 96 kasus statis dan empat kasus live. Pemilihannya mengutamakan pertanyaan yang kurang kompleks dibandingkan evaluasi penuh, hanya mencakup pertanyaan satu putaran, dan tidak memiliki pertanyaan bahasa Inggris. Set ini bukan held-out dan bukan golden set dari klien. Lihat eval/README.md untuk caveat pemilihan.

Dari 100 baris, 84 menyebut dokumen sumber yang diharapkan (26 dokumen berbeda); 81 memiliki expected source span (80 cocok teks persis dan satu cocok melalui pencocokan reflow harness). Tiga baris spreadsheet memakai gold_cells tetapi tidak memiliki span untuk penilaian passage; baris itu dikecualikan dari penilaian span passage, sedangkan recall dokumen tetap berlaku. Enam belas baris tidak menyebut dokumen sumber: tujuh penolakan yang diharapkan, enam kasus Policy Guard, dan tiga kasus live BPS. Harness tidak memiliki jalur penilaian pointer sel spreadsheet (eval/README.md#easy-baseline).

Label evaluasi masih draf sampai ditinjau manusia; set yang dipilih manual dapat melebihkan kinerja. Bahkan nol kegagalan pada 100 kasus representatif independen hanya membatasi tingkat kegagalan sekitar 3% pada confidence 95% (rule of three); kira-kira 30.000 kasus tanpa kegagalan diperlukan untuk membatasi tingkatnya dekat 0,01%. Run ini memiliki kegagalan dan kasus yang tidak pasti menurut judge. Target UAT 99,99% atau lebih tidak dibuktikan oleh evaluasi ini. Opsi pengganti untuk disepakati dengan klien: set tetap yang ditinjau manusia, ukuran sampel dan interval confidence yang ditetapkan, target seperti faithfulness ≥95%, dan nol klaim tidak didukung yang dipublikasikan. Usulan ini belum disepakati.

Yang tidak diukur: bahasa Inggris; memori percakapan multi-turn; jumlah struktur, pasangan amendemen, dan pertanyaan hukum multi-hop; cakupan kabupaten yang luas (hanya ada satu probe OpenData kabupaten); mutu OCR; perilaku upload, login, konkurensi, serta membuka tautan sitasi. Sumber live dapat berubah. Empat kasus live bukan pengujian retrieval statis.

Laporan index evaluasi tidak memverifikasi listing dokumen live atau checksum. Sampel 100 kasus tidak menemukan dokumen yang tidak dideklarasikan, tetapi itu bukan bukti bahwa index hanya berisi seed corpus.

Perbandingan dengan run sebelumnya​

Run atas set ini​

Tanggal (UTC)Run idBuild yang diujiLingkunganModeRecall@5MRR@5nDCG@5Jawaban benarKehadiran sitasiLulus penolakanLulus rute
2026-10-15 10:52golden-seed-easy-20261015-105206-65259199836b20API evaluasi boxsearch only89,29%0,87500,8797————
2026-10-15 14:28golden-seed-easy-20261015-142858-14308899836b20API evaluasi boxdinilai · bar 0.8089,29%0,87500,879734,00%46,59%83,33%100,00%
↳ run yang sama, dinilai ulang 17 Okt 2026golden-seed-easy-20261015-142858-14308899836b20API evaluasi boxdinilai · figures_only_true89,29%0,87500,879747,00%46,59%83,33%100,00%
2026-10-16 01:10golden-seed-easy-20261016-011013-71321499836b20API evaluasi boxsearch only89,29%0,87500,8797————
2026-10-16 02:19golden-seed-easy-20261016-021907-1680830475efa8 (head PR #927)API evaluasi boxsearch only89,29%0,87500,8797————
2026-10-16 10:01golden-seed-format-fix-20261016-100126abb7cc7d (head PR #934)lab privatdinilai · bar 0.8089,29%0,87500,879752,00%92,05%50,00%66,67%
↳ run yang sama, dinilai ulang 17 Okt 2026golden-seed-format-fix-20261016-100126abb7cc7d (head PR #934)lab privatdinilai · figures_only_true89,29%0,87500,879769,00%92,05%50,00%66,67%
2026-10-17 01:33golden-seed-easy-20261017-013316-184015a79a7355API evaluasi boxdinilai · bar 0.8089,29%0,87500,879755,00%85,23%75,00%100,00%
↳ run yang sama, dinilai ulang 17 Okt 2026golden-seed-easy-20261017-013316-184015a79a7355API evaluasi boxdinilai · figures_only_true89,29%0,87500,879771,00%85,23%75,00%100,00%
2026-10-17 17:29golden-seed-easy-20261017-172913-170652e8a34442 (setelah #952)API evaluasi boxdinilai · figures_only_true89,29%0,87500,879772,00%86,36%66,67%66,67%

Baris bertanda ↳ adalah run di atasnya, dinilai dengan aturan yang berlaku sejak 17 Oktober 2026 alih-alih ambang confidence 0.80; run, jawaban, retrieval, dan keputusan judge-nya identik pada keduanya. Baris hasil penilaian ulang 15 Oktober dan lab privat 16 Oktober berasal dari rekaman tersimpan yang tidak dikomit ke repositori ini. Rekaman 17 Oktober dikomit; perintah penilaian ulangnya ada di eval/golden-seed/easy-runs/README.md. Baris terakhir adalah run yang dipublikasikan, dinilai langsung atas build yang membawa aturan ini.

Retrieval datar di semua run: recall@5 89,29%, MRR@5 0,875, dan nDCG@5 0,8797 pada 84 kasus retrieval yang sama, termasuk dua run yang membawa perubahan retrieval sebelumnya (PR #927) dan run 18 Oktober yang menyusulnya. Yang bergerak adalah lapisan jawaban: dengan figures_only_true, jawaban benar naik dari 47% (15 Oktober) menjadi 71% (17 Oktober versi terpublikasi) lalu 72% (18 Oktober), yaitu +25,00 pp dibanding baseline 15 Oktober dan +1,00 pp dibanding run terakhir sebelumnya. Dengan bar 0.80 perbandingan baseline ke 17 Oktober yang sama adalah 34% ke 55%. Yang bergerak ke arah sebaliknya adalah lulus penolakan (83,33% → 75,00% → 66,67%) dan lulus rute (100% → 100% → 66,67%); keduanya dibahas di Rincian 29 kasus yang tidak benar dan Yang membatasi komparabilitas.

Perubahan lintas run yang dibandingkan di sini​

Run 18 Oktober dinilai atas e8a34442 (stempel UTC-nya 20261017-172913; run dimulai 17 Oktober 17:29 UTC dan berakhir 17 Oktober 18:03 UTC, yang berarti 18 Oktober dalam MYT, kalender yang dipakai tanggal laporan ini); run 17 Oktober muncul dua kali — saat dinilai dengan bar 0.80 dan saat dipublikasikan ulang dengan figures_only_true — karena perubahan aturan, bukan build, yang menggerakkan angka jawabannya. Run 16 Oktober (arm fixed100, di lab privat atas head cabang PR #934) dan tiga run search-only tetap ada di daftar run demi kesinambungan tetapi bukan kolom di sini: run 16 Oktober tidak setara, dan run search-only tidak mengukur jawaban.

Kolom baseline 15 Oktober, 17 Oktober terpublikasi, dan 18 Oktober memakai figures_only_true. Kolom “17 Okt #939 saat dinilai” mempertahankan ambang confidence 0.80 sebelumnya. Dengan ambang sebelumnya itu, baseline 15 Oktober bernilai 34,00% / 34,00% / 34,00% / 27,27% untuk lulus rubrik jawaban, jawaban benar, lulus outcome, dan kebenaran sitasi. Baris lain tidak berubah oleh aturan ini. Kedua kolom #939 adalah run yang sama; keduanya hanya berbeda pada empat baris lapisan jawaban itu.

MetrikBaseline 15 Okt17 Okt #939 saat dinilai17 Okt #939 terpublikasiUlangan 18 OktPerubahan vs 15 OktPerubahan vs 17 Okt terpublikasi
Recall@589,29%89,29%89,29%89,29%+0,00 pp+0,00 pp
MRR@50,87500,87500,87500,8750+0,00+0,00
nDCG@50,87970,87970,87970,8797+0,00+0,00
Lulus rubrik jawaban47,00%55,00%71,00%72,00%+25,00 pp+1,00 pp
Jawaban benar47,00%55,00%71,00%72,00%+25,00 pp+1,00 pp
Lulus outcome47,00%55,00%71,00%71,00%+24,00 pp+0,00 pp
Kehadiran sitasi46,59%85,23%85,23%86,36%+39,77 pp+1,14 pp
Kebenaran sitasi42,05%52,27%70,45%72,73%+30,68 pp+2,27 pp
Lulus penolakan83,33%75,00%75,00%66,67%-16,67 pp-8,33 pp
Lulus rute100%100%100%66,67%-33,33 pp-33,33 pp
Answer-bearing recall@589,66%93,10%93,10%94,83%+5,17 pp+1,72 pp
Distractor avoidance70,00%70,00%70,00%70,00%+0,00 pp+0,00 pp
Latensi total p5013,98 dtk12,76 dtk12,76 dtk13,66 dtk-0,32 dtk+0,90 dtk
Latensi total p9560,78 dtk49,64 dtk49,64 dtk61,56 dtk+0,78 dtk+11,92 dtk
Latensi total p9979,57 dtk54,10 dtk54,10 dtk74,37 dtk-5,20 dtk+20,28 dtk
Latensi pencarian p500,405 dtk0,405 dtk0,405 dtk0,377 dtk-0,028 dtk-0,028 dtk
Latensi pencarian p950,620 dtk0,639 dtk0,639 dtk0,589 dtk-0,032 dtk-0,050 dtk
Latensi pencarian p990,804 dtk0,704 dtk0,704 dtk0,721 dtk-0,083 dtk+0,017 dtk
Keputusan klaim faktual95149149173+78+24
Klaim didukung93143143167+74+24
Klaim dinilai tidak didukung0000+0+0
Klaim unavailable2666+4+0
Output dijawab / penolakan43 / 5778 / 2278 / 2279 / 21——
Jawaban lulus faithfulness41707071+30+1
Keputusan penolakan unavailable2335+3+2
Tingkat resmi dukungan klaim / lulus jawaban / hallucinationnullnullnullnull——

Pertanyaan yang berbalik hasil​

Kedua sisi perbandingan ini dinilai dengan figures_only_true, dibaca dari dua rekaman run yang dikomit. Daftarnya berasal dari outcome_pass per kasus di kedua sisi: scripts/compare_golden_seed.py menolak pasangan ini karena mensyaratkan konfigurasi judge beku yang identik, sedangkan hash adapter mencakup sumber adapter yang kini memuat aturan yang ditambahkan build ini (lihat Yang membatasi komparabilitas).

Dibanding run 17 Oktober versi terpublikasi: 10 gagal → lulus dan 10 lulus → gagal. Lulus outcome tidak berubah di 71/100; pergerakannya saling meniadakan, jadi run ini bukan perbaikan atas run terakhir sebelumnya pada metrik itu dan keunggulan jawaban benarnya hanya satu kasus.

Gagal → lulus (10): b2-bps-002, b2-de-r-01, b2-de-sd-02, b2-de-wn-03, b2-jdih-mh-0005, b2-ppid-019, b2-seed-004, b2-seed-018, b2-seed-037, b2-sheet-C-1921-sum. Empat di antaranya jawaban yang dipublikasikan dan pemeriksaan judge yang ditandai kini hilang (b2-jdih-mh-0005, b2-seed-004, b2-seed-037, b2-sheet-C-1921-sum), satu adalah penolakan yang diharapkan dan keputusan penolakannya pulih (b2-de-r-01), dua dahulu fallback unresolved_citation yang kini mempublikasikan jawaban bersitasi (b2-de-sd-02, b2-de-wn-03), dua dahulu penolakan coverage_incomplete yang kini menjawab (b2-ppid-019, b2-seed-018), dan satu adalah b2-bps-002 live, yang kini dijawab tool BPS alih-alih ditolak berlebihan.

Lulus → gagal (10):

Pertanyaan17 Okt18 OktPenyebab utama
b2-de-j25-01LulusGagalKini menolak dengan coverage_incomplete padahal sebelumnya menjawab; judge juga menandai pemeriksaan support.
b2-de-q7-03LulusGagalKelas yang sama: penolakan coverage_incomplete, dengan tanda angka dan support.
b2-de-rd-02LulusGagalKelas yang sama: penolakan coverage_incomplete, tanpa tanda judge.
b2-new-nonmuslimLulusGagalKelas yang sama: penolakan coverage_incomplete, tanpa tanda judge.
b2-seed-043LulusGagalKelas yang sama: penolakan coverage_incomplete, tanpa tanda judge.
b2-seed-048LulusGagalKelas yang sama: penolakan coverage_incomplete, dengan tanda angka.
b2-de-r-04LulusGagalPenolakan yang diharapkan; jawabannya kini menjelaskan bahwa dataset SatuData kosong dan menyitasi tujuh passage, dan keputusan penolakan judge jatuh di bawah ambang 0.8 sehingga gagal secara tertutup.
b2-de-r-05LulusGagalPenolakan yang diharapkan; jawabannya ditulis ulang dan keputusan penolakan judge jatuh di bawah ambang.
b2-de-bm21-01LulusGagalJawabannya ditulis ulang lebih panjang dan kini membawa enam sitasi; judge menandai pemeriksaan angka dan support, sehingga verdictnya ditahan.
b2-seed-015LulusGagalJawabannya masih benar dan bersitasi, tetapi responsnya tidak mencatat panggilan search_documents, sehingga kontrak rute yang diharapkan gagal. Direproduksi atas permintaan: agen menjawab pertanyaan ini dalam satu panggilan tanpa bagian tool, sementara b2-seed-001 dan b2-seed-037 tetap membuka dengan search_documents.

Dibanding baseline 15 Oktober: 32 gagal → lulus dan 8 lulus → gagal. Dua puluh tujuh penambahan adalah kelas format fallback: batas keluaran menolak penyelesaian pada baseline, sehingga kasus jatuh ke penolakan bawaan dan sekarang mempublikasikan jawaban bersitasi. Dua puluh satu dari dua puluh tujuh itu juga membawa pemeriksaan judge yang ditandai pada baseline (b2-de-bm18-04, b2-de-bm21-03, b2-de-hm-04, b2-de-j14-02, b2-de-q7-01, b2-de-q7-02, b2-de-rd-01, b2-de-sk-01, b2-de-wn-04, b2-jdih-a1-ret-0048, b2-jdih-mh-0005, b2-seed-007, b2-seed-025, b2-seed-037, b2-seed-040, b2-seed-041, b2-seed-044, b2-seed-045, b2-seed-047, b2-seed-085, b2-seed-086); enam sisanya tidak (b2-de-lr-01, b2-de-ls-01, b2-de-rl-01, b2-de-sb-01, b2-de-sd-02, b2-seed-018). Lima penambahan sisanya adalah dua jawaban yang dipublikasikan dan satu-satunya tanda pemeriksaannya kini hilang (b2-seed-004, b2-sheet-C-1921-sum), satu over_refusal yang kini menjawab (b2-bps-002), satu fallback unresolved_citation yang kini mempublikasikan jawaban bersitasi (b2-de-wn-03), dan satu penolakan coverage_incomplete yang kini menjawab (b2-seed-011).

Lulus → gagal dibanding baseline (8): b2-de-j25-01, b2-de-q7-03, dan b2-new-nonmuslim adalah tiga kerugian coverage_incomplete (ketiganya menjawab pada baseline); b2-de-r-04 dan b2-seed-052, keduanya penolakan yang diharapkan, kini gagal pada keputusan penolakan di bawah ambang confidence padahal baseline menolak penyelesaiannya langsung; b2-seed-015 adalah kegagalan rute; b2-de-pg-01 kini membawa tanda angka berdampingan dengan tanda support, sedangkan aturan hanya menghapus tanda angka tunggal; dan b2-seed-030 adalah penyelesaian yang tetap ditolak batas keluaran, kini dengan tanda angka dan cakupan. b2-de-r-05, b2-de-rd-02, b2-seed-043, dan b2-seed-048 juga gagal di sini tetapi sudah gagal pada baseline, jadi bukan kasus berbalik terhadap baseline.

Kedua himpunan berbalik ini berbentuk sama: lapisan jawaban bergerak ke dua arah di sekitar penolakan coverage_incomplete dan tanda pemeriksaan judge, tanpa mekanisme dominan tunggal pada rentang build ini. Satu pergerakan yang terlacak ke perubahan bernama adalah b2-seed-015: #952 menulis ulang deskripsi search_documents agar meminta kueri pendek dan terfokus alih-alih satu konjungsi panjang, dan pada pertanyaan ini agen kini menjawab dalam satu panggilan tanpa mencari sama sekali.

Yang membatasi komparabilitas​

  • Noise floor judge. Menilai ulang dua kali jawaban identik dari satu run dengan judge dan temperatur 0 yang sama membalik keputusan 6 dari 94 kasus (diukur 2026-08-13). Satu run tidak dapat menyelesaikan selisih beberapa kasus, jadi daftar berbalik di atas bersifat arah, bukan pasti.
  • Konfigurasi judge beku kedua rekaman berbeda pada satu kolom, dan itu memang disengaja. Model judge (jev-1.13.0), pertanyaannya, equivalences, rubrik, mapping_version, ambang confidence, noul_yes_threshold, dan kebijakan context-nya identik antara run 17 dan 18 Oktober. adapter_sha256 berbeda: hash itu mencakup sumber adapter, dan sumber adapter build ini memuat judge_flags() — perubahan aturannya sendiri. scripts/compare_golden_seed.py mensyaratkan kesamaan rekaman penuh sehingga menolak pasangan ini; daftar berbalik di atas dibaca dari verdict per kasus kedua rekaman. Metrik lain di tabel adalah perbandingan dua rekaman secara langsung.
  • Aturan penilaian berubah pada 17 Oktober 2026, dan perubahan itu memindahkan verdict tanpa mengubah sistem. Skor dengan aturan saat ini memakai figures_only_true; angka bar 0.80 sebelumnya tetap ditampilkan berdampingan di tabel perubahan. Membandingkan angka sebelum tanggal itu dengan angka sesudahnya berarti membandingkan dua penilai, bukan dua build. Run yang dinilai ulang tidak dinilai ulang oleh judge, sehingga keputusan judge — dan karena itu noise floor di atas — identik di kedua sisi.
  • #952 mengubah kontrak tool pencarian, dan perutean agen mengikutinya. Perubahan itu menulis ulang deskripsi search_documents agar meminta kueri pendek dan terfokus. b2-seed-015 memperlihatkan efeknya: pertanyaan yang dijawab dengan benar dan bersitasi, tetapi tanpa panggilan search_documents yang tercatat, sehingga kontrak rute yang diharapkan gagal. Satu kasus, tetapi metrik rute hanya selebar 3 kasus, jadi angka rute yang dipublikasikan bergeser dari 100% ke 66,67%.
  • Pemeriksaan rute membaca rekaman provenance, bukan jawabannya. Jawaban b2-seed-015 benar dan bersitasi; pemeriksaannya gagal karena tool_call_audit pada respons (hanya panggilan pencarian) kosong dan rencananya tidak menyebut tool apa pun. Pembaca sebaiknya memperlakukan lulus rute pada run ini sebagai angka kelengkapan jejak, bukan angka mutu jawaban.
  • Aturan ini belum terbukti pada angka salah yang yakin. Buktinya adalah sampel yang jawaban salahnya terdiri dari 57 penolakan salah dan 3 pernyataan salah yang tegas, jadi "nol jawaban salah yang lulus" tidak menjelaskan apa pun tentang angka salah yang lancar dan disetujui pemeriksaan figures. Lihat Aturan penilaian.
  • Run 16 Oktober bukan pembanding setara. Run itu berjalan di lab privat (arm fixed100, API di 127.0.0.1:18510) atas head cabang PR #934, bukan pada API evaluasi box dan bukan pada commit yang sudah digabung. Angka lulus penolakan dan lulus rute-nya adalah perilaku lab; jalur kode yang digabung berbeda.
  • Tiga run search-only tidak mengubah retrieval dan memakai penyebut retrieval yang sama dengan run dinilai, jadi ketiganya bukti stabilitas, bukan mutu.
  • Baris live dapat bergeser. Tiga baris BPS dan satu baris OpenData membaca portal live; lingkungan evaluasi mendapat token MCP BPS pada 16 Oktober, yang tidak dimiliki baseline 15 Oktober. Karena itu baris BPS paling tidak setara di set ini.
  • Keyakinan context window runner bersifat inert tetapi tercatat. Semua run di sini, termasuk run ini, berjalan dengan default harness 4.096 token sementara API melayani 32.768; nilai API itulah yang menilai jawaban.

Konteks yang tidak setara​

BuktiTanggal dan ukuranHasil yang dilaporkanDapat dibandingkan langsung?
Bank label lengkap632 baris; tidak ada run judge untuk 632 kasusBank adalah inventaris label, bukan hasil. Evaluasi sementara sebelumnya pada 11 Okt mencakup 121 kasus: lulus rubrik 45,45%, kehadiran sitasi 80%, recall@5 70,8%, lulus penolakan 83,3%; 55 lulus, 62 belum pasti, 4 kegagalan nyata.Tidak. Subset, tanggal, konfigurasi, dan kondisi judge berbeda; ini bukan skor seluruh bank.
Sheet Studio klien14 Okt 2026; 20 pertanyaan dengan label manual campuran10 “Right/RIGHT”, 3 “partly Right/Partly Right”, 1 “Wrong”, dan 6 “source right, response failed” atau timeout. Durasi hanya dicatat pada tiga baris (55/90/90 dtk).Tidak. Pertanyaan, cakupan, dan label manual berbeda; sheet ini bukan evaluasi dengan judge atas set 100 pertanyaan ini.

Angka pembanding berasal dari baseline evaluasi 11 Okt dan sheet klien 14 Okt. Angka tersebut adalah konteks, bukan garis tren.

Konteks evaluasi dan biaya​

Evaluasi menggunakan data seed publik, bukan jawaban produksi. Lingkungan runner menyebut qwen3.8-27b dengan context 4.096 token — default runner sendiri, inert melalui HTTP — sedangkan API melaporkan qwen3.8-27b yang melayani 32.768 token. Model penjawab adalah laporan API sendiri, sehingga skor tetap sementara.

Biaya pasti tidak tersedia karena pemakaian token input tidak disimpan. Dengan penghitungan permintaan yang sama seperti baseline — satu panggilan per kasus untuk rubrik jawaban/penolakan, 87 untuk answer-bearing recall, dan satu panggilan per kasus ditambah satu per output yang dijawab pada masing-masing dari dua pemeriksaan faithfulness — ulangan ini mengirim sekitar 545 permintaan judge (100 + 87 + 179 + 179). Dengan retry dinonaktifkan dan batas konservatif 65.536 token input per permintaan, paparan maksimum pada harga input publik $0.042/M adalah 545 × 65,536 × $0.042 / 1,000,000 = $1.50. Ini batas atas, bukan tagihan; nilainya tetap di bawah cap $2. Sumber harga: harga model TypeSafe.

File sumber​

  • Rekaman run: eval/golden-seed/easy-runs/golden-seed-easy-20261017-172913-170652-easy.json, beserta -faithfulness.json dan -judge-config.json; rekaman run sebelumnya ada di sebelahnya.
  • Tabel per pertanyaan, kedua bahasa: scripts/generate_docs_evaluation_table.py, dengan perintah penilaian ulang di eval/golden-seed/easy-runs/README.md.
  • Aturan penilaian: judge_flags() di src/aceh_rag/eval/jev_judge.py; penilaian ulang offline: scripts/rescore_golden_seed.py --from-stored-checks.
  • Kalibrasi judge yang mendasari aturan (200 case-run pada dua run dinilai, dengan label manual dan replay per aturan): laporan kalibrasi judge pada bukti tugas 17 Oktober, data/aceh-judge-calibration/report.md.
  • Seleksi set, jumlah baris, dan caveat: eval/README.md#easy-baseline.
  • Definisi metrik dan aturan null saat unavailable: eval/README.md#metrics.
  • Rumus retrieval: src/aceh_rag/eval/evaluation.py:238-269.
  • Penilaian jawaban dan penolakan: src/aceh_rag/eval/golden_seed.py:2004-2086,6173-6205.
  • Pencocokan expected span: src/aceh_rag/eval/golden_seed.py:1807-1815.
  • Kategori nilai “partial”, “wrong”, dan “unavailable”: src/aceh_rag/eval/eval_verdicts.py:8-36.
  • Rumus faithfulness dan penanganan fail-closed: src/aceh_rag/eval/faithfulness.py:101-140,209-367.
  • Interpolasi persentil latensi: src/aceh_rag/eval/report_breakdowns.py:75-82.