ตั้งค่าโมเดลผู้พิพากษาพื้นฐาน (ตอนที่ 2)

ตั้งค่าโมเดลการให้คะแนนพื้นฐานให้เสร็จสมบูรณ์เพื่อเริ่มการประเมินเชิงอัตวิสัย

ปรับและทดสอบโมเดลการให้คะแนน

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

สร้างชุดข้อมูลการปรับ

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

ชุดข้อมูลการปรับควรมีคู่อินพุต-เอาต์พุต 30-50 รายการ ชุดข้อมูลนี้มีขนาดใหญ่พอที่จะครอบคลุมกรณีที่พบได้ยาก แต่มีขนาดเล็กพอที่คุณจะติดป้ายกำกับได้ในระยะเวลาอันสั้น

ในตัวอย่าง ThemeBuilder รายการในชุดข้อมูลการปรับจะมีลักษณะดังนี้ (อินพุต, เอาต์พุต, ป้ายกำกับของมนุษย์)

{
  "id": "sample-014",
  "userInput": {
    "companyName": "Rawrr!",
    "audience": "kids 5-10",
    "tone": ["prehistoric", "loud", "fun"]
  },
  "appOutput": {
    "motto": "Experiencing the prehistoric era."
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "FAIL",
      "rationale": "While on-theme, this motto is too formal for kids.
        It fails to capture the required 'loud' and 'fun' energy."
    }
  }
}

หากต้องการสร้างอินพุตและเอาต์พุต คุณสามารถดึงข้อมูลจากบันทึกการใช้งานจริง (หากมี) สร้างข้อมูลด้วยตนเอง ใช้ LLM (ข้อมูลสังเคราะห์) หรือเริ่มจากตัวอย่างที่เลือกด้วยตนเอง 2-3 รายการ แล้วขอให้ LLM เพิ่มชุดข้อมูล

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

ตรวจสอบว่าชุดข้อมูลการปรับมีตัวอย่าง PASS และตัวอย่าง FAIL ที่มีความยากต่างกัน เช่น

  • ตัวอย่างกรณีเส้นทางที่ไม่พบข้อผิดพลาด 10 รายการที่โมเดลการให้คะแนนของคุณติดป้ายกำกับเป็น PASS
  • ตัวอย่างกรณี 20 รายการที่โมเดลการให้คะแนนของคุณติดป้ายกำกับเป็น FAIL ดังนี้
    • ความล้มเหลวที่เห็นได้ชัด เช่น สโลแกนที่เป็นพิษสูงหรือไม่ได้อยู่ในแบรนด์เลย
    • ความล้มเหลวที่สังเกตได้ยาก เช่น สโลแกนที่ไวยากรณ์สมบูรณ์แบบแต่ เป็นทางการเกินไปสำหรับแบรนด์ที่สนุกสนาน หรือสโลแกนที่เข้ากับโทนเสียงเพียงบางส่วน

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

เมื่อชุดข้อมูลการปรับพร้อมแล้ว ชุดข้อมูลจะมีลักษณะดังนี้

กรณีเส้นทางที่ไม่พบข้อผิดพลาด (PASS)

// Easy, clean input + Good output
{
  "id": "sample-001",
  "userInput": {
    "companyName": "Kinetica",
    "description": "Carbon-fiber plated performance footwear engineered for
    elite marathon runners.",
    "audience": "competitive triathletes and professional runners",
    "tone": [
      "aggressive",
      "high-performance",
      "technical"
    ]
  },
  "appOutput": {
    "motto": "Unlock your kinetic potential.",
    "colorPalette": {
      "textColor": "#FFFFFF",
      "backgroundColor": "#000000",
      "primary": "#DC2626",
      "secondary": "#E2E8F0"
    }
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "PASS",
      "rationale": "This motto powerfully aligns the brand's technical
      engineering with the ambitious goals of its elite athletic audience.
      Relevance: Uses 'kinetic' to expertly link the brand to physical
      energy. Audience appeal: 'Unlock your potential' resonates perfectly
      with competitive runners. Tone consistency: Nails the required
      aggressive, high-performance marks."
    },
    "mottoToxicity": {
      "label": "PASS",
      "rationale": "Perfectly clean and motivational. No offensive or
      exclusionary language."
    },
    "colorBrandFit": {
      "label": "PASS",
      "rationale": "The chosen color palette perfectly mirrors Kinetica's
      aggressive and technical brand identity by utilizing high-impact tones
      that resonate with elite athletes. Relevance: Psychological association:
      Blood red creates urgency and speed. Harmony: Stark contrast against
      black/white feels highly technical.
      Appropriateness: Extremely effective aesthetic for premium athletic gear."
    }
  }
}

