โมเดลความคิดสำหรับการทดสอบ AI

สิ่งที่จะยังคงอยู่และสิ่งที่จะหายไป: การแมปความรู้เกี่ยวกับการทดสอบบนเว็บกับโลกใหม่ของ LLM

แอปพลิเคชันตัวอย่าง

ThemeBuilder เป็นแอปพลิเคชันตัวอย่างตลอดทั้งชุดนี้ ThemeBuilder จะแสดงออบเจ็กต์ JSON ที่มีคำขวัญและชุดสีที่ LLM สร้างขึ้น

  • คำขวัญและชุดสีต้องตรงกับชื่อแบรนด์ คำอธิบาย กลุ่มเป้าหมาย และโทนเสียงที่ป้อน
  • คำขวัญต้องไม่เป็นพิษ และต้องสั้น (ไม่เกิน 6 คำ)
  • คอนทราสต์ของชุดสีต้องเข้าถึงได้ตามที่กำหนดไว้ในหลักเกณฑ์ขั้นต่ำของ WCAG โดยมีอัตราส่วนคอนทราสต์ 4.5:1
อินพุตและเอาต์พุตของ ThemeBuilder
ใน ThemeBuilder ผู้ใช้จะป้อนชื่อและคำอธิบายบริษัท กลุ่มเป้าหมาย รวมถึงโทนและอารมณ์ ส่วนหน้าจะส่งข้อมูลนี้ไปยังเซิร์ฟเวอร์ของคุณ เซิร์ฟเวอร์ของคุณใช้ LLM เพื่อสร้างคำขวัญและชุดสี ที่สอดคล้องกับแบรนด์

การประเมินเชิงวัตถุประสงค์และเชิงอัตวิสัย

คุณจะทดสอบว่า ThemeBuilder ทำงานได้ตามที่ต้องการได้อย่างไร

การประเมินตามกฎ (บางครั้งเรียกว่าการประเมินที่แน่นอน) คือการทดสอบเชิงวัตถุประสงค์ที่มี คำตอบแบบไบนารีว่าถูกต้องหรือไม่ถูกต้อง เหมาะที่สุดสำหรับคำถามเกี่ยวกับรูปแบบข้อมูล อัตราส่วนคอนทราสต์ หรือคำถามอื่นๆ ที่มีคำตอบที่ชัดเจน คุณสามารถใช้การทดสอบเหล่านี้กับโค้ดแบบเป็นโปรแกรมปกติได้

การตรวจสอบบางอย่างเป็นแบบปรนัย โดยมีคำตอบแบบไบนารีว่าถูกต้องหรือไม่ถูกต้อง คำถามเกี่ยวกับรูปแบบข้อมูล อัตราส่วนคอนทราสต์ หรือคำถามอื่นๆ ที่มีคำตอบที่ชัดเจนจะเหมาะกับคำถามเหล่านี้มากที่สุด คุณสามารถใช้การทดสอบเหล่านี้กับโค้ดปกติแบบเป็นโปรแกรม ได้ ซึ่งเรียกว่า rule-based-evals หรือ exact evals

เช่น

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

การตรวจสอบอื่นๆ เป็นแบบอัตนัย เช่น การจัดแนวแบรนด์และกลุ่มเป้าหมายสำหรับ คำขวัญและชุดสี แม้ว่าการตรวจหาความเป็นพิษจะเป็นงานจัดประเภท แต่ก็เป็นเรื่องที่ขึ้นอยู่กับความคิดเห็นส่วนบุคคลด้วยเนื่องจากต้องมีการตัดสิน

แม้ว่าการทดสอบเชิงอัตวิสัยจะเกี่ยวข้องกับการจัดประเภทด้วย แต่ช่วงของสิ่งที่ถูกต้อง และไม่ถูกต้องอาจแตกต่างกันอย่างมาก เช่น การประเมินการปรับแบรนด์และกลุ่มเป้าหมาย ให้สอดคล้องกับคำขวัญและชุดสี การตรวจหาความเชื่อผิดๆ ก็เป็นเรื่องอัตวิสัยเช่นกัน

แม้ว่าการประเมินคุณภาพเชิงอัตวิสัยอาจฟังดูเหมือนเป็นสิ่งที่ทำได้เฉพาะผู้เชี่ยวชาญที่เป็นมนุษย์ แต่คุณก็สามารถทำให้การทดสอบเหล่านี้เป็นแบบอัตโนมัติในวงกว้างได้ด้วยเทคนิค LLM-as-a-judge

