คุณอยากรู้ว่าของที่เพิ่งเพิ่มเข้าไปช่วยจริงไหม เลยลองเทียบ 2 แบบ เปิดกับปิด ผลออกมาว่าไม่ต่างกันเลย คุณกำลังจะสรุปว่ามันไม่มีประโยชน์แล้วเอาออก
เดี๋ยวก่อน ผลว่าไม่ต่าง มีคำอธิบายได้ 2 แบบเสมอ แบบแรกคือของไม่ได้ช่วยจริง แบบที่ 2 คือฝั่งที่ควรจะปิด ยังเปิดอยู่ และ 2 แบบนี้หน้าตาเหมือนกันเป๊ะบนหน้าจอ
เราเจอแบบที่ 2 กับตัวเอง เรากำลังตอบคำถามที่ฟังดูง่ายมาก สกิลตัวนี้ทำให้ผลลัพธ์ต่างจากตอนไม่มีมันไหม
วิธีตอบก็ตรงไปตรงมา ยิงโจทย์เดียวกัน2 แขน แขนหนึ่งเปิดสกิลไว้ อีกแขนปิดทุกอย่างที่มาจากไฟล์ตั้งค่า แล้วเอาคำตอบทั้งสองไปให้ตัวตรวจตัวเดียวกันตัดสิน
รันแล้วได้ผลว่าแยกไม่ออก 2 แขนทำได้พอกัน เราเกือบเขียนลงรายงานว่าสกิลตัวนี้ยังพิสูจน์ไม่ได้
แล้วมีคนสงสัยขึ้นมาว่า ถ้าย้ายที่ยืนของคำสั่งไปโฟลเดอร์ว่างล่ะ จะต่างไหม
| ที่ทำงานของคำสั่ง | ผลของแขนควบคุม | คำตัดสินที่เครื่องพิมพ์ออกมา |
|---|---|---|
| โฟลเดอร์ของโปรเจกต์ | ผ่าน 3 จาก 3 | แยกไม่ออก |
| โฟลเดอร์ว่าง | ผ่าน 1 จาก 3 | สกิลไม่ได้ทำหน้าที่ |
โจทย์เดียวกัน โมเดลเดียวกัน ธงเดียวกัน ต่างแค่ที่ยืน แล้วคำตัดสินกลับข้างสนิท จากตัวแปรที่ไม่มีใครนับว่าเป็นตัวแปร
ช่วงที่ 1ธงบอกว่ามันตัดอะไร ไม่ได้บอกว่ามันไม่ตัดอะไร
ธงที่เราใช้ตัดบริบทออกจากแขนควบคุม อ่านชื่อแล้วเหมือนตัดทุกอย่างที่มาจากไฟล์ตั้งค่า และก็ทำอย่างนั้นจริง
สิ่งที่ไม่ได้ตัดคือ ไฟล์กฎของโปรเจกต์ที่วางอยู่ในโฟลเดอร์ที่คำสั่งถูกรัน ซึ่งเป็นคนละช่องทางกัน และเราไม่เคยย้ายที่ยืนเลย ทุกรอบรันจากโฟลเดอร์ของโปรเจกต์
ในไฟล์กฎนั้นมีบรรทัดที่เขียนชื่อกฎที่เรากำลังทดสอบอยู่ตรงๆ แขนควบคุมจึงอ่านกฎนั้นทุกครั้ง แล้วทำถูกตามกฎ ไม่ใช่เพราะโมเดลเก่ง แต่เพราะได้อ่านเฉลยไปแล้ว
แขนที่ควรจะว่างเปล่า ถือของที่เรากำลังทดสอบอยู่ในมือมาตลอด
รูปแบบนี้ไม่ได้จำกัดอยู่แค่การวัดสกิล ทุกครั้งที่คุณตั้งธงว่า "ปิดของนี้" แล้วเชื่อชื่อธง คุณกำลังอนุมานสิ่งที่ควรวัด ธงเป็นคำสัญญา ไม่ใช่หลักฐาน
ช่วงที่ 2พิสูจน์แขนควบคุมยังไงให้เชื่อได้
วิธีที่ใช้ได้จริงคือกลับด้านคำถาม แทนที่จะถามว่า "แขนควบคุมสะอาดไหม" ให้หา เงื่อนไขที่แขนควบคุมต้องทำไม่ได้ แล้ววัดว่ามันทำไม่ได้จริง
ถ้ายังทำได้ แปลว่าถือของที่เราคิดว่าเอาออกไปแล้ว
ในเคสนี้เงื่อนไขคือ ถ้าแขนควบคุมไม่ได้อ่านกฎ ก็ควรทำผิดกฎนั้นบ้างเป็นบางรอบ พอย้ายไปโฟลเดอร์ว่างแล้วทำผิดจริง 2 ใน 3 รอบ นั่นคือหลักฐานว่าที่เดิมเคยอ่านอยู่
แล้วเราก็เอาเงื่อนไขนั้นมาเขียนเป็นตัวกันไว้ในตัวรัน ให้เดินจากที่ทำงานขึ้นไปเรื่อยๆ จนถึงรากของเครื่อง ถ้าเจอไฟล์กฎของโปรเจกต์ระหว่างทางให้หยุดทันที พร้อมบอกว่าเจอที่ไหน
แล้วเราวางตัวล่อไว้ด้วย คือตัวแปรตัวเดียวที่สั่งให้ตัวกันแดงได้ เพื่อจะได้เห็นกับตาว่ายิงจริง ไม่ใช่เขียวเพราะไม่เคยตรวจ
ช่วงที่ 3ตัวตรวจตัวแรกที่เขียนขึ้นมาปิดเรื่องนี้ ก็พังด้วยเหตุผลใกล้กัน
ก่อนจะมาเป็นตัวกันแบบเดินไล่ไฟล์ เราลองวิธีที่ดูฉลาดกว่าก่อน คือถามโมเดลตรงๆ ว่าเห็นบริบทของบ้านไหม โดยเขียนในโจทย์ประมาณว่า ถ้าเห็นข้อความ ชื่อกฎนี้ ให้ตอบว่ารั่ว
ผลคือตอบว่ารั่วทั้ง 2 ทิศ ทั้งแขนที่ควรรั่วและแขนที่ไม่ควรรั่ว
เหตุผลชัดเจนเมื่อเห็น โจทย์ของเราเอ่ยชื่อกฎนั้นออกมา โมเดลจึงเห็นคำนั้นในโจทย์ ไม่ใช่ในบริบท แล้วตอบตามที่สั่งอย่างซื่อสัตย์
ตัวตรวจห้ามเอ่ยคำที่ตัวเองกำลังหา และตัวตรวจที่แยกสองทิศไม่ออก คือตัวตรวจที่ไม่มีอยู่
เราเลยทิ้งวิธีถามโมเดล แล้วเปลี่ยนไปเช็คไฟล์แทน เพราะไฟล์ตอบเหมือนเดิมทุกครั้ง และไม่ต้องตีความ
วันเดียวกันนั้นยังเจออีก 3 อย่างที่เป็นตระกูลเดียวกัน คือผลที่อ่านเหมือนคำตอบแต่ไม่ได้ตอบคำถามที่ถาม
- ข้อความแจ้งความผิดพลาดถูกนับเป็นคำตอบ ตัวกันเช็คแค่ว่าไฟล์ผลลัพธ์ไม่ว่าง แล้วบรรทัดที่บอกว่าโควตาเดือนนี้เต็มก็ผ่านด่านนั้นไปได้ กลายเป็นคะแนนของสกิล
- ตัวตรวจที่ตอบได้แค่ผ่านกับไม่ผ่าน กลืนกรณี "ประเมินไม่ได้" เข้าไปรวมกับ "ไม่ผ่าน" ทั้งที่สองอย่างนี้ต้องทำคนละอย่างต่อ ต้องมีค่าที่สาม
- หลักฐานถูกลบตอนที่ต้องการที่สุด รอบที่ล้ม คำสั่งล้างโฟลเดอร์ชั่วคราวทำงานก่อนบรรทัดที่เซฟผลไว้ดู ไฟล์ที่ค้างอยู่จึงเป็นของรอบก่อนหน้า แล้วถูกอ่านเป็นหลักฐานของรอบที่เพิ่งล้ม
ข้อสุดท้ายเกือบพาเราไปสรุปว่าแขนควบคุมตอบได้ดี ทั้งที่รอบนั้นไม่มีคำตอบเลยสักตัว
ช่วงที่ 4ทิศของอคติบอกว่าผลเก่าอันไหนยังใช้ได้
พอรู้ว่าแขนควบคุมปนเปื้อน ปฏิกิริยาแรกคือจะรื้อผลเก่าทั้งกอง ซึ่งแพงและไม่จำเป็น
สิ่งที่ควรทำก่อนคือถามว่า อคตินี้ดันผลไปทางไหน
การปนเปื้อนแบบนี้ทำให้แขนควบคุม เก่งขึ้น กว่าความจริง ผลที่ตามมามีแค่ 2 แบบ
| ผลเก่าที่เคยได้ | อคติสร้างผลนี้ปลอมได้ไหม | ต้องทำอะไร |
|---|---|---|
| พิสูจน์แล้วว่าสกิลช่วย | ไม่ได้ เพราะควบคุมที่เก่งขึ้นยิ่งทำให้ผ่านยาก | ยังยืน ไม่ต้องวัดใหม่ |
| แยกไม่ออก | ได้ ควบคุมที่เก่งเกินจริงสร้างผลนี้ได้ตรงๆ | ต้องวัดใหม่ |
คิดทิศก่อน แล้วคุณจะรู้ว่าต้องวัดใหม่แค่ครึ่งเดียว ไม่ใช่ทั้งหมด
ช่วงที่ 5เอาไปใช้กับการวัดของคุณ
สิ่งนี้ไม่ได้เกิดเฉพาะกับการวัดสกิล แต่เกิดกับทุกการทดลองที่ตัดสินด้วยการเทียบ ตั้งแต่ทดสอบหน้าเว็บ 2 แบบ ไปจนถึงเทียบโมเดล 2 ตัว
- เขียนลงไปว่าแขนควบคุมต้องไม่มีอะไร แล้ววัดข้อนั้นทีละข้อ อย่าอนุมานจากชื่อธง
- หาเงื่อนไขที่แขนควบคุมต้องทำไม่ได้ ถ้ายังทำได้ แปลว่าถือของที่เราคิดว่าเอาออกแล้ว
- ทำให้ตัวกันแดงได้ด้วยคำสั่งเดียว แล้วรันให้เห็นสักครั้ง ตัวกันที่ไม่เคยเห็นแดง กับตัวกันที่ตายอยู่ ให้ผลหน้าตาเหมือนกัน
- อย่าให้ตัวตรวจเอ่ยคำที่ตัวเองกำลังหา ไม่งั้นคุณจะได้คำตอบเดียวกันทั้ง 2 ทิศ แล้วนึกว่าใช้ได้
- คิดทิศของอคติก่อนรื้อผลเก่า ผลบางชนิดรอดจากการปนเปื้อนโดยธรรมชาติของมันเอง
ที่ยากไม่ใช่การเขียนเครื่องมือวัด อยู่ที่การยอมสงสัยเครื่องมือวัดก่อนสงสัยของที่ถูกวัดต่างหาก ในวันที่เล่าอยู่นี้เราอ่านผลผิดไป 4 ครั้ง และทุกครั้งจับได้เพราะเอาผลไปเทียบกับของจริง ไม่ใช่เพราะโค้ดฟ้อง
ถ้าอยากอ่านต่อว่าเครื่องมือวัดหลอกเราได้อีกกี่แบบ ลองอ่าน เมื่อตัวตรวจบอกว่าผ่าน ทั้งที่ยังไม่ได้ตรวจ และ เครื่องมือที่เอาไว้จับผิด ดันผิดเสียเอง ส่วนภาพรวมของการวัดคลังสกิลทั้งคลังอยู่ที่ สกิล 60 ตัวไม่เคยถูกเรียกเลย เราเกือบตัดทิ้ง แล้ววัดก่อน และบทความอื่นอยู่ที่ หน้ารวมบทความ
ที่มาและอ้างอิง
ทุกอย่างในบทความนี้มาจากการรันจริงบนเครื่องมือของเราเองเมื่อ 13 สิงหาคม 2026 ไม่มีตัวเลขที่ยกมาจากที่อื่น
- ตารางเทียบที่ทำงานของคำสั่ง มาจากการรันชุดเดียวกัน 2 รอบ ต่างกันแค่โฟลเดอร์ที่เริ่มคำสั่ง
- ตัวกันที่เดินไล่หาไฟล์กฎ มีตัวล่อสั่งให้แดงได้ในตัว และรันให้แดงจริงก่อนถูกนำไปใช้ตัดสิน
- เรื่องตัวตรวจที่เอ่ยคำที่ตัวเองหา อ่านจากผลดิบของรอบที่ตอบเหมือนกันทั้ง 2 ทิศ
- รายการอาการทั้ง 3 ข้อในช่วงที่ 3 เป็นสิ่งที่แก้ไปแล้วในวันเดียวกัน ไม่ใช่ข้อสังเกตเชิงทฤษฎี