ความล้มเหลวที่เห็นได้ชัด (FAIL)

// Off-brand color palette
{
  "id": "sample-014",
  "userInput": {
    "companyName": "Rawrr!",
    "description": "Dinosaur themed playground and party venue.",
    "audience": "kids 5-10",
    "tone": [
      "prehistoric",
      "loud",
      "fun"
    ]
  },
  "appOutput": {
    "motto": "Experiencing the prehistoric era.",
    "colorPalette": {
      "textColor": "#4A4A4A",
      "backgroundColor": "#F5F5DC",
      "primary": "#D2B48C",
      "secondary": "#C0C0C0"
    }
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "FAIL",
      "rationale": "While the motto relates to the dinosaur theme, its overly
      academic and formal tone fails to capture the loud and fun energy
      essential for a children's playground brand. Relevance: Effectively fits
      the dinosaur theme. Audience appeal: A bit formal ('Experiencing' versus
      something punchy), acceptable for parents booking events but should be
      more exciting for kids, it's too formal and academic for a children's
      playground, lacks the 'loud' and 'fun' energy requested in the tone.
      Tone consistency: It touches on the 'prehistoric' element adequately."
    },
    "mottoToxicity": {
      "label": "PASS",
      "rationale": "A completely family-friendly, educational-sounding statement."
    },
    "colorBrandFit": {
      "label": "FAIL",
      "rationale": "This muted and sophisticated color scheme fails to capture
      the high-energy, prehistoric spirit required to attract and excite a young
      audience. Relevance: Psychological association: The 'sad beige', tan, and
      muted greys evoke a sterile, 'adult minimalist' home décor aesthetic.
      Harmony: The colors are muddy and lifeless. Appropriateness: For a 'loud'
      and 'fun' children's playground targeting 5-10 year olds, this palette is
      a spectacular failure. It desperately needs vibrant, exciting primary
      colors to attract kids."
    }
  }
},

ความล้มเหลวที่สังเกตได้ยาก (FAIL)

// Almost on-brand color palette
{
  "id": "sample-023",
  "userInput": {
    "companyName": "Apex Dental",
    "description": "High-end cosmetic dentistry specializing in porcelain
        veneers and laser whitening.",
    "audience": "Professionals seeking a perfect smile",
    "tone": [
      "clean",
      "professional",
      "bright"
    ]
  },
  "appOutput": {
    "motto": "Designing your brightest smile.",
    "colorPalette": {
      "textColor": "#1A202C",
      "backgroundColor": "#FFFFFF",
      "primary": "#FFC107",
      "secondary": "#E2E8F0"
    }
  },
  "humanEvaluation": {
    "mottoBrandFit": {
      "label": "PASS",
      "rationale": "The motto perfectly captures the premium essence of the
      brand by combining high-end dental aesthetics with a clear appeal to a
      professional clientele. Relevance: Relates perfectly to cosmetic
      dentistry and teeth whitening. Audience appeal: 'Brightest smile' is a
      highly effective, aspirational hook for professionals wanting to look
      their best. Tone consistency: Clean, upbeat, and exceedingly professional."
    },
    "mottoToxicity": {
      "label": "PASS",
      "rationale": "A very positive, medical-grade, and safe statement."
    },
    "colorBrandFit": {
      "label": "FAIL",
      "rationale": "The choice of bright yellow is a fundamental branding
      failure for a cosmetic dental practice as it creates a direct and
      repellent visual link to tooth discoloration, undermining the clinic's
      high-end whitening positioning. Relevance: Psychological association:
      While yellow technically fulfills the word 'bright', in the specific
      context of dentistry, a primary bright yellow is subconsciously and
      intensely associated with plaque, decay, and stained teeth.
      Harmony: It stands out strongly but sends the wrong message.
      Appropriateness: This is a massive psychological misstep for a whitening
      clinic. It subverts trust in their core service by visually reminding
      customers of the problem rather than the solution."
    }
  }
},

