อัตราการผ่าน 91% สถานะ Gate เป็นสีเขียว ส่งงานเรียบร้อย แต่เป็น Regression ที่แย่ที่สุดเท่าที่เคยมีมา

เราทำอัตราการผ่านได้ 91% ในการทดสอบการจำแนกเจตนา (intent-classification) โดยมีเกณฑ์ขั้นต่ำอยู่ที่ 90% เราผ่านเกณฑ์ และเราก็ส่งโค้ดออกไป

มันคือการถดถอย (regression) ที่แย่ที่สุดในไตรมาสนี้ของเรา

ปัญหาอยู่ที่วิธีการคำนวณของเรา คะแนนการประเมินของเราคงอยู่ที่ 96% หรือ 97% มาหลายสัปดาห์แล้ว แต่แล้ว การเปลี่ยนแปลงบางอย่างกลับทำให้ข้อมูลกลุ่มหนึ่ง (slice) พังลง นั่นคือกลุ่มคำขอคืนเงินที่กำกวม (ambiguous refund requests) ซึ่งคะแนนในกลุ่มนี้ลดลงจาก 98% เหลือเพียง 74%

กลุ่มข้อมูลนี้คิดเป็นเพียง 4% ของทราฟฟิกทั้งหมดของเรา และเพราะเราดูแค่ค่าเฉลี่ย คะแนนรวมจึงลดลงเหลือเพียง 91% ทำให้สถานะ Gate ยังคงเป็นสีเขียว

ค่ารวม (Aggregates) มักซ่อนความล้มเหลวไว้ภายใต้สัญญาณรบกวน (noise)

ผู้ใช้งานในกลุ่มนั้นไม่ได้เห็นตัวเลข 91% แต่พวกเขาเห็น 74% เกณฑ์การตัดสินแบบคงที่ (static threshold) จะบอกคุณได้แค่ว่าระบบทั้งหมดกำลังพังทลายลงหรือไม่ แต่มันไม่ได้บอกว่ามีส่วนใดส่วนหนึ่งของระบบกำลังตาย หากข้อมูล 96 กลุ่มยังปกติดี แต่มีกลุ่มหนึ่งพัง ค่าเฉลี่ยที่สูงจะช่วยปกปิดความพังนั้นไว้ และคุณจะพบข้อผิดพลาดผ่านตั๋วแจ้งปัญหา (support tickets) แทนที่จะพบผ่านเครื่องมือทดสอบของคุณ

เราเปลี่ยนกลยุทธ์ใหม่ เราเลิกใช้เกณฑ์ตัดสินจากตัวเลขสัมบูรณ์ (absolute numbers) แต่เปลี่ยนมาใช้การเปรียบเทียบกับผลลัพธ์ที่สำเร็จล่าสุด (last successful run) แทน

เราใช้กฎสองข้อ ซึ่งต้องผ่านทั้งคู่:

  • ไม่มีข้อมูลกลุ่มใดกลุ่มหนึ่งที่มีคะแนนลดลงเกิน 3 จุดเมื่อเทียบกับค่ามาตรฐาน (baseline)
  • คะแนนรวมทั้งหมดต้องไม่ลดลงเกิน 1.5 จุดเมื่อเทียบกับค่ามาตรฐาน

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

ระวังกับดักของ Delta Gating หากค่ามาตรฐาน (baseline) ของคุณอัปเดตทุกครั้งที่มีการรัน คุณอาจค่อยๆ ไหลไปสู่ความล้มเหลวได้ การที่คะแนนลดลงวันละ 0.5 จุดอาจผ่านการทดสอบทุกครั้ง แต่คุณกำลังค่อยๆ พัฒนาผลิตภัณฑ์ที่แย่ลงอย่างช้าๆ

ทำตามขั้นตอนเหล่านี้เพื่อปรับปรุงการทดสอบของคุณ:

  • อัปเดตค่ามาตรฐานของคุณเฉพาะเมื่อ main branch เป็นสีเขียวเท่านั้น
  • กำหนดให้ต้องมีมนุษย์เป็นผู้อนุมัติหากมีการตั้งใจทำให้คะแนนลดลง
  • ค่ามาตรฐานของคุณต้องเป็นบันทึกของสิ่งที่ใช้งานได้จริง ไม่ใช่แค่สิ่งที่เกิดขึ้นล่าสุด
  • ตรวจสอบความแปรปรวน (variance) ของการรันที่ผ่านเกณฑ์ (green runs) 5 ครั้งล่าสุด หากข้อมูลกลุ่มใดกลุ่มหนึ่งมีความผันผวนมากกว่าเกณฑ์ที่คุณตั้งไว้ แสดงว่าเกณฑ์ของคุณนั้นเป็นเพียงสัญญาณรบกวน (noise)
  • ทดสอบกลุ่มข้อมูลที่เล็กที่สุดของคุณ ลองตั้งคำถามว่าคะแนนในกลุ่มนั้นสามารถลดลงได้มากแค่ไหนก่อนที่ค่ารวมจะสังเกตเห็น หากคำตอบคือตัวเลขที่สูงมาก แสดงว่าค่ารวมของคุณกำลังซ่อนข้อผิดพลาดอยู่

Source: https://dev.to/ethanwritesai/91-pass-rate-gate-green-shipped-worst-regression-we-had-all-quarter-4dfn

Optional learning community: https://t.me/GyaanSetuAi