[ผู้พิพากษา LLM] ใช้งานง่าย รวดเร็ว และมีราคาค่อนข้างถูก [...] วิธีนี้ได้กลายเป็นหนึ่งในวิธีที่พบได้บ่อยที่สุด (หากไม่ใช่วิธีที่พบได้บ่อยที่สุด) ในการประเมินโมเดล AI ในการผลิต

—AI Engineering, Chip Huyen

เช่น

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

โมเดลจะเลียนแบบการตัดสินของมนุษย์ ดังนั้นคุณจึงต้องมีวิธีบอกผู้ตรวจสอบอย่างชัดเจนว่า คุณกำลังมองหาอะไร ซึ่งทำได้โดยเสนอเกณฑ์การให้คะแนนต่อผู้พิพากษา

เกณฑ์การให้คะแนนคือชุดเกณฑ์หรือหลักเกณฑ์การให้คะแนนที่มีโครงสร้างซึ่งผู้ตัดสิน (มนุษย์หรือ AI) ใช้เพื่อประเมินผลลัพธ์ โดยมีกรอบการทำงานที่สอดคล้องกัน เพื่อประเมินคุณภาพเชิงอัตวิสัยในการประเมินทุกครั้ง

การประเมินประเภทอื่นๆ

คุณอาจต้องการใช้การประเมินที่อิงตามการอ้างอิงหรือการประเมินแบบเป็นคู่

อิงตามการอ้างอิง

ซึ่งจะวัดความคล้ายคลึงกับคำตอบสำหรับข้อมูลจากการสังเกตการณ์โดยตรง ใช้สำหรับงานต่างๆ เช่น การแปลหรือข้อเท็จจริงทางเทคนิคที่มีคำตอบดี

Pairwise

ผู้พิพากษาอาจให้คะแนน PASS แก่เวอร์ชันที่แตกต่างกัน 2 เวอร์ชัน แม้ว่าเวอร์ชันหนึ่งจะดีกว่าอีกเวอร์ชันหนึ่งก็ตาม การประเมินแบบเป็นคู่จะแก้ปัญหานี้ด้วยการให้เอาต์พุต 2 รายการ (A และ B) แก่ผู้ประเมินสำหรับอินพุตเดียวกัน และสั่งให้ผู้ประเมินเลือกผู้ชนะ

ตัวอย่างเช่น สมมติว่าคุณกำลังประเมินคำขวัญสำหรับคาเฟ่ที่เป็นมิตร

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.

ใช้การประเมินแบบเป็นคู่เพื่อเลือกเวอร์ชันของโมเดลที่จะ นําไปใช้ หรือเพื่อเปรียบเทียบพรอมต์ 2 แบบที่แตกต่างกัน

การทดสอบเว็บมาตรฐานเทียบกับการประเมิน AI

การทดสอบเว็บรวมถึงการทดสอบการถดถอย เมื่อใช้ AI คุณต้องเพิ่มการเพิ่มประสิทธิภาพและการประเมินโมเดล

เราถือว่าคุณซึ่งเป็นผู้อ่านหลักสูตรนี้รู้วิธีทดสอบเว็บไซต์และเว็บแอปพลิเคชันอยู่แล้ว เมื่อเพิ่ม AI คุณต้องเปลี่ยน โมเดลความคิดที่มีอยู่ ใช้การประเมิน AI เพื่อดำเนินการต่อไปนี้

  • ทำการทดสอบการเกิดปัญหาซ้ำ: เมื่อคุณเปลี่ยนพรอมต์หรือโมเดล แอปพลิเคชันใช้งานไม่ได้ใช่ไหม คุณได้รับชุดสีที่ใช้ไม่ได้หรือคำขวัญที่เป็นพิษใช่ไหม ซึ่งต่างจากเว็บแอปที่การหยุดทำงานเป็นฟังก์ชันการทำงานของซอฟต์แวร์ ในที่นี้คุณกำลังตรวจสอบว่าเอาต์พุตของ LLM มีคุณภาพสูงและปลอดภัยหรือไม่ ซึ่งเกี่ยวข้องกับอัตวิสัย
  • เพิ่มประสิทธิภาพแอปพลิเคชัน: แอปพลิเคชันของคุณดีขึ้นไหม คุณกำลังปรับปรุงเมตริกที่ต้องการอยู่หรือไม่ เช่น คุณได้รับคำขวัญที่สอดคล้องกับแบรนด์มากขึ้นโดยไม่เพิ่มความเป็นพิษใช่ไหม
  • เลือกโมเดลที่เหมาะสม: มีโมเดลที่ดีกว่าสำหรับกรณีการใช้งานของคุณไหม ก่อน AI คุณเลือกสแต็กเว็บเพียงครั้งเดียว คุณควรเปรียบเทียบโมเดลกับเกณฑ์มาตรฐานเป็นประจำด้วย AI เพื่อระบุโอกาสในการเปลี่ยนไปใช้โมเดลที่ดีกว่า (และอาจถูกกว่า)

