Yapay zeka testleriyle ilgili zihinsel modeliniz

Neler kalır, neler gider: Web testiyle ilgili bilgilerinizi yeni LLM dünyasına eşleme.

Örnek uygulama

Bu serideki örnek uygulamanız ThemeBuilder'dır. ThemeBuilder, LLM tarafından oluşturulan bir slogan ve renk paleti içeren bir JSON nesnesi oluşturur.

  • Slogan ve palet, giriş marka adı, açıklama, kitle ve üslup ile eşleşmelidir.
  • Motto kötü niyetli olmamalı ve kısa (6 kelimeden az) olmalıdır.
  • Renk paleti kontrastı, WCAG'nin minimum yönergelerinde tanımlandığı gibi erişilebilir olmalı ve 4, 5:1 kontrast oranına sahip olmalıdır.
ThemeBuilder girişleri ve çıkışları.
ThemeBuilder'da kullanıcılar şirket adı ve açıklaması, hedef kitle, ton ve ruh hali girer. Ön uç, bunu sunucunuza gönderir. Sunucunuz, markayla uyumlu bir slogan ve renk paleti oluşturmak için LLM kullanıyor.

Nesnel ve öznel değerlendirmeler

ThemeBuilder'ın beklendiği gibi çalıştığını nasıl test edersiniz?

Kural tabanlı değerlendirmeler (bazen tam değerlendirmeler olarak da adlandırılır), doğru veya yanlış şeklinde ikili bir cevabı olan objektif testlerdir. Bunlar, veri biçimi, kontrast oranı veya kesin bir cevabı olan diğer sorular için en iyisidir. Bu testleri normal, programatik kodla uygulayabilirsiniz.

Bazı kontroller, doğru veya yanlış şeklinde ikili bir yanıtla nesnel olarak yapılır. Bu tür sorular, veri biçimi, kontrast oranı gibi kesin yanıtı olan sorular için en uygun olanlardır. Bu testleri normal, programatik kodla uygulayabilirsiniz. Bunlara kural tabanlı değerlendirmeler veya tam değerlendirmeler denir.

Örneğin:

// 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"
}

Diğer kontroller ise özneldir. Örneğin, slogan ve renk paletinin marka ve kitleyle uyumu. Zararlı içerik algılama bir sınıflandırma görevi olsa da yargı içerdiğinden özneldir.

Öznel testler de sınıflandırma içerse de doğru ve yanlış olanın aralığı büyük ölçüde değişebilir. Örneğin, marka ve kitle uyumunu slogan ve renk paleti açısından değerlendirme. Zararlı içerik algılama da özneldir.

Öznel nitelikleri değerlendirmek yalnızca bir uzman tarafından yapılabilecek bir iş gibi görünse de LLM-as-a-judge tekniğiyle bu testleri büyük ölçekte otomatikleştirebilirsiniz.

[LLM hakemleri] hızlı, kullanımı kolay ve nispeten ucuzdur [...] Üretimdeki yapay zeka modellerini değerlendirmek için en yaygın yöntemlerden biri, hatta en yaygın yöntem haline gelmiştir.

—AI Engineering, Chip Huyen

Örneğin:

// 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, insan yargısını taklit eder. Bu nedenle, hakime tam olarak ne aradığınızı söylemeniz gerekir. Bunun için hakime bir değerlendirme ölçeği sunabilirsiniz.

Puan anahtarı, bir hakemin (insan veya yapay zeka) bir çıktıyı değerlendirmek için kullandığı yapılandırılmış bir ölçüt veya puanlandırma yönergeleri kümesidir. Her değerlendirmede öznel nitelikleri değerlendirmek için tutarlı bir çerçeve sağlar.

Diğer değerlendirme türleri

Referansa dayalı veya ikili değerlendirmeler kullanmak isteyebilirsiniz.

Referansa dayalı

Bunlar, kesin referans yanıtına benzerliği ölçer. Çeviri veya bilinen iyi bir yanıtın olduğu teknik bilgiler gibi görevlerde bunları kullanın.

Çiftler halinde

Bir hakem, bir sürüm diğerinden daha iyi olsa bile iki farklı sürüme PASS puanı verebilir. Çiftli değerlendirme, jüriye aynı giriş için iki çıkış (A ve B) verip kazananı seçmesini isteyerek bu sorunu çözer.

Örneğin, samimi bir kafe için slogan değerlendirdiğinizi düşünün:

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.

Modelinizin hangi sürümünü dağıtacağınızı seçmek veya iki farklı istemi karşılaştırmak için ikili değerlendirmeyi kullanın.