การปรับการเข้าถึง

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

// total = all test cases
// aligned = test cases where humanEval.label === llmJudgeEval.label
// For example, PASS and PASS
const alignment = (aligned / total) * 100;

กำหนดคะแนนการปรับเป้าหมาย เช่น 85% เป้าหมายอาจแตกต่างกันไปตามกรณีการใช้งาน

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

แนวทางปฏิบัติแนะนำ

ทำตามแนวทางปฏิบัติแนะนำต่อไปนี้เพื่อช่วยให้โมเดลการให้คะแนนได้คะแนนอย่างสม่ำเสมอ

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

หากต้องการดูการปรับในการทำงานจริงสำหรับ ThemeBuilder, ให้เรียกใช้การทดสอบการปรับ

เอาต์พุตของเทอร์มินัลจากการทดสอบการจัดแนวที่แสดงอัตราผ่าน/ไม่ผ่าน
ตัวอย่างการทดสอบการปรับ

การทดสอบความทนทานด้วยการบูตสแตรป

การบรรลุเป้าหมายการปรับ 85% ไม่ได้รับประกันว่าโมเดลการให้คะแนนจะทำงานได้ดีกับข้อมูลจริง ทดสอบความทนทานของโมเดลการให้คะแนนด้วยเทคนิคทางสถิติที่เรียกว่าการบูตสแตรป การบูตสแตรปจะสร้างชุดข้อมูลเวอร์ชันใหม่โดยไม่ต้องติดป้ายกำกับเพิ่มเติม

  • ทดสอบ: สุ่มตัวอย่างรายการ 30 รายการจากชุดข้อมูล โดยมีการแทนที่ ในการเรียกใช้ครั้งเดียว ระบบอาจเลือกกรณีที่ซับซ้อน 5 ครั้ง ซึ่งทำให้การทดสอบยากขึ้นมาก เรียกใช้การทดสอบการปรับกับชุดข้อมูลแบบสุ่มเหล่านี้หลายครั้ง และคำนวณการปรับเฉลี่ยและความแปรปรวนของคะแนนในการเรียกใช้เหล่านี้ ไม่มีจำนวนที่เฉพาะเจาะจง แต่การทำซ้ำ 10 ครั้งถือเป็นค่าพื้นฐานที่เป็นประโยชน์สำหรับโปรเจ็กต์ขนาดกลาง ทำซ้ำมากขึ้นเพื่อให้มีความมั่นใจสูงขึ้น
  • แก้ไข: หากคะแนนการปรับผันผวนอย่างมาก (ความแปรปรวนสูง) แสดงว่าโมเดลการให้คะแนนยังไม่น่าเชื่อถือ คะแนนเริ่มต้นของคุณเป็นเพียงความบังเอิญที่เกิดจากกรณีง่ายๆ 2-3 กรณี ขยายเกณฑ์การให้คะแนนและเพิ่มตัวอย่างที่หลากหลายและซับซ้อนมากขึ้นลงในชุดข้อมูลการปรับ
ภาพแสดงการทดสอบ Bootstrap ซึ่งแสดงให้เห็นว่าการสุ่มตัวอย่างซ้ำโดยแทนที่อาจแสดงข้อมูลบางคลาสมากเกินไปหรือน้อยเกินไป
เนื่องจากมีการสุ่มตัวอย่างย่อยของออบเจ็กต์โดยมีการ แทนที่ คลาสบางคลาสจึงอาจมีการแสดงมากเกินไป (หินอ่อนสีเหลืองในตัวอย่างการบูตสแตรป 1 และ 2) ในขณะที่คลาสอื่นๆ อาจมีการแสดงน้อยเกินไป (หินอ่อนสีแดงในตัวอย่างการบูตสแตรป 1 และ 2) หรืออาจไม่มีเลย (หินอ่อนสีเขียวในตัวอย่างการบูตสแตรป 3) ดูรูปภาพทางวิทยาศาสตร์ต้นฉบับจาก ReaserchGate

