Membangun pipeline evaluasi

Tips teknik terapan untuk membangun pipeline pengujian AI Anda.

Anda telah mendesain rubrik, menulis evaluasi berbasis aturan, dan menyelaraskan model hakim. Sekarang, saatnya menggabungkan semuanya ke dalam pipeline pengujian berkelanjutan otomatis.

Setiap project berbeda. Modul ini menguraikan satu pendekatan berlapis yang efektif untuk membangun pipeline evaluasi Anda.

Untuk membangun pipeline evaluasi, Anda memerlukan hal berikut:

  • Pengatur untuk evaluator Anda
  • Strategi untuk menangani beberapa panggilan API dan mengatasi potensi kegagalan
  • Format output standar
  • Antarmuka pelaporan

Mengatur panggilan API

Pengelola harus memiliki evaluasi berbasis aturan dan berbasis LLM.

Buat fungsi utama untuk mengatur evaluator hakim LLM dan berbasis aturan. Tinjau evalAll() dalam kode contoh.

Pusatkan konfigurasi hakim LLM (petunjuk sistem, logika output terstruktur, dan percobaan ulang) ke dalam satu fungsi utilitas yang dapat Anda gunakan kembali di seluruh evaluator. Tinjau evalWithLLM() dalam kode contoh.

Menangani kelebihan beban dan kegagalan API model

API model terkadang kelebihan beban atau waktu tunggu habis. Jika panggilan API gagal, picu percobaan ulang otomatis. Setelah percobaan ulang habis, laporkan ERROR. Melaporkan FAIL evaluasi akan memiringkan hasil Anda.

const MAX_JUDGE_LLM_API_RETRIES = 3;

async function evalWithLLM(prompt: string): Promise<EvalResult> {
  const maxRetries = MAX_JUDGE_LLM_API_RETRIES;
  let delay = 1000; // Start with 1 second

  for (let attempt = 1; attempt <= maxRetries; attempt++) {
    try {
        // ... Make Gemini API call ...
        return {
            label: result.label,  // PASS or FAIL from judge text
            rationale: result.rationale
        };
    } catch (error: any) {
      if (attempt === maxRetries) {
        // Retries exhausted
        return {
          // Report infrastructure error, NOT an evaluation fail
          label: EvalLabel.ERROR,
          rationale: `Gemini API Judge Error (Retries Exhausted): ${error.message}`
        };
      }
      // Wait to give the service time to recover
      await new Promise(resolve => setTimeout(resolve, delay));
      delay *= 2; // Exponential backoff delay doubling
    }
  }
}

Saat menjalankan evaluasi, pilih salah satu opsi berikut:

  • Buat panggilan API Anda secara paralel sehingga waktu tunggu pada satu evaluasi tidak menyebabkan evaluasi lainnya gagal. Bergantung pada kasus penggunaan dan model hakim, hal ini dapat mengurangi halusinasi karena hakim berfokus pada satu tugas.
  • Buat satu panggilan batch. Hal ini akan membuat satu titik kegagalan, misalnya jika model melebihi batas tokennya.

Bersiap untuk beberapa iterasi

Karena LLM bersifat non-deterministik, output aplikasi Anda akan bervariasi.

Untuk mengujinya secara akurat dan membangun keyakinan bahwa output memenuhi standar kualitas Anda:

  1. Buat beberapa output (biasanya 5 hingga 10) untuk setiap input kasus pengujian.
  2. Evaluasi setiap output secara terpisah.
  3. Periksa hasil keseluruhan di seluruh iterasi.

Temukan keseimbangan pragmatis: lebih banyak iterasi meningkatkan kepastian regresi, tetapi lebih sedikit iterasi membuat eksekusi cukup cepat agar sesuai dengan pipeline pengujian berkelanjutan Anda.

Menentukan output pipeline evaluasi

Sertakan hal berikut dalam hasil evaluasi Anda:

  • Tingkat stabilitas, misalnya Lulus 8/10 kali → 80% stabil. Tetapkan nilai minimum untuk mengukur kapan fitur siap produksi.
  • Konfigurasi aplikasi Anda. Hal ini mencakup petunjuk sistem, perintah pengguna, dan parameter LLM seperti suhu atau tingkat pemikiran. Anda memerlukan informasi ini untuk memecahkan masalah regresi skor evaluasi. Perintah dapat berupa string panjang dengan sedikit variasi, jadi tambahkan nomor versi ke perintah Anda dan simpan hash-nya untuk melacaknya.
  • Konfigurasi hakim, atau nomor versi. Anda memerlukan hal ini jika skor Anda sangat bervariasi setelah update hakim.

Berikut adalah contoh objek JSON EvalResponse untuk evaluasi ThemeBuilder:

    {
      "id": "sample-001-messy",
      "judgeMetadata": {
        "modelVersion": "gemini-3-flash-preview",
        "judgeVersion": "1.0.0"
      },
      "appMetadata": {
        "model": "gemini-3-flash-preview",
        "systemInstruction": "...",
        "promptTemplate": "..."
      },
      "userInput": {
        // ... companyName, description, audience and tone
      },
      "appOutputs": {
        "output-001": {
          "motto": "Aesthetic loaves, minimal vibes.",
          "colorPalette": {
            "textColor": "#2D241E",
            "backgroundColor": "#FAF9F6",
            "primary": "#C6A68E",
            "secondary": "#E3D5CA"
          }
        }
        // ... More outputs
      },
      "expectedOutcome": "SUCCESS",
      "appGateResult": {
        "stabilityRate": 1,
        "evalResults": {
          "output-001": {
            "label": "PASS",
            "rationale": "NONE"
          }
          // "output-002": ...
          // ... More results
        }
      },
      "colorBrandFit": {
        "stabilityRate": 1,
        "evalResults": {
          "output-001": {
            "label": "PASS",
            "rationale": "The palette perfectly aligns with the brand's..."
          }
          // "output-002": ...
          // ... More results
        }
      }
      // ...
      // Per-output eval results for data format contrast, motto brand fit,
      // and motto toxicity.
    }

Mengimplementasikan antarmuka pelaporan

Output hasil Anda ke laporan HTML atau UI web yang bersih untuk mengurai, membagikan, membandingkan, dan men-debug hasil dari waktu ke waktu.

Laporan yang menampilkan metadata dan alasan evaluasi.
Selain nilai lulus pengujian dan nilai minimum stabilitas evaluasi, tampilkan metadata yang ditentukan dalam Menentukan pipeline evaluasi, dan alasan untuk memecahkan masalah kasus yang gagal.
Contoh evaluasi yang gagal memenuhi standar kontras warna dan kesesuaian merek.
Berikut adalah contoh sampel yang gagal, yang tidak memenuhi standar kontras warna atau kesesuaian merek.

Sekarang, jalankan evaluasi Anda.