Apa yang tetap ada, apa yang hilang: memetakan pengetahuan pengujian web Anda ke dunia baru LLM.
Contoh aplikasi
ThemeBuilder adalah aplikasi contoh Anda di seluruh seri ini. ThemeBuilder menghasilkan objek JSON yang berisi motto yang dibuat LLM dan palet warna.
- Motto dan palet harus cocok dengan nama merek, deskripsi, audiens, dan gaya bahasa input.
- Motto tidak boleh merugikan dan harus singkat (kurang dari 6 kata).
- Kontras palet warna harus dapat diakses, sebagaimana ditentukan oleh pedoman minimal WCAG, dengan rasio kontras 4,5:1.
Evaluasi objektif dan subjektif
Bagaimana cara menguji agar ThemeBuilder berfungsi sebagaimana mestinya?
Evaluasi berbasis aturan (terkadang disebut evaluasi persis) adalah pengujian objektif dengan jawaban biner benar atau salah. Pertanyaan ini paling cocok untuk pertanyaan tentang format data, rasio kontras, atau lainnya dengan jawaban yang pasti. Anda dapat menerapkan pengujian ini dengan kode terprogram biasa.
Beberapa pemeriksaan bersifat objektif, dengan jawaban biner benar atau salah. Jenis pertanyaan ini paling cocok untuk pertanyaan tentang format data, rasio kontras, atau pertanyaan lain dengan jawaban yang pasti. Anda dapat menerapkan pengujian ini dengan kode reguler dan terprogram. Evaluasi ini disebut rule-based-evals atau exact evals.
Contoh:
// Example rule-based eval: data format
function evaluateFormat(appOutput) {
// Check if JSON is valid, colors are hex, no empty strings, motto is 6 words or fewer
// Use deterministic tools like zod for schema validation
return "PASS"; // or "FAIL"
}
Pemeriksaan lainnya bersifat subjektif, seperti keselarasan merek dan audiens untuk motto dan palet warna. Meskipun deteksi toksisitas adalah tugas klasifikasi, tugas ini juga subjektif karena melibatkan penilaian.
Meskipun pengujian subjektif juga melibatkan klasifikasi, rentang hal yang benar dan salah dapat sangat bervariasi. Misalnya, mengevaluasi keselarasan merek dan audiens untuk motto dan palet warna. Deteksi toksisitas juga bersifat subjektif.
Meskipun mengevaluasi kualitas subjektif mungkin terdengar seperti sesuatu yang hanya dapat dilakukan oleh pakar manusia, Anda dapat mengotomatiskan pengujian ini dalam skala besar dengan teknik LLM-as-a-judge.
[Penilaian LLM] cepat, mudah digunakan, dan relatif murah [...] Penilaian ini telah menjadi salah satu metode paling umum, jika bukan yang paling umum, untuk mengevaluasi model AI dalam produksi.
—AI Engineering, Chip Huyen
Contoh:
// Example LLM-as-a-judge eval for a subjective quality like brand fit
async function evalBrandFit(userInput, appOutput) {
const brandPrompt = `You are an expert brand strategist. Evaluate the
following generated motto for the company whose target audience is
${userInput.audience}, and who describes itself as
${userInput.companyDescription}: ${appOutput.motto}`
// Call the LLM judge
const evalResult = evalWithLLM(brandPrompt);
// Return the consolidated results
return {
mottoBrandFit: evalResult,
};
}
// Helper that communicates with the LLM API
async function evalWithLLM(prompt) {
// ... Call LLM with the prompt ...
// ... Parse the resulting judgement ("PASS" or "FAIL") + rationale
return {
status: "PASS",
rationale: "This motto perfectly captures the brand and tone, because..."
};
}
Model meniru penilaian manusia, jadi Anda memerlukan cara untuk memberi tahu hakim secara persis apa yang Anda cari. Anda dapat melakukannya dengan menawarkan rubrik kepada hakim.
Rubrik adalah sekumpulan kriteria atau panduan penilaian terstruktur yang digunakan hakim (manusia atau AI) untuk mengevaluasi output. Hal ini memberikan framework yang konsisten untuk menilai kualitas subjektif di setiap evaluasi.
Jenis evaluasi lainnya
Anda dapat menggunakan evaluasi berbasis referensi atau berpasangan.
Berbasis referensi
Metrik ini mengukur kemiripan dengan jawaban kebenaran dasar. Gunakan ini untuk tugas seperti terjemahan atau fakta teknis yang memiliki respons baik yang diketahui.
Berpasangan
Penilai dapat memberikan skor PASS untuk dua versi yang berbeda, meskipun salah satunya lebih baik daripada yang lain. Evaluasi berpasangan menyelesaikan masalah ini dengan memberikan dua
output (A dan B) untuk input yang sama kepada juri dan menginstruksikan juri untuk memilih pemenang.
Misalnya, bayangkan Anda sedang mengevaluasi motto untuk sebuah kafe yang ramah:
Input: "Friendly cafe"
Pointwise evaluation:
Output A: "Come get coffee." // PASS
Output B: "Your morning smile in a cup." // PASS
2 PASS. Unconclusive!
Pairwise evaluation:
Output B wins. It captures the "friendly" tone more effectively than the generic Output A.
Gunakan evaluasi berpasangan untuk memilih versi model yang akan Anda deploy, atau untuk membandingkan dua perintah yang berbeda.
Pengujian web standar versus evaluasi AI
Kami mengasumsikan bahwa Anda, pembaca kursus ini, sudah mengetahui cara menguji situs dan aplikasi web. Saat menambahkan AI, Anda perlu mengubah model mental yang ada. Gunakan evaluasi AI untuk melakukan tindakan berikut:
- Lakukan pengujian regresi: Saat Anda mengubah perintah atau model, apakah aplikasi rusak? Apakah Anda mendapatkan palet warna yang rusak atau motto yang tidak pantas? Tidak seperti aplikasi web yang memiliki fungsi software untuk menghentikan proses, di sini Anda memeriksa apakah output LLM berkualitas tinggi dan aman. Hal ini melibatkan subjektivitas.
- Optimalkan aplikasi Anda: Apakah aplikasi Anda semakin baik? Apakah Anda meningkatkan metrik yang diinginkan, misalnya, apakah Anda mendapatkan lebih banyak motto sesuai merek tanpa meningkatkan toksisitas?
- Pilih model yang tepat: Apakah ada model yang lebih baik untuk kasus penggunaan Anda? Sebelum AI, Anda memilih stack web Anda sekali. Dengan AI, Anda harus secara rutin melakukan tolok ukur model untuk mengidentifikasi peluang beralih ke model yang lebih baik (dan berpotensi lebih murah).
Menggabungkan pengujian Anda
Basis kode yang baik harus memiliki beberapa lapisan pengujian: pengujian unit, pengujian regresi dan integrasi, serta pengujian end-to-end. Evaluasi Anda juga harus berlapis.
- Gunakan evaluasi berbasis aturan yang dikombinasikan dengan evaluasi LLM-sebagai-hakim untuk mengotomatiskan sepenuhnya pengujian aplikasi AI Anda. Dengan begitu, Anda dapat menemukan masalah dalam pengembangan dan CI/CD harian, serta menguji apakah kandidat rilis memenuhi standar kualitas Anda.
- Jalankan pengujian integrasi dan regresi untuk memverifikasi kualitas dalam skala besar.
- Menjalankan evaluasi manusia manual sebagai pengujian penerimaan.
Selain evaluasi yang Anda jalankan pada waktu build, pantau traffic produksi dengan evaluasi waktu proses. Hal ini dapat membantu Anda menemukan masalah kualitas atau keamanan pada input dunia nyata.
Terus mengembangkan evaluasi Anda
Evaluasi harus berkembang bersama aplikasi Anda. Seiring model Anda menjadi lebih cerdas, perbarui evaluasi lama Anda.
Tambahkan contoh sulit secara rutin ke set data pengujian Anda, seperti kasus ekstrem baru atau input pengguna yang mengejutkan yang Anda temukan dalam produksi.
Apa yang diukur oleh evaluasi Anda?
Sebelum mendesain evaluasi, Anda harus memahami cara mengevaluasi output. Ada beberapa istilah yang perlu Anda ketahui.
Kriteria adalah aturan, dimensi yang perlu diuji. Misalnya, keselarasan merek, toksisitas, dan aksesibilitas.
Setiap kriteria evaluasi diukur dengan metrik. Metrik adalah skor tunggal dan konkret yang mengukur output model terhadap kriteria. Skor ini dapat berupa biner atau nilai dalam rentang yang mengukur seberapa jauh atau dekat output dengan ekspektasi evaluator.
Kriteria yang sama dapat diukur dengan berbagai jenis metrik. Misalnya, untuk keselarasan merek:
- "Apakah motto ini sesuai merek?" Metriknya adalah
PASSatauFAIL. - "Dalam skala 1-5, seberapa baik keselarasan motto dengan merek?" Metriknya adalah bilangan bulat antara satu dan lima.
Evaluator adalah kode atau model yang memberikan skor pada kriteria. Evaluator menentukan metrik.