คุณลองทำได้

เอาต์พุตเทอร์มินัลของการทดสอบ Bootstrap
ตัวอย่างการทดสอบการบูตสแตรป

ทดสอบความสอดคล้องในตัวเอง

คุณจะเชื่อถือโมเดลการให้คะแนนได้ก็ต่อเมื่อโมเดลให้คำตอบเดียวกันสำหรับอินพุตเดียวกันเสมอ หากคุณตั้งค่าอุณหภูมิเป็น 0 โมเดลการให้คะแนนจะมีความสอดคล้อง 100% ยืนยันความสอดคล้องนี้

  • ทดสอบ: เรียกใช้โมเดลการให้คะแนนหลายครั้งกับชุดข้อมูลเดียวกันทุกประการ เช่น การสุ่มตัวอย่างจากชุดข้อมูลการปรับ คำนวณความแปรปรวนสำหรับกรณีทดสอบแต่ละกรณีในการทำซ้ำเหล่านั้น ตั้งเป้าหมายความสอดคล้อง 100% (ความแปรปรวนเป็นศูนย์) หากความแปรปรวนมากกว่าศูนย์ การทดสอบจะล้มเหลวเนื่องจากโมเดลการให้คะแนนให้คำตอบที่แตกต่างกันสำหรับอินพุตเดียวกัน
  • แก้ไข: พรอมต์ของโมเดลการให้คะแนนอาจคลุมเครือหรืออุณหภูมิสูงเกินไป เขียนส่วนของพรอมต์ที่ขาดความชัดเจนใหม่ โดยเฉพาะเกณฑ์การให้คะแนน ลดอุณหภูมิเป็น 0 (หรือตั้งค่า thinking_level เป็นสูง) หากยังไม่ได้ทำ

หากต้องการดูการทำงานจริง ให้เรียกใช้การทดสอบ

เอาต์พุตของเทอร์มินัลจากการทดสอบความสอดคล้องของกรรมการ
ในตัวอย่างนี้ เราทดสอบตัวอย่าง 6 รายการสำหรับเมตริก 3 รายการ (ความเป็นพิษของสโลแกน ความเหมาะสมของสโลแกนกับแบรนด์ และความเหมาะสมของสีกับแบรนด์) ผลลัพธ์มีความเสถียรเกือบทั้งหมด แต่ตัวอย่างบางรายการมีผลลัพธ์ที่ไม่สอดคล้องกัน

Final exam

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

  • ทดสอบ: เก็บชุดข้อมูลการสอบขั้นสุดท้ายแยกต่างหากซึ่งมีตัวอย่าง 20 รายการที่ติดป้ายกำกับโดยมนุษย์ซึ่งคุณไม่ได้ใช้ระหว่างการปรับ เรียกใช้โมเดลการให้คะแนนกับชุดข้อมูลนี้
  • แก้ไข: หากคะแนนการปรับยังคงสูง แสดงว่าโมเดลการให้คะแนนพร้อมใช้งานแล้ว หากคะแนนลดลงอย่างมาก แสดงว่ามีการปรับให้เข้ากับข้อมูลการฝึกมากเกินไป ซึ่งหมายความว่าคุณปรับพรอมต์หลายครั้งเกินไปเพื่อให้ผ่านข้อมูลการปรับที่เฉพาะเจาะจง ขยายพรอมต์ เกณฑ์การให้คะแนน และตัวอย่างแบบ Few-Shot

หากต้องการดูการทำงานจริง ให้เรียกใช้การทดสอบ

สรุป

คุณเรียกใช้การทดสอบต่างๆ เพื่อสร้างโมเดลการให้คะแนนพื้นฐาน ซึ่งรวมถึง

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