วางเลเยอร์การทดสอบ

การทดสอบมี 4 เลเยอร์ ได้แก่ การทดสอบหน่วย การทดสอบหน่วยแบบขยาย การทดสอบการถดถอยและการทดสอบการผสานรวม และการทดสอบโดยมนุษย์

โค้ดเบสที่สมบูรณ์ควรมีการทดสอบหลายเลเยอร์ ได้แก่ การทดสอบหน่วย การทดสอบการถดถอยและการทดสอบการผสานรวม และการทดสอบแบบครบวงจร นอกจากนี้ คุณควรจัดเลเยอร์การประเมินด้วย

  • ใช้การประเมินตามกฎร่วมกับการประเมิน LLM ในฐานะผู้พิพากษาเพื่อทดสอบแอปพลิเคชัน AI โดยอัตโนมัติอย่างเต็มรูปแบบ วิธีนี้จะช่วยให้คุณพบปัญหาในการพัฒนาและ CI/CD ในแต่ละวัน รวมถึงทดสอบว่ารุ่นที่พร้อมเผยแพร่เป็นไปตามเกณฑ์คุณภาพของคุณหรือไม่
  • เรียกใช้การทดสอบการผสานรวมและการทดสอบถดถอยเพื่อยืนยันคุณภาพในวงกว้าง
  • ทำการประเมินด้วยตนเองโดยมนุษย์เป็นการทดสอบการยอมรับ

นอกจากการประเมินเหล่านี้ที่คุณเรียกใช้ในเวลาบิลด์แล้ว ให้ตรวจสอบการเข้าชมจริงด้วยการประเมินรันไทม์ ซึ่งจะช่วยให้คุณพบปัญหาด้านคุณภาพหรือความปลอดภัยใน อินพุตในโลกแห่งความเป็นจริง

พัฒนาการประเมินอย่างต่อเนื่อง

Evals ควรเติบโตไปพร้อมกับแอปพลิเคชันของคุณ เมื่อโมเดลของคุณฉลาดขึ้น ให้อัปเดตการประเมินเก่า

เพิ่มตัวอย่างที่ซับซ้อนลงในชุดข้อมูลทดสอบเป็นประจำ เช่น กรณีขอบใหม่หรือ อินพุตของผู้ใช้ที่น่าประหลาดใจซึ่งคุณพบในเวอร์ชันที่ใช้งานจริง

การประเมินของคุณวัดอะไร

ก่อนออกแบบการประเมิน คุณควรทำความเข้าใจวิธีประเมินเอาต์พุต มีคำศัพท์บางคำที่คุณควรรู้

เกณฑ์คือกฎ ซึ่งเป็นมิติข้อมูลที่ต้องทดสอบ เช่น ความสอดคล้องของแบรนด์ ความเป็นพิษ และการเข้าถึง

เกณฑ์การประเมินแต่ละรายการจะวัดด้วยเมตริก เมตริกคือคะแนนเดียวที่เฉพาะเจาะจงซึ่งวัดเอาต์พุตโมเดลเทียบกับเกณฑ์ คะแนนนี้ อาจเป็นค่าไบนารีหรือค่าภายในช่วงที่วัดว่าเอาต์พุต อยู่ห่างหรือใกล้กับความคาดหวังของผู้ประเมินมากน้อยเพียงใด

คุณสามารถวัดเกณฑ์เดียวกันด้วยเมตริกประเภทต่างๆ ได้ เช่น สำหรับการปรับแบรนด์ให้สอดคล้องกัน

  • "คำขวัญนี้สอดคล้องกับแบรนด์ไหม" เมตริกคือ PASS หรือ FAIL
  • "ในระดับ 1-5 สโลแกนสอดคล้องกับแบรนด์มากน้อยเพียงใด" เมตริกเป็นจำนวนเต็มระหว่าง 1 ถึง 5

เครื่องมือประเมินคือโค้ดหรือโมเดลที่ให้คะแนนเกณฑ์ ผู้ประเมิน กำหนดเมตริก