Standart web testi ile yapay zeka değerlendirmeleri arasındaki farklar

Web testi, regresyon testini içerir. Yapay zeka ile optimizasyon ve model değerlendirmesi eklemeniz gerekir.

Bu kursun okuyucusu olarak, web sitelerini ve web uygulamalarını nasıl test edeceğinizi bildiğinizi varsayıyoruz. Yapay zeka eklerken mevcut zihinsel modelinizi değiştirmeniz gerekir. Aşağıdaki işlemleri yapmak için yapay zeka değerlendirmesini kullanın:

  • Regresyon testi yapın: İsteminizde veya modelinizde değişiklik yaptığınızda uygulama bozuldu mu? Bozuk renk paletleri veya zararlı sloganlar mı alıyorsunuz? Bir web uygulamasında mola, yazılım işlevselliğiyle ilgiliyken burada LLM çıkışının yüksek kaliteli ve güvenli olup olmadığını kontrol ediyorsunuz. Bu, öznelliği içerir.
  • Başvurunuzu optimize edin: Başvurunuz daha iyi hale geliyor mu? İstediğiniz metrikleri iyileştiriyor musunuz? Örneğin, toksisiteyi artırmadan markaya uygun daha fazla slogan elde ediyor musunuz?
  • Doğru modeli seçin: Kullanım alanınız için daha iyi bir model var mı? Yapay zeka öncesinde web yığınınızı bir kez seçerdiniz. Yapay zeka ile düzenli olarak karşılaştırma yapmalı, daha iyi (ve muhtemelen daha ucuz) bir modele geçme fırsatlarını belirlemelisiniz.

Testlerinizi katmanlandırma

Dört test katmanı vardır: birim testleri, genişletilmiş birim testleri, regresyon ve entegrasyon testleri ve insan testi.

Sağlıklı bir kod tabanında birden fazla test katmanı olmalıdır: birim testleri, regresyon ve entegrasyon testleri ve uçtan uca testler. Değerlendirmeleriniz de katmanlı olmalıdır.

  • Yapay zeka uygulamanızın testlerini tamamen otomatikleştirmek için kural tabanlı değerlendirmeleri LLM-as-a-judge değerlendirmeleriyle birlikte kullanın. Bu sayede, günlük geliştirme ve CI/CD'deki sorunları yakalayabilir ve yayın adaylarınızın kalite standardınızı karşılayıp karşılamadığını test edebilirsiniz.
  • Geniş ölçekte kaliteyi doğrulamak için entegrasyon ve regresyon testleri yapın.
  • Kabul testi olarak manuel insan değerlendirmeleri yapın.

Derleme süresinde çalıştırdığınız bu değerlendirmelerin yanı sıra, çalışma zamanı değerlendirmeleriyle üretim trafiğini izleyin. Bu bilgiler, gerçek dünyadaki girişlerde kalite veya güvenlik sorunlarını tespit etmenize yardımcı olabilir.

Değerlendirmelerinizi geliştirmeye devam edin

Değerlendirmeler, uygulamanızla birlikte gelişmelidir. Modelleriniz daha akıllı hale geldikçe eski değerlendirmelerinizi güncelleyin.

Test veri kümelerinize düzenli olarak zorlu örnekler (ör. yeni uç durumlar veya üretimde bulduğunuz şaşırtıcı kullanıcı girişleri) ekleyin.

Değerlendirmeleriniz neyi ölçüyor?

Değerlendirme tasarlamadan önce bir çıktının nasıl değerlendirileceğini anlamanız gerekir. Bilmeniz gereken birkaç terim vardır.

Ölçütler, test edilmesi gereken kurallar ve boyutlardır. Örneğin, marka uyumu, zararlılık ve erişilebilirlik.

Her değerlendirme ölçütü bir metrikle ölçülür. Metrik, model çıkışını ölçüte göre ölçen tek ve somut bir puandır. Bu puan, çıkışın değerlendiricinin beklentisine ne kadar yakın veya uzak olduğunu ölçen bir aralıktaki ikili bir değer ya da değer olabilir.

Aynı ölçütü farklı metrik türleriyle ölçmek mümkündür. Örneğin, marka uyumu için:

  • "Bu slogan markaya uygun mu?" Metrik PASS veya FAIL.
  • "1-5 ölçeğinde, slogan markayla ne kadar uyumlu?" Metrik, bir ile beş arasında bir tam sayıdır.

Değerlendirici, ölçütü puanlayan kod veya modeldir. Değerlendirmeyi yapanlar metrikleri belirler.